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