FPGA與單片機實(shí)現低頻數字式相位測量?jì)x
FPGA在單片機輸出使能信號EN和數據類(lèi)型信號Dsel控制下,輸出所測信號的頻率和相位差所對應的二進(jìn)制數據仿真波形如圖5所示。VHDL程序經(jīng)過(guò)編譯調試生成.pof文件下載到配置芯片EPCS1中實(shí)現所設計的功能。
4.2 ATmega128運算控制程序設計
AVR單片機ATmega128從FPGA分別讀取頻率和相位差的20位數字量,由于FPGA在20 MHz數據采集信號作用下對待測信號周期和兩同頻信號的相位差所對應的時(shí)間差計數,因此20位數字量的單位是0.05μs,單片機對這些數字量進(jìn)行計算,可以得到待測信號的頻率和相位差。
單片機運算控制程序設計思路:?jiǎn)纹瑱C(ATmega128)通過(guò)控制信號EN和Dsel從FPGA(EP1C3T100)讀取待測信號的周期和兩待測信號相位差所對應的時(shí)間差,對讀取的數據進(jìn)行計算、轉換,送液晶顯示器顯示,顯示待測信號的頻率、相位差以及有關(guān)信息。主程序流程圖如圖6所示。源程序由主程序及若干子程序組成,主程序是一個(gè)循環(huán)執行程序。
1)單片機從FPGA讀數據
根據MCU與FPGA的20位數字量的接口,從單片機的PA、PB和PC(低4位)讀取數據,組合成20位的數據,控制線(xiàn)EN和Dsel控制FPGA釋放數據。當Dad=1時(shí),FPGA向單片機傳送待測信號的相位差數據;當Dsel=0時(shí),FPGA向單片機傳送待測信號的周期數據;當EN=1時(shí),FPGA向單片機釋放數據,當EN=0時(shí),FPGA禁止向單片機釋放數據。
2)頻率和相位差數據的運算
為了測量達到要求的精度,在運算時(shí)不能丟失數據,所以采用擴大倍數定點(diǎn)取數的方法,保證數據計算準確。依據如下方法進(jìn)行計算:信號頻率F=106/T,計算結果精確到1 Hz;相位差△θ=△tx360°x10/T,計算結果精確到0.1°。
3)LCD顯示器顯示頻率、相位差等相關(guān)信息
本設計采用HTM12864(128x64)的LCD液晶顯示器,控制器為S6B0724,與單片機數據與控制接口是:CS、RET、D/C、SCLK、DATA,背光燈根據按鍵動(dòng)作控制,用按鍵來(lái)切換顯來(lái)示信息。
5 結論
用此方法設計的數字式相位測量?jì)x具有較高的精度,穩定可靠。本儀器測量正弦信號的頻率及兩個(gè)同頻正弦信號的相位差,較好地滿(mǎn)足了設計的技術(shù)指標要求。
評論