1 引言 嵌入式數字示波器是近年發展起來的一種實現數據及波形實時顯示的智能終端設備。目前通用的數字示波器多采用DSP、內嵌微處理器型FPGA或DSP+FPGA結構。嵌入式數字示波器可看成是一種低成本、功能相對較少、可作為一個模塊使用的嵌入式智能終端。雖然DSP數據處理能力強大,運行速度較高,FPGA靈活性強,可以充分地進行設計開發和驗證,便于系統升級。但是,DSP和內嵌微處理器型FPGA一般價格較高。不適合在低成本的嵌入式數字示波器開發中使用。 ARM是面向低價位市場設計的一種RISC微處理器,其優勢是性價比高,適合嵌入式數字示波器的需求。當前采用ARM芯片設計的嵌入式數字示波器主要基于ARM7內核的微控制器S3C44BOX。采用這種結構設計的嵌入式數字示波器,由于時鐘頻率和并行處理能力較低.因此通常用于通道數較少的設計中,無法滿足對系統實時性要求較高的多通道嵌人式數字示波器的設計。本文提出了一種基于S3C2410A微控制器(ARM920T內核)和uC/OS-Ⅱ實時操作系統的設計方法,并在此基礎上開發出一款低成本且具有中文菜單人機交互界面的4通道嵌入式數字示波器產品。 2 嵌入式數字示波器原理 系統的總體設計框圖如圖1所示。 根據項目需求,本項研究的主要性能指標:4通道輸入,采樣頻率范圍為2KHz~20 MHz,輸入電壓范圍為0~±4V,頻率、脈寬和幅值(滿量程)精度:±0.5%,良好的人機交互界面。 采用S3C2410A和uC/OS..-Ⅱ相結合的設計方法。輸入前端采用模數(A/D)轉換和FIFO緩沖存儲的結構.利用FIFO在讀寫控制邏輯、高速數據交換方面的優勢,使多路數據采集和存儲同步的同時,還可改變采樣頻率切換量程。多路數據傳輸利用DMA傳輸方式,提高系統運行效率。輸出顯示端利用S3C2410A的液晶屏控制器將數字量轉換成液晶屏上的點坐標來顯示4通道的波形以及相關數據。采用鼠標對人機交互界面進行操作,減小了系統的體積,提高了系統的可操作性。 ![]() 圖1嵌入式數字示波器原理框圖 3 硬件設計 根據系統的總體功能劃分,可將硬件設計分為數據采集模塊和顯示模塊2大部分。 3.1數據采集模塊 數據采集模塊主要由MD轉換和FIFO緩沖存儲組成,系統接口如圖2所示。 ![]() 圖2數據采集系統接口圖 單路數據采集由1片運放(AD9631)、1片12位ADC (AD9224)、2片FIFO(IDT7204)組成。 AD963l是一種低畸變、低噪聲、高速運放。主要提高輸入阻抗,減小外接阻抗變化的影響。模擬輸入經AD9631處理后至AD9224,在S3C2A10A的控制下,系統產生可調頻率方波接為AD9224和IDT7204的工作信號。AD9224開始對輸入信號進行模數轉換.同時轉換輸出的數字信號保存到相應的FIFO中。FIFO存滿時,S3C2410A通過DMA通道將多路FIFO中的數據依次存放到SRAM中的固定地址區域。 S3C2410A內ADC最高工終頻率廷有2.5MHz。因此需外接高性能ADC(AD9224)。AD9224為單通道、12位.40MHz的ADC。A/D轉換將數字信號發送到FIFO。 FIFO是一種先進先出結構,沒有地址線,布線簡單,因此僅用少量的系統資源就能實現數據的快速交換。兩且控制簡單,不會產生地址沖突。FIFO采用的是4K x 9bit的CMOS雙端口存儲緩沖芯片IDT7204。AD9224輸出12位,而IDT7204輸入9位,因此在ADC數據輸出和FIFO存儲接口設計上采用2片IDT7204進行字長擴展。FIFO緩沖存儲實現的功能:接受寫信號,存放經過轉換的數字信號并依次增加地址,當FIFO存儲滿時,給出滿信號;接受讀信號,將FIFO存儲的數據讀出并存到SRAM中的同定地址處。 3.2顯示模塊 S3C2410A內置液晶屏控制器,可以支持水平/垂直像素、數據位寬、數據傳輸時間和刷新頻率不同的多種液晶顯示屏,最大可以支持256K色TFT、4K色STN彩色液晶屏。 液晶屏控制器主要用來傳輸顯示信息和必要的控制信號.如VFRAME、VLINE、VCLK和VM等。除了控制信號外,還包括傳輸顯示信息的數據接口:VD[23:0]。通過LCDCDMA來傳輸顯示信息,LCDCDMA是一種復雜的DMA傳輸方式,通過使用這種特殊的DMA傳輸方式,可以將疑示信息從幀內存中自動傳輸到液晶屏驅動器,并且不通過CPU干預直接在顯示屏上顯示信息。 4 軟件設計 根據系統的總體功能,可將嵌入式數字示波器的軟件設計分為3個模塊:uC/OS-Ⅱ的移植、數據采集和圖彤形顯示。 4.1 uC/OS-Ⅱ的移植 uC/OS-Ⅱ的移植是應用程序設計的基礎。通過uC/OS-Ⅱ內核的任務調度,可解決傳統嵌入式軟件設計中出現的編程復雜、可維護性差和系統的實時性得不到保證等問題。 uC/OS-Ⅱ在S3C2410A上的移植,重點是uC/OS-Ⅱ的任務切換機制。任務切換通過軟中斷來實現,主要包含OS_TASK_SW與_OSStartHighRdy 2個函數。OS_TASK_SW總是在任務級代碼中被調用。當操作系統作任務切換時,調用任務切換函數OS_TASK_SW,獲取中斷向量號并跳轉到相應的服務程序OSIntCtxSw。該函數前半部分是切換前任務的參數壓棧,后部分是即將運行的任務恢復.表現為參數出棧。后半部分有一個單獨的標號OSIntCtxSw_1,在匯編下霹構成了2個嵌套函數OSIntCtxSw和OSIntCtxSw_1。其中OSIntCtxSw包含了OSIntCtxSw_1,OSIntCtxSw_1的主要功能是任務的恢復運行。 _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作為緩沖存儲器可支持多通道的波形顯示;采用鼠標操作界面代替傳統操 作面板;增加了輸入輸出口控制功能。 作者:潘祥,白瑞林 來源:《微計算機信息》(嵌入式與SOC)2009年第2-2期 |