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