孫逸潔,馬蕾
(鄭州鐵路職業技術學院,河南鄭州,450000)
本文分析了賽題要求和關鍵實現技術。根據題目基本要求和發揮部分的各項指標,本設計經觀察確認其測試結果完全符合題目要求,并對測量的范圍進行了提升,本系統可以在測試2MHz 的信號頻率時準確識別到波形類型和參數,能實現基本功能和發揮功能的要求。
1.1.1 信號調理方案設計
方案一:可選多通道放大電路。信號調理電路對應不同幅度的信號采用多種放大倍數的放大器,放大器出口至A/D轉換前采用多選一的模擬開關把信號匯總,這種調理電路優點是每一路信號都可以單獨調試,精確度高,但是為了細膩的覆蓋整個采樣的幅度空間,會造成通道數過于繁多,信號偏置控制電路復雜,手動的調試工作量繁重,并且增加了主控制器切換通道的任務量,這種方案占用電路板面積大,分布參數和抗干擾能力都有不容易解決的問題。本方案不采用這種設計。
方案二:信號調理電路采用集成程控放大器,采用專用的程控放大器電路,此類放大器具備放大和衰減的功能,無須多路模擬開關。但是在選定不同放大檔位的情況下,此類放大器需要利用外部模擬信號調整信號放大倍數和本底偏置。這種信號可利用DAC 實現,利于系統進行自校準。并且整個調理電路元器件數量少,帶寬高,本設計采用這種設計。
1.1.2 信號采樣方案設計
方案一:信號采樣電路采用和數據處理電路采用傳統控制器(包含且不限于51、STM32),利用此類控制器內部集成A/D 轉換器,將模擬信號量化成數字信號。但是這類控制器內部集成的A/D 轉換器通常都是速度較低的種類(例如逐次逼近式A/D),最高采樣率在1MHz 左右,經過計算可以滿足本題中基本要求所提供的技術參數,但是無法保證題目發揮部分中對50kHz 信號占空比精確測量的要求。因此不選用此方案。
方案二:信號采樣電路采用以FPGA 等可編程器件,利用FPGA 外部擴展高速并行A/D 轉換器,配合FPGA 內部的高速RAM,可輕松實現大于20MHz 的采樣速率,并且可以自由選擇采樣速率,適宜測量不同頻率的模擬信號,系統擴展STM32 將數據進行多種運算后,送至屏幕進行顯示。本設計采用這種設計。
1.1.3 波形判別方案設計
方案一:時域判別法:對采集的信號按照時間先后和預制的波形數據進行幅度信息的對比,對二者的差值進行分析,得到最終結果,但是此方案要求對信號調理電路的失真度要求很高,并且要求單周期內有很高的信號量化數據,這給采樣模塊提出了更高的要求,特別是當信號本身包含交流和直流成分時,此種判別方法的工作量和成功率包含很大的不確定性。本設計不采用這種設計。
方案二:頻域判別法:任何周期信號都可以通過FFT運算得到其頻譜,而且其頻譜具有鮮明的特點,通過對信號各個頻率成分的幅度信息的綜合判斷,可以穩定判定該信號的種類。本設計采用這種設計。
系統主要由信號調理電路模塊、AD 轉換模塊、數據采集和存儲模塊、數據處理模塊、顯示模塊構成,具體的總體框圖如圖1 所示。

圖1 系統總體框圖
1.2.1 系統工作分析
電源部分:本系統采用5V 供電,電源部分使用了三路線性穩壓器AMS1117 分別降壓成+3.3V,+2.5V,+1.2V 給FPGA 和MCU 供電。使用SGM3204 電荷泵產生-5V 電源供模擬電路使用。
信號輸入:信號經過J1 端子進行輸入,繼電器JD5 可選擇信號的耦合方式是交流耦合或直流耦合,繼電器JD6及周邊電路實現對輸入信號的衰減。配合后級的程控放大器來確定整機提供的幅度量程,衰減電路中的電容對高頻信號起到補償的作用。U14A 使用JFET 型運放構成電壓跟隨器,程控放大器選用AD603,MCU 可以通過改變AD603的1 腳和2 腳電壓差來改變其放大倍數,放大的范圍是從-11dB—+31dB,最高帶寬可以達到90MHZ.末級電路使用的是LMH6643 作為波形偏置電路,使采集的波形偏置到水平軸的上方,本設計使用經過濾波的PWM 來控制AD603的放大倍數和LMH6643 的偏置控制。
AD 采集:TLC5510 由FPGA 的PLL 提供25MHz 的時鐘進行實時采集,在此注意TLC5510 高速AD 的輸出不是0V 起調整的,在數據手冊中也給出了采集參考值。
當AD 采集到的數據傳遞給FPGA 之后,首先在FPGA內部首先進行了AD 值的累加取平均值,濾除掉一部分雜波,然后再將累加取平均之后的AD 值送給FPGA 觸發模塊,測頻率模塊。在FPGA 中開辟了一塊RAM 內存用于存放取樣模塊傳遞出來的AD 值,通過AD 數據的最大值和最小值,計算出幅值,測頻率模塊根據采集到的AD 數據計算在一秒以內多少個周期信號得出頻率,通過單一周期中的總AD 數據個數、高于AD 數據平均值的AD 數據個數可計算出矩形波占空比和正負脈寬等參數,測量出來的頻率以及AD 數據都通過SPI 傳遞給了STM32,AD 數據主要用于波形的顯示以及FFT 運算,通過FFT 的運算來實現波形的識別,并且根據采樣輸入信號的幅值和頻率自動設置采樣率和檔位,stm32 還負責將采集到的波形,幅值,頻率,矩形波占空比等數據在液晶屏上的顯示。
1.2.2 信號調理電路模塊
被測信號的范圍是50mV~10V,由于信號比較微弱,本身的能量比較小,本設計選用JFET 型高阻抗放大器AD825 作為輸入緩沖電路。信號調理電路設計的輸入阻抗為1MHz,輸入高頻交流信號時,電阻分壓會降低信號的帶寬,為此需要在分壓電阻上并聯電容來補償。輸入信號配置了繼電器來選擇信號的交流和直流屬性。
程控放大AD603 可通過電壓來改變增益。AD603 程控放大器的放大倍數可以通過程序設定PWM 信號來自由調整。配合前端可選擇的電路分壓網絡,自動適應大范圍變化的模擬信號,本設計中,可選擇的信號可從10mV~40V,針對被測信號的大小來調節放大器的增益,使電路增益能夠調整并得到不同幅值的輸出信號,確保數據采樣的精確性。
1.2.3 數據采集和存儲模塊
本系統數據采集和存儲模塊芯片采用Altera 公司Cyclone IV 系列高性能的FPFA:EP4CE6E22C8N。其資源豐富,該芯片有144 個引腳,6272 個邏輯單元,276480位RAM,可以滿足本設計要求。
1.2.4 數據處理模塊
STM32 是基于ARM Cortex M 處理器內核的32 位閃存微控制器,速度達到72MHz,多達20KB 的RAM,需要外圍元件少,非常適合進行例如FFT 的運算。

