鄒 宇,王 承
(武漢理工大學(xué) 信息工程學(xué)院,武漢 430070)
計數(shù)器作為一種測量工具在儀器儀表、通信和電路控制中有著廣泛的應(yīng)用。隨著通信電子技術(shù)的飛速發(fā)展.計數(shù)器的應(yīng)用領(lǐng)域得到了不斷擴展.功能也進(jìn)一步得到了加強。近年來,多功能計數(shù)器正在向數(shù)字化的領(lǐng)域過渡,其優(yōu)點在于硬件簡單、適應(yīng)性強而且極大地提高了測量的精度、測量的范圍與測量的內(nèi)容,總體性能明顯優(yōu)于一般的模擬式測量。測量一個信號的頻率、周期及兩路同周期信號的相位差在工程上有著重要的意義,多功能計數(shù)器的設(shè)計與制作,涉及到單片機技術(shù)、信息存儲技術(shù)、人機界面技術(shù)等多方面理論知識和實際制作技術(shù),本文介紹了一種基于Nios II處理器多功能計數(shù)器。系統(tǒng)以FPGA為核心,通過對正弦信號進(jìn)行濾波和放大,得到幅值合適的正弦波,然后利用遲滯電壓比較器對正弦信號整形,得到標(biāo)準(zhǔn)的方波,再由FPGA對其頻率、周期及相位差進(jìn)行測量。Nios II處理器可以根據(jù)用戶的需要來調(diào)整嵌入式系統(tǒng)的特性、性能以及成本,快速使得產(chǎn)品推向市場,擴展產(chǎn)品的生命周期,并且避免處理器的更新?lián)Q代。對于頻率和周期的測量系統(tǒng)采用了高速現(xiàn)場可編程邏輯門陣列FPGA實現(xiàn)高速信號的高精度測量,能夠很好的解決單片機受本身時鐘頻率和指令運算周期的限制造成的測頻速度慢的問題。對于相位差的測量,通過在FPGA內(nèi)部搭建鑒相器再利用脈沖計數(shù)的方法來實現(xiàn),相對于數(shù)字鑒相技術(shù)實現(xiàn)相位測量方法而言,既提高了測量精度,整體來說又相對降低了布線難度。
多功能計數(shù)器整體系統(tǒng)結(jié)構(gòu)由待測信號放大模塊、信號整形模塊、FPGA模塊、LCD顯示模塊構(gòu)成。其中FPGA模塊中內(nèi)嵌了Nios處理系統(tǒng)、FPGA頻率測量模塊以及FPGA相位差測量模塊。待測正弦波信號經(jīng)信號放大模塊放大后,得到幅值合適的正弦波波形,進(jìn)入調(diào)理整形電路處理,由遲滯電壓比較器整形處理得到標(biāo)準(zhǔn)的方波,再送入FPGA內(nèi)部,Nios II處理系統(tǒng)控制頻率測量及相位差測量模塊對信號進(jìn)行測量。Nios II系統(tǒng)獲取頻率測量及相位差測量模塊的測量數(shù)據(jù)后進(jìn)行數(shù)據(jù)處理,將處理得到的數(shù)據(jù)送到LCD1602顯示,完成多功能計數(shù)器的頻率、周期、相位差測量功能。具體的系統(tǒng)框圖如圖1所示。
圖1 多功能計數(shù)器整體系統(tǒng)結(jié)構(gòu)框圖
1.1.1 信號調(diào)理整形電路
待測信號在進(jìn)入FPGA系統(tǒng)進(jìn)行分析之前,首先需要經(jīng)過信號放大器進(jìn)行放大來得到符合幅值要求的信號,信號放大器可采用高帶寬電壓反饋型運放OPA690。在運放的電源和地之間通過接104電容來消除電源紋波。為了使信號能很好的被電壓比較器識別,可以通過改變接在運放的電阻值來改變信號的放大倍數(shù)。OPA690的增益帶寬積為300MHz,這也就是說在放大3倍的前提下系統(tǒng)也能夠通過100MHz的信號。
信號經(jīng)放大電路放大后需由整形電路整形,由于輸入信號的頻率范圍具有差異,在測量不同范圍的頻率時采用模擬通道選擇器(MAX309)選擇整形電路。電路中采用低頻比較器LM311對1到200KHz的低頻信號整形,通過高頻比較器TL3116對200KHz以上的高頻信號整形。采用雙向二級管限幅,保護(hù)比較器。因為遲滯電壓比較器具有較高的抗干擾性,所以系統(tǒng)采用遲滯電壓比較器而不采用普通的過零電壓比較器。再輸出接施密特觸發(fā)器74HC74整形,消除信號抖動。電路中施密特觸發(fā)器74HC74均采用±3.3V供電,使信號能夠直接輸入FPGA。測相的兩路信號經(jīng)過整形時,要使產(chǎn)生的額外相差最小,必須保證兩路通道參數(shù)的一致性,選用TI公司的雙路比較器TLC372。具體的低頻整形電路原理圖和高頻整形電路原理圖分別如圖2和如圖3所示。
圖2 低頻整形電路原理圖
圖3 高頻整形電路原理圖
1.1.2 FPGA頻率測量模塊
頻率測量模塊由100MHZ標(biāo)準(zhǔn)時鐘、計數(shù)控制器、計數(shù)器組成。計數(shù)控制器接收來自處理器的信號對計數(shù)器進(jìn)行清零、允許計數(shù)等操作。在F_clear的下降沿對計數(shù)器進(jìn)行清零;當(dāng)F_en為高時計數(shù)器允許計數(shù),否則禁止計數(shù)。通過檢測F_flag信號的電平狀態(tài)可以判斷計數(shù)是否完成。
計數(shù)控制器與待測信號時鐘同步,因而消除了對待測信號計數(shù)所產(chǎn)生的個字誤差。在測量中,由于標(biāo)準(zhǔn)時鐘計數(shù)器的啟動和停止都是在標(biāo)準(zhǔn)時鐘的上升沿觸發(fā)的,因而可能會對標(biāo)準(zhǔn)時鐘計數(shù)產(chǎn)生至多±1個字誤差。在100MHz標(biāo)準(zhǔn)時鐘下,采用等精度頻率測產(chǎn)生的誤差為1/100,000,000,測量范圍為0~100MHz。周期通過頻率計算得到且其與頻率具有相同的精度。
1.1.3 FPGA相位差測量模塊
相位差測量模塊由鑒相器和計數(shù)器組成。其中鑒相器由一個異或門和D觸發(fā)器組成。經(jīng)整形后的兩路同頻信號經(jīng)過異或門后輸出一路方波,方波的高電平即為兩路同頻信號高電平之差,其與周期之比即為相位差。D觸發(fā)的輸出用來區(qū)別兩路信號的先后。采用100MHz時鐘信號對異或門輸出方波的高電平進(jìn)行計數(shù),獲得高電平時間。相位差
根據(jù)上述對于FPGA頻率測量模塊和相位差測量模塊的分析,可以得到頂層文件圖如圖4所示。
圖4 FPGA測頻、測相位差部分頂層文件圖
1.1.4 NIOS II處理系統(tǒng)
SOPC是Altera公司提出的片上系統(tǒng)解決方案。用戶利用SOPC Builder可構(gòu)建處理器軟核及一些器件驅(qū)動。NIOS II是一款高性能32位軟核CPU,它包括三種軟核CPU:高性能軟核、精簡軟核和標(biāo)準(zhǔn)軟核。所有軟核都是100%代碼兼容,設(shè)計者可根據(jù)系統(tǒng)需要選擇CPU來調(diào)整嵌入式系統(tǒng)的性能及成本。本系統(tǒng)中用來控制FPGA頻率、相位差測量模塊及處理顯示本系統(tǒng)中的數(shù)據(jù)。具體軟件操作過程中,LCD1602模塊用于數(shù)據(jù)顯示,SDRAM用來運行程序和存放數(shù)據(jù),PIO口讀取來自頻率測量模塊和相位差測量模塊的數(shù)據(jù)。利用NIOS II處理器控制頻率測量模塊和相位差測量模塊的運行和進(jìn)行相關(guān)數(shù)據(jù)處理,并在LCD1602上顯示,實現(xiàn)了片上系統(tǒng)。避免了傳統(tǒng)的外掛單片機所帶來的線路復(fù)雜和系統(tǒng)穩(wěn)定性降低。
系統(tǒng)軟件在NIOS II編譯軟件中以C語言代碼形式編寫。系統(tǒng)開機啟動后,系統(tǒng)自動初始化整個系統(tǒng),然后進(jìn)入系統(tǒng)主循環(huán)。主循環(huán)開始,先對計數(shù)器進(jìn)行清零操作,清零結(jié)束后啟動測量,計數(shù)器開始計數(shù),當(dāng)?shù)竭_(dá)一定時間后,停止測量,不斷檢測標(biāo)志位,標(biāo)志位置位表示測量完成。當(dāng)沒有測量完成時,系統(tǒng)進(jìn)入等待狀態(tài),等待測量完成。如果測量完成,通過讀取計數(shù)模塊的值并做數(shù)據(jù)處理后送到LCD1602顯示。具體的軟件流程圖如圖5所示。
圖5 系統(tǒng)軟件設(shè)計流程圖
對于頻率測量部分控制要求:1) 將F_en置低,F_clear置高;2) 將F_clear置低;3) 將F_clear置高,F(xiàn)_en置高;4) 延時;5)將F_en置低;6) 檢測F_flag電位,為低時讀出計數(shù)值。由于相位測量部分會自動進(jìn)行清零及計數(shù)操作,所以無須控制。
具體的仿真設(shè)置步驟:1)提供頻率測量部分所需時序;2)將標(biāo)準(zhǔn)時鐘設(shè)為50MHz(電路中使用了鎖相環(huán)倍頻至100MHz);3)將IN1(頻率測量信號輸入)端設(shè)置為 period 200ns 、offset 0ns、duty cycle 50% ;4)將IN2(相位差測量信號輸入,與IN1共同完成相位差測量)端設(shè)置為 period 200ns 、offset 20ns、duty cycle 50% 。
上面過程中需要特別說明的是:1)時鐘設(shè)置可以在0到100MHz間隨意設(shè)置,此處僅舉例而已。2)3、4兩步設(shè)置被測頻信號及同頻相位差信號,頻率此處設(shè)置為5MHz,相位差此處設(shè)置為36度且第一路信號相位超前。
圖6 系統(tǒng)仿真結(jié)果圖
在仿真過后,進(jìn)行了具體實物制作,得到了實物測頻率、周期時的圖片,具體實物測量結(jié)果圖如圖7所示。
圖7 實物測量結(jié)果圖
本文采用等精度測量的方法測量頻率周期、鑒相器分辨出相位差后用100M時鐘計數(shù)測頻,相關(guān)指標(biāo)都能很好的體現(xiàn)出系統(tǒng)高精度的特點。摒棄了傳統(tǒng)的FPGA與單片機相結(jié)合的方案,實現(xiàn)了
片上多功能計數(shù)器系統(tǒng),各種數(shù)據(jù)處理功能都可以在FPGA器件中完成,系統(tǒng)外圍電路簡單,測頻的精度和穩(wěn)定性都相對較高,也能夠縮短測頻時間。系統(tǒng)設(shè)計具有方式靈活、便于移植和修改、可升級等優(yōu)勢,擁有很好的應(yīng)用前景。
[1] 康華光.電子技術(shù)基礎(chǔ)[M].北京:高等教育出版社,2006.
[2] 潘松,黃繼業(yè).EDA技術(shù)與VHDL(第二版)[M].北京:清華大學(xué)出版社,2007.
[3] 黃智偉.全國大學(xué)生電子設(shè)計競賽系統(tǒng)設(shè)計[M].北京:北京航空航天大學(xué)出版社,2006.
[4] 潘松,黃繼業(yè),曾筑.SOPC實用教程[M].北京:清華大學(xué)出版社,2005.
[5] 徐海軍,葉衛(wèi)東. FPGA在高性能數(shù)據(jù)采集系統(tǒng)中的應(yīng)用[J].計算機技術(shù)與應(yīng)用,2005,25(1).
[6] 郝統(tǒng)關(guān),程明.基于FPGA NiosII的等精度頻率計設(shè)計[J].電測與儀表,2009,2.