王善斌, 曹幫琴
(1.山東理工大學 計算機科學與技術學院, 山東 淄博 255049;2. 信陽職業技術學院 數學與計算機科學學院, 河南 信陽 464000)
基于FPGA與MSP430的數字頻率計設計與實現
王善斌1, 曹幫琴2
(1.山東理工大學 計算機科學與技術學院, 山東 淄博 255049;2. 信陽職業技術學院 數學與計算機科學學院, 河南 信陽 464000)
摘要:采用ALTERA公司的EP4CE15F17C8與TI公司的MSP430F5438A,利用多周期同步測量技術與數字移相技術相結合,設計實現了對1Hz~100MHz信號的周期、頻率、占空比及相位差進行高精度測量的數字頻率計.實驗結果表明,其測量結果能通過LCD穩定顯示,測量誤差≤0.001%,具有精度高、誤差小等優點.
關鍵詞:FPGA ; MSP430; 多周期同步; 數字移相相
在電子技術中,周期、頻率、占空比及相位差是最基本的參數,這些參數的測量非常重要.測量頻率周期的方法一般有兩種:閘門法和填充法[1].閘門法測量時,隨著頻率的降低誤差增大;填充法測量時,隨著頻率的升高誤差增大.這兩種測量通常采用脈沖計數法,即在待測信號的高電平或低電平用一高頻時鐘脈沖進行計數, 然后根據脈沖的個數計算待測信號寬度.待測信號相對于計數時鐘通常是獨立的,其上升、下降沿不可能正好落在時鐘的邊沿上,因此該法的最大測量誤差為一個時鐘周期[2].多周期同步與數字移相相結合的測量就可以大幅度降低這種誤差.
1多周期同步與數字移相相結合的測量原理

圖1 多周期同步與數字移相相結合的測量原理框圖
多周期同步與數字移相相結合的測量原理如圖1所示,當fx單獨輸入時為頻率測量,當fx、fy雙通道輸入時為相位差測量,當fx、fy相連接一起輸入時為周期測量及占空比測量.在測量頻率時,預置閘門時間Tp經同步電路產生與被測信號同步的實際閘門時間T.在實際閘門時間T內,主門I~主門V同時打開,計數器I~V分別對被測信號、時鐘信號、時鐘相移90°信號、時鐘相移180°信號、時鐘相移270°信號的周期進行累計.計數器I記錄被測信號的周期數,稱為事件計數器;其它幾個計數器記錄時鐘和相移時鐘的同期數,稱為時間計數器.由運算電路計算出fx=4NAf0/(N0+N1+N2+N3).預置閘門、實際閘門、被測信號、時鐘及相移時鐘的時序如圖2所示.從表達式和時序圖中可以看到, 這種方法實際等效于將原始計數時鐘四倍頻,以4CLK的時鐘頻率對待測信號進行計數測量,從而將測量精度提高到原來的4倍.實際應用中,可根據FPGA資源的數量多少再增加倍數,從而得到更高的精度[3].

圖2 多周期同步與數字移相相結合的測量工作波形圖
在測量相位差時,如圖1所示,fx、fy經過同步電路D觸發器(即鑒相器)產生相位差信號.在實際閘門時間T內,計數器AI記錄了相位差產生的次數,計數器AII~AV在產生的相位差高電平內分別對被測信號、時鐘信號、時鐘相移90°信號、時鐘相移180°信號、時鐘相移270°信號的周期進行累計.由運算電路計算出Tx-y=(N0+N1+N2+N3)/ 4NAf0.
在測量周期及占空比時,如圖1所示,fx經過同步電路D觸發器在閘門時間T內輸出fx.在實際閘門時間T內,計數器AI、BI記錄了被測信號的周期數,計數器AII、BII~AV、BV在被測信號fx的高電平內與低電平內分別對被測信號、時鐘信號、時鐘相移90°信號、時鐘相移180°信號、時鐘相移270°信號的周期進行累加.由運算電路計算Tx=(NA0+NB0+NA1+NB1+NA2+NB2+NA3+NB3)/ 4NAf0,占空比=(NA0+NA1+NA2+NA3)/Tx.
2系統整體方案
系統整體方案框圖如圖3所示,分為調理電路、FPG測量模塊、MSP430控制顯示模塊.系統工作過程如下:正弦信號fx、fy經過調理電路變成方波信號,送入FPGA進行頻率、周期、占空比及相位差的測量,然后把測量結果送到MSP430計算并顯示,MSP430通過按鍵來控制FPGA發送的結果.調理電路把正弦變成等頻率的方波信號,調理電路采用高速AD9696,如圖4所示.

