《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 可編程邏輯 > 設(shè)計(jì)應(yīng)用 > FPGA與單片機(jī)實(shí)現(xiàn)低頻數(shù)字式相位測(cè)量?jī)x
FPGA與單片機(jī)實(shí)現(xiàn)低頻數(shù)字式相位測(cè)量?jī)x
摘要: FPGA與單片機(jī)實(shí)現(xiàn)低頻數(shù)字式相位測(cè)量?jī)x,摘要:提出了以AVR ATmega128單片機(jī)和Altera公司的Cyclone系列EP1C3T100為核心的系統(tǒng)設(shè)計(jì)方案,。分析了數(shù)字式低頻相位測(cè)量?jī)x的測(cè)量原理和測(cè)量誤差及其消除的方法,。主要介紹了系統(tǒng)的軟硬件設(shè)計(jì)。實(shí)踐表明,,此方案設(shè)計(jì)的
Abstract:
Key words :

摘要:提出了以AVR ATmega128單片機(jī)和Altera公司的Cyclone系列EP1C3T100為核心的系統(tǒng)設(shè)計(jì)方案,。分析了數(shù)字式低頻相位測(cè)量?jī)x的測(cè)量原理和測(cè)量誤差及其消除的方法。主要介紹了系統(tǒng)的軟硬件設(shè)計(jì),。實(shí)踐表明,,此方案設(shè)計(jì)的相位儀對(duì)低頻正弦波信號(hào)實(shí)現(xiàn)精確測(cè)頻和測(cè)相位差,具有處理速度快,、穩(wěn)定可靠,、精度高等優(yōu)點(diǎn)。

  關(guān)鍵詞:數(shù)字相位儀;單片機(jī);FPGA;誤差;頻率;相位差

  本設(shè)計(jì)采用MCU和FPGA相結(jié)合的系統(tǒng)方案,,以AVR單片機(jī)ATmega128和Altera公司的Cyclone系列EP1C3T100為核心,,充分發(fā)揮各自的優(yōu)勢(shì),如AVR單片機(jī)先進(jìn)的RISC結(jié)構(gòu)和強(qiáng)勁的運(yùn)算,、控制功能,,Altera公司的FPGA運(yùn)算速度快、資源豐富以及易編程的特點(diǎn),,合理設(shè)計(jì),,此方案的相位儀具備速度快、穩(wěn)定可靠,、精度高等優(yōu)點(diǎn),,而且容易實(shí)現(xiàn)“智能化”和“自動(dòng)化”。

  1 系統(tǒng)方案設(shè)計(jì)

  1.1 測(cè)量方法的比較與選擇

  目前相位測(cè)量的方法主要有兩種:

  1)DFT測(cè)相法即將待測(cè)信號(hào)通過(guò)A/D轉(zhuǎn)換得到f(n),f(n)按離散傅里葉變換得出離散頻譜F(k),,f(n)和F(k)為傅里葉變換對(duì),,通過(guò)運(yùn)算得到兩路信號(hào)的基波相位,從而計(jì)算出相位差,。DFT測(cè)相法的精度受限于ADC的采樣精度,,需要高速ADC對(duì)信號(hào)進(jìn)行過(guò)采樣,測(cè)量方案復(fù)雜,,可以通過(guò)采集卡在計(jì)算機(jī)上實(shí)現(xiàn)虛擬儀器,,所以主要應(yīng)用在精度要求很高的場(chǎng)合和虛擬儀器中。

  2)填充計(jì)數(shù)測(cè)相法 即兩路同頻的正弦信號(hào)經(jīng)過(guò)信號(hào)整形電路后得到方波信號(hào),,方波信號(hào)經(jīng)過(guò)鑒相器后,,得到兩路輸入信號(hào)的相位差信號(hào),用固定頻率的采樣脈沖進(jìn)行填充并計(jì)數(shù),,從而計(jì)算出相位差,。填充計(jì)數(shù)測(cè)相法主要應(yīng)用在要求一定的精度,測(cè)量的頻率不是太高但實(shí)時(shí)性要求很強(qiáng)的場(chǎng)合,,易于實(shí)現(xiàn)數(shù)字化和自動(dòng)化,低頻數(shù)字相位儀適合用填充計(jì)數(shù)法,。

  填充計(jì)數(shù)測(cè)相法的基本算法:若正弦波整形后的方波信號(hào)頻率為f,,周期為T,采樣脈沖周期為TC,,方波一個(gè)周期內(nèi)對(duì)采樣脈沖計(jì)數(shù)為,,n則被測(cè)信號(hào)頻率f=1/T=1/nTC。同樣的方法測(cè)出兩個(gè)同頻正弦波起點(diǎn)之間的時(shí)間差為△t,,則兩信號(hào)的相位差△θ=△t·360°/T,。

  1.2 系統(tǒng)方案的確定

  由系統(tǒng)測(cè)量方法可知,數(shù)據(jù)需要采集,、運(yùn)算及顯示,,考慮到Field Programmable Gate Array(FPGA)集成度高、I/O資源豐富,、穩(wěn)定可靠,,選擇余地大,外圍元件很少,,近年來(lái)價(jià)格下降等優(yōu)勢(shì),,以及MCU良好的人機(jī)接口和運(yùn)算控制功能,所以本系統(tǒng)由MCU和FPGA相結(jié)合構(gòu)成測(cè)控主體,。FPGA負(fù)責(zé)采集測(cè)頻和測(cè)相位差的脈沖信號(hào),,MCU負(fù)責(zé)讀FPGA采集的數(shù)據(jù),計(jì)算待測(cè)信號(hào)頻率和相位差并在LCD上顯示。

  所以,,系統(tǒng)由4個(gè)部分組成:待測(cè)信號(hào)調(diào)理電路,、FPGA數(shù)據(jù)采集電路、MCU數(shù)據(jù)運(yùn)算控制電路和LCD數(shù)據(jù)顯示電路,,如圖1所示,。

  2 測(cè)量誤差的分析與消除

  相位測(cè)量?jī)x的完善設(shè)計(jì),不僅要有合適的測(cè)量方法和系統(tǒng)實(shí)現(xiàn)方案,,還需要著重分析誤差產(chǎn)生的原因和確定消除的方法,。

  1)填充時(shí)鐘頻率(即數(shù)據(jù)采樣信號(hào))的影響與確定本相位測(cè)量?jī)x的測(cè)頻范圍為20 Hz~20 kHz,相位差的范圍為△θ=0°~359.9°,,相位差的顯示分辨率為0.1°,,要求測(cè)量相位的絕對(duì)誤差≤2。

  被測(cè)頻率20 Hz≤f≤20 kHz,,則周期50μs≤T≤50 ms,。

  T=50 μs,絕對(duì)誤差取0.1°~2°,。

  則填充時(shí)鐘信號(hào)周期:0.1°x50 μs/360°≤TC≤2°x50 μs/360°即:1/72(μs)≤TC≤1/3.6(μs),,可以得出填充時(shí)鐘頻率:

  3.6 MHz≤fC≤72 MHz。

  T=50ms內(nèi)對(duì)TC=1/3.6(μs)的填充脈沖計(jì)數(shù),,計(jì)數(shù)值Nmin=180000≤218;對(duì)TC=1/72(μs)的填充脈沖計(jì)數(shù),,計(jì)數(shù)值Nmax=3600000≤ 222。

  本設(shè)計(jì)考慮MCU的計(jì)算及分頻取得信號(hào)的方便,,填充時(shí)鐘信號(hào)頻率fC=20 MHz,,測(cè)量絕對(duì)誤差<1°,F(xiàn)PGA在20 MHz時(shí)鐘信號(hào)作用下對(duì)待測(cè)信號(hào)周期和相位對(duì)應(yīng)的時(shí)間差進(jìn)行計(jì)數(shù),,F(xiàn)PGA采樣的二進(jìn)制數(shù)據(jù)位為20 bit,,可以保證測(cè)量的精度。

  2)待測(cè)信號(hào)調(diào)理電路中零點(diǎn)漂移的影響與消除待測(cè)信號(hào)調(diào)理電路主要作用是把輸入信號(hào)整形變換成矩形波,,通常采用過(guò)零比較器或者施密特觸發(fā)器,。

  過(guò)零比較器在零點(diǎn)電位附近可能會(huì)有振蕩,輸入信號(hào)在零點(diǎn)電位附近時(shí),,電壓比較器處于放大區(qū),,整形后的矩形波在邊沿會(huì)產(chǎn)生抖動(dòng),使系統(tǒng)無(wú)法進(jìn)行測(cè)量,。要消除這種抖動(dòng),,可以采用施密特觸發(fā)器。為了保證測(cè)量的精度,,施密特觸發(fā)器必須符合兩個(gè)條件:一是兩路被測(cè)信號(hào)幅度基本相等,,二是門限電平要基本接近,。

  3)整形后方渡邊沿的陡峭程度的影響與消除信號(hào)經(jīng)過(guò)整形后輸出的矩形脈沖信號(hào)直接送給FPGA,則FPGA不能立即獲取穩(wěn)定的數(shù)字脈沖信號(hào),,就會(huì)使系統(tǒng)的精度受到很大影響,。這主要是由于整形后方波邊沿不夠陡峭造成的。要解決此問(wèn)題,,一是選取具有較大壓擺率的器件,,二是在比較器的后端加一級(jí)微分電路來(lái)提升脈沖信號(hào)的邊沿。

  4)中低頻測(cè)量精度的影響與消除采用20 MHz數(shù)據(jù)采樣信號(hào)來(lái)循環(huán)計(jì)數(shù)被測(cè)信號(hào)的周期及相位差對(duì)應(yīng)的時(shí)間差,,精度達(dá)到0.05 μs,,20位數(shù)字量的單位是0.05μs。利用被測(cè)信號(hào)刷新采樣計(jì)數(shù),,實(shí)現(xiàn)高頻多測(cè)量,,低頻少測(cè)量,時(shí)間計(jì)數(shù)精確可靠,,這樣,,F(xiàn)PGA可以為MCU提供穩(wěn)定的數(shù)據(jù)。

  3 系統(tǒng)硬件電路的設(shè)計(jì)

  3.1 前端信號(hào)調(diào)理電路的設(shè)計(jì)

  施密特觸發(fā)器(遲滯比較器)雖然可以很好地消除比較器過(guò)零引起的抖動(dòng),,但是其輸出信號(hào)和輸入信號(hào)存在相位差,,如果兩路被測(cè)信號(hào)的幅度基本相等且兩個(gè)施密特觸發(fā)器的門限電平又很接近,則施密特觸發(fā)器引入的相位誤差對(duì)測(cè)量系統(tǒng)誤差幾乎無(wú)影響,。

  采用LM339內(nèi)部有4個(gè)獨(dú)立的電壓比較器,,該電壓比較器的特點(diǎn)是:失調(diào)電壓小,典型值為2 mV;電源電壓范圍寬,,雙電源電壓為±1~±18 V;對(duì)比較信號(hào)源的內(nèi)阻限制較寬。同相和反相輸入端電壓差別大于10 mV就能確保輸出能從一種狀態(tài)可靠地轉(zhuǎn)換到另一種狀態(tài),,輸出端相當(dāng)于一只不接集電極電阻的晶體三極管,,在使用時(shí)輸出端到正電源一般須接一只電阻。在跳變電壓值附近的干擾不超過(guò)回差A(yù)U,,輸出電壓的值就將是穩(wěn)定的,。正反饋可以加快比較器的響應(yīng)速度。由于遲滯比較器加的正反饋很強(qiáng),,遠(yuǎn)比電路中的寄生耦合強(qiáng)得多,,所以可免除由于電路寄生耦合而產(chǎn)生的自激振蕩。通過(guò)調(diào)節(jié)電位器,,使兩個(gè)施密特觸發(fā)器的門限電平基本相等,,保證輸入電路對(duì)相位差測(cè)量不帶來(lái)誤差。電路如圖2所示,。

  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í)很難滿足測(cè)量要求。

  本設(shè)計(jì)采用AVR單片機(jī)與FPGA相結(jié)合的方案,,F(xiàn)PGA實(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開發(fā)軟件平臺(tái)及實(shí)驗(yàn)開發(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)算處理顯示,。

  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ì)的數(shù)字式相位測(cè)量?jī)x具有較高的精度,,穩(wěn)定可靠。本儀器測(cè)量正弦信號(hào)的頻率及兩個(gè)同頻正弦信號(hào)的相位差,,較好地滿足了設(shè)計(jì)的技術(shù)指標(biāo)要求,。

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載,。