吳正平++朱壽羽++郭家琪++查彬



摘 要 針對高精度脈沖信號的幅度、頻率、占空比以及上升時間等參數測量的要求,主要是以FPGA為核心處理器,STM32作為人機交互單元,對經過信號處理模塊處理過的脈沖信號進行測量、處理,參數設置以及顯示。最終在50 輸入阻抗的條件下,能夠測量5Hz-10MHz的脈沖信號;占空比:1%-99%;幅度:0.1V-10V;脈沖上升時間:40-999ns誤差絕對值分別小于0.01%、0.1%、0.1%、1%;并在此基礎上制作一個標準矩形脈沖信號發生器,各參數范圍可調,且精度高,可靠性好,具有很高的應用價值。
【關鍵詞】等精度 脈沖 FPGA STM32
1 引言
在目前科技高速發展的大背景下,進而對于脈沖信號測量精度的相關要求也越來越高,對脈沖信號參數測量的儀器應用也越來越廣泛。尤其是在雷達信號等在微弱信號領域以及在檢測各種環境下時鐘信號時對于脈沖信號檢測的精度要求很高,所以說像一些先進的軍用偵察機、反潛機只有少數幾個國家能夠做出來,就是因為這些技術的核心就是對小信號檢測的分析處理技術要求十分高。
脈沖信號包含了豐富的高頻和低頻成分。在數據采集系統中,通常需要脈沖信號源提供的信號來檢測數據采集設備的工作狀況。此外,脈沖信號源產生的信號還可以作為控制信號,用于實現對采集設備的控制。因此,在實際應用中要準確的測量各種脈沖信號就顯得尤為重要。本文針對的高速脈沖信號的測量要求和方法,采用FPGA為主核心處理器,STM32為人機交互協調控制器,通過外圍信號調理和整形電路對被測信號進行放大和整形,便于FPGA的實時準確采樣。同時為了便于系統自校準和對外信號輸出需要,本文還特別設計了標準矩形脈沖信號發生器,輸出信號頻率、幅度、脈寬在較大范圍內皆可調,同時將脈沖信號上升時間控制在20ns以內,并且使其過沖不大于1%。
2 系統設計原理及測量方案
2.1 系統設計原理
高速脈沖信號的測量主要包括對脈沖信號的頻率、幅度、占空比、及其上升時間的測量。因為高速脈沖信號速度快、不易采集分析,而以現場可編程門陣列(FPGA)作為核心,FPGA核心頻率可以達到幾百兆赫茲,并行處理能力強,適于處理高速信號,具體系統原理圖如圖1所示。信號調理電路對輸入脈沖信號的進行衰減或放大,一路經過高速AD轉換將數字信號以并行數據的方式和FPGA通信,另一路通過高速比較器將方波送入FPGA;FPGA對方波信號進行分頻,利用100MHZ的時鐘計數器進行頻率、占空比,電壓幅度,脈沖信號上升時間的測量,將測量結果送給STM32F103VET6,STM32F103VET6微控制器控制鍵盤輸入和LCD液晶顯示屏輸出結果等,同時利用單片機對FPGA進行控制。同時由于選用EP4CE6E22C8N型號FPGA為處理器,功能強大,外加DA轉換和信號放大電路可以較容易實現任意函數信號輸出。
2.2 參數測量實現方法
2.2.1 頻率測量
FPGA的晶振頻率設置為100M,則每一個信號的周期為:
STM32控制FPGA的分頻系數n,不同頻率范圍的信號輸入時自動通過調整n,從而達到最理想的測量精度和速度。從硬件電路處理過的方波信號第一個上升沿開始,計數FPGA的上升沿,直到方波信號的第n個上升沿停止,FPGA的上升沿個數為k,則通過式(1)計算得到脈沖信號的頻率。
2.2.2 占空比測量、脈沖幅度Vm、上升時間tτ測量
多被測脈沖的占空比測量采用直接脈寬測量。脈寬測量通常采用脈沖計數法,即在待測信號的高電平或低電平用高頻時鐘脈沖進行計數,然后根據脈沖個數計算待測信號寬度。則高電平計數值為NH,低電平為NL,則占空比為:
由AD9280進行高速AD轉換對采樣得到后的波形進行上升沿檢測,將檢測信號由FPGA處理再送至STM32通過算法計算,處理得到Vm、tτ。
2.2.3 標準矩形脈沖信號發生器
由FPGA模塊的DA_out經AD9742處理,經LMH6643為核心的信號調理模塊將信號進行調整放大(放大倍數為四倍),再由以MC74HC4051AD為核心的模擬開關選擇衰減檔,最后由THS3091對信號進一步處理輸出,最終可得到一個頻率f0為1MHZ,脈寬 tw為100ns,幅度為5±0.1V(負載電阻為50 )上升時間tτ不大于30ns,過沖σ不大于5%的標準矩形脈沖信號。通過程序的設計使輸出信號的幅度、頻率、占空比可調且誤差小于2%。
3 系統硬件設計
3.1 信號調理電路
信號調理電路如圖2所示,采用JRC-21F/4100對輸入信號DC耦合,用AD603放大(程控增益)對信號進一步處理,最后用LMV7235構成電壓比較器,并可以利用滯回比較器的滯回特性消除抖動的影響。有效控制輸入脈沖信號在被檢測之前的可測性,為后期處理做一個良好的鋪墊。有利于降低整體誤差并提高系統的穩定性。
前端信號處理采用AD603可變增益放大器(Variable Gain Amplifier,VGA),其增益變化范圍為:10dB~30d,帶寬90M,由LMH6643將電壓信號輸出:Vout=(2V+)-(V-)。對于輸入信號進行調整從而更好的適應本系統的檢測機制,使檢測結果更加準確。
3.2 高速A/D轉換電路
高速AD轉換電路采用AD9280ARS(32M采樣率AD轉換器),其中采用BAT54S組成二極管鉗位保護電路,通過AD轉換后將8位數字信號由DSO.D[0,7]送至FPGA,再通過FSMC總線傳送到STM32,由STM32處理器對數據信號進行計算,從而得出被測信號的幅值。
3.3 單片機及其外圍電路
以STM32為核心的單片機處理電路,與FPGA之間進行實時通信,用相應算法對經過FPGA分頻處理的脈沖信號進行計算,最終在LCD顯示屏上顯示相應的幅度、頻率、占空比、上升時間的測量參數。
本次設計中的LCD是由單獨的一片CPLD驅動的,由FPGA發送顯示內容,采用STM32單片機能夠更快的分析、處理、發送數據,同時較其他單片機如51單片機擁有更多的I/O端口和更高的處理速度。以HD7279為按鍵檢測芯片,具有較好的按鍵消抖功能,按鍵對被測信號的波形進行調節,提高檢測靈敏度,對于附加功能標準矩形脈沖信號發生器中的輸出信號頻率、幅度等參數也可以通過按鍵進行調節,從而適應各種要求的信號輸出,提高使用者的體驗。
4 系統軟件設計
開機后首先進行系統初始化并進入功能選擇界面,主要有時鐘、鍵盤初始化,掃描鍵盤I/O端口,獲得相應按鍵值,LCD初始化,A/D采樣初始化,各種外設芯片初始化,設置I/O端口,初始化序列及相關函數。所有初始化進程在開機時開機動畫界面導入期間完成,提高使用效率和美觀。采用5.4TFT LCD彩屏,用于顯示相關檢測參數。
因為在該設計中增加了標準矩形脈沖信號發生器,可根據不同的按鍵狀態進入相應的工作模式所以用按鍵對兩種模式進行切換,通過按鍵控制測量脈沖信號的幅度、頻率、占空比以及上升時間等。單片機將來自FPGA的數據進行轉換和處理,將結果顯示在液晶屏上,在開機初始化時對LCD初始化,將屏幕分為波形顯示區域、數據顯示區域、功能調節區域。波形和波形顯示區域可以實時顯示被測信號的各種參數;功能調節區域主要對被測信號的測試條件進行調節,同時對矩形脈沖信號的各項輸出參數進行調節,使其能夠達到需求的范圍。具體系統框圖如圖3所示。
5 結論
測量數據:
本測量儀實現了方波信號頻率(誤差不超過0.01%)、占空比(誤差不超過0.1%)、幅度(誤差不超過0.1%)、脈沖信號上升時間測量(誤差不超過1.5%),且最高測試頻率能達到10MHZ,很好的實現了測量6HZ~8MHZ相關數據。實際測量數據如表1所示。
標準矩形脈沖信號發生器,通過按鍵對輸出脈沖信號的頻率、脈寬、幅度進行調節,對于上身時間控制在20ns以內,整體性能相對較高。可滿足一般情況下脈沖信號的輸出。實際測量數據如表2所示。
本次設計充分利用FPGA和單片機的協同處理能力,使數據更加快速、有效的進行傳輸和處理,在未來的設計中將會進一步進行優化,更多的應用于工業4.0進程中的更多領域,有利于更好的對多種復雜信號進行處理。
參考文獻
[1]徐文強,任勇峰,文豐.基于FPGA的高速脈沖信號源的設計與實現[J].微計算機信息,2007,23(02):251-252,229.
[2]胡宴如,耿蘇燕.模擬電子技術基礎[M].北京:高等教育出版社,2010.
[3]何希才譯.運算放大器應用電路設計[M].北京:科學出版社,2007.
[4]張陽,劉軍,嚴漢宇等.精通STM32F4[M].北京:北京航空航天大學出版社,2015.
[5]吳厚航.深入淺出玩轉FPGA[M].北京:北京航空航天大學出版社,2013.
[6]譚浩強.C程序設計(第三版)[M].北京:清華大學出版社,2005.
[7]謝浪清.高速等精度頻率測量的研究[J].中國科技信息,2006,15.
[8]王誠,吳繼華.Altra FPGA/GPLD設計(基礎篇)[M].北京:人民郵電出版社,2005.
[9]焦新泉,秦麗.信號傳輸過程中的反射及其抑制方法[J].測試技術學報,2004,18(z2):93-96.
作者單位
三江學院工程教育學院 江蘇省南京市 210012