【作者】张亚慧, 李正,陈广飞
解放军总医院生物医学工程研究室,北京市,100853
基于STM32F103的高效率数据通信中继器的研究
【作者】张亚慧, 李正,陈广飞
解放军总医院生物医学工程研究室,北京市,100853
目的 为提高医疗物联网无线终端的射频传输距离,实现实时高效的数据通信,提出了基于STM32F103单片机的智能中继系统。方法 该系统采用nRF905芯片实现对患者医疗健康信息在433 MHz频段的采集,并利用单片机控制串口转Wi-Fi模块把信息传输从433 MHz的频段转到2.4 GHz的无线Wi-Fi频段,采用就绪表查表算法来提高数据通信效率。结果 该设计能够实时、高效地进行数据通信。结论 该中继器使用方便,扩展了数据传输的距离和方式,实现数据的实时性传输,具有较高的实用价值。
就绪表算法;中继器;电子技术;串口转Wi-Fi;STM32F103
医疗物联网技术在医院中的应用是通过医院感知设备之间相互联通,自动采集患者的医疗健康信息,经过射频、蓝牙、Wi-Fi、Zigbee等传输技术,将医疗健康信息智能化传输至应用层,最后对数据进行全局化决策分析[1]。各个医院利用物联网技术对患者的生理参数采集、传输、存储的流程和方式可能不一,但每天都需要至少一次定时采集病区所有患者的生理参数,并进行实时存储。因受物联网无线射频通信距离的限制、医院病房的构造对射频信号的衰减和其他医疗仪器对射频信号的干扰,需利用中继器来实现患者生命体征数据的射频信号远距、实时、精确、高效地从医院病房终端传送至护士工作站,供医护人员进行迅速的决策分析。
该文实现的产品功能属于物联网的传输层,是物联网技术的神经中枢,其将感知层获取的信息进行传递和处理。笔者利用STM32F103、nRF905和串口Wi-Fi模块设计出一款中继器,保证了医疗健康信息进行稳定、实时、高效地无误差传递。
系统总体设计方案如图1所示,整个系统由基于nRF905芯片的射频接收模块、STM32F103控制模块和串口转Wi-Fi模块组成。射频接收模块负责接受医疗健康信息并对其进行校验存储。STM32F103控制模块负责控制nRF905芯片和串口转Wi-Fi模块。串口转Wi-Fi模块负责将医疗健康信息在Wi-Fi的环境下传给上位机。
系统的硬件设计主要是基于nRF905芯片的射频接收模块、STM32F103控制模块、串口Wi-Fi模块。
2.1STM32F103控制模块
设计选用STM32F103单片机作为中继器的核心部件。该器件是由意法半导体公司专为要求高性能、低成本、低功耗的嵌入式设计制造的32为ARM C°rtex-M3微控制器,片内集成了内核、嵌套向量中断控制器(NVIC)、存储器保护单元、总线接口单元和跟踪调试单元等[3]。
2.2射频接收模块
系统的射频接收模块使用nRF905模块,工作在433/868/915 MHz的ISM(Industrial Scientific Medical)频段,内部集成了调制和解调器、功率放大器和低噪声放大器等模块。采用曼彻斯特编码,传输速率可以达到100 kbps。
芯片的TRX_EN管脚和TX_EN管脚与微控制器的IO口进行连接就可以实现数据通信。数据发射时,STM32F103可以低速的将数据发送给通信模块;接收数据时,数据包到达通信模块后,通信模块通知STM32F103。射频模块的电路图[4]如图2所示。
图2 nRF905的应用硬件连接Fig.2 The applied hardware c°nnecti°n °f nRF905
微控制器对nRF905的操作是通过配置寄存器、设置发送模式和接收模式实现的,所有的配置都是通过SPI接口传送给nRF905。
2.3串口转Wi-Fi
串口转Wi-Fi的功能选用USR-Wi-Fi-232模块来实现,其用于实现串口到Wi-Fi数据包的双向透明转发,用户无需关心具体细节,模块内部完成协议转换。串口一侧是串口数据透明传输,Wi-Fi网络一侧是TCP/IP数据包,通过简单的设置便可指定工作细节,设置可以通过模块内部的网页进行,也可以通过串口使用AT指令进行,一次设置永久保存。为了高可控性,本设计采用AT指令进行设置。图3是模块与STM32F103的硬件连接。
图3 USR-WiFi-232的应用硬件连接Fig.3 The applied hardware c°nnecti°n °f USR-Wi-Fi-232
通过STM32F103控制nRF905模块和USR-Wi-Fi-232模块实现中继器功能的程序流程,如图4所示。
图4 系统整体功能流程图Fig.4 Overall functi°nal fl°w chart °f the system
为了提高通信效率,采用就绪表查表法[5]进行数据传输。由实际的情况出发,我们定义一个64个内存地址单元的数据缓存池来盛放接收到数据,为了调高整个系统的效率,待有数据放在数据缓存池以后,必须以尽快的速度,定位到缓存数据的位置,然后取出发送到上位机。其工作流程如图5所示。
为了快速定位到接收数据池中的接收数据内存单元的位置,我们依据实时操作系统任务查找的机制,遵从哈希列表的思想,实现了数据的快速定位。
图5 查表算法示意图Fig.5 L°°k-up table alg°rithm
u8 c°nstOSUnMapTbl[256] = {0u, 0u, 1u, 0u, 2u, 0u, 1u, 0u, 3u, 0u, 1u, 0u, 2u, 0u, 1u, 0u, 4u, 0u, 1u, 0u, 2u, 0u, 1u, 0u, 3u, 0u, 1u, 0u, 2u, 0u, 1u, 0u, 5u, 0u, 1u, 0u, 2u, 0u, 1u, 0u, 3u, 0u, 1u, 0u, 2u, 0u, 1u, 0u, 4u, 0u, 1u, 0u, 2u, 0u, 1u, 0u, 3u, 0u, 1u, 0u, 2u, 0u, 1u, 0u, 6u, 0u, 1u, 0u, 2u, 0u, 1u, 0u, 3u, 0u, 1u, 0u, 2u, 0u, 1u, 0u, 4u, 0u, 1u, 0u, 2u, 0u, 1u, 0u, 3u, 0u, 1u, 0u, 2u, 0u, 1u, 0u, 5u, 0u, 1u, 0u, 2u, 0u, 1u, 0u, 3u, 0u, 1u, 0u, 2u, 0u, 1u, 0u, 4u, 0u, 1u, 0u, 2u, 0u, 1u, 0u, 3u, 0u, 1u, 0u, 2u, 0u, 1u, 0u, 7u, 0u, 1u, 0u, 2u, 0u, 1u, 0u, 3u, 0u, 1u, 0u, 2u, 0u, 1u, 0u, 4u, 0u, 1u, 0u, 2u, 0u, 1u, 0u, 3u, 0u, 1u, 0u, 2u, 0u, 1u, 0u, 5u, 0u, 1u, 0u, 2u, 0u, 1u, 0u, 3u, 0u, 1u, 0u, 2u, 0u, 1u, 0u, 4u, 0u, 1u, 0u, 2u, 0u, 1u, 0u, 3u, 0u, 1u, 0u, 2u, 0u, 1u, 0u, 6u, 0u, 1u, 0u, 2u, 0u, 1u, 0u, 3u, 0u, 1u, 0u, 2u, 0u, 1u, 0u, 4u, 0u, 1u, 0u, 2u, 0u, 1u, 0u, 3u, 0u, 1u, 0u, 2u, 0u, 1u, 0u, 5u, 0u, 1u, 0u, 2u, 0u, 1u, 0u, 3u, 0u, 1u, 0u, 2u, 0u, 1u, 0u, 4u, 0u, 1u, 0u, 2u, 0u, 1u, 0u, 3u, 0u, 1u, 0u, 2u, 0u, 1u, 0u}; // 偏移量查找表
u8 c°nstOSMapTbl[]={0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80}; //屏蔽字
u8 OSRdyGrp=0x00; // Y方向定位标志项
u8 OSRdyTbl[8]={0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; //X方向定位标志项
获取数据并将数据放入数据池以后,改变相应标志:
OSRdyGrp |= OSMapTbl[pri°>>3];
OSRdyTbl[pri°>>3]|=OSMapTbl[pri°&0x07];
由X方向定位标志、Y方向定位标志、偏移量查找表定位数据池中有效数据的位置:
y=OSUnMapTbl[OSRdyGrp];
x=OSUnMapTbl[OSRdyTbl[y]];
pri° =(y<<3)+x;
将查找到的优先级最高的有效数据脱离数据池,进入发送就绪状态。
使用数据池、优先级查找的程序结构可以很大程度上保证通信的稳定与效率,若直接使用轮询的方法,数据的每一次查找都需要遍历整个数据池,这样会同时降低系统的效率以及系统通信的实时性。该查找的算法使用的数据池最大可容纳64个数据结构,在此基础上,也可通过扩展偏移量表、X方向定位标志项、Y方向定位标志项,来扩展数据池可容纳的数据量。经试验,采用轮询的方式转发数据时大约2~3 s上传一个数据结构,而采用该快速查表算法后时间缩短为0.2 s左右,极大的提高了数据通信效率。
本系统研究的中继器,采用nRF905 433M射频模块将数据接收并进行校验,实现数据的无误接收;再经STM32F103B模块将数据处理后经串口转发到USR-Wi-Fi-232模块,期中采用就绪表查表法实现了数据高效有序地通信;最后USR-Wi-Fi-232模块将数据经由Wi-Fi网络传送到上位机接收软件上。该中继器使用方便,扩展了数据传输的距离和方式,实现数据的实时性传输,具有较高的应用价值。
[1] 康季槐, 何史林, 陈广飞, 等. 基于物联网的病区智能监护系统研制[J]. 医疗卫生装备, 2013, 34(9): 9-12.
[2] 温丽丽, 李小坚. 基于 C°rtex-M3的呼吸机控制器设计[J]. 数字技术与应用, 2013, (4): 22-23.
[3] Yiu J. ARM C°rtex-M3 权威指南[M]. 宋岩, 译. 北京: 北京航空航天大学出版社, 2009.
[4] nRF905 Pr°duct Specificati°n v1.5[R/OL]. http://inf°center. n°rdicsemi.c°m/index. jsp
[5] Labr°sse J. 嵌入式实时操作系统μC/OS-II[M]. 第2版, 邵贝贝等译. 北京: 北京航空航天大学出版社, 2003.
Research on the High Efficiency Data Communication Repeater Based on STM32F103
【 Writers 】ZHANG Yahui, LI Zheng, CHEN Guangfei Lab of Biomedical Engineering, Chinese PLA General Hospital, Beijing, 100853
【 Abstract 】Objective To improve the radio frequency (RF) transmission distance of the wireless terminal of the medical internet of things (IOT), to realize the real-time and efficient data communication, the intelligent relay system based on STM32F103 single chip microcomputer (SCM) is proposed. Methods The system used nRF905 chip to achieve the collection of medical and health information of patients in the 433 MHz band, used SCM to control the serial port to Wi-Fi module to transmit information from 433 MHz to 2.4 GHz wireless Wi-Fi band, and used table look-up algorithm of ready list to improve the efficiency of data communications. Results The design can realize real-time and efficient data communication. Conclusion The relay which is easy to use with high practical value can extend the distance and mode of data transmission and achieve real-time transmission of data.
ready list algorithm, repeater, electronic technology, serial port to Wi-Fi, STM32F103
TP212.9
A
10.3969/j.issn.1671-7104.2015.06.005
1671-7104(2015)06-0407-03
2015-06-11
张亚慧,E-mail: 1027237945@qq.c°m