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

          新聞中心

          EEPW首頁 > 測試測量 > 設(shè)計(jì)應(yīng)用 > 新型便攜式心電監(jiān)測儀的軟硬件設(shè)計(jì)

          新型便攜式心電監(jiān)測儀的軟硬件設(shè)計(jì)

          作者: 時(shí)間:2010-03-05 來源:網(wǎng)絡(luò) 收藏

          四、系統(tǒng)軟件設(shè)計(jì)

          軟件設(shè)計(jì)主要包括嵌入式操作系統(tǒng)uClinux在S3C44B0X上的移植,心電數(shù)據(jù)的采集和存儲(chǔ),基于S3C44B0X的嵌入式GUI的實(shí)現(xiàn),網(wǎng)絡(luò)設(shè)備驅(qū)動(dòng)程序開發(fā)等。

          4.1、嵌入式uClinux操作系統(tǒng)在S3C44B0X上的移植

          uClinux是專門針對(duì)無MMU(Memory Management Unit 內(nèi)存管理單元)的處理器而設(shè)計(jì)的一種免費(fèi)開放源代碼的操作系統(tǒng)。支持多任務(wù),采取模塊化設(shè)計(jì)。系統(tǒng)移植可分為bootloader和內(nèi)核的移植兩大部分。

          Bootloader從本質(zhì)上講它不屬于系統(tǒng)內(nèi)核,在CPU上電啟動(dòng)后即開始運(yùn)行,創(chuàng)立初始化環(huán)境和引導(dǎo)內(nèi)核。這部分代碼用匯編語言編寫,主要完成硬件初始化,對(duì)系統(tǒng)的存儲(chǔ)映射(memory map)進(jìn)行初始化設(shè)置等操作,同時(shí)改變PC值,使得CPU開始從SDRM執(zhí)行操作系統(tǒng)的內(nèi)核。

          內(nèi)核移植時(shí)首先RedHat Linux環(huán)境下下載源代碼文件包建立交叉編譯環(huán)境,接著進(jìn)入uClinux-dist文件夾進(jìn)行內(nèi)核配置,系統(tǒng)配置主要由三部分組成:Makefile、配置文件(config.in)和配置工具(在/script目錄下)。運(yùn)行make menuconfig命令,會(huì)現(xiàn)頂層菜單,選擇硬件系統(tǒng)、內(nèi)核版本和C庫的選擇,我們?cè)谶@里vendors選Samsung的S3C44B0X,內(nèi)核版本為Linux-2.4-x,C庫選uClibc。接著要修改源代碼,對(duì)應(yīng)于各個(gè)硬件的子目錄中,例如在uClinux-dist/linux-2.4-x/drivers/修改或增加驅(qū)動(dòng)程序;保存設(shè)置退出后運(yùn)行再執(zhí)行make dep和make lib_only命令,生成C庫;運(yùn)行make user_only生成應(yīng)用程序;接著運(yùn)行make romfs和make image,生成rom文件系統(tǒng),拷貝內(nèi)核文件到uClinux-dist/images中;最后運(yùn)行make,生成可供嵌入式系統(tǒng)運(yùn)行的內(nèi)核文件,這時(shí)可以在uClinux-dist/images中出現(xiàn)三個(gè)文件:含“rom”是壓縮內(nèi)核,含“ram”是直接運(yùn)行的內(nèi)核,romfs.img是uClinux的文件系統(tǒng)。“ram”和“rom”文件可以通過超級(jí)終端從PC串口下載到嵌入式系統(tǒng)的內(nèi)存中直接運(yùn)行,這時(shí)超級(jí)終端上也將顯示uClinux的啟動(dòng)信息。

          4.2、基于S3C44B0X的嵌入式GUI的實(shí)現(xiàn)

          屏幕驅(qū)動(dòng)的程序設(shè)計(jì)主要是PSD(Pointer to Screen Device)的結(jié)構(gòu)指針,指針?biāo)赶虻慕Y(jié)構(gòu)中記錄了有關(guān)的一切屬性,根據(jù)顯示屬性判斷選擇那個(gè)子函數(shù)來提供有關(guān)的顯示函數(shù)。圖形引擎調(diào)用PSD完成矩形,圓形等作圖函數(shù),這些函數(shù)調(diào)用底層的屏幕驅(qū)動(dòng)基本作圖函數(shù)來完成圖形顯示。

          4.3、RTL8019AS驅(qū)動(dòng)程序在uClinux下的實(shí)現(xiàn)

          在uClinux中,網(wǎng)絡(luò)接口被看作是一個(gè)發(fā)送和接收數(shù)據(jù)包的實(shí)體,用一個(gè)net_device的數(shù)據(jù)結(jié)構(gòu)表示,在數(shù)據(jù)結(jié)構(gòu)中定義對(duì)網(wǎng)絡(luò)接口的各種操作。程序我們是在uClinux網(wǎng)絡(luò)驅(qū)動(dòng)文件的基礎(chǔ)上修改而成,主要修改在/drivers/net下的兩個(gè)文件:ne.c和8390.c,包括芯片的初始化、收包、網(wǎng)絡(luò)注冊(cè)等大部分工作。內(nèi)核在初始化時(shí)會(huì)自動(dòng)調(diào)用函數(shù)ne_probe(),讀取RTL8019AS標(biāo)識(shí)寄存器,檢測設(shè)備是否存在以決定是否啟動(dòng)驅(qū)動(dòng)程序,配置和初始化硬件,然后初始化net_device結(jié)構(gòu)中的變量,再調(diào)用Rtl8019as_init()對(duì)RTL8019AS做寄存器的相關(guān)設(shè)置,最后根據(jù)starp的值來啟動(dòng)和關(guān)閉RTL8019AS。

          五、結(jié)束語

          針對(duì)心電信號(hào)ECG極其微弱和極易受到外界干擾的特點(diǎn),本文的創(chuàng)新點(diǎn)為采用具有低漂移、共模抑制比的儀表放大器AD620對(duì)信號(hào)進(jìn)行初級(jí)放大,并設(shè)計(jì)右腿驅(qū)動(dòng)電路以增強(qiáng)信號(hào)的抗干擾能力; LCD的引入給人直觀的印象和常識(shí)性的判斷;采集到的數(shù)據(jù)可通過以太網(wǎng)實(shí)時(shí)傳輸?shù)竭h(yuǎn)程數(shù)據(jù)中心,供專家分析和診斷;嵌入式uClinux的引入保證了系統(tǒng)穩(wěn)定、可靠的運(yùn)行;小型化的設(shè)計(jì),更有利于患者的攜帶。隨著心血管疾病的發(fā)病率不斷地逐年上升,這種心電監(jiān)護(hù)儀具有很高的應(yīng)用價(jià)值和良好的市場前景。

          參考文獻(xiàn):

          [1] 張華和衛(wèi)星徐棟君陳相朝基于S3C44B0X的的研制 2006
          [2] 楊崎劉大茂一種用于心電信號(hào)采集接口的調(diào)理方法福州大學(xué)學(xué)報(bào) 2003
          [3] 唐鴻華,羅貴娥,呂揚(yáng)生. 基于S3C44B0X的智能儀表以太網(wǎng)接口設(shè)計(jì).電子質(zhì)量.2004.6
          [4] 張州基于ARM7的心電監(jiān)護(hù)儀及心電分析的研究 廣東工業(yè)大學(xué)2005
          [5] 唐懷武基于ARM處理器的儀器網(wǎng)絡(luò)化應(yīng)用與研究浙江大學(xué)2005
          [6] ANALOG DEVICES INC.AD620 DATA SHEETS.2005
          [7] 毛德操 胡希明Linux內(nèi)核源代碼情景分析浙江大學(xué)出版社
          [8] 吳旭移植uClinux到嵌入式系統(tǒng)的方法有線電視技術(shù) 2005.14
          [9] 楊亮楊宜民陳波基于uClinux平臺(tái)的程序設(shè)計(jì)《微計(jì)算機(jī)信息》 2004


          上一頁 1 2 下一頁

          評(píng)論


          相關(guān)推薦

          技術(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); })();