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