摘要:本文設計實現了基于ARM微處理器和實時操作系統μC/OS-Ⅱ的簡易幅頻特性測試儀,給出了硬件結構圖和用戶任務函數。充分利用了ARM7系列微處理器的強大功能,最大程度的減少了外圍電路,降低了系統的功耗。并成功地在微處理器上移植了實時操作系統μC/OS-Ⅱ,提高了系統的穩定性。
關鍵詞:ARM微處理器;μC/OS-Ⅱ;幅頻特性
中圖分類號:TP249文獻標識碼:A文章編號:1009-3044(2008)30-0756-02
The Design of Simple Low-frequency Magnitude-Frequency Characteristics Tester Based on ARM
ZHANG Yan-wei
(Air Defense Forces Command Academy,Zhengzhou 450052,China)
Abstract: This design realizes a low-frequency magnitude-frequency characteristics tester based on the ARM microprocessor and the real-time operating system μC/OS-Ⅱ.It gives the hardware structure drawings and the user tasks functions, has actual using value and significance of studies.
Key words:ARM microprocessor; μC/OS-Ⅱ; magnitude-frequency
1 引言
幅頻特性是一個電子網絡的傳輸特性,它是網絡對不同頻率信號的作用效果的重要技術指標。以常用的低通濾波器為例,它的作用就是使頻率高于某一特定頻率的信號得到最大的衰減,從而得到低于該特定頻率的信號。幅頻特性曲線可以直觀地反映濾波器對不同頻率信號的衰減程度,利用特性曲線可以衡量濾波器的性能。傳統的幅頻特性測量方法,是在一系列規定的頻率點上,逐點測量網絡增益(或衰減),從而確定幅頻特性曲線。用這種方法得到的幅頻特性曲線比較精確,但其缺點是操作繁瑣、工作量大、容易漏測某些細節,不能反映出被測網絡的動態特性[1]。而現有的幅頻特性測試儀也不能很好地滿足用戶的需求,要么存在設備體積大,易有故障,并且操作復雜等缺點,難以滿足尤其是現場自動測試的要求的缺點,要么就是結構復雜、價格昂貴、維護困難。
某些基于八位單片機(如51系列單片機)的幅頻特性測試儀,由于八位機自身的限制,其系統不得不加上龐大的外圍器件(如信號發生單元、ADC、DAC等),這就從根本上決定了其系統在開發調試、測量精度、系統維護等方面存在缺陷。隨著ARM技術的發展,某些微控制器內部集成了ADC、DAC等大量外設,這為我們設計生產測量精度更高、系統使用和維護更為快捷方便的新型幅頻特性測試儀提供了條件。
2 系統工作原理
本系統結合了點頻法和掃頻法的優點,利用ARM單片機產生一個幅度恒定且頻率隨時間連續變化的信號作為被測網絡的掃頻信號,掃頻信號經過被測網絡后,其幅度會根據被測網絡的幅頻特性做一定變化,ARM單片機對被測網絡的輸出信號進行采樣和處理,得到輸出信號的幅度有效值,然后送到液晶顯示模塊或者經D/A轉換后送到示波器,通過液晶顯示器或者示波器就可以直觀的得到被測網絡的幅頻特性曲線。系統原理圖如圖1。
3 硬件結構
根據幅頻特性測試儀的特點,在設計時主要考慮系統的低功耗,掃頻信號的精確性和可控性,數據采集和處理準確而快速,以及顯示直觀等方面。本系統采用philips公司生產的LPC2132單片機作為主控MCU,該單片機具有16KB片內靜態RAM,64KB片內Flash程序存儲器,1個8路10位A/D轉換器和1個D/A轉換器,使系統外圍不需要擴展存儲器和D/A和A/D轉換模塊,大大節省了成本,降低了功耗[2]。系統的結構框圖如圖2。
3.1 信號發生電路
LPC2132具有一個10位數/模轉換器,其輸出信號的幅度和頻率可編程設置。輸出信號的幅度范圍0~Vref,Vref為參考電壓。輸出信號的初始頻率在程序中設定,并可根據用戶的要求,通過鍵盤改變掃頻信號的頻率步進。掃頻正弦波信號通過Aout引腳輸出到被測網絡。掃頻信號經過被測網絡的濾波等操作后輸出,此時信號即為被測幅度信號。
3.2 數據采樣電路
被測幅度信號經過整流電路后,變為強度為幅度信號強度有效值的直流信號,通過AD0.0引腳輸入到LPC2132的A/D轉換模塊。該模塊為10位逐次逼近式模/數轉換器,其電壓測量范圍為0-3.3V,因此要求掃頻信號的強度不能高于3.3V,即參考電壓(不管是ADC還是DAC)不能超過3.3V。該模塊的轉換時鐘和轉換精度可以根據系統需要編程設定。
3.3 液晶顯示電路
為了使用戶能夠直觀地觀察到被測網絡的幅頻特性,我們通過液晶顯示器直觀地顯示被測網絡的幅頻特性曲線,并在截止頻率對應位置以豎線和字母ω0和ω1明確顯示。而且,用戶還可以通過鍵盤選擇粗顯或精顯,選擇粗顯可以對被測網絡對高帶寬信號的整體幅頻特性進行觀察,選擇精顯則可以對截止頻率附近頻率幅頻特性的細微變化進行觀察。基于以上考慮,我們在系統中選擇使用了OCM12864-3液晶顯示模塊。OCM12864-3是128×64點陣型液晶顯示模塊,可顯示各種字符及圖形,可與CPU直接接口,具有8位標準數據總線、6條控制線及電源線。考慮到充分利用LPC2132的強大功能,我們在系統中沒有使用液晶控制模塊,而是利用軟件對液晶顯示進行管理。這樣就節省了設計成本并降低了系統的功耗。
3.4 鍵盤電路
為了方便用戶的操作使用,并使系統更為人性化,我們為用戶提供了八個按鍵,用戶可以通過按鍵選擇開始停止測試、掃描步進、粗精顯選擇等功能。按鍵按下后產生外部中斷,使系統可以更快速地響應用戶要求,并降低了軟件設計的難度。
4 軟件設計
為了提高系統工作的穩定性,充分利用LPC2132的資源,我們在系統中嵌入了實時操作系統μC/OS-Ⅱ,μC/OS-Ⅱ是一個源碼開放的搶占式實時操作系統。它內核短小精悍、可裁減、執行時間確定。系統大部分代碼采用C語言編寫,與硬件有關的部分都集中在兩個文件中,給出了規范的接口說明,移植相當方便,可應用于目前大多數型號的8位、16位、32位CPU[4]。我們已經成功地將該操作系統移植到LPC2132中,由于篇幅所限,這里沒有給出移植過程,具體移植細節參考參考數目5、6。根據系統工作特點,我們主要建立了以下幾個任務:(優先級從高到低)
按鍵處理任務:
void Key(void *pdata) 該任務優先級最高,運行后建立一個信號量,并開始等待該信號量,其他任務得到CPU的使用權。當有按鍵按下后,產生外部中斷,中斷服務程序發出該信號量,然后退出。任務得到信號量后開始處理用戶按鍵要求。
掃頻信號輸出任務:
void OutSignal(void *pdata) 該任務的主要功能是根據用戶要求產生掃頻信號,在輸入信號采樣完成后,根據設定步進改變掃頻信號的頻率值,并將掃頻信號的頻率值放入消息隊列,供輸入信號使用;
輸入信號采樣任務:
void Insig(void *pdata) 在采樣任務中,對輸入信號進行數次采樣,計算均值,得到輸入信號的幅度,并將該幅度值和掃頻信號的頻率值(由掃頻信號輸出任務提供)保存在一個全局數組中,供采樣數據處理任務使用。
采樣數據處理任務:
void SampData(void *pdata) 在該任務中,對采樣數據進行分析,舍棄誤差較大的數據,并根據數據的整體特征填入合適的值。計算截至頻率,并將采樣數據轉換為顯示數據,填入顯示緩沖區。
液晶顯示控制任務:
void LCDDisp(void *pdata) 主要根據用戶需求(粗顯或精顯),分別把顯示緩沖區里的內容送給液晶顯示器,在顯示器上顯示特性曲線和截至頻率。
掃頻信號輸出任務和輸入信號采樣任務之間的通信使用消息隊列。輸入信號采樣任務、采樣數據處理任務和液晶顯示控制任務之間的通信則使用了全局變量。
4 測量結果分析
本系統基本掃描頻率為100Hz至200KHz,按照步進10Hz掃描,在截至頻率附近按照步進1Hz掃描,得到的截至頻率可精確到1Hz,能滿足使用要求。
參考文獻:
[1] 王衛東.模擬電子電路基礎[M]. 西安:西安電子科技大學出版社,2003.2.
[2] 周立功,張華,等.深入淺出ARM7-LPC213x/214x[M]. 北京:北京航空航天大學出版社,2006.1.
[3] Jean J.labrosse著,邵貝貝,等譯.嵌入式實時操作系統μC/OS-Ⅱ[M]. 北京:北京航空航天大學出版社,2003.5.
[4] 寧杰城,等.ARM7內核上的uC/OS-II嵌入式系統移植[J]. 中國測試技術,2005,3(31,2).
[5] 朱華軍著.uC/OS-II操作系統在ARM處理器上的移植[J]. 計算機工程.
注:本文中所涉及到的圖表、注解、公式等內容請以PDF格式閱讀原文