<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 測試測量 > 設(shè)計應(yīng)用 > 嵌入式數(shù)字示波器的設(shè)計

          嵌入式數(shù)字示波器的設(shè)計

          作者: 時間:2017-02-06 來源:網(wǎng)絡(luò) 收藏
          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靈活性強,可以充分地進(jìn)行設(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)對人機交互界面進(jìn)行操作,減小了系統(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開始對輸入信號進(jìn)行模數(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是一種先進(jìn)先出結(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進(jìn)行字長擴展。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ù)雜、可維護(hù)性差和系統(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ù)運行。

          上一頁 1 2 下一頁

          評論


          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();