国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于FPGA的頻率信號實(shí)時(shí)程控計(jì)數(shù)電路

2014-12-18 12:07:43左清清梁爭爭鄭毓琦
現(xiàn)代電子技術(shù) 2014年24期
關(guān)鍵詞:狀態(tài)機(jī)計(jì)數(shù)器時(shí)鐘

左清清+梁爭爭+鄭毓琦

摘 ?要: 飛控計(jì)算機(jī)采集飛機(jī)上各類傳感器和其他飛行控制系統(tǒng)的輸入信息,分析解算后控制飛行姿態(tài)。頻率信號的采集就是其中重要的數(shù)據(jù)信息類型之一。在此采用可編程芯片F(xiàn)PGA實(shí)現(xiàn)將頻率信號轉(zhuǎn)換為數(shù)字信號的方法。這種設(shè)計(jì)思想避免了搭建復(fù)雜的硬件電路來實(shí)現(xiàn)該功能,降低了模塊硬件設(shè)計(jì)成本,節(jié)省了印制板布局空間,降低了設(shè)計(jì)復(fù)雜度,同時(shí)設(shè)計(jì)該功能的測試接口,以便于該功能故障后能夠準(zhǔn)確定位故障源。

關(guān)鍵字: 飛控計(jì)算機(jī); 頻率信號; FPGA; 飛行姿態(tài)控制

中圖分類號: TN710?34 ? ? ? ? ? ? ? ? ? 文獻(xiàn)標(biāo)識碼: A ? ? ? ? ? ? ? ? ? ? ? ? ? ?文章編號: 1004?373X(2014)24?0160?03

FPGA based real?time program control counting circuit of frequency signal

ZUO Qing?qing, LANG Zheng?zheng, ZHENG Yu?qi

(AVIC Xian Aeronautical Computing Technique Research Institute, Xian 710065, China)

Abstract: Flight control computer collects the input information from every kind of sensor and other flight control systems, which is analyzed and calculated to control flying attitude. Frequency signal is one of important signals in collected information. The programmable chip FPGA is adopted to realize the frequency signal conversion to digital signal. This design method avoided the building of a complicated hardware circuit for the realization of this function, reduced the hardware module design cost and saved PCB layout space, lowered the design complexity. The test interface of this function was designed to confirm the failure source when the function fault occurred.

Key word: flight control computer; frequency signal; FPGA; flying attitude control

飛行控制計(jì)算機(jī)是整個(gè)飛控系統(tǒng)的核心,同時(shí)承擔(dān)著飛行控制和導(dǎo)航解算兩大主要任務(wù),它主要采集飛機(jī)上各類傳感器和其他飛行控制系統(tǒng)的輸入信息,進(jìn)行分析解算后對舵機(jī)等控制面進(jìn)行合理的控制,控制飛機(jī)飛行姿態(tài)。從傳感器系統(tǒng)中采集到的數(shù)據(jù)很多是頻率信號,因而飛控計(jì)算機(jī)必須承擔(dān)將頻率信號轉(zhuǎn)換為數(shù)字信號并送給其他系統(tǒng)的功能。為了降低硬件電路設(shè)計(jì)成本和設(shè)計(jì)復(fù)雜度,減少印制板元器件布局,降低信號布線復(fù)雜度,提高頻率信號計(jì)數(shù)精度和速度,因而采用邏輯電路實(shí)現(xiàn)頻率信號計(jì)數(shù)功能。

1 ?硬件電路實(shí)現(xiàn)

飛控計(jì)算機(jī)由中央控制器模塊(CPU模塊)、輸入/輸出接口控制模塊(IOC模塊)、數(shù)據(jù)傳輸處理模塊(1553模塊)、模擬信號處理模塊(AIO模塊)、傳感器信號處理模塊(RUD模塊、CAN模塊、IBE模塊等)、PS模塊組成。由于飛行控制系統(tǒng)是飛機(jī)安全的核心系統(tǒng),因此飛控計(jì)算機(jī)采用余度容錯(cuò)技術(shù),保證飛機(jī)的飛行安全。

飛控計(jì)算機(jī)頻率信號采集、計(jì)數(shù)、輸出功能在IOC模塊上采用反熔絲FPGA芯片(型號為A1010)和VHDL硬件編程語言實(shí)現(xiàn),計(jì)數(shù)結(jié)果由CPU模塊讀取。該功能實(shí)現(xiàn)包含三部分電路:輸入頻率信號選擇和預(yù)處理電路、頻率計(jì)數(shù)控制、計(jì)數(shù)控制信號產(chǎn)生機(jī)理及計(jì)數(shù)過程,下面將逐一介紹。

