基于FPGA的多功能頻率計的設(shè)計
計數(shù)器控制模塊:門控信號啟動(上升沿)后,在被測信號的上升沿啟動計數(shù)允許模塊,允許計數(shù)器計數(shù);門控信號關(guān)閉(下降沿)后,在被測信號的下一個上升沿關(guān)閉計數(shù)允許模塊,停止計數(shù),從而保證了門控信號是被測信號的整數(shù)倍,達(dá)到了等精度的目的。
計數(shù)器模塊:在設(shè)計計數(shù)器的過程中需要注意計數(shù)器的寬度設(shè)置,系統(tǒng)中采用的最大門控時間為10 s,標(biāo)準(zhǔn)信號源的頻率為50 MHz,則在計數(shù)的允許時間內(nèi)計數(shù)的最大值為:10 50 000 000=500 000 000229=536 870 912,為了方便數(shù)據(jù)傳輸,系統(tǒng)中采用了32位位寬的計數(shù),如圖7所示,仿真波形如圖8所示。
鎖存器模塊:在門控信號關(guān)閉的同時,停止計數(shù),同時啟動鎖存模塊,把測量的數(shù)據(jù)鎖存起來,以便傳輸。
中斷輸出:鎖存數(shù)據(jù)的同時,給單片機(jī)一個低電平的中斷信號,通知單片機(jī)讀取數(shù)據(jù)。該模塊用于鎖存計數(shù)器輸出計數(shù)值,供51IP軟核讀取,進(jìn)行處理顯示。計數(shù)器模塊在門控信號關(guān)閉(下降沿)的同時,停止計數(shù),同時啟動鎖存模塊,把測量的數(shù)據(jù)鎖存起來,以便傳輸,鎖存電路如圖9所示。
數(shù)據(jù)選擇輸出:系統(tǒng)中采用了2個32位的計數(shù)器,由于單片機(jī)采用的是51系列單片機(jī),只有8位的數(shù)據(jù)總線,所以一次通信只能傳輸8位數(shù)據(jù),所以設(shè)計了一個數(shù)據(jù)輸出控制模塊。
頂層模塊:實例化所有的底層模塊。FPGA部分的整體結(jié)構(gòu)圖如圖10所示。
4 MC8051 IP Core軟件設(shè)計流程
系統(tǒng)軟件設(shè)計流程如圖11所示。
中斷服務(wù)子程序如圖12所示。
5 結(jié)論
文中采用Altera的cyclone II系列的EP2C8Q208C8這款FPGA芯片。設(shè)計中使用了Verilog語言對各個模塊的描述設(shè)計。文中提出的數(shù)字頻率計設(shè)計方案采用等精度的測量算法,以先進(jìn)的FPGA可編程邏輯器件作為核心控制及運算電路單元可達(dá)到很高的測量精度要求,8051IPCore嵌入到FPGA芯片系統(tǒng),與測頻模塊共用同一個FPGA芯片,和傳統(tǒng)的頻率計相比大大減小了電路板的尺寸,同時增加了系統(tǒng)的可靠性、設(shè)計靈活性和可更改性。實現(xiàn)了數(shù)字系統(tǒng)的軟件化。加入LCD液晶顯示,使測量效果更加直觀。
評論