FPGA與單片機實現(xiàn)低頻數(shù)字式相位測量儀
3.2 系統(tǒng)測量電路設(shè)計
以單片機為核心設(shè)計相位儀,如其晶振為24 MHz,單片機C/T的計數(shù)誤差為1個機器周期為±0.5 μs,則絕對誤差為360°x0.5 μs/50μs=3.6°,所以,當(dāng)被測信號頻率很高時很難滿足測量要求。
本設(shè)計采用AVR單片機與FPGA相結(jié)合的方案,FPGA實現(xiàn)數(shù)據(jù)采集,將所測信號的頻率和相位差所對應(yīng)時間差轉(zhuǎn)換為二進(jìn)制數(shù)據(jù)傳給單片機;單片機從FPGA獲取數(shù)據(jù),經(jīng)過運算、轉(zhuǎn)換等數(shù)據(jù)處理,將被測信號的頻率和相位差在LCD上顯示。
系統(tǒng)電原理圖如圖3所示。MCU采用ATMEL公司的AVR單片機ATmega128,具有先進(jìn)的RISC結(jié)構(gòu),大多數(shù)指令在一個時鐘周期內(nèi)完成,有32個8位通用工作寄存器及外設(shè)控制寄存器,克服了一般單片機單一累加器數(shù)據(jù)處理帶來的瓶頸。有128 KB的系統(tǒng)內(nèi)可編程Flash,4 KB的EEPROM以及4 KB的內(nèi)部SRAM,遵循JTAG標(biāo)準(zhǔn)的邊界掃描功能,支持?jǐn)U展的片內(nèi)調(diào)試,可通過JTAG接口實現(xiàn)對Flash、EEPROM、熔絲位和鎖定位的編程。
FPGA采用Altem Cyclone系列的EP1C3T100,配置芯片為EPCS1,VHDL功能程序經(jīng)過全編譯會生成.sof和.pof文件,配置的下載為Byte-Blaster II,[Mode]項選擇“JTAG”為把.sof文件配置到FPGA芯片EP1C3T100中,用于調(diào)試;[Mode]項選擇“Active Serial Programming”為把.pof文件下載到配置芯片EPCS1中,系統(tǒng)重新上電時正常運行。
LCD采用HTM12864,為128x64串行數(shù)據(jù)傳送液晶顯示器,背光燈通過光耦受到控制。
ATmega128和EP1C3T100設(shè)計各自的JTAG接口。圖3繪出了ATmega128和EP1C3T100的接口D0~D19、EN、Dsel、LCN;ATmega128與HTM12864的接口RET、D/C、SCLK、DATA;EP1C3T100的輸入信號FAin和FBin,66 MHz外部有源晶振,配置芯片EPCS1。4 系統(tǒng)軟件的設(shè)計
4.1 FPGA數(shù)據(jù)采集VHDL程序設(shè)計
FPGA數(shù)據(jù)采集的VHDL程序設(shè)計是在Altera QuartuslI開發(fā)軟件平臺及實驗開發(fā)系統(tǒng)上完成的。程序設(shè)計采用自頂向下(up-to-down)的設(shè)計方法。FPGA系統(tǒng)的模塊構(gòu)成如圖4所示。采樣信號發(fā)生模塊完成時鐘信號源的分頻工作,得到CLK=20 MHz;待測信號采樣模塊在控制信號產(chǎn)生模塊的周期閘門信號Tk和時間清零信號Tcr的作用下,輸出待測信號周期和相位差數(shù)據(jù);測量數(shù)據(jù)提取模塊在鑒相信號JXc和計數(shù)提取信號Lad的作用下,并在輸出使能信號EN和數(shù)據(jù)類型信號Dsel控制下分別輸出周期和相位差數(shù)據(jù),交MCU運算處理顯示。
評論