1.1 ?輸入頻率信號選擇和預(yù)處理電路

飛控計(jì)算機(jī)IOC模塊從其他子系統(tǒng)采集到的頻率信號有俯仰信號、橫滾信號、1 800 Hz頻率信號、角速率信號、輪速信號等,由于頻率信號在傳輸過程中衰減,因而在IOC模塊接收端對其進(jìn)行整形,保證信號完整性。處理電路為:將待轉(zhuǎn)換頻率信號整形成標(biāo)準(zhǔn)方波信號后,輸入可編程芯片F(xiàn)PGA進(jìn)行計(jì)數(shù)。具體電路見圖1。

從位號為N1的8選1多路選擇器HI1?548選擇一路待計(jì)數(shù)頻率信號,地址選擇信號FREQ_SEL(2:0)是CPU模塊發(fā)出的離散量信號。被選擇的頻率信號經(jīng)過位號為N2的比較器LM139(被選頻率信號接比較器負(fù)端,電壓值為+0.163 V的參考電壓接比較器正端,該參考電壓由IOC模塊工作電壓+5 V分壓得到),將其負(fù)半周信號全部濾除,將其正半周信號轉(zhuǎn)換成方波信號。輸出方波信號經(jīng)過位號為D1的54HC14反相器,將其更好地整形為標(biāo)準(zhǔn)方波,輸入FPGA編程芯片,進(jìn)行頻率計(jì)數(shù)。

1.2 ?頻率計(jì)數(shù)控制

本設(shè)計(jì)以對1 800 Hz頻率信號進(jìn)行計(jì)數(shù)為例,介紹如何實(shí)現(xiàn)計(jì)數(shù)功能。計(jì)數(shù)器采用16 bit計(jì)數(shù)器,選擇2 MHz采樣時(shí)鐘(選擇的采樣時(shí)鐘頻率必須遠(yuǎn)大于待計(jì)數(shù)頻率最大值)。寫任意數(shù)據(jù)到IOC模塊的FPGA內(nèi)寄存器地址,啟動(dòng)頻率計(jì)數(shù)過程。計(jì)數(shù)控制邏輯中的STRT_TIMER信號有效表示計(jì)數(shù)過程開始[1]。 計(jì)數(shù)控制邏輯中RST_CNTR信號清除計(jì)數(shù)器,并且產(chǎn)生一個(gè)門控信號COUNT,該門控信號保持為高,持續(xù)時(shí)間為兩個(gè)由低到高的待轉(zhuǎn)換頻率信號(TIMER_IN)的上升沿,剛好是一個(gè)完整的待計(jì)數(shù)周期。采用16 bit計(jì)數(shù)器和2 MHz采樣時(shí)鐘對門控信號COUNT進(jìn)行計(jì)數(shù),得到的值為計(jì)數(shù)結(jié)果。為了防止計(jì)數(shù)器溢出,計(jì)數(shù)器值為FF00H時(shí)停止計(jì)數(shù)[2] 。信號時(shí)序關(guān)系見圖2。

<\\192.168.6.11\現(xiàn)代電子技術(shù)14年37卷第24期\Image\20t2.tif>

圖2 頻率計(jì)數(shù)信號時(shí)序關(guān)系圖

1.3 ?計(jì)數(shù)控制信號產(chǎn)生機(jī)理及計(jì)數(shù)過程

STRT_TIMER信號產(chǎn)生原理:CPU模塊通過系統(tǒng)總線向IOC模塊FPGA內(nèi)寄存器地址寫任意值,啟動(dòng)頻率計(jì)數(shù)功能,啟動(dòng)信號STRT_TIMER發(fā)出,STRT_TIMER=(!SEL_IOC & !WR & A15 & A14 & A1 & !DEN)or(!RST_CNTR & STRT_TIMER)。其中SEL_IOC、WR 、DEN為CPU模塊向IOC模塊發(fā)出的片選信號、寫信號、數(shù)據(jù)總線使能信號,A15、A14、A1選擇FPGA內(nèi)寄存器地址C002H。

