牛紅濤 黃建瓊 張志峰 王巍 馬軻瀛
摘? 要: 時間頻率技術(shù)已廣泛應(yīng)用于通信、儀表和自動控制系統(tǒng)等眾多領(lǐng)域,為了改進低頻方波信號的掃頻時間檢測技術(shù),提出一種新的基于FPGA電路的掃頻時間檢測技術(shù)。詳細介紹掃頻時間檢測裝置的檢測系統(tǒng)原理,并對掃頻時間檢測算法進行理論分析。設(shè)計基于FPGA控制芯片的掃頻時間檢測電路,實現(xiàn)低頻掃頻時間參數(shù)的自動檢測功能。通過與高性能示波器測量方法得到的結(jié)果進行比較和分析,結(jié)果顯示,該文提出的方法檢測效率遠遠高于高性能示波器測量方法,且具有測量穩(wěn)定及測量精度高的優(yōu)點。在制動時間、轉(zhuǎn)速、車速以及瞬時速度等參數(shù)的檢測校準領(lǐng)域有重要的應(yīng)用價值。
關(guān)鍵詞: 掃頻時間檢測; 檢測裝置; 檢測電路設(shè)計; 軟件設(shè)計; 參數(shù)檢測; 結(jié)果分析
中圖分類號: TN98?34; TH71? ? ? ? ? ? ? ? ? ? ?文獻標識碼: A? ? ? ? ? ? ? ? ? ? ? 文章編號: 1004?373X(2020)20?0014?04
A frequency sweep time detection technology based on FPGA circuit
NIU Hongtao, HUANG Jianqiong, ZHANG Zhifeng, WANG Wei, MA Keying
(National Institute of Measurement and Testing Technology, Chengdu 610021, China)
Abstract: The time frequency technology has been widely used in many fields such as communication, instrument, automatic control system, etc. A new frequency sweep time detection technology based on FPGA circuit is proposed to improve the frequency sweep time detection technology for low?frequency square signal. The principle of the detection system for frequency sweep time detection device is introduced in detail, and the frequency sweep time detection algorithm is analyzed theoretically. The frequency sweep time detection circuit based on the FPGA control chip is designed, so that the automatic detection function of the low?frequency sweep time parameter is realized. The results obtained by the measuring method of high?performance oscilloscope and the results obtained from the proposed method are compared and analyzed. The results show that the detection efficiency of the proposed method is much higher than that of the high?performance oscilloscope measurement method. It has the advantages of high measurement stability and high measurement accuracy, and has important application values in the detection and calibration fields of parameters such as braking time, rotational speed, vehicle speed and instantaneous speed.
Keywords: frequency sweep time detection; detection device; detection circuit design; software design; parameter detection; result analysis
0? 引? 言
隨著國民經(jīng)濟的高速發(fā)展,時間頻率相關(guān)技術(shù)已廣泛應(yīng)用于通信、儀表和自動控制系統(tǒng)等眾多領(lǐng)域,與生產(chǎn)生活密切相關(guān),在民用、工業(yè)、軍事、航空航天等多個領(lǐng)域發(fā)揮著重要作用。在電子儀表及工業(yè)領(lǐng)域,變頻信號的使用十分常見,如正弦波信號和方波信號等。這種周期信號可以作為基準信號廣泛應(yīng)用于轉(zhuǎn)速測量、距離測量、通信系統(tǒng)或與時間頻率相關(guān)的電路設(shè)計。用于產(chǎn)生變頻信號的儀器有掃頻信號發(fā)生器和函數(shù)信號發(fā)生器等裝置,這些裝置產(chǎn)生的信號幅度恒定,頻率可在限定范圍內(nèi)做線性變化,對于研究轉(zhuǎn)速、加速度、時基穩(wěn)定度等參數(shù)的檢測校準技術(shù)有重要意義。目前國內(nèi)學(xué)者對掃頻信號發(fā)生器開展了相關(guān)研究,已通過應(yīng)用FPGA控制技術(shù)實現(xiàn)了掃頻信號的輸出[1?4]功能。此外,在汽車檢測或電機檢測領(lǐng)域,變頻信號與轉(zhuǎn)速密切相關(guān),對瞬時速度、轉(zhuǎn)速等參數(shù)的檢測往往需要通過傳感器將被測信號轉(zhuǎn)換成方波信號進行檢測,而信號頻率變化之間的時間間隔,即掃頻時間,則反應(yīng)了汽車、發(fā)動機或電機的加速或減速性能。目前,已有許多學(xué)者開展了汽車性能檢測技術(shù)研究,這些研究主要是關(guān)于汽車底盤測功機檢測技術(shù)[5?8]。也有學(xué)者開展掃頻時間檢測技術(shù)研究,尤其是在汽車性能檢測領(lǐng)域[9?10]。雖然國內(nèi)開展了大量關(guān)于掃頻信號發(fā)生器、汽車底盤測功機的研究,可是關(guān)于掃頻時間檢測技術(shù)的研究還較少,由于變頻信號應(yīng)用廣泛,開展掃頻時間檢測技術(shù)研究具有重要的應(yīng)用價值。
針對這一情況,本文開展了關(guān)于低頻方波信號的掃頻時間檢測技術(shù)研究,提出了一種新的基于FPGA電路的掃頻時間檢測技術(shù)。通過應(yīng)用提出的掃頻時間檢測算法以及利用FPGA并行數(shù)據(jù)處理的優(yōu)勢,能夠?qū)崿F(xiàn)低頻掃頻時間參數(shù)的自動檢測,其檢測效率遠遠高于高性能示波器測量方法,具有測量穩(wěn)定及測量精度高的優(yōu)點。在制動時間、轉(zhuǎn)速、車速以及瞬時速度等參數(shù)的檢測校準領(lǐng)域有重要的應(yīng)用價值。
1? 掃頻時間檢測裝置設(shè)計
由于FPGA電路可以實現(xiàn)精密時間間隔的測量[11?12],為了實現(xiàn)變頻信號之間的時間間隔檢測,本文設(shè)計了一種基于FPGA電路的掃頻時間檢測裝置,該裝置應(yīng)用信號濾波技術(shù)提高檢測電路抗噪聲能力,應(yīng)用100 MHz的時鐘頻率進行掃頻時間參數(shù)的測量,可以提高時間參數(shù)測量的精度,實現(xiàn)低頻掃頻時間參數(shù)的自動檢測。
1.1? 檢測系統(tǒng)原理
掃頻時間檢測裝置的系統(tǒng)原理如圖1所示。
被測儀器或光電編碼器產(chǎn)生的變頻信號經(jīng)過同軸信號線與掃頻時間檢測裝置相連接,掃頻時間檢測裝置通過阻抗匹配模塊將被測方波掃頻信號的電壓轉(zhuǎn)換至FPGA測量控制電路許可的電壓范圍5 V以內(nèi),由FPGA測量控制電路采用掃頻時間檢測算法實時對掃頻信號進行處理和計算。設(shè)被測信號的頻率從高到低變化,當被測信號的瞬時頻率小于等于設(shè)定的頻率起始點的數(shù)值時開始計時,當被測信號的瞬時頻率小于設(shè)定的頻率終止點的數(shù)值時結(jié)束計時,從而可以計算出掃頻信號從高頻變化到低頻所經(jīng)歷的時間間隔,即掃頻時間。
圖1中FPGA測量控制電路是由PLL時鐘產(chǎn)生模塊、瞬時頻率及時間間隔檢測模塊、十六進制轉(zhuǎn)十進制模塊以及串口發(fā)送模塊構(gòu)成,如圖2所示。系統(tǒng)采用外部50 MHz晶振驅(qū)動PLL時鐘產(chǎn)生模塊,而PLL時鐘產(chǎn)生模塊為FPGA測量控制電路提供5 MHz,50 MHz和100 MHz共3種工作時鐘。瞬時頻率及時間間隔檢測模塊采用100 MHz工作時鐘對被測方波信號進行實時頻率檢測,采用掃頻時間檢測算法對每一個連續(xù)的方波信號的上升邊沿進行實時分析,如果被測信號頻率達到設(shè)置的起始頻率則啟動計數(shù)器進行計時,當被測信號的瞬時頻率達到設(shè)置的終止頻率則停止計時,從而可以得到起始頻率和終止頻率之間的精確的時間間隔,實現(xiàn)對變頻信號進行自動掃頻時間檢測功能。由于FPGA測量電路采用100 MHz時鐘對被測信號進行實時分析計算,每隔10 ns對信號進行一次邊沿檢測,提高測量系統(tǒng)的精度。由于FPGA測量電路測量掃頻時間間隔的計數(shù)器采用48位的二進制計數(shù)器,為了便于輸出顯示還需要將數(shù)據(jù)轉(zhuǎn)換為十進制數(shù)據(jù),系統(tǒng)設(shè)計了十六進制轉(zhuǎn)十進制模塊實現(xiàn)進制之間的轉(zhuǎn)換功能,由于數(shù)據(jù)進制轉(zhuǎn)換過程中耗時較多,需要較低的時鐘頻率。因此采用PLL提供的5 MHz時鐘驅(qū)動。最后通過串口發(fā)送模塊將轉(zhuǎn)換后的十進制數(shù)據(jù)發(fā)送到上位機進行顯示和分析。串口發(fā)送模塊采用PLL產(chǎn)生的50 MHz時鐘進行驅(qū)動,并在模塊內(nèi)部進行降頻處理,得到串口發(fā)送需要的低頻時鐘信號,實現(xiàn)數(shù)據(jù)的發(fā)送功能。
1.2? 掃頻時間檢測算法
在實際應(yīng)用中往往需要將周期信號轉(zhuǎn)換成方波信號來計算信號頻率參數(shù),因此本文主要研究方波信號的掃頻時間檢測算法。設(shè)f為連續(xù)的方波信號集合,可以表示為:
[f=fx1,fx2,…,fxm]? (1)
式中,[fxk]為單個方波信號,可表示為:
[fxk=A,? ? ? ? 0≤xk 式中:[A]表示方波信號的幅值;[T(xk)]為方波信號[fxk]的周期,而[k=1,2,…,m]。因此,連續(xù)方波信號周期的集合T可以表示為: [T=Tx1,Tx2,…,Txm] (3) 本文提出的掃頻時間測量方法通過測量連續(xù)方波信號的瞬時頻率來確定計時的起始點和終止點,而方波信號的瞬時頻率可以通過測量信號的周期間接計算得到。對于頻率隨時間變化的方波信號,通過加窗函數(shù)的方法對信號進行截取,然后計算截取得到的若干個方波信號的周期,再將周期轉(zhuǎn)換成瞬時頻率,然后通過不斷移動窗函數(shù)的位置就可以對整個連續(xù)方波信號進行瞬時頻率的計算。對連續(xù)方波信號的周期集合T進行加窗函數(shù)運算,可得到處理后的信號周期集合[Tc],可以表示為: [Tc=Tcx1,Tcx2,…,Tcxm-n+1] (4) 式中, [Tc(xi)=k=ii+n-1WkT(xk)] (5) 式中:[i=1,2,…,m-n+1];而[W=[W1,W2,…,Wm]],本文設(shè)置[W1=W2=…=Wm=1]。在FPGA測量控制電路中,應(yīng)用提出的掃頻時間檢測算法實時對連續(xù)的方波信號進行瞬時頻率計算,對于某一個方波信號,通過計算該方波信號及其后連續(xù)的2個方波信號的頻率平均值來確定該方波信號的瞬時頻率。因此將式(5)中的n值設(shè)置為3。 2? FPGA電路設(shè)計 掃頻時間檢測裝置采用Cyclone IV E系列EP4CE10F? 17C8控制芯片。該芯片具有功耗低和性價比高的優(yōu)點,在儀器儀表類產(chǎn)品及工業(yè)控制產(chǎn)品中有重要的應(yīng)用前景。該芯片中的M9K存儲器模塊具有9 Kbit的嵌入式SRAM 存儲器,能夠滿足本項目系統(tǒng)運行過程中進行各種數(shù)據(jù)存儲的需求。此外,通過使用芯片中的乘法器,便于實現(xiàn)更加高效的并行結(jié)構(gòu)的掃頻時間檢測算法。除了核心架構(gòu)資源,該芯片還擁有2個PLL時鐘管理單元和多個系統(tǒng)I/O,便于對本項目系統(tǒng)電路時鐘的管理。為了保障FPGA測量控制電路的正常運行,避免FPGA電路中的指令代碼因掉電而丟失的情況,在系統(tǒng)上電后,通過主動串行方式(AS),由FPGA主動輸出控制和同步信號發(fā)送給專用的串行芯片W25Q16。在串行芯片收到命令后,再把配置數(shù)據(jù)加載到FPGA電路的SRAM中,然后FPGA測量電路才能正常的工作。圖3所示為FPGA主動串行方式配置電路的原理圖。掃頻時間檢測裝置在FPGA測量控制電路與被測方波信號連接端子處設(shè)有分壓電阻,以限制被測信號的最高電壓,從而實現(xiàn)對被測方波信號的掃頻時間檢測功能。 被測方波信號的掃頻時間參數(shù)在FPGA測量控制電路中是以48位二進制數(shù)字的形式進行運算和處理的。為了便于上位機進行顯示和處理,將掃頻時間參數(shù)轉(zhuǎn)換成十進制數(shù)據(jù)后,系統(tǒng)采用串口轉(zhuǎn)USB芯片CH340G實現(xiàn)FPGA測量控制電路與上位機的數(shù)據(jù)傳輸功能。CH340G芯片是一種支持 5 V 或 3.3 V 供電的 USB 總線轉(zhuǎn)接芯片,能夠?qū)崿F(xiàn)USB 轉(zhuǎn)串口協(xié)議,支持通信波特率 50 b/s~2 Mb/s,可以通過一根普通的 USB數(shù)據(jù)線與上位機進行數(shù)據(jù)傳輸。串口轉(zhuǎn)USB芯片CH340G與FPGA控制芯片的連接示意圖如圖4所示。 3? 軟件設(shè)計 基于FPGA電路的掃頻時間檢測裝置采用了Cyclone IV E系列的FPGA控制芯片,其測量算法是通過Verilog HDL硬件描述語言實現(xiàn)的,主程序流程圖如圖5所示。軟件工作原理是應(yīng)用掃頻時間檢測算法通過信號上升沿來檢測信號的瞬時頻率,如果信號的瞬時頻率滿足設(shè)置的起始頻率,則啟動計時器開始計時。由于FPGA控制芯片的并行數(shù)據(jù)處理優(yōu)點,信號處理電路還能實時對信號瞬時頻率進行檢測,當信號瞬時頻率滿足設(shè)置的結(jié)束頻率時結(jié)束計時器計時功能,并將掃頻時間數(shù)據(jù)轉(zhuǎn)換成十進制數(shù)據(jù)形式發(fā)送給上位機進行處理和分析。在掃頻時間檢測軟件中采用了2個脈沖寬度寄存器R1和R2交替連續(xù)的方波信號脈沖寬度進行計算,因此可以得到連續(xù)每一個方波信號的瞬時頻率。圖6所示為這種方波信號瞬時頻率檢測算法的ModelSim軟件仿真圖。 4? 實驗結(jié)果及分析 本文采用Keysight 33600A系列函數(shù)信號發(fā)生器來模擬頻率線性變化的掃頻信號,然后通過掃頻時間檢測裝置和Tektronix MSO64混合信號示波器對該掃頻信號同時測量,并對掃頻時間測量結(jié)果進行比較和分析。通過函數(shù)信號發(fā)生器產(chǎn)生頻率從70 kHz線性變化到10 kHz的掃頻信號,掃頻時間分別設(shè)置為10 s和20 s,那么信號頻率從50 kHz線性變化到20 kHz需要的時間則分別為5 s和10 s。圖7顯示了函數(shù)信號發(fā)生器產(chǎn)生的頻率從70 kHz線性變化到10 kHz的掃頻信號截圖。 本文采用混合信號示波器和掃頻時間檢測裝置對頻率從70 kHz線性降至10 kHz的變頻信號進行掃頻時間測量,設(shè)置掃頻時間測量的起始頻率和終止頻率分別為50 kHz和20 kHz,對該信號進行3次掃頻時間測量的平均值如表1所示。 通過比較可知,采用掃頻時間檢測裝置和示波器測量方法都能得到準確的掃頻時間參數(shù),其測量結(jié)果非常接近,測量誤差小于1 ms??墒?,采用示波器測量方法需要將掃頻信號進行連續(xù)存儲,然后將存儲的信號數(shù)據(jù)在計算機中通過Matlab軟件采用類似的掃頻時間檢測算法進行分析計算,數(shù)據(jù)處理量較大。由于實驗中使用的示波器的最大存儲深度為62.5 MS樣點,因此采樣率最高可設(shè)為3.125 MS/s,而基于FPGA電路的掃頻時間檢測裝置對信號進行分析的速率為100 MS/s??梢钥闯?,采用示波器測量方法對掃頻信號進行分析的頻率遠遠低于基于FPGA電路的掃頻時間檢測裝置,而且應(yīng)用高端示波器檢測方法來檢測掃頻時間參數(shù)需要對數(shù)據(jù)進行后處理,檢測時間較長,不能實時顯示測量結(jié)果;而采用基于FPGA電路的掃頻時間檢測裝置能夠?qū)崿F(xiàn)對低頻掃頻信號掃頻時間參數(shù)的自動檢測。實驗中還采用掃頻時間檢測裝置對表1中的掃頻時間信號進行11次測量,其測量結(jié)果的均方差低至1.5×10-4 s。因此,本文提出的基于FPGA電路的掃頻時間檢測裝置具有很高的測量精度。 5? 結(jié)? 論 針對低頻方波信號的掃頻時間檢測問題,本文提出了一種新的基于FPGA電路的掃頻時間檢測技術(shù)。詳細介紹了掃頻時間檢測裝置的檢測系統(tǒng)原理,并對掃頻時間檢測算法進行了理論分析,設(shè)計了基于FPGA控制芯片的掃頻時間檢測電路,通過應(yīng)用掃頻時間檢測算法以及利用FPGA并行數(shù)據(jù)處理的優(yōu)勢,能夠?qū)崿F(xiàn)低頻掃頻時間參數(shù)的自動檢測。通過與高性能示波器測量方法得到的結(jié)果進行比較分析,結(jié)果顯示本文提出的基于FPGA電路的掃頻時間檢測裝置能夠?qū)崟r檢測和顯示掃頻時間測量結(jié)果,其檢測效率遠遠高于高性能示波器測量方法,具有測量穩(wěn)定及測量精度高的優(yōu)點。在制動時間、轉(zhuǎn)速、車速以及瞬時速度等參數(shù)的檢測校準領(lǐng)域有重要的應(yīng)用價值。 參考文獻 [1] 冷建偉,徐瓊瓊.基于單片機和FPGA的掃頻信號發(fā)生器[J].化工自動化及儀表,2014,41(8):939?942. [2] 段惠敏,周澤華,查長軍,等.基于FPGA和單片機的掃頻信號源的設(shè)計[J].合肥學(xué)院學(xué)報(綜合版),2018,35(2):51?55. [3] 朱科.基于DDS技術(shù)的掃頻信號發(fā)生器設(shè)計與實現(xiàn)[J].工業(yè)控制計算機,2018,31(10):47?49. [4] 黃麗,劉永芳.基于FPGA和DAC的掃頻信號發(fā)生器的研制[J].自動化與儀器儀表,2019(3):8?10. [5] 鄔洋,劉嘉靖,劉海鵬,等.四驅(qū)汽車底盤測功機計量檢測方法的研究[J].中國質(zhì)量與標準導(dǎo)報,2017(12):91?93. [6] 張樂.汽車底盤測功機自檢系統(tǒng)的設(shè)計[J].工業(yè)計量,2018,28(3):66?69. [7] 靳建波,卜樹峰,李永軍,等.基于電力測功機的電動車輛直駛負載模擬技術(shù)研究[J].計算機測量與控制,2018,26(5):261?265. [8] 葉青艷.基于單片機的汽車底盤測功機試驗臺檢測系統(tǒng)設(shè)計應(yīng)用[J].微型電腦應(yīng)用,2019,35(9):151?154. [9] 朱衛(wèi)民.滑行時間檢測儀的研制[J].計量技術(shù),2012(7):50?52. [10] 呂慶斌,劉嘉靖,鄔洋,等.四驅(qū)汽車底盤測功機用滑行時間測試儀的研發(fā)與應(yīng)用[J].中國質(zhì)量與標準導(dǎo)報,2018(2):71?74. [11] 瞿鑫,吳云峰,江桓,等.基于FPGA的時間間隔測量系統(tǒng)的設(shè)計[J].電子器件,2013,36(6):825?827. [12] 馬蕓,郭芃.基于FPGA延遲時間插入法實現(xiàn)精密時間測量[J].現(xiàn)代導(dǎo)航,2013,4(5):317?322.