金 鑫,田文杰,劉 迪,陳福彬
(北京信息科技大學(xué)傳感器重點(diǎn)實(shí)驗(yàn)室,北京 100101)
傳統(tǒng)的高精度頻率計(jì)一般電路復(fù)雜[1]、靈活性和可升級(jí)性較差且通常情況下可測量的通道數(shù)較少。隨著可編程邏輯器件FPGA的發(fā)展,可以將大量邏輯功能的電路集成到FPGA中,增強(qiáng)了頻率測量模塊的集成度,F(xiàn)PGA構(gòu)成的電路是現(xiàn)場可升級(jí)的,提高了測量模塊可維護(hù)性[2]。
目前基于FPGA的頻率測量通常采用直接測頻[3]和等精度測頻[4-5]的方法來計(jì)量待測信號(hào)。這兩種測量方法,在遇到對測量時(shí)間有特殊要求時(shí),存在各自的缺陷。同時(shí),隨著傳感器的發(fā)展,多通道信號(hào)的應(yīng)用也越來越廣泛[6-7],為了確保數(shù)據(jù)收集的完整性和實(shí)時(shí)性,需要對多路的頻率信號(hào)同時(shí)進(jìn)行測量。本文基于數(shù)字鎖相環(huán)[8],設(shè)計(jì)一種多通道高速的測量方案,通過對自適應(yīng)數(shù)字鎖相環(huán)模塊、數(shù)據(jù)采集模塊和串口通訊模塊進(jìn)行優(yōu)化開發(fā),實(shí)現(xiàn)對被測信號(hào)的數(shù)據(jù)采集和發(fā)送。通過實(shí)驗(yàn)驗(yàn)證了系統(tǒng)的可靠性,并將該設(shè)計(jì)應(yīng)用于集成式石英諧振器的頻率采集和測量,有效地提高了數(shù)據(jù)采集的效率和實(shí)時(shí)性。
頻率測量方法有直接測頻法、多周期同步測頻法、等精度測頻法、雙混頻法等,各種測頻方法應(yīng)用場景及實(shí)現(xiàn)方式不同,直接測頻法、等精度測頻法在FPGA頻率測量系統(tǒng)中應(yīng)用較廣泛。直接測頻法的工作原理為閘門信號(hào)以時(shí)鐘信號(hào)為基準(zhǔn),設(shè)置閘門時(shí)間為T,在閘門開啟的時(shí)間內(nèi)得到被測信號(hào)計(jì)數(shù)結(jié)果Xin,則被測信號(hào)的頻率即為Xin/T。等精度測頻法的工作原理為將數(shù)個(gè)被測信號(hào)作為閘門時(shí)間的開關(guān),當(dāng)被測信號(hào)計(jì)數(shù)達(dá)到Xin時(shí),測得當(dāng)前時(shí)鐘信號(hào)的計(jì)數(shù)為Xs,根據(jù)系統(tǒng)時(shí)鐘信號(hào)的頻率fs和fx=(Xin/Xs)fs就可以得到被測信號(hào)的頻率。直接測頻法閘門時(shí)間較長,測量速度較慢。等精度測頻法的閘門時(shí)間與被測信號(hào)有關(guān),在設(shè)置好閘門計(jì)數(shù)后,測量高頻和低頻信號(hào)所需的時(shí)間相差較大。
為了應(yīng)對以上2種測量方法的不足,本文提出了一種新的測量方式。其測量原理是:通過FPGA的數(shù)字鎖相環(huán)對被測信號(hào)fx進(jìn)行倍頻調(diào)制,得到放大整數(shù)倍的倍頻信號(hào)Nfx。然后通過減少對時(shí)鐘信號(hào)fs的計(jì)數(shù),將閘門時(shí)間縮小為T1=T0/N。計(jì)數(shù)模塊對倍頻信號(hào)計(jì)數(shù)就可以得到與被測信號(hào)fx頻率相同的值,如圖1所示。
圖1 采集原理波形圖
根據(jù)上述原理,以FPGA作為信號(hào)采集、發(fā)送和處理控制系統(tǒng)的核心并結(jié)合串口通訊,設(shè)計(jì)了一種多通道的高響應(yīng)頻率測量系統(tǒng),框架結(jié)構(gòu)如圖2所示。將8路的輸入信號(hào)基于獨(dú)立的自適應(yīng)數(shù)字鎖模塊經(jīng)倍頻處理后得到8路倍頻信號(hào),然后通過獨(dú)立的計(jì)數(shù)器測得倍頻信號(hào)的頻率值并保存在寄存器中。FPGA通過串口模塊輸出TTL標(biāo)準(zhǔn)的串口信號(hào),與PC計(jì)算機(jī)或嵌入式設(shè)備進(jìn)行通訊,并根據(jù)讀取到的數(shù)據(jù)幀選取對應(yīng)通道的頻率值,通過串口輸出。
圖2 系統(tǒng)整體結(jié)構(gòu)框圖
數(shù)字鎖相環(huán)由鑒相器、K模加減計(jì)數(shù)器、脈沖加減控制器與分頻器組成,如圖3所示。鑒相器通過輸入信號(hào)fin和環(huán)路反饋信號(hào)fclkout進(jìn)行比較并輸出兩者的相位差信號(hào)fse。然后K模可逆計(jì)數(shù)器再根據(jù)相位差信號(hào)的邏輯電平輸出進(jìn)位脈沖carry和退位脈沖borrow,脈沖加減控制器根據(jù)進(jìn)位、退位脈沖對模塊時(shí)鐘的頻率進(jìn)行跟蹤和調(diào)整,輸出生成的倍頻信號(hào)fout。
圖3 數(shù)字鎖相環(huán)原理框圖
由于數(shù)字鎖相環(huán)模塊的輸出信號(hào)受到2Nf0和fse的影響。在實(shí)際應(yīng)用時(shí),數(shù)字鎖相環(huán)存在一定的工作范圍,且放大倍數(shù)越大時(shí),其工作范圍越小,如表1所示。在2Nf0不變的情況下,若要保證fout=Nfin,fin就必須在有效的帶寬范圍內(nèi)。
表1 放大倍數(shù)與倍頻有效帶寬 Hz
從系統(tǒng)整體的性能角度考慮,在一個(gè)變化較大的工作頻率下工作時(shí),如果數(shù)字鎖相環(huán)采用固定模塊時(shí)鐘2Nf0就不是最優(yōu)解。所以就需要根據(jù)輸入信號(hào)自適應(yīng)得到一個(gè)數(shù)字鎖相環(huán)所需的模塊時(shí)鐘。自適應(yīng)時(shí)鐘模塊框架結(jié)構(gòu)如圖4所示。
圖4 自適應(yīng)模塊結(jié)構(gòu)圖
圖4中,實(shí)驗(yàn)板中的晶振頻率為50 MHz,使用FPGA芯片的鎖相環(huán)IP核ALTPLL把晶振頻率倍頻到400 MHz作為系統(tǒng)時(shí)鐘。在輸入信號(hào)fin的8個(gè)周期時(shí)間內(nèi)計(jì)量系統(tǒng)時(shí)鐘的周期數(shù)并求其平均值得到n_cnt,然后根據(jù)需要放大的倍數(shù)N來設(shè)置鎖存器的范圍。隨后任意正整數(shù)分頻器模塊根據(jù)輸入的n_final進(jìn)行分頻得到數(shù)字鎖相環(huán)所需的時(shí)鐘信號(hào)2Nf。
通過自帶Altera庫的時(shí)序模擬軟件ModelSim Altera進(jìn)行仿真驗(yàn)證,可以直觀的看到各個(gè)節(jié)點(diǎn)信號(hào)時(shí)序圖,以及產(chǎn)生的信號(hào)是否有效,如圖5所示。
圖5 自適應(yīng)鎖相環(huán)時(shí)序圖
首先,在TestBench測試文件中對信號(hào)進(jìn)行定時(shí)循環(huán)翻轉(zhuǎn)生成10 MHz的輸入信號(hào)和50 MHz的系統(tǒng)時(shí)鐘信號(hào)。然后將生成的信號(hào)與自適應(yīng)數(shù)字鎖相環(huán)模塊的輸入端進(jìn)行綁定并運(yùn)行仿真程序。從圖5中看出sys_clk經(jīng)過ALTPLL倍頻后生成了400 MHz的時(shí)鐘信號(hào)clk_ALTPLL。自適應(yīng)模塊根據(jù)輸入信號(hào)f_1生成了自適應(yīng)模塊時(shí)鐘2N_f0。當(dāng)前輸入信號(hào)和分頻信號(hào)clkout相位差信號(hào)se的占空比為50%完成了鎖相,此時(shí)K??赡嬗?jì)數(shù)器在0~5之間變化,當(dāng)計(jì)數(shù)值到0時(shí)會(huì)產(chǎn)生借位信號(hào)borrow的脈沖,受到借位脈沖的影響,脈沖加減控制器產(chǎn)生了頻率為輸入信號(hào)10倍的輸出信號(hào)f_out。
頻率采集模塊由8個(gè)獨(dú)立的頻率計(jì)數(shù)模塊組成。該模塊內(nèi)部設(shè)計(jì)了2組計(jì)數(shù)器,一組計(jì)數(shù)器對倍頻后的400 MHz標(biāo)準(zhǔn)時(shí)鐘進(jìn)行計(jì)數(shù),另一組計(jì)數(shù)器對經(jīng)數(shù)字鎖相環(huán)模塊處理后的倍頻信號(hào)進(jìn)行計(jì)數(shù)。以時(shí)鐘信號(hào)的計(jì)數(shù)值作為本次的閘門信號(hào),完成對標(biāo)準(zhǔn)時(shí)鐘的計(jì)數(shù)后輸出當(dāng)前倍頻信號(hào)的計(jì)數(shù)值,并將該值保存到8個(gè)32位寄存器中。然后清零2個(gè)計(jì)數(shù)器,重新進(jìn)行下一次測量。每次的測量時(shí)間僅為1/N秒,所以對倍頻信號(hào)進(jìn)行測量比對原始待測信號(hào)的測量速度提升了N倍。由于倍頻信號(hào)是由400 MHz的時(shí)鐘經(jīng)過處理后產(chǎn)生,所以倍頻信號(hào)的上升沿必然是時(shí)鐘信號(hào)的上升沿,一定程度上消除了對被測信號(hào)測量時(shí)產(chǎn)生的1周期誤差。
串口通訊是一種設(shè)備間常用的串行通訊方式,因?yàn)樗唵伪憬?,大部分電子設(shè)備都支持該通訊方式。為了保證數(shù)據(jù)傳輸和顯示的效率,傳統(tǒng)的LCD顯示方案難以滿足,所以選擇串口通訊作為頻率測量系統(tǒng)的數(shù)據(jù)輸出方式。
根據(jù)串口通訊使用的電平標(biāo)準(zhǔn),分為TTL、RS-485及RS-232等,在通用的電子器件中,TTL電平的應(yīng)用非常廣泛,選擇TTL電平可以減少電平轉(zhuǎn)化電路。本次使用的數(shù)據(jù)格式如圖6所示,采用1位起始位,8位數(shù)據(jù)位和1位停止位。
圖6 數(shù)據(jù)收發(fā)格式圖
數(shù)據(jù)輸出模塊由串口接收模塊、數(shù)據(jù)鎖存模塊、字符串轉(zhuǎn)換模塊和串口發(fā)送模塊組成,負(fù)責(zé)接收讀取命令和發(fā)送頻率測量結(jié)果,如圖7所示。
圖7 串口收發(fā)結(jié)構(gòu)圖
串口接收模塊通過接收端uart_rxd接收數(shù)據(jù),將8位的串行數(shù)據(jù)轉(zhuǎn)換成并行數(shù)據(jù)R_data并傳遞給數(shù)據(jù)鎖存模塊。接收模塊在接收到停止位后,向數(shù)據(jù)鎖存模塊發(fā)送1個(gè)完成的脈沖信號(hào)R_done。數(shù)據(jù)鎖存模塊與頻率采集模塊中存貯結(jié)果的寄存器相連接。在接收到脈沖信號(hào)時(shí),根據(jù)R_data的值將寄存器中對應(yīng)通道的頻率輸出值鎖存到data_n中,并向字符串轉(zhuǎn)換模塊發(fā)送1個(gè)脈沖信號(hào)。字符串轉(zhuǎn)換模塊在接收到脈沖信號(hào)后,將32位的頻率值分解成4個(gè)8位的數(shù)據(jù)幀,并向串口發(fā)送模塊發(fā)送使能信號(hào)send_en和第1個(gè)數(shù)據(jù)幀。串口發(fā)送模塊接收到發(fā)送使能時(shí),將8位數(shù)據(jù)幀轉(zhuǎn)換成串行信號(hào)通過發(fā)送端uart_txd發(fā)出。在完成1個(gè)數(shù)據(jù)幀的傳輸后,字符串轉(zhuǎn)換模塊會(huì)接收到發(fā)送模塊返回的脈沖信號(hào)W_done,隨后向串口發(fā)送模塊發(fā)送下一幀的數(shù)據(jù)和使能信號(hào),直到數(shù)據(jù)發(fā)送完成。
串口收發(fā)模塊的驗(yàn)證需要接收發(fā)送串行數(shù)據(jù),為了確保該模塊能與外界正常的收發(fā)數(shù)據(jù),所以采用Quartus II中的SignalTap II工具來驗(yàn)證數(shù)據(jù)輸出模塊的時(shí)序關(guān)系。由于系統(tǒng)時(shí)鐘的信號(hào)為50 MHz,為了更便捷地觀察輸出模塊的時(shí)序,在模塊頂層通過對系統(tǒng)時(shí)鐘進(jìn)行處理得到115 200 Hz的時(shí)鐘信號(hào)并在SignalTap中將其綁定為采樣時(shí)鐘。然后再篩選出待觀察的信號(hào),并選擇接收端uart_rxd的下降沿作為本次測試的唯一觸發(fā)條件。完成設(shè)置后,編譯、下載到實(shí)驗(yàn)板并運(yùn)行。
通過USB轉(zhuǎn)TLL轉(zhuǎn)換器將PC計(jì)算機(jī)與FPGA實(shí)驗(yàn)板相連接,在計(jì)算機(jī)的串口軟件中選擇對應(yīng)的COM口,并將波特率設(shè)置為115 200 bit/s,數(shù)據(jù)位設(shè)置為8位,校驗(yàn)位設(shè)置為None,停止位設(shè)置為1,并將顯示和發(fā)送的數(shù)據(jù)格式設(shè)置為十六進(jìn)制進(jìn)行數(shù)據(jù)接收發(fā)送。完成設(shè)置后,在發(fā)送的文本框中輸入第1個(gè)通道頻率測量值的讀取命令“01”并點(diǎn)擊發(fā)送按鈕。此時(shí)在SignalTap界面中就可以看到數(shù)據(jù)的傳輸,如圖8所示。
圖8 SignalTap仿真圖
圖8中,第1個(gè)周期是數(shù)據(jù)的起始位,此時(shí)接收端uart_rxd從高電平變?yōu)榈碗娖?。?個(gè)周期到第9個(gè)周期為數(shù)據(jù)幀的位0到位7,位0為高電平,其他位為低電平,數(shù)據(jù)為十六進(jìn)制的“01”。根據(jù)接收到的數(shù)據(jù)判斷此時(shí)應(yīng)該發(fā)送通道1的頻率值data_A。經(jīng)過字符串轉(zhuǎn)換模塊依次輸出4個(gè)8位data_byte。可以看到圖8中,發(fā)送端uart_txd的第9到49周期4個(gè)數(shù)據(jù)幀轉(zhuǎn)換成串行信號(hào)并輸出。測試結(jié)果如圖9所示,此時(shí)計(jì)算機(jī)上就能收到FPGA的返回值“00 98 96 80”。將其換算成十進(jìn)制值即為10000000,其值為通道1信號(hào)的頻率。
圖9 串口軟件測試圖
為了檢測所設(shè)計(jì)的多通道頻率檢測系統(tǒng)的頻率測量精度,用KEYSIGHT的33500B信號(hào)發(fā)生器對Agilent的53132A頻率計(jì)和本系統(tǒng)進(jìn)行對比實(shí)驗(yàn)。將本系統(tǒng)放大倍數(shù)設(shè)置為10倍,即每次測量頻率的時(shí)間為100 ms。對頻率為100 Hz~10 MHz、占空比為50%的方波信號(hào)進(jìn)行測試,測試數(shù)據(jù)如表2所示。
從表2可以看出,在響應(yīng)時(shí)間縮短到100 ms的情況下,本系統(tǒng)的測量靈敏度為1 Hz,與標(biāo)準(zhǔn)頻率計(jì)53132A的測量結(jié)果的相對誤差<0.5 ppm。
表2 頻率測試數(shù)據(jù)表
將該系統(tǒng)應(yīng)用在如圖10所示的集成式石英諧振器中來驗(yàn)證測頻系統(tǒng)的實(shí)際使用價(jià)值。集成式石英諧振器是以AT切石英晶片為基片,晶片上含有3個(gè)輸出正弦信號(hào)的諧振器。當(dāng)受到外力作用后,3個(gè)諧振器會(huì)出現(xiàn)不同的頻率變化,將這3個(gè)諧振器的諧振信號(hào)經(jīng)電路互作差頻處理,可得到多路差頻信號(hào),通過各路差頻信號(hào)的變化就可以分析集成式石英諧振器的受力情況。根據(jù)該現(xiàn)象可將集成式石英諧振器應(yīng)用在高精度加速度計(jì)和姿態(tài)測量中。
圖10 集成式石英諧振器結(jié)構(gòu)示意圖
由于該敏感元件的電極數(shù)量較多,測頻時(shí)若采用硬件電路就需要較多的電子元件,復(fù)雜的測頻電路會(huì)帶來噪聲且導(dǎo)致信號(hào)衰減。采用本文的方案就可以有效地解決測頻電路導(dǎo)致的問題,并可以提高測量速度。通過本文設(shè)計(jì)的系統(tǒng)和標(biāo)準(zhǔn)頻率計(jì)同時(shí)測量集成式石英諧振器的各路差頻信號(hào),測試結(jié)果如表3所示。
表3 集成式石英諧振器各路差頻信號(hào)測試表 Hz
由于集成式諧振器激勵(lì)電路和差頻電路存在電路噪聲、干擾等因素,導(dǎo)致輸出的差頻信號(hào)占空比會(huì)在50%附近波動(dòng),所以會(huì)導(dǎo)致自適應(yīng)倍頻電路鎖相模塊中的鑒相器輸出抖動(dòng),使得測量結(jié)果出現(xiàn)偏差,由于差頻信號(hào)的頻率較小,所以與標(biāo)準(zhǔn)頻率計(jì)相比誤差<1 Hz,滿足測量需求,同時(shí)100 ms就可以采集到3路差頻信號(hào),增強(qiáng)了測量的時(shí)效性。
本文在已有的測頻方式基礎(chǔ)上整理優(yōu)化,設(shè)計(jì)了基于數(shù)字鎖相環(huán)的FPGA多通道頻率檢測系統(tǒng),通過頻率計(jì)采集模塊和串口收發(fā)模塊將采集部分和傳輸部分結(jié)合,增強(qiáng)了系統(tǒng)的整體性。并通過標(biāo)準(zhǔn)信號(hào)發(fā)生器和集成式石英諧振器進(jìn)行了測量實(shí)驗(yàn)。實(shí)驗(yàn)結(jié)果表明,設(shè)計(jì)的多通道頻率檢測系統(tǒng)能夠在保證穩(wěn)定和精確的基礎(chǔ)上,更快速地采集多個(gè)輸入信號(hào)的頻率。在集成式石英諧振器等需要采集多通道頻率信號(hào)的情況下具有廣泛的應(yīng)用價(jià)值。參考文獻(xiàn):
[1] 張新海,雷勇.基于單片機(jī)的寬帶高精度頻率計(jì)設(shè)計(jì)[J].噪聲與振動(dòng)控制,2008,8(4):158-160.
[2] 姜志健,莊建軍,陳旭東,等.基于FPGA的高精度頻率計(jì)的設(shè)計(jì)與實(shí)現(xiàn)[J].電子測量技術(shù),2017(5):41-46.
[3] 丁然,陳金鷹,趙雨.基于FPGA實(shí)現(xiàn)簡易數(shù)字頻率計(jì)的設(shè)計(jì)[J].中國集成電路,2012(6):30-33.
[4] 黎山峰,楊雷,孫建軍.基于NiosⅡ的FPGA頻率計(jì)設(shè)計(jì)與實(shí)現(xiàn)[J].儀表技術(shù)與傳感器,2016(8):105-108.
[5] 徐偉,吳靜,楊陽,等.等精度信號(hào)參數(shù)測量儀設(shè)計(jì)[J].實(shí)驗(yàn)技術(shù)與管理,2018(6):100-104.
[6] 劉歡,董浩斌,葛健,等.基于Overhauser效應(yīng)的磁場梯度探測器[J].儀器儀表學(xué)報(bào),2015(3):592-600.
[7] 田文杰,陳福彬,佟盟,等.不同電極數(shù)石英諧振器集群力敏特性分析[J].中國慣性技術(shù)學(xué)報(bào),2019,27(4):516-523.
[8] 李銳,田帆,鄧賢君,等.基于FPGA的全數(shù)字延時(shí)鎖相環(huán)的設(shè)計(jì)[J].現(xiàn)代電子技術(shù),2019(6):69-71.