基于C8051F021遠(yuǎn)程診斷與急救支援系統(tǒng)設(shè)計(jì)
掃描二維碼
隨時(shí)隨地手機(jī)看文章
1.2.2 心電部分
心電信號(hào)經(jīng)過前置放大和第二級(jí)放大后送入C8051F021自帶的A/D轉(zhuǎn)換器進(jìn)行采樣。
C8051F021片內(nèi)集成了兩個(gè)多通道ADC子系統(tǒng)(每個(gè)子系統(tǒng)包括一個(gè)可編程增益放大器和一個(gè)模擬多路選擇器)。選用ADC0將心電信號(hào)進(jìn)行A/D轉(zhuǎn)換。ADC0子系統(tǒng)包括:一個(gè)9通道的可配置模擬多路開關(guān)(AMUX0)、一個(gè)可編程增益放大器(PGA0)和一個(gè)100ksps的12位分辨率的逐次逼進(jìn)寄存器型ADC,ADC中還集成了跟蹤保持電路和可編程窗口檢測(cè)器。所有這些特性完全由CIP-51通過特殊功能寄存器控制。心電信號(hào)采樣的設(shè)置如下:(1)置AMUX0配置寄器AMX0CF=0x00;使AIN0~AIN7為獨(dú)立的單端輸入。(2)置AMUX0通道選擇寄存器AMX0SL=0x00;選擇AIN0為ADC0的模擬輸入,即采集的心電信號(hào)從AIN0模擬通道輸入C8051F021。(3)置ADC0配置寄存器ADC0CF=0x48;使ACD0采樣/保持放大器獲取輸入的模擬信號(hào)的周期數(shù)為1/10個(gè)系統(tǒng)時(shí)鐘,內(nèi)部放大器增益為1。(4)置ADC0控制寄存器ADC0CN.0=0;使ADC0H和ADC0L寄存器數(shù)據(jù)右對(duì)齊;ADC0CN.7=1;ADC處于活動(dòng)狀態(tài),并準(zhǔn)備轉(zhuǎn)換數(shù)據(jù)。(5)置EIE2.1=1;ADC0轉(zhuǎn)換中斷允許。
1.2.3 血壓模塊
血壓模塊與微控制器之間采用高速串行的通信方式,血壓模塊的工作狀態(tài)、測(cè)量結(jié)果通過兩個(gè)功能引腳輸出,供微控制器處理。這兩個(gè)功能引腳連接到C8051F021的兩個(gè)I/O口,其中輸出的串行時(shí)鐘線連到I/O口P1.2,輸出的串行數(shù)據(jù)線連到I/O口P1.3。若在一個(gè)時(shí)鐘周期內(nèi)數(shù)據(jù)線上出現(xiàn)一個(gè)電壓由高到低的跳變,則開始接收數(shù)據(jù)。
輸出的數(shù)據(jù)格式如圖2所示。開始處的電壓跳變?nèi)鐖D3所示。開始表示在此后的16個(gè)時(shí)鐘信號(hào)內(nèi)將傳送16位的數(shù)據(jù),其高4位的數(shù)據(jù)表示數(shù)據(jù)類型,不同的編碼表示不同的數(shù)據(jù),如舒張壓、收縮壓和心率分別有各自的代碼,如表1所示;而低12位數(shù)據(jù)則表示具體的數(shù)值,對(duì)應(yīng)前面的數(shù)據(jù)類型可以得到收縮壓、舒張壓和心率的數(shù)據(jù)。
表1 高速串行通信數(shù)據(jù)幀16位數(shù)據(jù)定義
1.2.4 血氧模塊
血氧模塊通過RS232串行接口傳輸測(cè)量結(jié)果,本系統(tǒng)選用C8051F021的UARTl與血氧模塊進(jìn)行數(shù)據(jù)交換,而將UART0分配給無線收發(fā)模塊。
首先,主微控制器C8051F021通過設(shè)置優(yōu)先交叉開關(guān)譯碼器XBR0、XBRl和XBR2的值完成數(shù)字資源的動(dòng)態(tài)分配。優(yōu)先權(quán)交叉開關(guān)譯碼器可以按優(yōu)先權(quán)順序?qū)0~P3口的引腳分配給器件上的數(shù)字外設(shè)(UART、SM-Bus、ICA、定時(shí)器等)。
其次,要實(shí)現(xiàn)C8051F021與血氧模塊的通信,需完成以下寄存器的配置:(1)初始化交叉開關(guān)配置寄存器XBR2,初始值為0x44;分別使能交叉開關(guān)和UARTl;(2)初始化端口0輸出方式寄存器P0MDOUT,初始值為0x05;將P0.2和P0.3分別分配給TXl和RXl;(3)完成UARTl工作模式和波特率的設(shè)置。血氧模塊的串口工作在模式1、波特率為9600bps,采用定時(shí)器2完成UABTl對(duì)應(yīng)波特率的設(shè)置。
1.2.5 生理參數(shù)的傳輸
為了方便患者攜帶和醫(yī)生使用,選用無線收發(fā)芯片nRF401完成生理參數(shù)的無線傳輸。單片收發(fā)芯片nRF401片內(nèi)集成了高頻發(fā)射、高頻接收、PLL合成、FSK調(diào)制、FSK解調(diào)以及多頻道切換等功能模塊。它工作在ISM國際公用頻段,最大能以20kbps的速度進(jìn)行無線數(shù)據(jù)傳輸。微控制器只需對(duì)nRF401進(jìn)行簡(jiǎn)單的控制就可以通過串口完成數(shù)據(jù)的收發(fā),nRF401與C8051F021構(gòu)成的無線通信系統(tǒng)如圖4所示。
C8051F021的UART0的設(shè)置與UARTl的設(shè)置相似,首先初始化交叉開關(guān)寄存器XBR0=0x04、XBR2=0x40;分別使能UART0和交叉開關(guān);再初始化特殊功能寄存器P0MDOUT=0x01;將P0.0和P0.1分別分配給TXl和RX1;因?yàn)閁ART0有最高優(yōu)先權(quán),當(dāng)UART0EN設(shè)置為1時(shí),P0.0和P0.1總是分配給TXl和BXl;最后完成UART0工作模式和波特率的設(shè)置。
為了將采集到的生理參數(shù)發(fā)送給接收系統(tǒng),在發(fā)送數(shù)據(jù)之前,芯片首先上電工作(即PWR_UP=1),然后選擇數(shù)據(jù)傳輸通道。nRF401有兩個(gè)傳輸通道可供選擇:通道l(433.92MHz)和通道2(434.33MHz)。將TXEN引腳置為高電平(發(fā)送模式),nRF401就能通過微控制器的串口發(fā)送數(shù)據(jù)。
2 系統(tǒng)軟件的設(shè)計(jì)
系統(tǒng)軟件主要完成以C8051F021為核心的生理參數(shù)的采集和無線發(fā)送。由于要處理多個(gè)不同的模塊,在實(shí)現(xiàn)過程中采用了巡回檢測(cè)的方法。在數(shù)據(jù)傳送過程中,設(shè)置了一個(gè)生理信息包協(xié)議,在采集系統(tǒng)和無線發(fā)送模塊之間,定義通信協(xié)議包如表2所示。串口對(duì)連續(xù)接收的2個(gè)字節(jié)的數(shù)據(jù)依據(jù)協(xié)議規(guī)則重新裝配。由于生理數(shù)據(jù)(心電、血壓、體溫等)一般不超過12位,采集系統(tǒng)將它們分別拆為低7位和高5位進(jìn)行傳輸。其中,高位的第一位為高位數(shù)據(jù)標(biāo)識(shí),設(shè)為0;低8位的第一位為低位數(shù)據(jù)標(biāo)識(shí),設(shè)為1。
表2 串口通信協(xié)議包
表3 各參數(shù)的具體識(shí)別方式
為了識(shí)別不同的生理參數(shù),對(duì)不同生理信號(hào)設(shè)置不同的信號(hào)標(biāo)識(shí)進(jìn)行相應(yīng)的幀編碼。對(duì)心電數(shù)據(jù)采用高8位的B6B5識(shí)別,其它的各類數(shù)據(jù)采用高8位的B6B5B4B3識(shí)別,各參數(shù)的具體識(shí)別方式如表3所示。編碼后的數(shù)據(jù)經(jīng)微控制器的UART0與nRF401實(shí)現(xiàn)無線發(fā)送。微控制器的UART0設(shè)置為工作模式1,波特率為9600bps。
系統(tǒng)軟件采用模塊化編程方法,根據(jù)功能將該系統(tǒng)程序分為六個(gè)基本模塊:系統(tǒng)初始化模塊(包括C8051F021微控制器I/O口設(shè)置、寄存器及變量的定義)、體溫模塊、心電模塊、血壓模塊、血氧模塊和無線傳輸模塊。系統(tǒng)軟件的流程如圖5所示。