鄒 宇,王 承
(武漢理工大學 信息工程學院,武漢 430070)
計數器作為一種測量工具在儀器儀表、通信和電路控制中有著廣泛的應用。隨著通信電子技術的飛速發展.計數器的應用領域得到了不斷擴展.功能也進一步得到了加強。近年來,多功能計數器正在向數字化的領域過渡,其優點在于硬件簡單、適應性強而且極大地提高了測量的精度、測量的范圍與測量的內容,總體性能明顯優于一般的模擬式測量。測量一個信號的頻率、周期及兩路同周期信號的相位差在工程上有著重要的意義,多功能計數器的設計與制作,涉及到單片機技術、信息存儲技術、人機界面技術等多方面理論知識和實際制作技術,本文介紹了一種基于Nios II處理器多功能計數器。系統以FPGA為核心,通過對正弦信號進行濾波和放大,得到幅值合適的正弦波,然后利用遲滯電壓比較器對正弦信號整形,得到標準的方波,再由FPGA對其頻率、周期及相位差進行測量。Nios II處理器可以根據用戶的需要來調整嵌入式系統的特性、性能以及成本,快速使得產品推向市場,擴展產品的生命周期,并且避免處理器的更新換代。對于頻率和周期的測量系統采用了高速現場可編程邏輯門陣列FPGA實現高速信號的高精度測量,能夠很好的解決單片機受本身時鐘頻率和指令運算周期的限制造成的測頻速度慢的問題。對于相位差的測量,通過在FPGA內部搭建鑒相器再利用脈沖計數的方法來實現,相對于數字鑒相技術實現相位測量方法而言,既提高了測量精度,整體來說又相對降低了布線難度。
多功能計數器整體系統結構由待測信號放大模塊、信號整形模塊、FPGA模塊、LCD顯示模塊構成。其中FPGA模塊中內嵌了Nios處理系統、FPGA頻率測量模塊以及FPGA相位差測量模塊。待測正弦波信號經信號放大模塊放大后,得到幅值合適的正弦波波形,進入調理整形電路處理,由遲滯電壓比較器整形處理得到標準的方波,再送入FPGA內部,Nios II處理系統控制頻率測量及相位差測量模塊對信號進行測量。Nios II系統獲取頻率測量及相位差測量模塊的測量數據后進行數據處理,將處理得到的數據送到LCD1602顯示,完成多功能計數器的頻率、周期、相位差測量功能。具體的系統框圖如圖1所示。

圖1 多功能計數器整體系統結構框圖
1.1.1 信號調理整形電路
待測信號在進入FPGA系統進行分析之前,首先需要經過信號放大器進行放大來得到符合幅值要求的信號,信號放大器可采用高帶寬電壓反饋型運放OPA690。在運放的電源和地之間通過接104電容來消除電源紋波。為了使信號能很好的被電壓比較器識別,可以通過改變接在運放的電阻值來改變信號的放大倍數。OPA690的增益帶寬積為300MHz,這也就是說在放大3倍的前提下系統也能夠通過100MHz的信號。
信號經放大電路放大后需由整形電路整形,由于輸入信號的頻率范圍具有差異,在測量不同范圍的頻率時采用模擬通道選擇器(MAX309)選擇整形電路。電路中采用低頻比較器LM311對1到200KHz的低頻信號整形,通過高頻比較器TL3116對200KHz以上的高頻信號整形。采用雙向二級管限幅,保護比較器。因為遲滯電壓比較器具有較高的抗干擾性,所以系統采用遲滯電壓比較器而不采用普通的過零電壓比較器。再輸出接施密特觸發器74HC74整形,消除信號抖動。電路中施密特觸發器74HC74均采用±3.3V供電,使信號能夠直接輸入FPGA。測相的兩路信號經過整形時,要使產生的額外相差最小,必須保證兩路通道參數的一致性,選用TI公司的雙路比較器TLC372。具體的低頻整形電路原理圖和高頻整形電路原理圖分別如圖2和如圖3所示。

圖2 低頻整形電路原理圖

圖3 高頻整形電路原理圖
1.1.2 FPGA頻率測量模塊
頻率測量模塊由100MHZ標準時鐘、計數控制器、計數器組成。計數控制器接收來自處理器的信號對計數器進行清零、允許計數等操作。在F_clear的下降沿對計數器進行清零;當F_en為高時計數器允許計數,否則禁止計數。通過檢測F_flag信號的電平狀態可以判斷計數是否完成。
計數控制器與待測信號時鐘同步,因而消除了對待測信號計數所產生的個字誤差。在測量中,由于標準時鐘計數器的啟動和停止都是在標準時鐘的上升沿觸發的,因而可能會對標準時鐘計數產生至多±1個字誤差。在100MHz標準時鐘下,采用等精度頻率測產生的誤差為1/100,000,000,測量范圍為0~100MHz。周期通過頻率計算得到且其與頻率具有相同的精度。
1.1.3 FPGA相位差測量模塊
相位差測量模塊由鑒相器和計數器組成。其中鑒相器由一個異或門和D觸發器組成。經整形后的兩路同頻信號經過異或門后輸出一路方波,方波的高電平即為兩路同頻信號高電平之差,其與周期之比即為相位差。D觸發的輸出用來區別兩路信號的先后。采用100MHz時鐘信號對異或門輸出方波的高電平進行計數,獲得高電平時間。相位差