16 bit計(jì)數(shù)器清零信號RST_CNTR產(chǎn)生原理:頻率計(jì)數(shù)采用16 bit計(jì)數(shù)器實(shí)現(xiàn),那么在每個(gè)計(jì)數(shù)任務(wù)開始首先需要對計(jì)數(shù)器清零,啟動(dòng)信號STRT_TIMER發(fā)出后(該信號高有效),STRT_TIMER和Timer_IN=0(Timer_IN與2 MHz采樣時(shí)鐘同步)啟動(dòng)測試序列,Timer_IN=0信號同時(shí)激活RST_CNTR。該信號產(chǎn)生邏輯如圖3所示[3]。

<\\192.168.6.11\現(xiàn)代電子技術(shù)14年37卷第24期\Image\20t3.tif>

圖3 RST_CNTR信號邏輯圖

門控信號COUNT產(chǎn)生原理:門控信號是待轉(zhuǎn)換頻率信號Timer_IN的一個(gè)完整的采樣周期長度。用2 MHz采樣時(shí)鐘對門控信號時(shí)間長度進(jìn)行計(jì)數(shù),即可得到計(jì)數(shù)值。當(dāng)RST_CNTR有效時(shí),清除FPGA中的計(jì)數(shù)器和STRT_TIMER信號。RST_CNTR=1時(shí)狀態(tài)機(jī)器[S1,COUNT]被初始化為狀態(tài)[0,0](圖中R代表RST_CNTR信號,T代表Timer_IN信號),COUNT信號輸出邏輯關(guān)系見圖4。產(chǎn)生COUNT門控信號的狀態(tài)機(jī),初始狀態(tài)為[0,1];當(dāng)Timer_IN變到1時(shí),進(jìn)入狀態(tài)[0,1];當(dāng)Timer_IN變到0時(shí),下一狀態(tài)成為[1,1];當(dāng)Timer_IN又變到1時(shí),下一狀態(tài)成為空閑[1,0];狀態(tài)機(jī)保持在空閑狀態(tài),直到啟動(dòng)新的計(jì)數(shù)周期,COUNT信號狀態(tài)機(jī)圖如圖5所示[4]。

<\\192.168.6.11\現(xiàn)代電子技術(shù)14年37卷第24期\Image\20t4.tif>

圖4 COUNT門控信號邏輯圖

16 b計(jì)數(shù)器實(shí)現(xiàn):2 MHz采樣時(shí)鐘對COUNT門控信號進(jìn)行計(jì)數(shù),16 b計(jì)數(shù)器由T觸發(fā)器實(shí)現(xiàn),計(jì)數(shù)值達(dá)到FF00H時(shí)禁止計(jì)數(shù)功能,防止計(jì)數(shù)器溢出,計(jì)數(shù)器見圖6。計(jì)數(shù)器得到的值為計(jì)數(shù)結(jié)果(一個(gè)完整的待轉(zhuǎn)換頻率信號Timer_IN周期計(jì)數(shù)值,此例選擇1 800 Hz進(jìn)行計(jì)數(shù),計(jì)數(shù)結(jié)果為0457),將計(jì)數(shù)結(jié)果放至FPGA寄存器地址,CPU模塊可以從該地址中讀取頻率計(jì)數(shù)結(jié)果,并送至傳感器系統(tǒng)[5]。

<\\192.168.6.11\現(xiàn)代電子技術(shù)14年37卷第24期\Image\20t5.tif>

圖5 狀態(tài)機(jī)圖[S1,COUNT]

<\\192.168.6.11\現(xiàn)代電子技術(shù)14年37卷第24期\Image\20t6.tif>

圖6 16 b計(jì)數(shù)器

2 ?測試接口設(shè)計(jì)

在進(jìn)行頻率計(jì)數(shù)功能、性能設(shè)計(jì)時(shí),不僅要考慮到功能、性能的實(shí)現(xiàn),同時(shí)也要考慮預(yù)期設(shè)計(jì)要求滿足后,如何驗(yàn)證該功能,甚至于在今后的模塊功能故障隔離過程中,如何能更快、更準(zhǔn)確地找出故障源。因而在FPGA邏輯設(shè)計(jì)時(shí),將計(jì)數(shù)控制信號STRT_TIMER(計(jì)數(shù)功能啟動(dòng)信號)、RST_CNTR(復(fù)位計(jì)數(shù)器信號)、COUNT(門控信號)、RD_TIMER(CPU模塊讀計(jì)數(shù)值信號)等關(guān)鍵信號引至FPGA管腳,以便在邏輯仿真、調(diào)試或模塊調(diào)試、維修時(shí)信號測量,準(zhǔn)確定位故障源。采用FPGA設(shè)計(jì)能夠簡化測試接口,僅需將關(guān)注的信號引到芯片管腳上,避免了采用其他硬件電路實(shí)現(xiàn),且不必為印制板走線添加復(fù)雜度[6]。

