叔晟竹, 吳校生, 王振瑜
(上海交通大學 電子信息與電氣工程學院 微納米加工技術國家級重點實驗室,上海 200240)
在微傳感器、微諧振器等微機電系統(micro-electro-mechanical system,MEMS)器件中,處理電路需要同時獲取被測信號的幅值和相位信息[1]。目前主要通過先進的矢量網絡分析儀[2]獲得這些信號信息。矢量網絡分析儀成本高、體積龐大,應用局限性大,在一些微小器件的信號檢測中,不利于系統集成。開發一種面向微小MEMS器件應用、便于系統集成的矢量信號分析廉價系統具有廣泛需求。
本文研究并開發了一種基于現場可編輯門陣列(field programmable gate array,FPGA)的矢量信號分析集成系統。該系統采用高性能模/數轉換器(analog-to-digital converter,ADC)模塊將待測模擬信號數字化并采集到FPGA芯片,在FPGA中實現矢量信號分析等數據處理。這種方法結合FPGA快速信號處理的優勢,同時,其結構簡單、成本低且易于調試,非常適合用于開發這種快速信號處理集成系統。
本文采用的矢量信號分析系統通過硬件模塊完成被測模擬信號的數字化,在FPGA芯片中實現數字矢量信號分析,具體內容如圖1所示,系統總體分為應用器件和矢量分析兩部分。

圖1 系統總體框圖設計
應用器件部分主要包括壓電諧振器及其驅動端和輸出端。微諧振器的驅動信號需要幅值穩定和共振頻率跟蹤,通過采用自動增益控制(automatic gain control,AGC)實現振幅穩定,采用鎖相環(phase-locked loop,PLL)實現跟蹤頻率諧振點。AGC以被測信號的幅值作為放大器增益的調節依據,來實現穩幅。PLL以被測信號的相位信息作為依據,來調節直接數字式頻率合成器(direct digital synthesizer,DDS)信號發生器輸出信號的頻率。
矢量分析部分包括信號采集與信號處理。首先,DDS產生同頻率的參考正交信號M1,M2,使用A/D轉換模塊分別采集被測信號和參考信號,實現信號數字化并輸出到FPGA芯片,運用FPGA強大的數據并行處理能力進行數字信號處理,運用Verilog語言編程實現數字矢量信號分析技術,矢量分析采用數字鎖定技術來實現,從而獲得待測信號幅值與相位的瞬變特性。經過進一步數據處理,FPGA輸出幅值和相位控制信號給應用器件部分,用以控制MEMS微傳感器的工作狀態。
本系統采用DDS芯片產生信號,相比于使用FPGA內部DDS軟核(IP)產生信號的方式,可以更好實現驅動信號與參考信號的完全同步,同時也減少了系統資源占用。
矢量信號分析有多種實現方法,目前,主流采用數字鎖定技術[3]。數字鎖定技術的基本結構包括信號信道、參考信道、乘法器和低通濾波器(low pass filter,LPF)等。乘法器是用參考信號r(t)與待測信號x(t)進行乘法運算,從而實現頻譜遷移,再經過低通濾波器濾除倍頻分量和噪聲,其輸出對輸入信號的幅度和相位都敏感,達到了同時解調幅值與相位信息的目的。
DDS信號產生模塊可以同時輸出同相分量和正交分量。正交矢量型鎖定放大器的兩個參考信號是同頻同幅,但相位相差90°,在同相通道中參考輸入信號的相移為θ(0°~360°),正交通道中參考輸入信號的相移為θ+90°。正交鎖定算法流程如圖2所示。

圖2 正交鎖定算法流程
設待測信號為x(t)=Vsin(ωt+θ)+n(t)。
參考信號為rs(t)=sinωt,rc(t)=cosωt。