圖2 信號調理電路

圖3 FPGA 接口圖

圖4 STM32 部分電路圖
信號處理中,通常采用DFT 對ADC 的輸出信號進行分解,得到諧波信號。根據香農采樣定理可知,采樣頻率需要大于信號頻率的兩倍。一個采樣周期內,等時間間隔采樣N個樣值,經過FFT 之后,即可得到包含N 個點的FFT 結果。為減小誤差,N 的值通常選取2 的整數次方。
假設采樣頻率為Fs,信號頻率F,采樣點數為N。那么FFT 之后結果就是一個為N 點的復數。每一個點就對應著一個頻率點。這個點的模值,就是該頻率值下的幅度特性。

那么,在經過FFT 分析后得到的第一個點的模值是A1的N 倍,而且只有在FFT 結果點對應的頻率在ω2,ω3 時,其模值才明顯放大,在其他頻率點,模值接近于0。在這些模值明顯放大的點中,除第一個點之外的其它點模值是相應信號幅值的N/2 倍。
每個復數的相位就是在該頻率值下信號的相位:φ2,φ3。
FFT 結果有對稱性,通常我們只是用前半部分的結果,也就是小于采樣頻率一半的結果。同時也只有采樣頻率一半以內、具有一定幅值的信號頻率才是真正的信號頻率。
為了測量非正弦波的基波有效值和總諧波有效值,可以采用傅里葉算法假定被采樣的模擬信號是一個周期性時間函數,可表示為:

其離散形式為:

式中 N 為一周期采樣點數,xk為第k 次采樣值,x0、xN分別為k=0、N 時的采樣值。則基波有效值為 :

初相角為:

總諧波有效值按下式計算 :

對于波形的識別而言,對信號在頻域上的變化進行分析判斷,用來識別其波形。
正弦波:只有基波分量。
矩形波:除了基波,還有3,5,7 次等諧波分量,3次諧波為基波分量的1/3。
三角波:除了基波,還有3,5,7 次等諧波分量,3 次諧波為基波分量的1/9。
STM32 主要是用于液晶屏的顯示、檢測按鍵、與FPGA的通信、以及FFT 算法的運算,在程序的最開始 STM 首先對液晶屏、按鍵、SPI 進行初始化,然后負責與FPGA 通信,當測量按鍵被按下的時候,STM32 通過SPI 協議向FPGA發送測量指令,并進行量程控制和偏移設置,并接受來自FPGA 的數據,FPGA 傳遞的數據有多個周期的波形數據,信號的頻率,占空比等信息,STM32 對FPGA 傳遞的多個周期的AD 數據進行分析,截取其中單一周期的數據進行FFT 運算,根據FFT 運算出的基波和n 次諧波的分量情況判斷波形類型,根據AD 數據的最大值最小值計算信號的幅值,而后在液晶屏幕上實時顯示波形圖像,波形類型,頻率,占空比等信息。

圖5 STM32 程序流程圖
測試方法:在測試時,將被測參數通過本系統測量的示數與參數的標稱值進行對比,進而知到本系統的參數。本系統在測試模塊中留有測試孔,只需將波形發生器引接線與設計相接即可測量。
測試儀器:信號發生器、示波器、穩壓電源。
測試結果如表1 所示。

表1 頻率測試結果

表2 幅值測試結果

表3 占空比測試結果
我們對以STM32F103 和FPGA 為核心,實現了可以測量題目所要求的20mV~10V,1Hz~50kHz的正弦波,三角波,矩形波信號的波形類型和參數,以及實現了對頻率和幅值的擴展在實際測試當中,可以測量2MHz 的頻率時準確識別到波形類型和參數,對于測試的幅值也超越了任務的要求,實現了對于除基本要求之外的波形識別,對于正指數波、洛倫茲波、心電圖波也做了識別,對于信號的有效值、周期、矩形波的正頻寬和負頻寬參數也進行了測量,綜上所訴,本文所設計的系統其幅值和頻率范圍,擴展參數和波形的測量都達到了題目的要求,也超越了要求的精度,并實現了波形的顯示等功能,以及按照題目設計要求進行測試,詳細記錄了測試結果。完成了題目的所有設計要求。