基于PC104總線(xiàn)和CPLD的測頻模件設計
摘要:根據某測試系統的需要,設計基于PCl04總線(xiàn)和CPLD的高精度測頻模件,采用多周期同步測頻法實(shí)現對所測頻段的等精度測量。設計了該測頻模件的硬件電路,并給出用CPLD實(shí)現數字頻率計的詳細VHDL源代碼。采用原理圖的方式編寫(xiě)PC104總線(xiàn)的接口邏輯,并利用Max+P-lusⅡ軟件進(jìn)行仿真。結果顯示頻率計及接口邏輯均可正確工作。實(shí)際應用表明,該測頻模件具有精度高,可靠、穩定等優(yōu)點(diǎn)。
關(guān)鍵詞:PCl04;CPLD;多周期同步測頻;VHDL
隨著(zhù)科學(xué)技術(shù)的發(fā)展,嵌入式產(chǎn)品在軍事領(lǐng)域的應用日益廣泛,特別是在各種系統的自動(dòng)化測試領(lǐng)域。頻率測試是測試系統中的重要測試項目,在此設計一種基于PC104嵌入式計算機和CPLD的高精度測頻模件,以滿(mǎn)足對頻率量的測試。
1 測頻原理
傳統的頻率測量方法有兩種:直接測頻法和測周期法。直接測頻法就是在給定的閘門(mén)信號中填入被測脈沖,通過(guò)必要的計數線(xiàn)路,得到填充脈沖的個(gè)數,從而算出待測信號的周期。它的主要缺點(diǎn)是存在被測脈沖的±1個(gè)誤差,難以兼顧低頻和高頻實(shí)現等精度測量,所以測量準確度較低。測周期法是在一個(gè)信號周期內記錄下基準定時(shí)脈沖的個(gè)數,然后換算成頻率f。主要缺點(diǎn)是存在基準脈沖的±1個(gè)誤差,適用于較低頻率的測量。
多周期同步測頻方法是在直接測頻的基礎上發(fā)展而來(lái)的,其特點(diǎn)在于測量過(guò)程中實(shí)際閘門(mén)時(shí)間不是固定值,而是被測信號周期的整數倍,即與被測信號是同步的,因此消除了對被測信號計數產(chǎn)生的±1個(gè)誤差,測量精度大大提高,而且達到了在整個(gè)測量頻段的等精度測量。多周期同步測頻法的原理,如圖1所示。
如圖1所示,首先,由控制線(xiàn)路給出閘門(mén)開(kāi)啟信號,計數器等到被測信號的上升沿到來(lái)時(shí),真正開(kāi)始計數;然后,兩組計數器分別對被測信號和標準頻率信號計數。當控制線(xiàn)路給出閘門(mén)關(guān)閉信號后,計數器等到被測信號下降沿到來(lái)時(shí)結束計數,完成一次測量過(guò)程??梢钥闯?,實(shí)際閘門(mén)與設定閘門(mén)并不嚴格相等,但最大差值不超過(guò)被測信號的一個(gè)周期。被測頻率的計算方法為:
式中:Nx為被測信號的計數值;N0為標準頻率信號的計數值;f0為標準頻率信號的頻率;τ為閘門(mén)時(shí)間,計數器的開(kāi)閉與被測信號完全同步,即在實(shí)際閘門(mén)中包含整數個(gè)被測信號的周期,因而不存在對被測信號計數的±1個(gè)誤差。
2 硬件電路設計
如圖2所示,該模件硬件主要包括PC104控制處理模塊、CPLD測試模塊、信號調理模塊、繼電器驅動(dòng)模塊和高精度20 MHz晶振。在該系統中為了實(shí)現對多路頻率信號的測量,采用了通過(guò)繼電器控制來(lái)選擇信號的方案。通過(guò)CPLD控制繼電器的動(dòng)作,接通不同的繼電器開(kāi)關(guān),被測信號通過(guò)繼電器之后,由6N137高速光電隔離器隔離、電平轉換之后送入CPLD進(jìn)行測頻。由于CPLD的I/O口驅動(dòng)電流較小,所以加了一級ULN2803驅動(dòng)器來(lái)驅動(dòng)繼電器的線(xiàn)包。CPLD主要完成的功能是實(shí)現數字頻率計,采用多周期同步測頻法完成對輸入信號頻率的測量,并通過(guò)與PC104的接口邏輯,將測量結果送給PC104主機,由主機進(jìn)行頻率值的計算及顯示,從而完成整個(gè)測頻模件的功能,CPLD選用Altera公司的EPM7128SQCl00芯片。
3 軟件設計
3.1測頻電路程序設計
對于CPLD的編程,一般有通過(guò)電路原理圖的方式和通過(guò)硬件描述語(yǔ)言即VHDL語(yǔ)言?xún)煞N方式。第一種方式直觀(guān)性強,較好理解,適用于小規模數字電路的設計;第二種方式具有多層次描述系統硬件功能的能力,可讀性強,適用于時(shí)序電路及大規模電路的設計。本文采用兩者相結合的方式,用VHDL語(yǔ)言實(shí)現數字頻率計的設計,用原理圖的方式實(shí)現了PC104主機的接口邏輯,并進(jìn)行仿真。結果表明完全可以滿(mǎn)足功能需求,編譯環(huán)境為Max+PlusⅡ。
以下為數字頻率計的VHDL語(yǔ)言源代碼。設計了兩個(gè)32位計數器,一個(gè)8位數據選擇器及一個(gè)觸發(fā)器控制閘門(mén)信號。
以上程序通過(guò)軟件編譯后生成數字頻率計的邏輯功能模塊圖如圖3所示。以下是程序的仿真波形(見(jiàn)圖4),標準頻率為20 MHz,被測信號頻率為O.1 MHz,仿真時(shí)間設為120μs。
從仿真的結果可以看出,在定時(shí)脈沖CL到來(lái)時(shí),計數器并沒(méi)有開(kāi)始計數,而是等到被測信號的上升沿到來(lái)時(shí),START信號才開(kāi)啟,計數器開(kāi)始計數,定時(shí)脈沖結束時(shí),計數器也是等到被測信號的上升沿到來(lái)時(shí)才結束計數,實(shí)現了多周期同步測頻。圖4中被測信號頻率的計算方法如式(1)所示。與系統預設值相同,可以實(shí)現所需的功能。
3.2 PC104接口電路實(shí)現
該設計中PC104接口電路部分在Max+PlusⅡ中用原理圖的方式實(shí)現。使用的PC104總線(xiàn)信號有地址線(xiàn)A0~A9、數據線(xiàn)D0~D7、讀寫(xiě)信號線(xiàn)IOR/IOW、復位信號RESET、中斷信號IRQ3、地址允許線(xiàn)AEN。在PC104總線(xiàn)的接口電路部分遵循一個(gè)原則:就是輸出加鎖存,輸入加緩沖驅動(dòng)。該接口電路示意如圖5所示,首先地址線(xiàn)的A3~A9位與外部波段開(kāi)關(guān)設置地址及AEN信號通過(guò)譯碼電路中的比較器進(jìn)行比較,若相同,則說(shuō)明該模塊被選中,然后根據A0~A2的譯碼結果,結合讀寫(xiě)信號線(xiàn)產(chǎn)生輸出鎖存器74HC273及輸入緩沖器74HC244的脈沖信號或使能信號,完成對數字頻率計及外部電路的讀寫(xiě)及控制。在總線(xiàn)工作方式上采用中斷方式。設計中,將計數器的實(shí)際計數結束信號EEND作為總線(xiàn)的中斷觸發(fā)信號IRQ3,以此來(lái)提高PC104總線(xiàn)的工作效率。該接口邏輯的仿真結果如圖6所示。
從仿真結果可以看出,接口邏輯可以很好地控制外部繼電器的接通,產(chǎn)生清零及定時(shí)脈沖,并能正確地讀取數字頻率計的計數結果,實(shí)現模塊預定的功能。該接口邏輯已在實(shí)驗中得到了驗證。
3.3 PC104應用程序設計
在調試該模件時(shí)系統采用Windows。Me操作系統,編譯環(huán)境采用TC 3.0。主程序包括系統初始化、中斷初始化、接通繼電器及產(chǎn)生清零和定時(shí)脈沖模塊。在中斷服務(wù)程序中主要完成了讀取計數值、計算頻率值及顯示打印功能。它的程序流程圖如圖7所示,在此不再列出具體代碼列。
4 實(shí)驗結果
實(shí)驗采用的方法是將板載的20 MHz的晶振在CPLD內部分別進(jìn)行2分頻和20分頻,得到10 MHz和1 MHz的信號,然后再將這兩個(gè)頻率信號分別進(jìn)行2.4,6,8分頻,得到共9個(gè)被測信號,閘門(mén)時(shí)間為1 s,測試結果如表1所示。
由測試結果可以看出,模件的測頻精度較高,完全能夠滿(mǎn)足一般性測試系統的需要。
5 結語(yǔ)
采用多周期同步測頻技術(shù)設計并實(shí)現了基于PC104總線(xiàn)和CPLD的測頻模件。給出硬件設計原理圖和數字頻率計的VHDL程序源代碼,PC104總線(xiàn)的接口邏輯電路,最后得出仿真結果,編制了PCl04總線(xiàn)應用程序。實(shí)際應用表明,該模件精度高,穩定性好,能夠很好地完成對頻率量測試的任務(wù)。
評論