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