摘 要:首先介紹由80C196KB單片機控制8254計數(shù)器和CPLD進行通道選擇、頻率和計數(shù)值任意設定的脈沖模擬源的具體設計方案,重點介紹由8254計數(shù)器級聯(lián)產(chǎn)生可變脈沖個數(shù)與頻率的原理,并對通道的控制選擇與脈寬的調制做簡單說明。實驗表明,該方案具有精度高、可靠性好等優(yōu)點,已成功應用于某測試系統(tǒng)中并具有一定的通用性。
關鍵詞:脈沖;計數(shù)器;CPLD;多通道;模擬源
中圖分類號:TP368.4 文獻標識碼:B 文章編號:1004-373X(2008)02-041-02
Design of Multi-channel Pulse Simulation Source Based on Single Chip and 8254 Counter
WANG Hongliang,YANG Chen,MA Zhigang,ZHANG Guojun
(National Key Laboratory for Electronic Measurement Technology,North China University,Taiyuan,030051,China)[JZ)][HJ1*3][HJ]
[HJ*2]Abstract:This paper introduces a concreted design scheme of pulse simulation source which is completed by 80C196KB single chip to control 8254 counter and CPLD to realize channel choice and set frequency and counter value arbitrarily,the principle of alterable pulse number and frequency which are generated by 8254 concatenation is expounded emphatically.In addition,channel control choice and pulse width modulation are introduced in brief.Experimentation indicates that the scheme has advantages of high precision and reliability which has been applied in test system successfully and has definite versatility.
Keywords:pulse;counter;CPLD;multi-channel;simulation source
近年來,隨著各種存儲測試設備在各行業(yè)的廣泛應用,人們對這些設備的存儲性能測試提出了越來越高的要求。一般在相關產(chǎn)品正式投入工作之前,各種參數(shù)必須經(jīng)過嚴格、完整的測試。脈沖輸出模擬源正是應這種需求而設計的,他不僅需要高精度和高可靠性,還要任意改變頻率與個數(shù),這就要求模擬源的設計有大范圍的參數(shù)可變性。目前,一般的模擬信號源在設置脈沖個數(shù)與通道選擇上并不能完全滿足需要,并且其信號干擾較大,所以一定程度上需要多通道與固定脈沖個數(shù)模擬源[1-3]。
本系統(tǒng)以單片機、8254計數(shù)器及CPLD進行電路設計,利用上位機進行預置通道、頻率和計數(shù)值等參數(shù),達到了所需模擬源的技術要求,并具有較高的可靠性和靈活性。
1 系統(tǒng)設計
1.1 系統(tǒng)結構
系統(tǒng)設計采用Intel公司的80C196KB單片機為控制核心;以Intel公司的可編程計數(shù)器/定時器8254為主要實現(xiàn)芯片,其工作模式見參考文獻\\[4\\];采用CPLD作為邏輯控制單元逐級控制實現(xiàn)多通道、不同頻率與個數(shù),且可以同時發(fā)出單個脈沖或組脈沖模擬源。
在設計中,雙端口存儲器IDT7130是單片機與計算機并口之間通訊的紐帶,單片機的地址和數(shù)據(jù)由IDT7130的A口進行讀寫操作;PC機的地址和數(shù)據(jù)則由B口進行讀寫操作;二者可以實現(xiàn)異步讀寫操作,適用于單片機與PC機之間的大量數(shù)據(jù)高速雙向傳送。控制信號及參數(shù)設置由上位機通過EPP模式并口發(fā)送給IDT7130的A口,而單片機則通過B口獲取這些指令及參數(shù)進而控制8254與CPLD的運行。單片機的數(shù)據(jù)總線、地址總線和控制總線是單片機與外部存儲器、I/O接口芯片進行信息交換的惟一通道。三線處理的正確與否,直接關系到整個系統(tǒng)的運行質量。系統(tǒng)接口連接框圖如圖1所示。
1.2 8254計數(shù)器級聯(lián)原理與實現(xiàn)
為滿足不同測試環(huán)境對脈沖的需求,模擬源的設計必須有大幅度的可變性與可調性,其脈寬、頻率以及脈沖個數(shù)的范圍應該可以預置的。把其設計原理以一具體例子來描述如下:若模擬源的脈沖信號個數(shù)可預置范圍是0~224,可選通道為6個,則至少需要24位計數(shù)器,但1片8254中每個計數(shù)器/定時器都是16位的,每片8254集成有3個這樣獨立的計數(shù)器/定時器。在設計的過程中可以采用3片8254級聯(lián)實現(xiàn)此功能。3片8254共計9個計數(shù)器/定時器,使用其中的8個,在功能分配上,2個用于控制奇數(shù)和偶數(shù)通道的頻率,3個級聯(lián)用于產(chǎn)生奇數(shù)通道的脈沖個數(shù),3個級聯(lián)用于控制產(chǎn)生偶數(shù)通道脈沖個數(shù)。將8254作為任意分頻器和計數(shù)器使用,通過對8254計數(shù)器頻率和初始值的設置實現(xiàn)了模擬源脈沖任務功能。
現(xiàn)以實現(xiàn)3FFFF4H個脈沖為例介紹3個奇數(shù)通道工作過程,如圖2所示。由于8254的計數(shù)器是16位的,要實現(xiàn)24位的脈沖信號,可將其脈沖數(shù)分為高、中、低位分別實現(xiàn)。3FFFF4H=40H*FFFFH+34H,即高位為40H,低位為34H。讓U1的計數(shù)器0工作于模式2的分頻狀態(tài),其時鐘信號就是設定的晶振頻率的脈沖信號,計數(shù)器1用來控制脈沖個數(shù)的低位,計數(shù)器2用來控制脈沖個數(shù)的中位,U2的計數(shù)器0用來控制計數(shù)器的高位。
要得到需要的脈沖個數(shù),應將U1計數(shù)器0的輸出脈沖P2的作為U1的計數(shù)器1和計數(shù)器2的時鐘輸入信號。計數(shù)器1工作在模式1條件下,門控由U2的計數(shù)器0輸出端控制,計數(shù)完畢后輸出高電平。其初始值為34H,當計數(shù)器計滿34H時,其輸出端P5由低變?yōu)楦唠娖剑V褂嫈?shù)。U1計數(shù)器2和U2計數(shù)器是用于產(chǎn)生中位和高位脈沖,計數(shù)器2設置為方波發(fā)生器的模式3狀態(tài)下,其初始值為FFFFH,并將其輸出端作為U2計數(shù)器0的時鐘信號。此時計數(shù)器0工作在模式1計數(shù)狀態(tài)下,并預置初始值為40H,也就是當U1計數(shù)器2每計滿一個FFFFH時,其輸出端的上升沿跳變就會觸發(fā)U2的計數(shù)器0,使其計數(shù)1次,當此計數(shù)器計滿40H時,其輸出端P4呈現(xiàn)高電平,再觸發(fā)U1的計數(shù)器1,當計數(shù)器1計滿后,這樣就共計40*FFFFH+34H個脈沖。為了保證計數(shù)時計完高位再計低位,將U2計數(shù)器0的計數(shù)輸出信號作為U1計數(shù)器的門控信號,這樣在U1計數(shù)器2和U2計數(shù)器0計完高位后,用U2計數(shù)器0的輸出端的高電平跳變來啟動U1計數(shù)器1開始工作,從而保證了計數(shù)器在低位和高位的時間上無重疊。
1.3 脈寬調制
在通常的測試儀器中,兩個設備通過隔離光耦進行信息通信。光耦的靈敏度各不相同,一般光耦對只有幾納秒的脈寬是感應不到的,所以,為了使信號模擬源更有通用性,可以使信號先通過單端穩(wěn)態(tài)觸發(fā)器74HC123進行脈寬調制,其輸出脈寬可由公式tw(out)=KCxRx計算得出,其中Cx,Rx即為圖2中的R1和C3的值。把分頻后的脈沖信號P2經(jīng)脈寬調制后可以輸出任意脈寬,從而適應了各種測試需求,使脈沖模擬源具有更大的靈活性。調試前后的脈沖波形如圖3,圖4所示。
1.4 通道控制
為實現(xiàn)多通道的脈沖輸出,可以使用CPLD作為通道控制邏輯單元,CPLD邏輯控制如圖5所示。為使經(jīng)過脈寬調制后的F1在輸出端P4和P5都為高時停止輸出,則使P4和P5和單片機高速輸出端HS03共同通過一與門變?yōu)橐宦沸盘枺俸虵1共同通過一或門,這樣就可使時鐘在脈沖數(shù)輸出完畢后停止F1的輸出,此時由或非門輸出的脈沖個數(shù)正是所設置的個數(shù)。在該邏輯單元中,P4和P5與高速輸出端HSO3作為計數(shù)停止控制信號,SET1-3作為通道選擇控制信號,具體電路如圖5所示。
對計數(shù)的每個計數(shù)器,必須有初始值,且初始值不能為0,即低位、中位與進位必須有初始不為0的數(shù)。這樣才能保證計數(shù)的順利進行。當脈沖個數(shù)設置為1時,中位與進位必須為0,這時需要修改計數(shù)器的工作模式(在單片機程序中實現(xiàn)),只需把低位計數(shù)器的改為模式5(硬件觸發(fā)的選通信號發(fā)生器),初始值設為10即可。此時發(fā)出的脈沖是單脈沖,其脈沖寬度為一個時鐘周期。
2 軟件設計
在本系統(tǒng)中,軟件部分分為單片機控制軟件和上位機軟件,單片機控制軟件是整個設計的核心,肩負著雙機通信及控制整個系統(tǒng)的任務,他從上位機獲取執(zhí)行命令和執(zhí)行相應的操作。 在單片機軟件設計中,因為單片機與上位機要保持實時通信關系,所以首先完成的是雙機通信問題。這里采用異步通信方式,使用雙端口存儲器作為雙機之間數(shù)據(jù)傳輸?shù)募~帶,采用計算機并口EPP通信方式。在工作過程中,計算機先將協(xié)議規(guī)定的命令發(fā)送給雙端口存儲器,然后單片機從雙端口存儲器獲取指令數(shù)據(jù)對系統(tǒng)進行控制[5]。雙方使用握手信號作為雙方的通信協(xié)議,握手信號在單片機主程序中循環(huán)產(chǎn)生。
3 結 語
脈沖模擬源的準確性以及精度一直是測試系統(tǒng)中比較關注的問題,他是檢測系統(tǒng)性能的重要指標之一,其性能的好壞直接關系到測試的準確性。實驗表明,該設計方案可靠性極高:預設置頻率與實現(xiàn)頻率的誤差在±0.02%以內,脈沖個數(shù)準確率達100%。另外,該系統(tǒng)還與某型號變換器進行的聯(lián)試,通過上位機接收所發(fā)出的脈沖個數(shù),試驗表明接收的脈沖個數(shù)與頻率和所設置的參數(shù)完全吻合。
參 考 文 獻
[1]王永山,楊宏五.微型計算機原理與應用[M].2版.西安:西安電子科技大學出版社,1999.
[2]周治良,張斌珍.一種基于單片機及CPLD測試臺的設計與實現(xiàn)\\[J\\].儀器儀表學報,2006(6):2 389-2 391.
[3]周祥萍,韓忠良,李鐵軍.可編程定時/計數(shù)器8254的方式控制字及應用\\[J\\].煤炭技術,2005,27(5):27-29.
[4]任勇峰.飛航導彈遙測匹配裝置自動監(jiān)測系統(tǒng)研究[D].太原:華北工學院,2000.
[5]劉復華.8XC196KX單片機及其應用系統(tǒng)設計\\[M\\].北京:清華大學出版社,2000.
注:本文中所涉及到的圖表、注解、公式等內容請以PDF格式閱讀原文。