基于AVR單片機(jī)與FPGA的低頻數(shù)字式相位測(cè)量?jī)x
4 系統(tǒng)軟件的設(shè)計(jì)
4.1 FPGA數(shù)據(jù)采集VHDL程序設(shè)計(jì)
FPGA數(shù)據(jù)采集的VHDL程序設(shè)計(jì)是在Altera QuartuslI開(kāi)發(fā)軟件平臺(tái)及實(shí)驗(yàn)開(kāi)發(fā)系統(tǒng)上完成的。程序設(shè)計(jì)采用自頂向下(up-to-down)的設(shè)計(jì)方法。FPGA系統(tǒng)的模塊構(gòu)成如圖4所示。采樣信號(hào)發(fā)生模塊完成時(shí)鐘信號(hào)源的分頻工作,得到CLK=20 MHz;待測(cè)信號(hào)采樣模塊在控制信號(hào)產(chǎn)生模塊的周期閘門信號(hào)Tk和時(shí)間清零信號(hào)Tcr的作用下,輸出待測(cè)信號(hào)周期和相位差數(shù)據(jù);測(cè)量數(shù)據(jù)提取模塊在鑒相信號(hào)JXc和計(jì)數(shù)提取信號(hào)Lad的作用下,并在輸出使能信號(hào)EN和數(shù)據(jù)類型信號(hào)Dsel控制下分別輸出周期和相位差數(shù)據(jù),交MCU運(yùn)算處理顯示。本文引用地址:http://m.butianyuan.cn/article/172687.htm
FPGA在單片機(jī)輸出使能信號(hào)EN和數(shù)據(jù)類型信號(hào)Dsel控制下,輸出所測(cè)信號(hào)的頻率和相位差所對(duì)應(yīng)的二進(jìn)制數(shù)據(jù)仿真波形如圖5所示。VHDL程序經(jīng)過(guò)編譯調(diào)試生成.pof文件下載到配置芯片EPCS1中實(shí)現(xiàn)所設(shè)計(jì)的功能。
4.2 ATmega128運(yùn)算控制程序設(shè)計(jì)
AVR單片機(jī)ATmega128從FPGA分別讀取頻率和相位差的20位數(shù)字量,由于FPGA在20 MHz數(shù)據(jù)采集信號(hào)作用下對(duì)待測(cè)信號(hào)周期和兩同頻信號(hào)的相位差所對(duì)應(yīng)的時(shí)間差計(jì)數(shù),因此20位數(shù)字量的單位是0.05μs,單片機(jī)對(duì)這些數(shù)字量進(jìn)行計(jì)算,可以得到待測(cè)信號(hào)的頻率和相位差。
單片機(jī)運(yùn)算控制程序設(shè)計(jì)思路:?jiǎn)纹瑱C(jī)(ATmega128)通過(guò)控制信號(hào)EN和Dsel從FPGA(EP1C3T100)讀取待測(cè)信號(hào)的周期和兩待測(cè)信號(hào)相位差所對(duì)應(yīng)的時(shí)間差,對(duì)讀取的數(shù)據(jù)進(jìn)行計(jì)算、轉(zhuǎn)換,送液晶顯示器顯示,顯示待測(cè)信號(hào)的頻率、相位差以及有關(guān)信息。主程序流程圖如圖6所示。源程序由主程序及若干子程序組成,主程序是一個(gè)循環(huán)執(zhí)行程序。
1)單片機(jī)從FPGA讀數(shù)據(jù)
根據(jù)MCU與FPGA的20位數(shù)字量的接口,從單片機(jī)的PA、PB和PC(低4位)讀取數(shù)據(jù),組合成20位的數(shù)據(jù),控制線EN和Dsel控制FPGA釋放數(shù)據(jù)。當(dāng)Dad=1時(shí),F(xiàn)PGA向單片機(jī)傳送待測(cè)信號(hào)的相位差數(shù)據(jù);當(dāng)Dsel=0時(shí),F(xiàn)PGA向單片機(jī)傳送待測(cè)信號(hào)的周期數(shù)據(jù);當(dāng)EN=1時(shí),F(xiàn)PGA向單片機(jī)釋放數(shù)據(jù),當(dāng)EN=0時(shí),F(xiàn)PGA禁止向單片機(jī)釋放數(shù)據(jù)。
2)頻率和相位差數(shù)據(jù)的運(yùn)算
為了測(cè)量達(dá)到要求的精度,在運(yùn)算時(shí)不能丟失數(shù)據(jù),所以采用擴(kuò)大倍數(shù)定點(diǎn)取數(shù)的方法,保證數(shù)據(jù)計(jì)算準(zhǔn)確。依據(jù)如下方法進(jìn)行計(jì)算:信號(hào)頻率F=106/T,計(jì)算結(jié)果精確到1 Hz;相位差△θ=△tx360°x10/T,計(jì)算結(jié)果精確到0.1°。
3)LCD顯示器顯示頻率、相位差等相關(guān)信息
本設(shè)計(jì)采用HTM12864(128x64)的LCD液晶顯示器,控制器為S6B0724,與單片機(jī)數(shù)據(jù)與控制接口是:CS、RET、D/C、SCLK、DATA,背光燈根據(jù)按鍵動(dòng)作控制,用按鍵來(lái)切換顯來(lái)示信息。
5 結(jié)論
本設(shè)計(jì)采用MCU和FPGA相結(jié)合的方法,ATmega128單片機(jī)具有先進(jìn)的RISC結(jié)構(gòu)和運(yùn)算控制功能,而FPGA集成度高、高頻率的數(shù)據(jù)采集功能強(qiáng)勁,它們發(fā)揮各自的優(yōu)勢(shì)。均具備JTAG接口在線調(diào)試和編程功能,用此方法設(shè)計(jì)的數(shù)字式相位測(cè)量?jī)x具有較高的精度,穩(wěn)定可靠。本儀器測(cè)量正弦信號(hào)的頻率及兩個(gè)同頻正弦信號(hào)的相位差,較好地滿足了設(shè)計(jì)的技術(shù)指標(biāo)要求。
評(píng)論