嵌入式數字示波器的設計
_OSStartHighRdy是啟動運行時調用的,具體的路徑是主程序main.C里調用操作系統啟動函數OSStart,然后調用OSStartHighRdy和_OSStartHighRdy。_OSStartHighRdy通過調用OSIntCtxSw_1米設置操作系統啟動并加裁優先級最高的任務。
4.2 數據采集
數據采集模塊是嵌入式數字示波囂的重要組成部分,模塊功能的具體實現主要依靠采樣和數據傳輸任務。
數據采集模塊的程序流程圖如圖3所示。

圖3數據采集模塊流程圖
系統工作過程中.由于輸入信號的頻率不固定.要求隨時可以通過人機交互界面來調節系統顯示參數。顯示合適的周期數以便對波形避行觀察分析。采樣任務的主要功能就是顯示參數的變化來調節ADC的采樣頻率和FIFO的數據存儲頻率,并控制ADC工作/停止狀態和FIFO存儲芯片的寫狀態,使ADC和FIFO的工作時序相協調。
在S3C2410A的控制下4路ADC同時開始工作,當4組FIFO全滿時,可產生一個存儲全滿信號量。數據傳輸任務的主要功能就是在接收到存儲全滿信號量后,通過DMA通道依次將4組FIFO中的數據轉存到SRAM中。S3C2410A提供了2種DMA數據傳輸方式:單數據傳輸和4數據長的突發傳輸。根據系統的硬件電路設計我們選擇單數據傳輸方式。利用DMA傳輸方式可以不通過CPU中斷來實現數據的傳輸,在數據傳輸過程中解放了CPU,使CPU 可以工作在多任務環境下,從而提高整個系統的性能。
4.3圖形顯示
圖形顯示分為2個工作頁面,分別由2個任務來控制:波形照示和輸入輸出顯示任務。
頁面1為波形顯示頁面,主要用于顯示4通道輸入波形和相關信息,如:周期、脈寬、最大幅值等。通過鼠標對系統靜顯示參數進行修改,如:水平時間分辨率和垂直電壓分辨率等,可方便地對波形進行放大/縮小,左右移動,上下移動,便于對波形觀察、對比和分析。
頁面2為輸入輸出顯示頁面。當切換到輸入輸出顯示頁面時,輸入輸出顯示任務開始對16路輸入口進行高低電平的檢測,該任務通常處于掛起狀態,切換到輸入輸出顯示頁面時才開始運行,切換到波形顯示頁面時立即掛起。
每個頁面為一個窗體,窗體又分為2個部分:靜態和動態。靜態部分是固定的,在顯示波形的時候,該部分沒有變化,也不受其它影響;動態部分是圖形按鈕以及那些隨著按鈕變化的部分。將窗體分為2個部分可以減少顯示代碼的重復讀入,提高顯示效率。
5 測試與結論
測試部分包括波形和功能測試。部分實測數據如表1(幅值誤差為滿量程誤差)所示。
表1 部分實測數據

波形測試是在50Hz~100KHz的頻率范圍內先選取固定的頻率點,利用信號發生器產生輸入信號,在顯示屏上觀察波形并記錄相關數據。
功能測試是對各種圖形按鈕:動/靜態、通道選擇、顯示/隱藏、放大/縮小,、左/右移動、上/下移動、左/右移動步進距離進行單操作和多種復合操作,觀察功能是否能實現。
通過測試得出如下結論:該嵌入式數字示波器支持4通道輸入,采樣頻率范圍:2KHz~20 MHz,輸入電壓范嗣:0~+4V.測量顯示的信號頻率、脈寬和幅值精度:±0.5%。整機具有良好的人機交互界面,操作方便、功能比較豐富。既可對單通道的波形進行觀察分析,也可對4通道的波形進行對比分析。
本文作者創新點:采用ARM920T核微控制器S3C2410A作為嵌入式數字示波器的主控芯片,并利用FIFO作為緩沖存儲器可支持多通道的波形顯示;采用鼠標操作界面代替傳統操
作面板;增加了輸入輸出口控制功能。


評論