3 ?結(jié) ?語

本文介紹了一種在接口控制模塊上使用預(yù)處理電路和FPGA硬件邏輯電路實(shí)現(xiàn)頻率信號計(jì)數(shù)功能的方法。該方法避免搭建復(fù)雜的硬件電路,降低了硬件設(shè)計(jì)成本和設(shè)計(jì)復(fù)雜度,提高了頻率計(jì)數(shù)的精確性。該設(shè)計(jì)不僅能夠應(yīng)用于飛控系統(tǒng)的數(shù)據(jù)采集、轉(zhuǎn)換、計(jì)算,也能夠應(yīng)用于其他需要進(jìn)行頻率轉(zhuǎn)換的數(shù)字模塊的設(shè)計(jì)。為需要實(shí)現(xiàn)該功能的模塊設(shè)計(jì)提供了一種設(shè)計(jì)思想和設(shè)計(jì)方法,減少設(shè)計(jì)成本和時(shí)間,提高開發(fā)效率,具有一定的工程實(shí)用性。

參考文獻(xiàn)

[1] 李云松,宋瑞,雷杰,等.Xilinx FPGA 設(shè)計(jì)基礎(chǔ)(VHDL版)[M].西安:西安電子科技大學(xué)出版社,2008.

[2] 黃智偉.FPGA系統(tǒng)設(shè)計(jì)與實(shí)踐[M].北京:電子工業(yè)出版社,2005.

[3] 鄭亞民,董曉丹.可編程邏輯器件開發(fā)軟件[M].北京:國防工業(yè)出版社,2006.

[4] 王金明.Verilog HDL程序設(shè)計(jì)教程[M].北京:人民郵電出版社,2004.

[5] 劉玲,胡永生.數(shù)字信號處理的FPGA實(shí)現(xiàn)[M].北京:清華大學(xué)出版社,2003.

[6] Altera. Cyclone datasheet [EB/OL]. [2011?03?20]. http://www.eetrend.com/da...00022669.

本設(shè)計(jì)以對1 800 Hz頻率信號進(jìn)行計(jì)數(shù)為例,介紹如何實(shí)現(xiàn)計(jì)數(shù)功能。計(jì)數(shù)器采用16 bit計(jì)數(shù)器,選擇2 MHz采樣時(shí)鐘(選擇的采樣時(shí)鐘頻率必須遠(yuǎn)大于待計(jì)數(shù)頻率最大值)。寫任意數(shù)據(jù)到IOC模塊的FPGA內(nèi)寄存器地址,啟動(dòng)頻率計(jì)數(shù)過程。計(jì)數(shù)控制邏輯中的STRT_TIMER信號有效表示計(jì)數(shù)過程開始[1]。 計(jì)數(shù)控制邏輯中RST_CNTR信號清除計(jì)數(shù)器,并且產(chǎn)生一個(gè)門控信號COUNT,該門控信號保持為高,持續(xù)時(shí)間為兩個(gè)由低到高的待轉(zhuǎn)換頻率信號(TIMER_IN)的上升沿,剛好是一個(gè)完整的待計(jì)數(shù)周期。采用16 bit計(jì)數(shù)器和2 MHz采樣時(shí)鐘對門控信號COUNT進(jìn)行計(jì)數(shù),得到的值為計(jì)數(shù)結(jié)果。為了防止計(jì)數(shù)器溢出,計(jì)數(shù)器值為FF00H時(shí)停止計(jì)數(shù)[2] 。信號時(shí)序關(guān)系見圖2。

<\\192.168.6.11\現(xiàn)代電子技術(shù)14年37卷第24期\Image\20t2.tif>

圖2 頻率計(jì)數(shù)信號時(shí)序關(guān)系圖

1.3 ?計(jì)數(shù)控制信號產(chǎn)生機(jī)理及計(jì)數(shù)過程

STRT_TIMER信號產(chǎn)生原理:CPU模塊通過系統(tǒng)總線向IOC模塊FPGA內(nèi)寄存器地址寫任意值,啟動(dòng)頻率計(jì)數(shù)功能,啟動(dòng)信號STRT_TIMER發(fā)出,STRT_TIMER=(!SEL_IOC & !WR & A15 & A14 & A1 & !DEN)or(!RST_CNTR & STRT_TIMER)。其中SEL_IOC、WR 、DEN為CPU模塊向IOC模塊發(fā)出的片選信號、寫信號、數(shù)據(jù)總線使能信號,A15、A14、A1選擇FPGA內(nèi)寄存器地址C002H。

