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