根據上述對于FPGA頻率測量模塊和相位差測量模塊的分析,可以得到頂層文件圖如圖4所示。

圖4 FPGA測頻、測相位差部分頂層文件圖
1.1.4 NIOS II處理系統
SOPC是Altera公司提出的片上系統解決方案。用戶利用SOPC Builder可構建處理器軟核及一些器件驅動。NIOS II是一款高性能32位軟核CPU,它包括三種軟核CPU:高性能軟核、精簡軟核和標準軟核。所有軟核都是100%代碼兼容,設計者可根據系統需要選擇CPU來調整嵌入式系統的性能及成本。本系統中用來控制FPGA頻率、相位差測量模塊及處理顯示本系統中的數據。具體軟件操作過程中,LCD1602模塊用于數據顯示,SDRAM用來運行程序和存放數據,PIO口讀取來自頻率測量模塊和相位差測量模塊的數據。利用NIOS II處理器控制頻率測量模塊和相位差測量模塊的運行和進行相關數據處理,并在LCD1602上顯示,實現了片上系統。避免了傳統的外掛單片機所帶來的線路復雜和系統穩定性降低。
系統軟件在NIOS II編譯軟件中以C語言代碼形式編寫。系統開機啟動后,系統自動初始化整個系統,然后進入系統主循環。主循環開始,先對計數器進行清零操作,清零結束后啟動測量,計數器開始計數,當到達一定時間后,停止測量,不斷檢測標志位,標志位置位表示測量完成。當沒有測量完成時,系統進入等待狀態,等待測量完成。如果測量完成,通過讀取計數模塊的值并做數據處理后送到LCD1602顯示。具體的軟件流程圖如圖5所示。

圖5 系統軟件設計流程圖
對于頻率測量部分控制要求:1) 將F_en置低,F_clear置高;2) 將F_clear置低;3) 將F_clear置高,F_en置高;4) 延時;5)將F_en置低;6) 檢測F_flag電位,為低時讀出計數值。由于相位測量部分會自動進行清零及計數操作,所以無須控制。
具體的仿真設置步驟:1)提供頻率測量部分所需時序;2)將標準時鐘設為50MHz(電路中使用了鎖相環倍頻至100MHz);3)將IN1(頻率測量信號輸入)端設置為 period 200ns 、offset 0ns、duty cycle 50% ;4)將IN2(相位差測量信號輸入,與IN1共同完成相位差測量)端設置為 period 200ns 、offset 20ns、duty cycle 50% 。
上面過程中需要特別說明的是:1)時鐘設置可以在0到100MHz間隨意設置,此處僅舉例而已。2)3、4兩步設置被測頻信號及同頻相位差信號,頻率此處設置為5MHz,相位差此處設置為36度且第一路信號相位超前。


圖6 系統仿真結果圖
在仿真過后,進行了具體實物制作,得到了實物測頻率、周期時的圖片,具體實物測量結果圖如圖7所示。

圖7 實物測量結果圖
本文采用等精度測量的方法測量頻率周期、鑒相器分辨出相位差后用100M時鐘計數測頻,相關指標都能很好的體現出系統高精度的特點。摒棄了傳統的FPGA與單片機相結合的方案,實現了
片上多功能計數器系統,各種數據處理功能都可以在FPGA器件中完成,系統外圍電路簡單,測頻的精度和穩定性都相對較高,也能夠縮短測頻時間。系統設計具有方式靈活、便于移植和修改、可升級等優勢,擁有很好的應用前景。
[1] 康華光.電子技術基礎[M].北京:高等教育出版社,2006.
[2] 潘松,黃繼業.EDA技術與VHDL(第二版)[M].北京:清華大學出版社,2007.
[3] 黃智偉.全國大學生電子設計競賽系統設計[M].北京:北京航空航天大學出版社,2006.
[4] 潘松,黃繼業,曾筑.SOPC實用教程[M].北京:清華大學出版社,2005.
[5] 徐海軍,葉衛東. FPGA在高性能數據采集系統中的應用[J].計算機技術與應用,2005,25(1).
[6] 郝統關,程明.基于FPGA NiosII的等精度頻率計設計[J].電測與儀表,2009,2.