16 bit計(jì)數(shù)器清零信號RST_CNTR產(chǎn)生原理:頻率計(jì)數(shù)采用16 bit計(jì)數(shù)器實(shí)現(xiàn),那么在每個(gè)計(jì)數(shù)任務(wù)開始首先需要對計(jì)數(shù)器清零,啟動(dòng)信號STRT_TIMER發(fā)出后(該信號高有效),STRT_TIMER和Timer_IN=0(Timer_IN與2 MHz采樣時(shí)鐘同步)啟動(dòng)測試序列,Timer_IN=0信號同時(shí)激活RST_CNTR。該信號產(chǎn)生邏輯如圖3所示[3]。

<\\192.168.6.11\現(xiàn)代電子技術(shù)14年37卷第24期\Image\20t3.tif>

圖3 RST_CNTR信號邏輯圖

門控信號COUNT產(chǎn)生原理:門控信號是待轉(zhuǎn)換頻率信號Timer_IN的一個(gè)完整的采樣周期長度。用2 MHz采樣時(shí)鐘對門控信號時(shí)間長度進(jìn)行計(jì)數(shù),即可得到計(jì)數(shù)值。當(dāng)RST_CNTR有效時(shí),清除FPGA中的計(jì)數(shù)器和STRT_TIMER信號。RST_CNTR=1時(shí)狀態(tài)機(jī)器[S1,COUNT]被初始化為狀態(tài)[0,0](圖中R代表RST_CNTR信號,T代表Timer_IN信號),COUNT信號輸出邏輯關(guān)系見圖4。產(chǎn)生COUNT門控信號的狀態(tài)機(jī),初始狀態(tài)為[0,1];當(dāng)Timer_IN變到1時(shí),進(jìn)入狀態(tài)[0,1];當(dāng)Timer_IN變到0時(shí),下一狀態(tài)成為[1,1];當(dāng)Timer_IN又變到1時(shí),下一狀態(tài)成為空閑[1,0];狀態(tài)機(jī)保持在空閑狀態(tài),直到啟動(dòng)新的計(jì)數(shù)周期,COUNT信號狀態(tài)機(jī)圖如圖5所示[4]。

<\\192.168.6.11\現(xiàn)代電子技術(shù)14年37卷第24期\Image\20t4.tif>

圖4 COUNT門控信號邏輯圖

16 b計(jì)數(shù)器實(shí)現(xiàn):2 MHz采樣時(shí)鐘對COUNT門控信號進(jìn)行計(jì)數(shù),16 b計(jì)數(shù)器由T觸發(fā)器實(shí)現(xiàn),計(jì)數(shù)值達(dá)到FF00H時(shí)禁止計(jì)數(shù)功能,防止計(jì)數(shù)器溢出,計(jì)數(shù)器見圖6。計(jì)數(shù)器得到的值為計(jì)數(shù)結(jié)果(一個(gè)完整的待轉(zhuǎn)換頻率信號Timer_IN周期計(jì)數(shù)值,此例選擇1 800 Hz進(jìn)行計(jì)數(shù),計(jì)數(shù)結(jié)果為0457),將計(jì)數(shù)結(jié)果放至FPGA寄存器地址,CPU模塊可以從該地址中讀取頻率計(jì)數(shù)結(jié)果,并送至傳感器系統(tǒng)[5]。

<\\192.168.6.11\現(xiàn)代電子技術(shù)14年37卷第24期\Image\20t5.tif>

圖5 狀態(tài)機(jī)圖[S1,COUNT]

<\\192.168.6.11\現(xiàn)代電子技術(shù)14年37卷第24期\Image\20t6.tif>

圖6 16 b計(jì)數(shù)器

2 ?測試接口設(shè)計(jì)

在進(jìn)行頻率計(jì)數(shù)功能、性能設(shè)計(jì)時(shí),不僅要考慮到功能、性能的實(shí)現(xiàn),同時(shí)也要考慮預(yù)期設(shè)計(jì)要求滿足后,如何驗(yàn)證該功能,甚至于在今后的模塊功能故障隔離過程中,如何能更快、更準(zhǔn)確地找出故障源。因而在FPGA邏輯設(shè)計(jì)時(shí),將計(jì)數(shù)控制信號STRT_TIMER(計(jì)數(shù)功能啟動(dòng)信號)、RST_CNTR(復(fù)位計(jì)數(shù)器信號)、COUNT(門控信號)、RD_TIMER(CPU模塊讀計(jì)數(shù)值信號)等關(guān)鍵信號引至FPGA管腳,以便在邏輯仿真、調(diào)試或模塊調(diào)試、維修時(shí)信號測量,準(zhǔn)確定位故障源。采用FPGA設(shè)計(jì)能夠簡化測試接口,僅需將關(guān)注的信號引到芯片管腳上,避免了采用其他硬件電路實(shí)現(xiàn),且不必為印制板走線添加復(fù)雜度[6]。

