心電監(jiān)護儀應(yīng)用案例之遠程心電實時監(jiān)護系統(tǒng)設(shè)計
目前世界上 有很多心臟疾病患者由于得不到及時的救助,生命常常受到威脅。傳統(tǒng)的心電監(jiān)護儀(什么是心電監(jiān)護儀)限制了患者的自由,而且不具備實時監(jiān)護功能,對于那些威脅到患者生命的突發(fā)疾病幫助不大。隨著無線通信技術(shù)的不斷發(fā)展,現(xiàn)在已經(jīng)有了便攜式監(jiān)護儀(監(jiān)護儀原理),這類儀器讓實時監(jiān)護成為可能。本文主要介紹了心電監(jiān)護儀應(yīng)用案例之遠程心電實時監(jiān)護系統(tǒng)設(shè)計。
本文引用地址:http://www.biyoush.com/article/198934.htm利用GPRS無線數(shù)據(jù)通信技術(shù),可以將實時監(jiān)護與Holter相結(jié)合,患者佩戴這種便攜式監(jiān)護儀(心電監(jiān)護儀的維護)可以自由活動,而且還能隨時隨地得到心電監(jiān)護。當(dāng)有緊急情況發(fā)生時,醫(yī)生可以根據(jù)全面的心電數(shù)據(jù)分析患者心臟狀況,使患者得到即時的救助。
一、遠程心電實時監(jiān)護系統(tǒng)概述
遠程心電實時監(jiān)護系統(tǒng)包括四個部分:監(jiān)護儀(病人終端)、PDA(醫(yī)生終端)、監(jiān)護服務(wù)器以及心電數(shù)據(jù)服務(wù)器。系統(tǒng)結(jié)構(gòu)如圖1所示。
監(jiān)護儀由患者隨身佩帶,以400Hz或500Hz的采樣頻率對患者心電信號采樣,并把心電數(shù)據(jù)通過GSM/GPRS網(wǎng)絡(luò)發(fā)送給監(jiān)護服務(wù)器,數(shù)據(jù)的實時性由監(jiān)護服務(wù)器和監(jiān)護儀之間的控制信息控制。
PDA接收來自監(jiān)護服務(wù)器的數(shù)據(jù),并根據(jù)心電分析的結(jié)果通過數(shù)據(jù)服務(wù)(GPRS數(shù)據(jù)服務(wù))和短消息(SMS)通知監(jiān)護儀。監(jiān)護服務(wù)器負責(zé)接收轉(zhuǎn)存病人端全部心電數(shù)據(jù),實時分析及回放分析;同時向PDA轉(zhuǎn)發(fā)實時心電數(shù)據(jù),利用控制信息來協(xié)調(diào)實時心電數(shù)據(jù)的收發(fā)。
心電數(shù)據(jù)服務(wù)器存儲所有心電數(shù)據(jù)、患者信息以及設(shè)備信息,除了在監(jiān)護過程中存儲心電數(shù)據(jù)外,心電數(shù)據(jù)服務(wù)器還負責(zé)注冊患者和設(shè)備信息及管理數(shù)據(jù)庫遠程訪問等任務(wù)。
二、 監(jiān)護儀硬件平臺簡介
監(jiān)護儀硬件主要由單片機、電源模塊、心電信號采集放大模塊、擴展NAND Flash、LCD驅(qū)動模塊及GSM/GPRS無線通信模塊組成。
三、軟件系統(tǒng)關(guān)鍵技術(shù)
監(jiān)護儀軟件系統(tǒng)的核心是管理Flash、GPRS網(wǎng)絡(luò)、無線模塊的GSM功能及LCD。
3.1 Flash管理
Flash存儲器用于存儲心電數(shù)據(jù)和控制信息,以保證心電數(shù)據(jù)在斷電時不遺失及日后查看監(jiān)護過程的相關(guān)控制信息。
內(nèi)存映射(Memory Map)模型把Flash作為一個整體,各種不同數(shù)據(jù)按照類別預(yù)先分配存儲空間。操作Flash數(shù)據(jù)時,首先把內(nèi)部索引(譬如數(shù)據(jù)索引或者消息索引)映射到分區(qū)地址,剔除無效存儲單元,再通過Flash操作函數(shù)讀取或?qū)懭胂鄳?yīng)的數(shù)據(jù)。
3.1.1 Flash分區(qū)結(jié)構(gòu)
(1)Head Seg:大小為1個塊(Block),用于存儲分區(qū)版本號、壞塊表及其余分區(qū)的基本信息,包括分區(qū)起始地址(BaseAdd)、分區(qū)跨度(以塊為單位)、分區(qū)最高地址、數(shù)據(jù)區(qū)(Data Seg)中的數(shù)據(jù)范圍、數(shù)據(jù)區(qū)中數(shù)據(jù)的格式(FMT)、消息區(qū)(SMS Seg)所有消息的聯(lián)系人列表等,每個分區(qū)的基本信息占一頁(Page)。
本分區(qū)占Flash存儲器的第一個塊。根據(jù)Flash的技術(shù)資料可知,第一塊正常使用時不會出現(xiàn)無效存儲單元,因此許多關(guān)鍵數(shù)據(jù)保存于此。
(2)SMS Seg:大小為20個塊,即20個連續(xù)的有效塊。每個塊存儲一條消息的位圖,消息的到達時間、發(fā)送者存儲在該Block的第一頁(該塊中相對地址為0的頁)。消息存滿則從頭開始覆蓋已有消息,利用消息的索引號來尋址。
(3)Data Seg:大小為1000個塊,即1000個連續(xù)的有效塊,用于存儲心電數(shù)據(jù)。如果采樣頻率為400Hz,采樣位數(shù)為8位,數(shù)據(jù)區(qū)可存儲11.37小時的原始心電數(shù)據(jù),所有的心電數(shù)據(jù)從采樣起始點0開始依次編號即心電數(shù)據(jù)索引,利用該索引尋址。
Flash分區(qū)結(jié)構(gòu)示意圖如圖2所示。
3.1.2 Flash接口函數(shù)
Flash的讀操作,首先從存儲單元中以頁(page)為單位把數(shù)據(jù)讀入Flash內(nèi)部的寄存器中,然后再把數(shù)據(jù)導(dǎo)入處理器的存儲器。讀操作的操作耗時為幾十微秒,與單片機的指令周期大致匹配。讀操作以頁為基本單元,以讀取整頁數(shù)據(jù)效率最高。Flash頁讀取操作一般不會產(chǎn)生錯誤,F(xiàn)lash文件系統(tǒng)會有糾錯操作,最簡單的糾錯碼可以把非連續(xù)的單個位錯誤改正。而對于當(dāng)前處理器上的內(nèi)存映射模型,糾錯碼的引入將大大降低運行效率,因此不做糾錯處理。
(1)FlashPageRead():首先鎖存起始操作字節(jié)的行列地址,送入Read指令,隨后的每個讀操作時序把當(dāng)前字節(jié)讀出,當(dāng)前地址指針加1并把數(shù)據(jù)存儲到讀操作緩沖區(qū)中,同時調(diào)用函數(shù)時須給出讀出字節(jié)的總數(shù)。
Flash的寫操作,又稱為對Flash的編程,即把數(shù)據(jù)存儲到Flash存儲單元中。存儲單元事先必須已擦除(Erase)過才能寫入數(shù)據(jù)。寫操作耗時為幾百微秒,擦除操作耗時最多為幾毫秒,在數(shù)量級上已大大超過了RAM的寫操作。
利用內(nèi)存映射模型操作Flash的難點在于合理調(diào)度使Flash存儲單個字節(jié)的耗時與處理器的指令周期相匹配。每次寫操作要盡可能多地寫入數(shù)據(jù),一般每頁(512B)寫入一次。寫操作與擦除操作可能產(chǎn)生壞塊,因此須通知主程序是否產(chǎn)生壞塊。
(2)FlashProgram():首先鎖存寫入數(shù)據(jù)起始字節(jié)的行列地址,隨后按照函數(shù)調(diào)用時給定的寫入數(shù)據(jù)總數(shù),每個寫操作時序向Flash寄存器存儲一個字節(jié)的數(shù)據(jù)。當(dāng)寄存器滿,送入Program操作指令即可把寄存器中的數(shù)據(jù)存儲進入物理存儲單元中。
(3)FlashECGDMap():根據(jù)分區(qū)內(nèi)頁索引和壞塊列表檢索出實際的操作頁地址。首先把分區(qū)內(nèi)頁地址換算為理想實際地址,即不考慮壞塊,然后檢索壞塊列表及剔除無效地址并給出實際操作地址。
(4)FlashStoreECGData():在數(shù)據(jù)分區(qū)中存儲心電數(shù)據(jù),首先檢查Flash是否處于繁忙狀態(tài),若空閑則立即占用Flash,把采樣數(shù)據(jù)導(dǎo)入Flash寫緩沖。
如果寫緩沖達到存儲操作條件,則調(diào)用FlashECGDMap()獲取實際的操作地址并檢查是否Flash的該操作塊需要擦除。若需要擦除,則調(diào)用FlashErase()函數(shù),擦除狀況檢查完畢即調(diào)用FlashProgram()保存數(shù)據(jù)。若所有操作完畢,則釋放Flash的控制權(quán)。
評論