當(dāng)前位置:首頁 > 嵌入式 > 嵌入式教程
[導(dǎo)讀]FPGA與單片機實現(xiàn)低頻數(shù)字式相位測量儀

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

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

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

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

  1.1 測量方法的比較與選擇

  目前相位測量的方法主要有兩種:

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

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

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

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

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

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

  2 測量誤差的分析與消除

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

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

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

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

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

  3.6 MHz≤fC≤72 MHz。

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

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

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

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

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

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

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

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

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

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

[!--empirenews.page--]

  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é)合的方案,F(xiàn)PGA實現(xiàn)數(shù)據(jù)采集,將所測信號的頻率和相位差所對應(yīng)時間差轉(zhuǎn)換為二進制數(shù)據(jù)傳給單片機;單片機從FPGA獲取數(shù)據(jù),經(jīng)過運算、轉(zhuǎn)換等數(shù)據(jù)處理,將被測信號的頻率和相位差在LCD上顯示。

 系統(tǒng)電原理圖如圖3所示。MCU采用ATMEL公司的AVR單片機ATmega128,具有先進的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運算處理顯示。

[!--empirenews.page--]

  FPGA在單片機輸出使能信號EN和數(shù)據(jù)類型信號Dsel控制下,輸出所測信號的頻率和相位差所對應(yīng)的二進制數(shù)據(jù)仿真波形如圖5所示。VHDL程序經(jīng)過編譯調(diào)試生成.pof文件下載到配置芯片EPCS1中實現(xiàn)所設(shè)計的功能。

  4.2 ATmega128運算控制程序設(shè)計

  AVR單片機ATmega128從FPGA分別讀取頻率和相位差的20位數(shù)字量,由于FPGA在20 MHz數(shù)據(jù)采集信號作用下對待測信號周期和兩同頻信號的相位差所對應(yīng)的時間差計數(shù),因此20位數(shù)字量的單位是0.05μs,單片機對這些數(shù)字量進行計算,可以得到待測信號的頻率和相位差。

  單片機運算控制程序設(shè)計思路:單片機(ATmega128)通過控制信號EN和Dsel從FPGA(EP1C3T100)讀取待測信號的周期和兩待測信號相位差所對應(yīng)的時間差,對讀取的數(shù)據(jù)進行計算、轉(zhuǎn)換,送液晶顯示器顯示,顯示待測信號的頻率、相位差以及有關(guān)信息。主程序流程圖如圖6所示。源程序由主程序及若干子程序組成,主程序是一個循環(huán)執(zhí)行程序。

  1)單片機從FPGA讀數(shù)據(jù)

  根據(jù)MCU與FPGA的20位數(shù)字量的接口,從單片機的PA、PB和PC(低4位)讀取數(shù)據(jù),組合成20位的數(shù)據(jù),控制線EN和Dsel控制FPGA釋放數(shù)據(jù)。當(dāng)Dad=1時,F(xiàn)PGA向單片機傳送待測信號的相位差數(shù)據(jù);當(dāng)Dsel=0時,F(xiàn)PGA向單片機傳送待測信號的周期數(shù)據(jù);當(dāng)EN=1時,F(xiàn)PGA向單片機釋放數(shù)據(jù),當(dāng)EN=0時,FPGA禁止向單片機釋放數(shù)據(jù)。

  2)頻率和相位差數(shù)據(jù)的運算

  為了測量達(dá)到要求的精度,在運算時不能丟失數(shù)據(jù),所以采用擴大倍數(shù)定點取數(shù)的方法,保證數(shù)據(jù)計算準(zhǔn)確。依據(jù)如下方法進行計算:信號頻率F=106/T,計算結(jié)果精確到1 Hz;相位差△θ=△tx360°x10/T,計算結(jié)果精確到0.1°。

  3)LCD顯示器顯示頻率、相位差等相關(guān)信息

  本設(shè)計采用HTM12864(128x64)的LCD液晶顯示器,控制器為S6B0724,與單片機數(shù)據(jù)與控制接口是:CS、RET、D/C、SCLK、DATA,背光燈根據(jù)按鍵動作控制,用按鍵來切換顯來示信息。

  5 結(jié)論

        用此方法設(shè)計的數(shù)字式相位測量儀具有較高的精度,穩(wěn)定可靠。本儀器測量正弦信號的頻率及兩個同頻正弦信號的相位差,較好地滿足了設(shè)計的技術(shù)指標(biāo)要求。

本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫毥谦F公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運行,同時企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險,如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機 衛(wèi)星通信

要點: 有效應(yīng)對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅持高質(zhì)量發(fā)展策略,塑強核心競爭優(yōu)勢...

關(guān)鍵字: 通信 BSP 電信運營商 數(shù)字經(jīng)濟

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術(shù)學(xué)會聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(shù)(集團)股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