3 ?結(jié) ?語

本文介紹了一種在接口控制模塊上使用預(yù)處理電路和FPGA硬件邏輯電路實(shí)現(xiàn)頻率信號計(jì)數(shù)功能的方法。該方法避免搭建復(fù)雜的硬件電路,降低了硬件設(shè)計(jì)成本和設(shè)計(jì)復(fù)雜度,提高了頻率計(jì)數(shù)的精確性。該設(shè)計(jì)不僅能夠應(yīng)用于飛控系統(tǒng)的數(shù)據(jù)采集、轉(zhuǎn)換、計(jì)算,也能夠應(yīng)用于其他需要進(jìn)行頻率轉(zhuǎn)換的數(shù)字模塊的設(shè)計(jì)。為需要實(shí)現(xiàn)該功能的模塊設(shè)計(jì)提供了一種設(shè)計(jì)思想和設(shè)計(jì)方法,減少設(shè)計(jì)成本和時(shí)間,提高開發(fā)效率,具有一定的工程實(shí)用性。

參考文獻(xiàn)

[1] 李云松,宋瑞,雷杰,等.Xilinx FPGA 設(shè)計(jì)基礎(chǔ)(VHDL版)[M].西安:西安電子科技大學(xué)出版社,2008.

[2] 黃智偉.FPGA系統(tǒng)設(shè)計(jì)與實(shí)踐[M].北京:電子工業(yè)出版社,2005.

[3] 鄭亞民,董曉丹.可編程邏輯器件開發(fā)軟件[M].北京:國防工業(yè)出版社,2006.

[4] 王金明.Verilog HDL程序設(shè)計(jì)教程[M].北京:人民郵電出版社,2004.

[5] 劉玲,胡永生.數(shù)字信號處理的FPGA實(shí)現(xiàn)[M].北京:清華大學(xué)出版社,2003.

[6] Altera. Cyclone datasheet [EB/OL]. [2011?03?20]. http://www.eetrend.com/da...00022669.

本設(shè)計(jì)以對1 800 Hz頻率信號進(jìn)行計(jì)數(shù)為例,介紹如何實(shí)現(xiàn)計(jì)數(shù)功能。計(jì)數(shù)器采用16 bit計(jì)數(shù)器,選擇2 MHz采樣時(shí)鐘(選擇的采樣時(shí)鐘頻率必須遠(yuǎn)大于待計(jì)數(shù)頻率最大值)。寫任意數(shù)據(jù)到IOC模塊的FPGA內(nèi)寄存器地址,啟動(dòng)頻率計(jì)數(shù)過程。計(jì)數(shù)控制邏輯中的STRT_TIMER信號有效表示計(jì)數(shù)過程開始[1]。 計(jì)數(shù)控制邏輯中RST_CNTR信號清除計(jì)數(shù)器,并且產(chǎn)生一個(gè)門控信號COUNT,該門控信號保持為高,持續(xù)時(shí)間為兩個(gè)由低到高的待轉(zhuǎn)換頻率信號(TIMER_IN)的上升沿,剛好是一個(gè)完整的待計(jì)數(shù)周期。采用16 bit計(jì)數(shù)器和2 MHz采樣時(shí)鐘對門控信號COUNT進(jìn)行計(jì)數(shù),得到的值為計(jì)數(shù)結(jié)果。為了防止計(jì)數(shù)器溢出,計(jì)數(shù)器值為FF00H時(shí)停止計(jì)數(shù)[2] 。信號時(shí)序關(guān)系見圖2。

<\\192.168.6.11\現(xiàn)代電子技術(shù)14年37卷第24期\Image\20t2.tif>

圖2 頻率計(jì)數(shù)信號時(shí)序關(guān)系圖

1.3 ?計(jì)數(shù)控制信號產(chǎn)生機(jī)理及計(jì)數(shù)過程