圖3 系統整體方案框圖
測量部分主要由FPGA完成,由頻率測量模塊、周期測量模塊、占空比測量模塊、相位差測量模塊及控制模塊構成.系統實現的關鍵是保證送入各計數器的時鐘相對延遲精度,即要保證計數時鐘之間的相位差.由于通常原始時鐘頻率已經相對較高,對時鐘的延遲時間只有幾ns,使用普通的延遲線芯片無法達到精度要求[4-6].而采用具有集成度高、可靠性高及高速等特點的FPGA能夠完全實現所提出的測量方法,其RTL如圖5所示.
FPGA把測量的結果通過時序與數據線傳送給MSP430進行處理并顯示.FPGA與MSP430通信的時序圖如圖6所示,FPGA把P1.0的上升沿作為發送數據的起始端,在P1.1的每個周期內發送數據.MSP430把P1.0的上升沿作為數據接收的起始端,在P1.1的每個下降沿接收數據.

圖4 調理電路電路圖

圖5 FPGA測量部分RTL

圖6 FPGA與MSP430的通信時序圖
MSP430主要完成數據的選擇接收、計算及顯示,其工作流程如圖7所示.當開機加電后,MSP430先初始化系統時鐘、鍵盤及I/O口,根據鍵盤發送命令選擇要接收的頻率、周期、占空比或者相位差數據,P1.1口下降沿發生中斷時接收數據并計算顯示,然后進入低功耗.

圖7 MSP430程序流程圖
本系統經過測試表明,1Hz~100MHz正弦信號的頻率和周期測量相對誤差的絕對值不大于10-4,時間間隔測量相對誤差的絕對值不大于10-3,測量數據刷新時間不大于2s,測量結果穩定,并能自動顯示單位.實現了寬頻帶、高精度、低誤差、低成本的設計.
參考文獻:
[1]楊海鋼, 孫嘉斌. FPGA器件設計技術發展綜述[J]. 電子與信息學報, 2010(3):714-727.
[2]李威, 楊海鋼, 龔蕭. FPGA連線連接盒中基于信息熵優化的結構設計[J]. 計算機輔助設計與圖形學學報,2006(2):203-208.
[3]廖永波,李平,阮愛武 .一種FPGA 的可編程邏輯單元的全覆蓋測試方法[J]. 儀器儀表學報,2010(4):857-861.
[4] 彭宇,姜紅蘭,楊智明,等. 基于DSP 和 FPGA的通用數字信號處理系統設計[J].國外電子測量技術,2013(1):17-21.
[5] 王躍飛,侯 亮,劉菲.基于FPGA的汽車CAN網絡實時管理系統設計[J]. 電子測量與儀器學報,2013(8):721-728.
[6] 鄒建,林強,王二鋒.基于FPGA的波形發生器設計[J].電子測量技術,2012(7):47- 50.
(編輯:郝秀清)
Design and implementation of digital cymometer based on MSP430 and FPGA
WANG Shan-bin1, CAO Bang-qin2
(1.School of Computer Science and Technology, Shandong University of Technology, Zibo 255049, China;2.School of Mathematics and Computer Science, Xinyang Vocational and Technical College, Xinyang 464000, China)
Abstract:A digital cymometer was designed using Altera EP4CE15F17C8 and MSP430F5438A from TI company and combing with multi cycle synchronous measurement technology and digital phase shifting technique. It measured the cycle, frequency, duty ratio and phase difference of 1Hz~100MHz signal with high precision.The measurement results are stable shown on LCD. The error is less than 0.001%, with the advantages of high accuracy and low error.
Key words:FPGA ; MSP430 ; multi cycle synchronous; digital phase shifting
收稿日期:2015-09-14
作者簡介:王善斌,男,472569655@qq.com
文章編號:1672-6197(2016)05-0061-03
中圖分類號:TP301
文獻標志碼:A