隨著(zhù)多媒體技術(shù)、計算機網(wǎng)絡(luò )和通信技術(shù)的發(fā)展,遠程醫療成為目前國際上發(fā)展十分迅速的跨學(xué)科高新科技。遠程診斷與急救支援系統是遠程醫療的一個(gè)重要分支,依靠這個(gè)系統,可以將急救現場(chǎng)患者的各種生命信息傳送給遠端的醫生,及時(shí)得到醫療指導或診治。這對患者獲得高水平的醫療服務(wù)及緊急情況時(shí)的急救支援,具有重要意義。 系統中患者生理參數的獲取和傳輸是一個(gè)重要組成部分,為此,筆者設計了以美國CYGNAL公司的SOC芯片C8051F021為中央控制單元的多生理參數的采集與無(wú)線(xiàn)傳輸裝置。該裝置由生理參數采集部分和實(shí)時(shí)無(wú)線(xiàn)數字傳輸的人機接口組成。這兩部分做成一個(gè)小巧的裝置,病人可以方便地攜帶在身上,連續動(dòng)態(tài)地監測病人的體溫、血壓、血氧、脈搏、心電等生理參數,并將這些參數以無(wú)線(xiàn)方式發(fā)送到與網(wǎng)絡(luò )相連的計算機上,經(jīng)處理后傳送到遠端的會(huì )診中心。利用該遠程診斷與急救支援系統,會(huì )診中心的專(zhuān)家可以了解病人的狀況,及時(shí)指導現場(chǎng)的救護人員對患者實(shí)施恰當的救護措施。 1 硬件設計 基于C8051F021的多生理參數采集裝置包括心電模塊、血壓模塊、血氧模塊、體溫模塊和無(wú)線(xiàn)數據傳輸模塊五部分,各部分的協(xié)調工作和數據的無(wú)線(xiàn)傳輸由主微控制器C8051F021管理。主微控制器是該系統的核心,完成體溫和心電參數的檢測,負責控制其它模塊并與之進(jìn)行數據交換,同時(shí)還控制生理參數的無(wú)線(xiàn)傳輸。因此,對其運行速度和接口功能都有較高的要求。 C8051F021以其速度快、性能高等特點(diǎn),能確保心電信號檢測與處理的實(shí)時(shí)性要求。另外,其豐富的端口資源能滿(mǎn)足各模塊結構設計中所需的多種串行通信接口的需要。其中體溫模塊通過(guò)單線(xiàn)接口與微控制器雙向通信;血壓模塊通過(guò)高速串行通信方式將采集的參數傳送給C8051F021;血氧模塊則通過(guò)UART將檢測的參數結果傳送給微控制器;無(wú)線(xiàn)傳輸模塊也是通過(guò)微控制器的串口傳送數據。C8051F021內部自帶的A/D轉換、D/A轉換和串行口為系統設計省去了很多外圍電路,大大減小了體積。其框架圖如圖1所示。 1.1 C8051F021簡(jiǎn)介 C8051F021是美國CYGNAL公司推出的混合信號系統芯片,是高度集成的片上系統。它嵌入了一款高速、低功耗、高性能的8位微處理器,最突出的特點(diǎn)是高速指令處理能力。C8051F021采用CIP-51微控制器內核,與MCS-51指令完全兼容。CIP-51采用流水線(xiàn)結構,與標準的8051結構相比,指令執行速度有很大的提高。CIP-51在最大系統時(shí)鐘頻率25MHz工作時(shí),其峰值速度可達25MIPS。 C8051F021除了具有標準8051的數字外設部件之外,內部還集成了數據采集和控制系統中常用的模擬部件和其他數字外設及功能部件。片內集成了多通道12位和8位A/D轉換器以及一個(gè)雙12位D/A轉換器,兩個(gè)增強型UART串口,便于模擬量和數字量的采集、控制和通信傳輸。該單片機還集成有4KB內部數據RAM和64KB Flash以及外部64KB數據存儲器接口(可編程為復用方式和非復用方式)、總線(xiàn)接口、電壓比較器、溫度傳感器等部件,比常規51單片機有更多的定時(shí)計數器、中斷、數字I/O接口。片內還配置了標準的JTAG接口(IEEEll49.1)。在上位機軟件的支持下,通過(guò)串行的JTAC接口可直接對安裝在最終應用系統上的單片機進(jìn)行非侵入式、不占用片內資源、全速在線(xiàn)系統的調試,無(wú)需另配編程器及仿真器,是目前功能最強大、性能價(jià)格比最好的單片機之一。 1.2 各模塊與微控制器通信的實(shí)現 1.2.1 測溫部分 采用DSl8B20溫度傳感器構成測溫系統。DSl8B20是美國DALLAS公司生產(chǎn)的單線(xiàn)數字溫度傳感器,它可把溫度信號直接轉換成串行數字信號供微控制器處理。DSl8B20數字溫度計能提供9位溫度讀數,通過(guò)單線(xiàn)接口與C8051F021的I/O口P1.0進(jìn)行雙向通信。讀寫(xiě)及溫度變換的功率來(lái)自于數據線(xiàn)而不需額外的電源。 1.2.2 心電部分 心電信號經(jīng)過(guò)前置放大和第二級放大后送入C8051F021自帶的A/D轉換器進(jìn)行采樣。 C8051F021片內集成了兩個(gè)多通道ADC子系統(每個(gè)子系統包括一個(gè)可編程增益放大器和一個(gè)模擬多路選擇器)。選用ADC0將心電信號進(jìn)行A/D轉換。ADC0子系統包括:一個(gè)9通道的可配置模擬多路開(kāi)關(guān)(AMUX0)、一個(gè)可編程增益放大器(PGA0)和一個(gè)100ksps的12位分辨率的逐次逼進(jìn)寄存器型ADC,ADC中還集成了跟蹤保持電路和可編程窗口檢測器。所有這些特性完全由CIP-51通過(guò)特殊功能寄存器控制。心電信號采樣的設置如下:(1)置AMUX0配置寄器AMX0CF=0x00;使AIN0~AIN7為獨立的單端輸入。(2)置AMUX0通道選擇寄存器AMX0SL=0x00;選擇AIN0為ADC0的模擬輸入,即采集的心電信號從AIN0模擬通道輸入C8051F021。(3)置ADC0配置寄存器ADC0CF=0x48;使ACD0采樣/保持放大器獲取輸入的模擬信號的周期數為1/10個(gè)系統時(shí)鐘,內部放大器增益為1。(4)置ADC0控制寄存器ADC0CN.0=0;使ADC0H和ADC0L寄存器數據右對齊;ADC0CN.7=1;ADC處于活動(dòng)狀態(tài),并準備轉換數據。(5)置EIE2.1=1;ADC0轉換中斷允許。 完成ADC0相應的寄存器設置后,采用定時(shí)器3設置心電采樣時(shí)間間隔,心電的采樣頻率設為360Hz。當定時(shí)器3溢出中斷時(shí),啟動(dòng)ADC0開(kāi)始轉換。通過(guò)ADC0控制寄存器ADC0CN.5,判斷轉換是否結束。轉換結束后,采樣結果自動(dòng)存放在A(yíng)DC0H的低4位和ADC0L中。讀取這12位心電數據并通過(guò)自適應算法抑制心電信號中的基線(xiàn)漂移,獲得穩定的心電信號。 1.2.3 血壓模塊 血壓模塊與微控制器之間采用高速串行的通信方式,血壓模塊的工作狀態(tài)、測量結果通過(guò)兩個(gè)功能引腳輸出,供微控制器處理。這兩個(gè)功能引腳連接到C8051F021的兩個(gè)I/O口,其中輸出的串行時(shí)鐘線(xiàn)連到I/O口P1.2,輸出的串行數據線(xiàn)連到I/O口P1.3。若在一個(gè)時(shí)鐘周期內數據線(xiàn)上出現一個(gè)電壓由高到低的跳變,則開(kāi)始接收數據。 輸出的數據格式如圖2所示。開(kāi)始處的電壓跳變如圖3所示。開(kāi)始表示在此后的16個(gè)時(shí)鐘信號內將傳送16位的數據,其高4位的數據表示數據類(lèi)型,不同的編碼表示不同的數據,如舒張壓、收縮壓和心率分別有各自的代碼,如表1所示;而低12位數據則表示具體的數值,對應前面的數據類(lèi)型可以得到收縮壓、舒張壓和心率的數據。 表1 高速串行通信數據幀16位數據定義 D15~D12 D11~D0 0 0 0 0 實(shí)時(shí)壓力0~300 0 0 0 1 收縮壓60~280 0 0 1 0 舒張壓40~200 0 0 1 1 心率40~200 0 1 0 1 自檢信號 1 1 1 0 測量出錯 1.2.4 血氧模塊 血氧模塊通過(guò)RS232串行接口傳輸測量結果,本系統選用C8051F021的UARTl與血氧模塊進(jìn)行數據交換,而將UART0分配給無(wú)線(xiàn)收發(fā)模塊。 首先,主微控制器C8051F021通過(guò)設置優(yōu)先交叉開(kāi)關(guān)譯碼器XBR0、XBRl和XBR2的值完成數字資源的動(dòng)態(tài)分配。優(yōu)先權交叉開(kāi)關(guān)譯碼器可以按優(yōu)先權順序將P0~P3口的引腳分配給器件上的數字外設(UART、SM-Bus、ICA、定時(shí)器等)。 其次,要實(shí)現C8051F021與血氧模塊的通信,需完成以下寄存器的配置:(1)初始化交叉開(kāi)關(guān)配置寄存器XBR2,初始值為0x44;分別使能交叉開(kāi)關(guān)和UARTl;(2)初始化端口0輸出方式寄存器P0MDOUT,初始值為0x05;將P0.2和P0.3分別分配給TXl和RXl;(3)完成UARTl工作模式和波特率的設置。 血氧模塊的串口工作在模式1、波特率為9600bps,采用定時(shí)器2完成UABTl對應波特率的設置。 1.2.5 生理參數的傳輸 為了方便患者攜帶和醫生使用,選用無(wú)線(xiàn)收發(fā)芯片nRF401完成生理參數的無(wú)線(xiàn)傳輸。單片收發(fā)芯片nRF401片內集成了高頻發(fā)射、高頻接收、PLL合成、FSK調制、FSK解調以及多頻道切換等功能模塊。它工作在ISM國際公用頻段,最大能以20kbps的速度進(jìn)行無(wú)線(xiàn)數據傳輸。微控制器只需對nRF401進(jìn)行簡(jiǎn)單的控制就可以通過(guò)串口完成數據的收發(fā),nRF401與C8051F021構成的無(wú)線(xiàn)通信系統如圖4所示。 C8051F021的UART0的設置與UARTl的設置相似,首先初始化交叉開(kāi)關(guān)寄存器XBR0=0x04、XBR2=0x40;分別使能UART0和交叉開(kāi)關(guān);再初始化特殊功能寄存器P0MDOUT=0x01;將P0.0和P0.1分別分配給TXl和RX1;因為UART0有最高優(yōu)先權,當UART0EN設置為1時(shí),P0.0和P0.1總是分配給TXl和BXl;最后完成UART0工作模式和波特率的設置。 為了將采集到的生理參數發(fā)送給接收系統,在發(fā)送數據之前,芯片首先上電工作(即PWR_UP=1),然后選擇數據傳輸通道。nRF401有兩個(gè)傳輸通道可供選擇:通道l(433.92MHz)和通道2(434.33MHz)。將TXEN引腳置為高電平(發(fā)送模式),nRF401就能通過(guò)微控制器的串口發(fā)送數據。 2 系統軟件的設計 系統軟件主要完成以C8051F021為核心的生理參數的采集和無(wú)線(xiàn)發(fā)送。由于要處理多個(gè)不同的模塊,在實(shí)現過(guò)程中采用了巡回檢測的方法。在數據傳送過(guò)程中,設置了一個(gè)生理信息包協(xié)議,在采集系統和無(wú)線(xiàn)發(fā)送模塊之間,定義通信協(xié)議包如表2所示。串口對連續接收的2個(gè)字節的數據依據協(xié)議規則重新裝配。由于生理數據(心電、血壓、體溫等)一般不超過(guò)12位,采集系統將它們分別拆為低7位和高5位進(jìn)行傳輸。其中,高位的第一位為高位數據標識,設為0;低8位的第一位為低位數據標識,設為1。 表2 串口通信協(xié)議包 1bit 2bit 5bit 1bit 7bit B7 B6 B5 B4 B3 B2 B1 B0 B7 B6 B5 B4 B3 B2 B1 B0 0 type data 1 data 表3 各參數的具體識別方式 B6 B5 B4 B3 0 0 心電參數(12位) 1 0 0 0 血壓參數(收縮壓) 1 0 0 1 血壓參數(舒張壓) 1 0 1 0 心率 1 0 1 1 體溫 1 1 0 0 血樣飽和度 為了識別不同的生理參數,對不同生理信號設置不同的信號標識進(jìn)行相應的幀編碼。對心電數據采用高8位的B6B5識別,其它的各類(lèi)數據采用高8位的B6B5B4B3識別,各參數的具體識別方式如表3所示。編碼后的數據經(jīng)微控制器的UART0與nRF401實(shí)現無(wú)線(xiàn)發(fā)送。微控制器的UART0設置為工作模式1,波特率為9600bps。 系統軟件采用模塊化編程方法,根據功能將該系統程序分為六個(gè)基本模塊:系統初始化模塊(包括C8051F021微控制器I/O口設置、寄存器及變量的定義)、體溫模塊、心電模塊、血壓模塊、血氧模塊和無(wú)線(xiàn)傳輸模塊。系統軟件的流程如圖5所示。 |