STRT_TIMER信號產(chǎn)生原理:CPU模塊通過系統(tǒng)總線向IOC模塊FPGA內(nèi)寄存器地址寫任意值,啟動(dòng)頻率計(jì)數(shù)功能,啟動(dòng)信號STRT_TIMER發(fā)出,STRT_TIMER=(!SEL_IOC & !WR & A15 & A14 & A1 & !DEN)or(!RST_CNTR & STRT_TIMER)。其中SEL_IOC、WR 、DEN為CPU模塊向IOC模塊發(fā)出的片選信號、寫信號、數(shù)據(jù)總線使能信號,A15、A14、A1選擇FPGA內(nèi)寄存器地址C002H。

16 bit計(jì)數(shù)器清零信號RST_CNTR產(chǎn)生原理:頻率計(jì)數(shù)采用16 bit計(jì)數(shù)器實(shí)現(xiàn),那么在每個(gè)計(jì)數(shù)任務(wù)開始首先需要對計(jì)數(shù)器清零,啟動(dòng)信號STRT_TIMER發(fā)出后(該信號高有效),STRT_TIMER和Timer_IN=0(Timer_IN與2 MHz采樣時(shí)鐘同步)啟動(dòng)測試序列,Timer_IN=0信號同時(shí)激活RST_CNTR。該信號產(chǎn)生邏輯如圖3所示[3]。

<\\192.168.6.11\現(xiàn)代電子技術(shù)14年37卷第24期\Image\20t3.tif>

圖3 RST_CNTR信號邏輯圖

門控信號COUNT產(chǎn)生原理:門控信號是待轉(zhuǎn)換頻率信號Timer_IN的一個(gè)完整的采樣周期長度。用2 MHz采樣時(shí)鐘對門控信號時(shí)間長度進(jìn)行計(jì)數(shù),即可得到計(jì)數(shù)值。當(dāng)RST_CNTR有效時(shí),清除FPGA中的計(jì)數(shù)器和STRT_TIMER信號。RST_CNTR=1時(shí)狀態(tài)機(jī)器[S1,COUNT]被初始化為狀態(tài)[0,0](圖中R代表RST_CNTR信號,T代表Timer_IN信號),COUNT信號輸出邏輯關(guān)系見圖4。產(chǎn)生COUNT門控信號的狀態(tài)機(jī),初始狀態(tài)為[0,1];當(dāng)Timer_IN變到1時(shí),進(jìn)入狀態(tài)[0,1];當(dāng)Timer_IN變到0時(shí),下一狀態(tài)成為[1,1];當(dāng)Timer_IN又變到1時(shí),下一狀態(tài)成為空閑[1,0];狀態(tài)機(jī)保持在空閑狀態(tài),直到啟動(dòng)新的計(jì)數(shù)周期,COUNT信號狀態(tài)機(jī)圖如圖5所示[4]。

<\\192.168.6.11\現(xiàn)代電子技術(shù)14年37卷第24期\Image\20t4.tif>

圖4 COUNT門控信號邏輯圖

16 b計(jì)數(shù)器實(shí)現(xiàn):2 MHz采樣時(shí)鐘對COUNT門控信號進(jìn)行計(jì)數(shù),16 b計(jì)數(shù)器由T觸發(fā)器實(shí)現(xiàn),計(jì)數(shù)值達(dá)到FF00H時(shí)禁止計(jì)數(shù)功能,防止計(jì)數(shù)器溢出,計(jì)數(shù)器見圖6。計(jì)數(shù)器得到的值為計(jì)數(shù)結(jié)果(一個(gè)完整的待轉(zhuǎn)換頻率信號Timer_IN周期計(jì)數(shù)值,此例選擇1 800 Hz進(jìn)行計(jì)數(shù),計(jì)數(shù)結(jié)果為0457),將計(jì)數(shù)結(jié)果放至FPGA寄存器地址,CPU模塊可以從該地址中讀取頻率計(jì)數(shù)結(jié)果,并送至傳感器系統(tǒng)[5]。

<\\192.168.6.11\現(xiàn)代電子技術(shù)14年37卷第24期\Image\20t5.tif>

圖5 狀態(tài)機(jī)圖[S1,COUNT]

<\\192.168.6.11\現(xiàn)代電子技術(shù)14年37卷第24期\Image\20t6.tif>

圖6 16 b計(jì)數(shù)器

2 ?測試接口設(shè)計(jì)