同時,利用求得的開方求得的值去除I,Q可得到相位差對應的sin和cos值,使用反正切算法就可以求出相位差θ=arctan(Q/I)。
以上公式算法均可在FPGA這個通用的硬件平臺上實現,其中需要的乘除法,開平方與反正切均可以使用軟核IP進行運算,大大提高了開發效率。
FPGA可以達到數百個I/O接口,可以很容易使用不同I/O接口連接外設滿足本系統需要連接很多外設的需求。FPGA同時包含單片機和DSP軟核,并且I/O數僅受FPGA自身I/O限制,所以單片機和DSP能實現的功能,FPGA一般都能實現。
本系統采用賽靈思(Xilinx)公司Spartan—6系列的XC6SLX25型號芯片[4]。Spartan—6系列實現了性價比與功耗上的平衡,設計開發人員能夠將精力集中到創新工作上。
FPGA與A/D采樣模塊接口設計采用與ADC模塊接口匹配的ASP—134603—01板對板連接器。通過該連接器給ADC子板供電及通信。主要包括AD7960器件工作模式設置引腳EN[3︰0]、轉換控制引腳CNV±,LVDS數據輸出引腳D±,LVDS緩沖數據輸出引腳DCO±,LVDS時鐘輸入引腳 CLK±,子板電源輸入引腳VIN等。
針對需要檢測的MEMS微傳感器,用于采集信號的ADC需要有夠高的采樣精度和足夠大的采樣頻率,在本系統中,ADC采用Analog Devices公司的 AD7960芯片。AD7960是一款18位、最高吞吐速率5MSPS、電荷再分配逐次逼近型(SAR)模數轉換器[5]。SAR架構提供無與倫比的噪聲性能(信噪比(signal to noise ratio,SNR):99 dB)和線性度(積分非線性(INL):±0.8LSB(典型值),差分非線性(differential non-linear,DNL):±0.5LSB(典型值))。本系統設計了用于信號采集的A/D轉換PCB,可同時進行待測信號與兩路參考正交信號的A/D轉換與FPGA采集。
根據檢測系統需要,信號產生模塊需要產生三路同頻率且其中兩路始終保持相位差90°的信號。為了檢測系統對幅值與相位的解調能力,信號產生模塊也需要提供幅度、相移可控的信號。
本系統的信號產生模塊采用AD9959芯片,AD9959含有4個DDS,提供各通道獨立的頻率、相位和振幅控制。因為所有通道共用一個系統時鐘,因此固有的同步,也支持多個設備的同步。AD9959采用先進的數/模轉換器(digital to analog converter,DAC)技術,提供低高性能低功耗。該器件集成了四個高速10位DAC具有優良的寬帶和窄帶SFDR。每個通道有一個專門的32位頻率調諧字,14位相位偏移,和一個10位幅度調節輸出。AD9959可以滿足本系統功能實驗的全部需求,通過STM32F103單片機發送控制信號給AD9959模塊可以輸出幅度、頻率及相移可調模擬正弦波。
本系統的軟件部分通過Verilog-HDL語言在FPGA平臺上實現,主要任務包括ADC轉換數字信號的采集、正交矢量分析鎖定算法的實現:
ADC數字信號采集主要包含:接口的配置、對FPGA的管腳約束、FPGA與ADC之間通信差分信號轉換的實現以及ADC信號采集,本系統的ADC采用回波時鐘模式,即采用FPGA發出的時鐘(clock,CLK)信號工作,可以很好地實現FPGA主機與ADC之間的同步,FPGA采用100 MHz的時鐘信號,ADC采用4 MHz采樣率,待測信號的中心頻率設置為200 kHz,因此一個信號周期可以有20個采樣點,能夠非常完好的還原信號。
仿真分為功能仿真和時序仿真兩種。1)對程序進行的仿真,驗證電路的功能在理想情況下是否符合設計初衷的要求;2)考慮電路延遲與布線延遲,看電路能否滿足時序要求[6]。采用Modelsim 對FPGA設計電路進行仿真。測試向量(Testbench)是用來測試源代碼所施加的激勵信號。源代碼編好后,以一系列激勵信號作為源代碼的輸入,查看輸出信號正確與否,進而驗證源代碼的正確性。
本文使用ISE與Modelsim聯合仿真功能,將ISE中芯片庫參數,IP核轉化成Modelsim識別的庫文件,進行算法的功能驗證。圖3為Modelsim 仿真。待測信號I與正交參考信號均采用ISE提供的DDS IP核產生,并參考ADC采樣率對產生的正弦波進行采樣。通過M×S,并對其低通濾波可實現待測信號同相直流分量與正交直流分量的提取。最終經過一系列算法模塊后解調出幅值與相位信息。

圖3 Modelsim功能仿真
根據系統總體框架設計,用于實際測試的系統的硬件實物結構如圖4所示,FPGA平臺通過JTAG與電腦進行信息傳輸,包括FPGA配置文件的燒寫與矢量信號分析結果的傳輸。系統左半部分為應用器件,包括壓電諧振器、DDS模塊,AGC,PLL,功率放大等電路;右半部分為矢量信號分析電路,主要為A/D轉換模塊、DDS模塊、FPGA平臺。

圖4 硬件系統實物
通過改變輸入待測信號幅值來測量本檢測系統對幅值檢測的能力。本實驗輸入信號均由AD9599產生,產生信號頻率為200 kHz,輸出的幅值由STM32單片機進行控制,幅值控制字(0~1023)來控制AD9599輸出0~523 mV的幅值。本實驗進行了幅值掃描,步長設置為100控制字,對應50 mV,分別運用TDS2024B示波器和FPGA檢測系統對幅值進行檢測。
FPGA實驗實測數據與示波器實測數據擬合如圖5(a)所示,可見兩個系列數據相關度達到0.998 1,FPGA測得數據的零點漂移在0.585 1 mV。FPGA實驗測試數據誤差如圖5(b)所示,可以看出誤差控制在較小的范圍內。

圖5 矢量信號測試系統幅值標定實驗
通過改變輸入待測信號幅值來測量本檢測系統對相位解調的能力。本實驗輸入信號均由AD8599產生,輸出的相移由STM32單片機進行控制,相位控制字(0~16385)來控制AD8599輸出0°~360°的相移。分別運用示波器和FPGA檢測系統對幅值進行檢測。示波器采用TDS2024B型號,采樣率200 MHz,時間測量精度可達到2 ns,導出的測量結果可以很好地作為實驗參考數據。
FPGA實測的數據通過在線邏輯分析儀(ChipScope)在線測量,ChipScope可以顯示實時的相位解調出的數據。根據 CORDIC IP核的定義,反正切后輸出的為全象限、有符號的二進制弧度值,輸出16位數據,其中最高位為符號位,2位整數位,13位小數位。經過數值轉換可以求得FPGA測試的相位差值。
FPGA實驗實測數據與示波器實測數據擬合曲線如圖6(a)所示,可見兩個系列數據相關度達到0.999 1,FPGA測得數據的零點漂移在-0.060 9°。FPGA實驗實測數據與示波器實測數據誤差百分比如圖6(b)所示,從數據可以看出FPGA實驗測試的數據誤差很好地控制在±1 %以內。

圖6 矢量信號測試系統相位標定實驗
本文設計的數字矢量信號分析系統電路簡單、抗干擾能力強、精度高、處理速度快,可以很方便地測出被測信號的幅值與相位特性。經過實驗測試,本文設計的基于FPGA的矢量信號分析系統解調出的幅值和相位信息與實際情況理論值誤差很小,具有良好線性度,滿足MEMS器件應用需求。