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