在進(jìn)行頻率計(jì)數(shù)功能、性能設(shè)計(jì)時(shí),不僅要考慮到功能、性能的實(shí)現(xiàn),同時(shí)也要考慮預(yù)期設(shè)計(jì)要求滿足后,如何驗(yàn)證該功能,甚至于在今后的模塊功能故障隔離過程中,如何能更快、更準(zhǔn)確地找出故障源。因而在FPGA邏輯設(shè)計(jì)時(shí),將計(jì)數(shù)控制信號STRT_TIMER(計(jì)數(shù)功能啟動(dòng)信號)、RST_CNTR(復(fù)位計(jì)數(shù)器信號)、COUNT(門控信號)、RD_TIMER(CPU模塊讀計(jì)數(shù)值信號)等關(guān)鍵信號引至FPGA管腳,以便在邏輯仿真、調(diào)試或模塊調(diào)試、維修時(shí)信號測量,準(zhǔn)確定位故障源。采用FPGA設(shè)計(jì)能夠簡化測試接口,僅需將關(guān)注的信號引到芯片管腳上,避免了采用其他硬件電路實(shí)現(xiàn),且不必為印制板走線添加復(fù)雜度[6]。

3 ?結(jié) ?語

本文介紹了一種在接口控制模塊上使用預(yù)處理電路和FPGA硬件邏輯電路實(shí)現(xiàn)頻率信號計(jì)數(shù)功能的方法。該方法避免搭建復(fù)雜的硬件電路,降低了硬件設(shè)計(jì)成本和設(shè)計(jì)復(fù)雜度,提高了頻率計(jì)數(shù)的精確性。該設(shè)計(jì)不僅能夠應(yīng)用于飛控系統(tǒng)的數(shù)據(jù)采集、轉(zhuǎn)換、計(jì)算,也能夠應(yīng)用于其他需要進(jìn)行頻率轉(zhuǎn)換的數(shù)字模塊的設(shè)計(jì)。為需要實(shí)現(xiàn)該功能的模塊設(shè)計(jì)提供了一種設(shè)計(jì)思想和設(shè)計(jì)方法,減少設(shè)計(jì)成本和時(shí)間,提高開發(fā)效率,具有一定的工程實(shí)用性。

參考文獻(xiàn)

[1] 李云松,宋瑞,雷杰,等.Xilinx FPGA 設(shè)計(jì)基礎(chǔ)(VHDL版)[M].西安:西安電子科技大學(xué)出版社,2008.

[2] 黃智偉.FPGA系統(tǒng)設(shè)計(jì)與實(shí)踐[M].北京:電子工業(yè)出版社,2005.

[3] 鄭亞民,董曉丹.可編程邏輯器件開發(fā)軟件[M].北京:國防工業(yè)出版社,2006.

[4] 王金明.Verilog HDL程序設(shè)計(jì)教程[M].北京:人民郵電出版社,2004.

[5] 劉玲,胡永生.數(shù)字信號處理的FPGA實(shí)現(xiàn)[M].北京:清華大學(xué)出版社,2003.

[6] Altera. Cyclone datasheet [EB/OL]. [2011?03?20]. http://www.eetrend.com/da...00022669.

猜你喜歡
狀態(tài)機(jī)計(jì)數(shù)器時(shí)鐘
煤氣與熱力(2022年2期)2022-03-09 06:29:30
別樣的“時(shí)鐘”
古代的時(shí)鐘
基于有限狀態(tài)機(jī)的交會(huì)對接飛行任務(wù)規(guī)劃方法
有趣的時(shí)鐘
時(shí)鐘會(huì)開“花”
計(jì)數(shù)器競爭冒險(xiǎn)及其處理的仿真分析
任意N進(jìn)制計(jì)數(shù)器的設(shè)計(jì)方法
河南科技(2014年10期)2014-02-27 14:09:30
基于單片機(jī)的仰臥起坐計(jì)數(shù)器
FPGA設(shè)計(jì)中狀態(tài)機(jī)安全性研究
甘德县| 天气| 莱阳市| 迁西县| 突泉县| 石河子市| 桂林市| 新密市| 高陵县| 栾城县| 呼玛县| 龙州县| 井研县| 兴海县| 怀柔区| 常熟市| 沙坪坝区| 宣化县| 泰来县| 分宜县| 舞阳县| 宜宾县| 攀枝花市| 二手房| 杭锦旗| 迭部县| 汉川市| 灌云县| 格尔木市| 平江县| 济阳县| 皋兰县| 海宁市| 普安县| 满洲里市| 红安县| 大足县| 宁明县| 榕江县| 台北市| 兴仁县|