基于C8051F021的遠程診斷與急救支援系統方案設計
表1 高速串行通信數據幀16位數據定義 本文引用地址:http://dyxdggzs.com/article/171345.htm
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)數據傳輸[5]。微控制器只需對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所示。
評論