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

          新聞中心

          EEPW首頁(yè) > 醫(yī)療電子 > 設(shè)計(jì)應(yīng)用 > 便攜式心電圖采集與控制系統(tǒng)設(shè)計(jì)

          便攜式心電圖采集與控制系統(tǒng)設(shè)計(jì)

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

            (2)儀用放大器:根據(jù)系統(tǒng)設(shè)計(jì)要求采用高精度儀用放大器AD620,輸入失調(diào)最大為50mV,輸入失調(diào)漂移為0.6mV/攝氏度,共模抑制比為120dB(G=10)。該放大器增益范圍為1~10000,其放大增益關(guān)系式為:

            G=1+49.4k/Rg

            當(dāng)G=10時(shí),Rg為5.489k,取近似值5.5k。

            (3)右腿浮地驅(qū)動(dòng):把混雜在原始心電信號(hào)中的共模噪聲提取出來(lái),經(jīng)過(guò)一級(jí)反相放大后,再返回到人體,相互疊加,以減少人體共模干擾的絕對(duì)值,提高信噪比,主要應(yīng)用高精度運(yùn)算放大器OPA4277。

            高通與低通濾波電路

            由于心電信號(hào)屬于低頻信號(hào),為了去掉高頻干擾,還須通過(guò)低通濾波。低通濾波器采用歸一化設(shè)計(jì)的四階低通濾波,截止頻率為100 Hz,在頻率轉(zhuǎn)折處有足夠的陡度,避免高頻信號(hào)的干擾??紤]到元件的誤差,設(shè)定截止頻率為110Hz。低通和高通濾波電路如圖4所示,放大器采用低功耗低噪聲的運(yùn)算放大器TLC2254。每通道供電電流為35mA。

            主放、50Hz工頻陷波和電平提升

            主放電路圖通過(guò)調(diào)整電位器的阻值PI來(lái)設(shè)置整個(gè)心電放大電路的總增益。主放大器采用低功耗低噪聲的運(yùn)算放大器TLC2254。雖然前置放大電路對(duì)共模干擾具有較強(qiáng)的抑制作用,但部分干擾是以差模信號(hào)方式進(jìn)入電路的,且頻率處于心電信號(hào)的頻帶之內(nèi),加上其他各種不穩(wěn)定因素,經(jīng)放大、低通濾波、高通濾波和主放后,輸出仍存在干擾,必須專(zhuān)門(mén)濾除。

            經(jīng)過(guò)陷波器后的心電信號(hào)為雙極性,系統(tǒng)中的MD芯片只能量化單極性信號(hào),所以,通過(guò)TLC2254把雙極性信號(hào)轉(zhuǎn)化為單極性信號(hào)。

            LCD 模塊

            此系統(tǒng)采用MGLS12864 LCD模塊,由于該液晶顯示器沒(méi)有內(nèi)部字符發(fā)生器,所以在屏幕上顯示的任何字符、漢字均須事先建立點(diǎn)陣字模庫(kù),然后按圖形方式進(jìn)行顯示。MGLS12864 模塊與LPC2478 連接,D0~D7 為數(shù)據(jù)/命令雙向總線,CS 為片選信號(hào),RES 為復(fù)位信號(hào),D/I 為數(shù)據(jù)/命令選擇信號(hào),R/W 為讀寫(xiě)命令信號(hào),CE為控制允許信號(hào)。

            軟件設(shè)計(jì)

            操作系統(tǒng)

            本系統(tǒng)對(duì)數(shù)據(jù)處理、數(shù)據(jù)顯示及網(wǎng)絡(luò)傳輸需要很高的實(shí)時(shí)性,一個(gè)可靠的RTOS是系統(tǒng)穩(wěn)定有效運(yùn)作的保證,所以我們將在LPC2478上移植mC/OS II實(shí)時(shí)操作系統(tǒng),用以滿(mǎn)足系統(tǒng)對(duì)多線程、硬實(shí)時(shí)的嚴(yán)格要求。

            mC/OS II是一個(gè)成熟穩(wěn)定的占先式實(shí)時(shí)內(nèi)核,基于優(yōu)先級(jí)調(diào)度,支持56個(gè)用戶(hù)任務(wù),提供信號(hào)量、郵箱、消息隊(duì)列等任務(wù)通信機(jī)制,能夠極大提高CPU的利用效率。由于基于優(yōu)先級(jí)來(lái)執(zhí)行任務(wù),如果其中一個(gè)任務(wù)跑飛,其它高優(yōu)先級(jí)則可以通過(guò)運(yùn)行系統(tǒng)的監(jiān)視程序?qū)ζ溥M(jìn)行修復(fù),因此在高安全性場(chǎng)合具有廣泛的應(yīng)用。且mC/OS II源碼開(kāi)放,移植簡(jiǎn)單,在基于ARM的32位微處理器中有大量成功的案例。在mC/OS II中,每個(gè)任務(wù)都是無(wú)限循環(huán)的,處于5種狀態(tài)之一:休眠態(tài)、就緒態(tài)、運(yùn)行態(tài)、掛起態(tài)和中斷態(tài)。

            2.A/D轉(zhuǎn)換及轉(zhuǎn)存USB模塊:

            由前端心電信號(hào)放大模塊放大后的心電信號(hào)直接送給LPC2478芯片的P0.23引腳進(jìn)行A/D轉(zhuǎn)換,經(jīng)轉(zhuǎn)換后的數(shù)據(jù)為無(wú)符號(hào)32位數(shù)據(jù)格式,將其放入緩存數(shù)組中送給USB進(jìn)行存儲(chǔ),并留待給LCD顯示輸出,具體實(shí)現(xiàn)過(guò)程為:

            首先,需創(chuàng)建兩個(gè)數(shù)據(jù)緩存區(qū)“GcWritFileData[DATA_N]”及“GcReadFileData[DATA_N]”做為“寫(xiě)文件緩沖區(qū)”及“讀文件緩沖區(qū)”,初始化mC/OS II操作系統(tǒng),創(chuàng)建用于處理A/D轉(zhuǎn)換的任務(wù)Task0及用于LCD顯示的任務(wù)Task1,啟動(dòng)多任務(wù)環(huán)境,在Task0中首先進(jìn)行硬件平臺(tái)的初始化,設(shè)置P0.23為AIN0[0]功能,作為A/D轉(zhuǎn)換的輸入引腳,進(jìn)行ADC模塊設(shè)置,設(shè)置轉(zhuǎn)換時(shí)鐘等,采用直接啟動(dòng)ADC轉(zhuǎn)換,進(jìn)行轉(zhuǎn)換的參考電壓為精密恒壓源提供的2.5V電壓,最后轉(zhuǎn)換結(jié)果保存至“寫(xiě)文件緩沖區(qū)”。接著初始化USB HOST,并創(chuàng)建文件系統(tǒng)任務(wù)“OSFileTask”,用“OSFileOpen”函數(shù)創(chuàng)建并打開(kāi)一個(gè)命名為“ECD.dat”的文件,通過(guò)“OSFileWrite”函數(shù)將“GcWritFileData” 寫(xiě)文件緩沖區(qū)的數(shù)據(jù)寫(xiě)入到U盤(pán)中,并通過(guò)其返回值判斷寫(xiě)文件是否成功,完成寫(xiě)文件后再使用“OSFileRead”函數(shù)將“GcWritFileData” 寫(xiě)文件緩沖區(qū)的數(shù)據(jù)讀寫(xiě)到“GcReadFileData” 讀文件緩沖區(qū),再通過(guò)寫(xiě)、讀文件緩沖區(qū)數(shù)據(jù)的比較來(lái)確定寫(xiě)入文件數(shù)據(jù)是否正確,至此,完成從A/D轉(zhuǎn)換接收數(shù)據(jù)及轉(zhuǎn)存至USB的過(guò)程。程序流程圖如圖5所示。


          上一頁(yè) 1 2 下一頁(yè)

          評(píng)論


          相關(guān)推薦

          技術(shù)專(zhuān)區(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); })();