1 引言 嵌入式數(shù)字示波器是近年發(fā)展起來的一種實現(xiàn)數(shù)據(jù)及波形實時顯示的智能終端設(shè)備。目前通用的數(shù)字示波器多采用DSP、內(nèi)嵌微處理器型FPGA或DSP+FPGA結(jié)構(gòu)。嵌入式數(shù)字示波器可看成是一種低成本、功能相對較少、可作為一個模塊使用的嵌入式智能終端。雖然DSP數(shù)據(jù)處理能力強大,運行速度較高,F(xiàn)PGA靈活性強,可以充分地進行設(shè)計開發(fā)和驗證,便于系統(tǒng)升級。但是,DSP和內(nèi)嵌微處理器型FPGA一般價格較高。不適合在低成本的嵌入式數(shù)字示波器開發(fā)中使用。 ARM是面向低價位市場設(shè)計的一種RISC微處理器,其優(yōu)勢是性價比高,適合嵌入式數(shù)字示波器的需求。當(dāng)前采用ARM芯片設(shè)計的嵌入式數(shù)字示波器主要基于ARM7內(nèi)核的微控制器S3C44BOX。采用這種結(jié)構(gòu)設(shè)計的嵌入式數(shù)字示波器,由于時鐘頻率和并行處理能力較低.因此通常用于通道數(shù)較少的設(shè)計中,無法滿足對系統(tǒng)實時性要求較高的多通道嵌人式數(shù)字示波器的設(shè)計。本文提出了一種基于S3C2410A微控制器(ARM920T內(nèi)核)和uC/OS-Ⅱ?qū)崟r操作系統(tǒng)的設(shè)計方法,并在此基礎(chǔ)上開發(fā)出一款低成本且具有中文菜單人機交互界面的4通道嵌入式數(shù)字示波器產(chǎn)品。 2 嵌入式數(shù)字示波器原理 系統(tǒng)的總體設(shè)計框圖如圖1所示。 根據(jù)項目需求,本項研究的主要性能指標(biāo):4通道輸入,采樣頻率范圍為2KHz~20 MHz,輸入電壓范圍為0~±4V,頻率、脈寬和幅值(滿量程)精度:±0.5%,良好的人機交互界面。 采用S3C2410A和uC/OS..-Ⅱ相結(jié)合的設(shè)計方法。輸入前端采用模數(shù)(A/D)轉(zhuǎn)換和FIFO緩沖存儲的結(jié)構(gòu).利用FIFO在讀寫控制邏輯、高速數(shù)據(jù)交換方面的優(yōu)勢,使多路數(shù)據(jù)采集和存儲同步的同時,還可改變采樣頻率切換量程。多路數(shù)據(jù)傳輸利用DMA傳輸方式,提高系統(tǒng)運行效率。輸出顯示端利用S3C2410A的液晶屏控制器將數(shù)字量轉(zhuǎn)換成液晶屏上的點坐標(biāo)來顯示4通道的波形以及相關(guān)數(shù)據(jù)。采用鼠標(biāo)對人機交互界面進行操作,減小了系統(tǒng)的體積,提高了系統(tǒng)的可操作性。 ![]() 圖1嵌入式數(shù)字示波器原理框圖 3 硬件設(shè)計 根據(jù)系統(tǒng)的總體功能劃分,可將硬件設(shè)計分為數(shù)據(jù)采集模塊和顯示模塊2大部分。 3.1數(shù)據(jù)采集模塊 數(shù)據(jù)采集模塊主要由MD轉(zhuǎn)換和FIFO緩沖存儲組成,系統(tǒng)接口如圖2所示。 ![]() 圖2數(shù)據(jù)采集系統(tǒng)接口圖 單路數(shù)據(jù)采集由1片運放(AD9631)、1片12位ADC (AD9224)、2片F(xiàn)IFO(IDT7204)組成。 AD963l是一種低畸變、低噪聲、高速運放。主要提高輸入阻抗,減小外接阻抗變化的影響。模擬輸入經(jīng)AD9631處理后至AD9224,在S3C2A10A的控制下,系統(tǒng)產(chǎn)生可調(diào)頻率方波接為AD9224和IDT7204的工作信號。AD9224開始對輸入信號進行模數(shù)轉(zhuǎn)換.同時轉(zhuǎn)換輸出的數(shù)字信號保存到相應(yīng)的FIFO中。FIFO存滿時,S3C2410A通過DMA通道將多路FIFO中的數(shù)據(jù)依次存放到SRAM中的固定地址區(qū)域。 S3C2410A內(nèi)ADC最高工終頻率廷有2.5MHz。因此需外接高性能ADC(AD9224)。AD9224為單通道、12位.40MHz的ADC。A/D轉(zhuǎn)換將數(shù)字信號發(fā)送到FIFO。 FIFO是一種先進先出結(jié)構(gòu),沒有地址線,布線簡單,因此僅用少量的系統(tǒng)資源就能實現(xiàn)數(shù)據(jù)的快速交換。兩且控制簡單,不會產(chǎn)生地址沖突。FIFO采用的是4K x 9bit的CMOS雙端口存儲緩沖芯片IDT7204。AD9224輸出12位,而IDT7204輸入9位,因此在ADC數(shù)據(jù)輸出和FIFO存儲接口設(shè)計上采用2片IDT7204進行字長擴展。FIFO緩沖存儲實現(xiàn)的功能:接受寫信號,存放經(jīng)過轉(zhuǎn)換的數(shù)字信號并依次增加地址,當(dāng)FIFO存儲滿時,給出滿信號;接受讀信號,將FIFO存儲的數(shù)據(jù)讀出并存到SRAM中的同定地址處。 3.2顯示模塊 S3C2410A內(nèi)置液晶屏控制器,可以支持水平/垂直像素、數(shù)據(jù)位寬、數(shù)據(jù)傳輸時間和刷新頻率不同的多種液晶顯示屏,最大可以支持256K色TFT、4K色STN彩色液晶屏。 液晶屏控制器主要用來傳輸顯示信息和必要的控制信號.如VFRAME、VLINE、VCLK和VM等。除了控制信號外,還包括傳輸顯示信息的數(shù)據(jù)接口:VD[23:0]。通過LCDCDMA來傳輸顯示信息,LCDCDMA是一種復(fù)雜的DMA傳輸方式,通過使用這種特殊的DMA傳輸方式,可以將疑示信息從幀內(nèi)存中自動傳輸?shù)揭壕硫?qū)動器,并且不通過CPU干預(yù)直接在顯示屏上顯示信息。 4 軟件設(shè)計 根據(jù)系統(tǒng)的總體功能,可將嵌入式數(shù)字示波器的軟件設(shè)計分為3個模塊:uC/OS-Ⅱ的移植、數(shù)據(jù)采集和圖彤形顯示。 4.1 uC/OS-Ⅱ的移植 uC/OS-Ⅱ的移植是應(yīng)用程序設(shè)計的基礎(chǔ)。通過uC/OS-Ⅱ內(nèi)核的任務(wù)調(diào)度,可解決傳統(tǒng)嵌入式軟件設(shè)計中出現(xiàn)的編程復(fù)雜、可維護性差和系統(tǒng)的實時性得不到保證等問題。 uC/OS-Ⅱ在S3C2410A上的移植,重點是uC/OS-Ⅱ的任務(wù)切換機制。任務(wù)切換通過軟中斷來實現(xiàn),主要包含OS_TASK_SW與_OSStartHighRdy 2個函數(shù)。OS_TASK_SW總是在任務(wù)級代碼中被調(diào)用。當(dāng)操作系統(tǒng)作任務(wù)切換時,調(diào)用任務(wù)切換函數(shù)OS_TASK_SW,獲取中斷向量號并跳轉(zhuǎn)到相應(yīng)的服務(wù)程序OSIntCtxSw。該函數(shù)前半部分是切換前任務(wù)的參數(shù)壓棧,后部分是即將運行的任務(wù)恢復(fù).表現(xiàn)為參數(shù)出棧。后半部分有一個單獨的標(biāo)號OSIntCtxSw_1,在匯編下霹構(gòu)成了2個嵌套函數(shù)OSIntCtxSw和OSIntCtxSw_1。其中OSIntCtxSw包含了OSIntCtxSw_1,OSIntCtxSw_1的主要功能是任務(wù)的恢復(fù)運行。 _OSStartHighRdy是啟動運行時調(diào)用的,具體的路徑是主程序main.C里調(diào)用操作系統(tǒng)啟動函數(shù)OSStart,然后調(diào)用OSStartHighRdy和_OSStartHighRdy。_OSStartHighRdy通過調(diào)用OSIntCtxSw_1米設(shè)置操作系統(tǒng)啟動并加裁優(yōu)先級最高的任務(wù)。 4.2 數(shù)據(jù)采集 數(shù)據(jù)采集模塊是嵌入式數(shù)字示波囂的重要組成部分,模塊功能的具體實現(xiàn)主要依靠采樣和數(shù)據(jù)傳輸任務(wù)。 數(shù)據(jù)采集模塊的程序流程圖如圖3所示。 ![]() 圖3數(shù)據(jù)采集模塊流程圖 系統(tǒng)工作過程中.由于輸入信號的頻率不固定.要求隨時可以通過人機交互界面來調(diào)節(jié)系統(tǒng)顯示參數(shù)。顯示合適的周期數(shù)以便對波形避行觀察分析。采樣任務(wù)的主要功能就是顯示參數(shù)的變化來調(diào)節(jié)ADC的采樣頻率和FIFO的數(shù)據(jù)存儲頻率,并控制ADC工作/停止?fàn)顟B(tài)和FIFO存儲芯片的寫狀態(tài),使ADC和FIFO的工作時序相協(xié)調(diào)。 在S3C2410A的控制下4路ADC同時開始工作,當(dāng)4組FIFO全滿時,可產(chǎn)生一個存儲全滿信號量。數(shù)據(jù)傳輸任務(wù)的主要功能就是在接收到存儲全滿信號量后,通過DMA通道依次將4組FIFO中的數(shù)據(jù)轉(zhuǎn)存到SRAM中。S3C2410A提供了2種DMA數(shù)據(jù)傳輸方式:單數(shù)據(jù)傳輸和4數(shù)據(jù)長的突發(fā)傳輸。根據(jù)系統(tǒng)的硬件電路設(shè)計我們選擇單數(shù)據(jù)傳輸方式。利用DMA傳輸方式可以不通過CPU中斷來實現(xiàn)數(shù)據(jù)的傳輸,在數(shù)據(jù)傳輸過程中解放了CPU,使CPU 可以工作在多任務(wù)環(huán)境下,從而提高整個系統(tǒng)的性能。 4.3圖形顯示 圖形顯示分為2個工作頁面,分別由2個任務(wù)來控制:波形照示和輸入輸出顯示任務(wù)。 頁面1為波形顯示頁面,主要用于顯示4通道輸入波形和相關(guān)信息,如:周期、脈寬、最大幅值等。通過鼠標(biāo)對系統(tǒng)靜顯示參數(shù)進行修改,如:水平時間分辨率和垂直電壓分辨率等,可方便地對波形進行放大/縮小,左右移動,上下移動,便于對波形觀察、對比和分析。 頁面2為輸入輸出顯示頁面。當(dāng)切換到輸入輸出顯示頁面時,輸入輸出顯示任務(wù)開始對16路輸入口進行高低電平的檢測,該任務(wù)通常處于掛起狀態(tài),切換到輸入輸出顯示頁面時才開始運行,切換到波形顯示頁面時立即掛起。 每個頁面為一個窗體,窗體又分為2個部分:靜態(tài)和動態(tài)。靜態(tài)部分是固定的,在顯示波形的時候,該部分沒有變化,也不受其它影響;動態(tài)部分是圖形按鈕以及那些隨著按鈕變化的部分。將窗體分為2個部分可以減少顯示代碼的重復(fù)讀入,提高顯示效率。 5 測試與結(jié)論 測試部分包括波形和功能測試。部分實測數(shù)據(jù)如表1(幅值誤差為滿量程誤差)所示。 表1 部分實測數(shù)據(jù) ![]() 波形測試是在50Hz~100KHz的頻率范圍內(nèi)先選取固定的頻率點,利用信號發(fā)生器產(chǎn)生輸入信號,在顯示屏上觀察波形并記錄相關(guān)數(shù)據(jù)。 功能測試是對各種圖形按鈕:動/靜態(tài)、通道選擇、顯示/隱藏、放大/縮小,、左/右移動、上/下移動、左/右移動步進距離進行單操作和多種復(fù)合操作,觀察功能是否能實現(xiàn)。 通過測試得出如下結(jié)論:該嵌入式數(shù)字示波器支持4通道輸入,采樣頻率范圍:2KHz~20 MHz,輸入電壓范嗣:0~+4V.測量顯示的信號頻率、脈寬和幅值精度:±0.5%。整機具有良好的人機交互界面,操作方便、功能比較豐富。既可對單通道的波形進行觀察分析,也可對4通道的波形進行對比分析。 本文作者創(chuàng)新點:采用ARM920T核微控制器S3C2410A作為嵌入式數(shù)字示波器的主控芯片,并利用FIFO作為緩沖存儲器可支持多通道的波形顯示;采用鼠標(biāo)操作界面代替?zhèn)鹘y(tǒng)操 作面板;增加了輸入輸出口控制功能。 作者:潘祥,白瑞林 來源:《微計算機信息》(嵌入式與SOC)2009年第2-2期 |