便攜式心電監(jiān)護(hù)系統(tǒng)的設(shè)計(jì)
掃描二維碼
隨時(shí)隨地手機(jī)看文章
互聯(lián)網(wǎng)尤其是無線網(wǎng)絡(luò)的迅速普及促使嵌入式技術(shù)應(yīng)用的條件日趨成熟,此外,心電監(jiān)護(hù)對(duì)心臟病診斷的重要性也使得遠(yuǎn)程監(jiān)護(hù)也具有現(xiàn)實(shí)的可能性。
本文主要研究并設(shè)計(jì)了一套實(shí)用的便攜式移動(dòng)心電監(jiān)護(hù)系統(tǒng)。通過該系統(tǒng)可以隨時(shí)隨地將患者的心電信號(hào)通過GPRS網(wǎng)絡(luò)無線發(fā)送到設(shè)在醫(yī)院的PC機(jī)上,或者將心電數(shù)據(jù)先存儲(chǔ)在本系統(tǒng)中,然后再通過USB實(shí)現(xiàn)高速回放。
系統(tǒng)的總體設(shè)計(jì)
本文所設(shè)計(jì)的便攜式移動(dòng)心電監(jiān)護(hù)系統(tǒng)由心電監(jiān)護(hù)儀、通信網(wǎng)絡(luò)和監(jiān)護(hù)中心三部分組成(如圖1所示)。其工作過程如下:
圖1:便攜式心電監(jiān)護(hù)系統(tǒng)總體框圖。 |
心電監(jiān)護(hù)儀由患者隨身攜帶,通過粘貼式電極可隨時(shí)采集用戶的心電數(shù)據(jù),并進(jìn)行放大、濾波、A/D轉(zhuǎn)換,然后存儲(chǔ)到串行閃存中。當(dāng)存儲(chǔ)一定時(shí)間的心電數(shù)據(jù)后,可以通過GPRS無線上網(wǎng),利用無線網(wǎng)絡(luò)將數(shù)據(jù)傳送給位于監(jiān)護(hù)中心的上位機(jī)。也可通過USB直接連接到上位機(jī),進(jìn)行本地高速回放。
本文將重點(diǎn)介紹心電監(jiān)護(hù)儀的設(shè)計(jì)。由于是便攜式設(shè)備,所以設(shè)計(jì)時(shí)必須考慮盡量降低功耗、體積和成本。經(jīng)過反復(fù)地分析比較,最終決定采用Z-World公司的工業(yè)級(jí)控制芯片Rabbit3000微處理器作為心電監(jiān)護(hù)儀的主芯片。
盡管Rabbit3000是8位微處理器,但其內(nèi)存空間可達(dá)1M,主頻可達(dá)22M。它具有豐富的接口資源,共有40條并行I/O口線(與串行口共用)。此外,該器件的功耗非常低,處理器時(shí)鐘可由32.768KHz振蕩器驅(qū)動(dòng),并將主振蕩器斷電。此時(shí)電流約為100μA,而處理器仍能保持每秒10,000條指令的執(zhí)行速度。
系統(tǒng)硬件設(shè)計(jì)
在進(jìn)行總體硬件設(shè)計(jì)時(shí),以Rabbit3000高性能微處理器為核心,利用外部接口擴(kuò)展了512K的并行Flash和512K的SRAM,存儲(chǔ)空間達(dá)到1M,并擴(kuò)展了USB接口。利用串行接口擴(kuò)展了串行Flash、A/D轉(zhuǎn)換和無線模塊MC35。以下重點(diǎn)介紹無線模塊和USB模塊的硬件設(shè)計(jì)。
1. 無線模塊MC35硬件設(shè)計(jì)
無線模塊負(fù)責(zé)完成心電數(shù)據(jù)的無線傳送。為實(shí)現(xiàn)此功能,本系統(tǒng)采用了西門子公司的MC35模塊。這是西門子公司首款支持GPRS的GSM/GPRS模塊,體積小巧,易于集成到便攜式終端中。通過串行口連接,使用AT命令對(duì)該模塊進(jìn)行控制和數(shù)據(jù)傳送。
西門子公司的MC35模塊具有一個(gè)40腳的零插入力連接器,該連接器中提供了串行接口、音頻接口、SIM接口、狀態(tài)引腳、電源接口等接口,通過這些接口與SIM卡座、天線以及主控制器相連。MC35的串行接口TXD0和RXD0與Rabbit3000的串口B,即引腳TXB和RXB(PC4和PC5)相連,以實(shí)現(xiàn)與MC35之間的通信。MC35的IGT引腳為其啟動(dòng)引腳,需要開漏極驅(qū)動(dòng)器驅(qū)動(dòng)。而Rabbit3000的端口E具有很強(qiáng)的驅(qū)動(dòng)能力,因此選用PE5作為MC35的啟動(dòng)控制線。在MC35的電源接口中有電源輸入引腳、電源輸出引腳和充電引腳,其中充電引腳可用來給電池充電。本系統(tǒng)采用電池供電或外部充電。如圖2所示。
設(shè)計(jì)時(shí)需注意的兩點(diǎn)是:本系統(tǒng)使用電池供電,由于MC35在上行傳輸需提供2A的峰值電流,這會(huì)引起電壓突然下降,因此設(shè)計(jì)電路時(shí)要加足夠大的電容,以防電壓突然下降;在SIM卡電路設(shè)計(jì)時(shí),需要注意電磁兼容性的問題,否則會(huì)影響MC35的通信效果,甚至導(dǎo)致MC35無法正常工作。
圖2:MC35模塊硬件連接圖。 |
2. USB模塊硬件設(shè)計(jì)
USB模塊負(fù)責(zé)完成心電數(shù)據(jù)的本地高速回放,它提供了另一種數(shù)據(jù)傳輸手段。通常的串口RS-232只是利用一條線進(jìn)行數(shù)據(jù)傳輸,而USB傳輸是利用D+和D-線上的差分信號(hào),與主機(jī)進(jìn)行數(shù)據(jù)的傳輸,充分保證了數(shù)據(jù)傳輸?shù)目煽啃浴1鞠到y(tǒng)采用恩智浦公司的PDIUSBD12實(shí)現(xiàn)USB傳輸。
PDIUSBD12(以下簡(jiǎn)稱D12)是恩智浦公司的一款性價(jià)比很高的USB芯片,完全符合USB1.l版的規(guī)范。是在USB1.1協(xié)議設(shè)備端使用最多的芯片之一,是一種純粹的USB接口芯片,需要外部微處理器控制。
本系統(tǒng)利用Rabbit3000微處理器控制USB芯片D12來完成USB傳輸,此時(shí)D12就是單片機(jī)的一個(gè)外設(shè)。D12與Rabbit3000之間的數(shù)據(jù)傳輸是通過8位數(shù)據(jù)線來實(shí)現(xiàn)的,即D12的并口數(shù)據(jù)線D0-D7與Rabbit3000的數(shù)據(jù)線D0-D7直接相連。
D12的INT_N引腳與Rabbit3000復(fù)用引腳INT0A相連,作為Rabbit3000的外部中斷輸入。當(dāng)D12需要進(jìn)行操作時(shí),就利用INT_N引腳發(fā)出一個(gè)中斷請(qǐng)求,Rabbit3000立即響應(yīng)中斷,對(duì)其進(jìn)行操作。D12的RD_N和WR_N分別與Rabbit3000的IORD和IOWR相連,以控制數(shù)據(jù)傳輸?shù)姆较?。D12的RESET_N與Rabbit3000的復(fù)用引腳PE4相連,Rabbit3000可以利用這個(gè)引腳向D12發(fā)出一個(gè)低電平,RESET_N被置為低電平后,D12便自動(dòng)復(fù)位了。D12的CS_N與Rabbit3000的復(fù)用引腳PE7相連,可以通過這個(gè)引腳來控制片選。如圖3所示。
圖3:PDIUSBD12模塊硬件連接圖。 |
D12有兩種數(shù)據(jù)總線方式:多路地址/數(shù)據(jù)總線方式和單地址數(shù)據(jù)總線方式。本系統(tǒng)采用單地址數(shù)據(jù)總線方式,將D12的ALE接地,A0與Rabbit3000的地址總線A0相連,在片選信號(hào)有效的前提下(即PE7=0),當(dāng)A0=1時(shí),CPU給D12發(fā)命令;當(dāng)A0=0時(shí),CPU向D12寫數(shù)據(jù)或從D12讀數(shù)據(jù)。因此,地址0xE001為發(fā)送命令地址,地址0xE000為讀寫數(shù)據(jù)地址。
系統(tǒng)軟件設(shè)計(jì)
軟件設(shè)計(jì)借鑒了軟件工程的設(shè)計(jì)思想。采用了分層和模塊化的設(shè)計(jì)思路,為代碼的組織、維護(hù)和升級(jí)都提供了便利。而且,即使以后更換硬件系統(tǒng)平臺(tái),也能夠保證大部分代碼可重用。軟件總體結(jié)構(gòu)如圖4所示。下面重點(diǎn)介紹無線模塊和USB模塊的軟件設(shè)計(jì)。
1. 無線模塊軟件設(shè)計(jì)
無線模塊MC35與Rabbit3000的串口B相連,并通過串口向MC35發(fā)送AT指令,進(jìn)行撥號(hào)、設(shè)置等操作。
MC35與網(wǎng)關(guān)的通信協(xié)議為PPP協(xié)議(Point-to-Point Protocol),PPP協(xié)議是一種基于TCP/IP協(xié)議棧的數(shù)據(jù)鏈路層協(xié)議,是為在兩個(gè)對(duì)等實(shí)體間傳輸數(shù)據(jù)包,建立簡(jiǎn)單連接而設(shè)計(jì)的,主要用于廣域網(wǎng)的連接,但在局域網(wǎng)的撥號(hào)連接中同樣可以采用。MC35本身不支持PPP協(xié)議,要通過MC35撥號(hào)上網(wǎng)必須編寫程序?qū)崿F(xiàn)PPP協(xié)議,同時(shí)還要實(shí)現(xiàn)TCP/IP協(xié)議。
開機(jī)后首先初始化MC35模塊,這里要注意的是初始化MC35模塊時(shí),需要給IGT引腳一個(gè)低電平,并保持120~140ms,才能完成初始化操作。然后啟動(dòng)MC35并登陸移動(dòng)夢(mèng)網(wǎng)網(wǎng)關(guān),建立與服務(wù)提供商的連接。
登陸成功后,MC35具有兩種工作狀態(tài):數(shù)據(jù)傳輸狀態(tài)和空閑狀態(tài)。MC35在空閑狀態(tài)下的電流一般為15mA,而且在空閑狀態(tài)下,MC35還支持多種休眠模式。為降低功耗,本系統(tǒng)啟用了MC35的休眠功能,設(shè)置為休眠模式7。在該休眠模式下,電流可以降到3mA左右。
圖4:心電監(jiān)護(hù)系統(tǒng)軟件總體結(jié)構(gòu)。 |
2. USB模塊軟件設(shè)計(jì)
USB接口對(duì)于使用者來說十分簡(jiǎn)單方便,但從開發(fā)者角度來看,最大的缺點(diǎn)就是協(xié)議的復(fù)雜性增加了,因此也就導(dǎo)致了USB設(shè)計(jì)的復(fù)雜性。USB軟件設(shè)計(jì)包括三個(gè)方面:固件(firmware)設(shè)計(jì)、驅(qū)動(dòng)程序設(shè)計(jì)和主機(jī)端應(yīng)用程序的設(shè)計(jì)。
a. 固件設(shè)計(jì)
固件是固化在單片機(jī)中的程序代碼,可采用匯編語言或C語言設(shè)計(jì)。它運(yùn)行在微處理器上,用來響應(yīng)主機(jī)的請(qǐng)求。即它與USB控制器一起完成枚舉過程和主機(jī)通信。USB協(xié)議規(guī)定任何傳輸過程都是由主機(jī)端發(fā)起并控制的,在枚舉過程中,主機(jī)通過USB控制器的端點(diǎn)0的默認(rèn)管道建立控制傳輸過程,D12響應(yīng)主機(jī)的要求,主要是發(fā)送特定的描述符(如設(shè)備描述符、配置描述符、接口描述符、端點(diǎn)描述符、字符串描述符和廠商描述符)給主機(jī)。主機(jī)從獲得的描述符來了解該設(shè)備的配置和能力,并完成對(duì)USB設(shè)備的配置。枚舉過程結(jié)束后,主機(jī)就可以與D12進(jìn)行數(shù)據(jù)傳輸了。
本系統(tǒng)的固件編程采用標(biāo)準(zhǔn)C語言來編寫,設(shè)計(jì)固件程序時(shí)需要注意的是:D12的中斷輸出為電平觸發(fā),Rabbit3000的中斷為上升沿或下降沿觸發(fā)。在設(shè)計(jì)程序時(shí),使用下降沿加延時(shí),可使低電平保持一段時(shí)間,從而達(dá)到同樣的效果。
b. 驅(qū)動(dòng)程序設(shè)計(jì)
在Windows系統(tǒng)下,與USB外設(shè)的任何通信都必須通過設(shè)備驅(qū)動(dòng),設(shè)備驅(qū)動(dòng)使應(yīng)用程序訪問硬件設(shè)備成為可能。USB驅(qū)動(dòng)程序的編寫與硬件相關(guān),屬于核心模式。微軟的DDK在這方面提供了較為詳細(xì)的說明。
c. 應(yīng)用程序的設(shè)計(jì)
本系統(tǒng)采用VB編寫上位機(jī)應(yīng)用程序。它主要負(fù)責(zé)實(shí)現(xiàn)利用USB接口從心電監(jiān)護(hù)儀中讀取心電數(shù)據(jù),并把心電數(shù)據(jù)保存到數(shù)據(jù)庫中,同時(shí)在PC機(jī)屏幕上繪制心電波形。
本文小結(jié)
本文所研制的便攜式移動(dòng)心電監(jiān)護(hù)儀,能夠在計(jì)算機(jī)屏幕上準(zhǔn)確地描繪出心電波形,經(jīng)中國(guó)醫(yī)科大學(xué)附屬二院的醫(yī)生認(rèn)定,可作為臨床診斷依據(jù);本系統(tǒng)實(shí)用性強(qiáng),且體積小、經(jīng)濟(jì)方便?;颊呖呻S時(shí)隨地對(duì)心臟進(jìn)行實(shí)時(shí)監(jiān)護(hù),而不受時(shí)間和空間限制;本系統(tǒng)所具有的無線傳輸功能,可以實(shí)時(shí)地把心電數(shù)據(jù)傳送給醫(yī)院供醫(yī)生診斷,極大地提高了急救效率。