【作者】張亞慧, 李正,陳廣飛
解放軍總醫(yī)院生物醫(yī)學(xué)工程研究室,北京市,100853
基于STM32F103的高效率數(shù)據(jù)通信中繼器的研究
【作者】張亞慧, 李正,陳廣飛
解放軍總醫(yī)院生物醫(yī)學(xué)工程研究室,北京市,100853
目的 為提高醫(yī)療物聯(lián)網(wǎng)無線終端的射頻傳輸距離,實(shí)現(xiàn)實(shí)時(shí)高效的數(shù)據(jù)通信,提出了基于STM32F103單片機(jī)的智能中繼系統(tǒng)。方法 該系統(tǒng)采用nRF905芯片實(shí)現(xiàn)對患者醫(yī)療健康信息在433 MHz頻段的采集,并利用單片機(jī)控制串口轉(zhuǎn)Wi-Fi模塊把信息傳輸從433 MHz的頻段轉(zhuǎn)到2.4 GHz的無線Wi-Fi頻段,采用就緒表查表算法來提高數(shù)據(jù)通信效率。結(jié)果 該設(shè)計(jì)能夠?qū)崟r(shí)、高效地進(jìn)行數(shù)據(jù)通信。結(jié)論 該中繼器使用方便,擴(kuò)展了數(shù)據(jù)傳輸?shù)木嚯x和方式,實(shí)現(xiàn)數(shù)據(jù)的實(shí)時(shí)性傳輸,具有較高的實(shí)用價(jià)值。
就緒表算法;中繼器;電子技術(shù);串口轉(zhuǎn)Wi-Fi;STM32F103
醫(yī)療物聯(lián)網(wǎng)技術(shù)在醫(yī)院中的應(yīng)用是通過醫(yī)院感知設(shè)備之間相互聯(lián)通,自動采集患者的醫(yī)療健康信息,經(jīng)過射頻、藍(lán)牙、Wi-Fi、Zigbee等傳輸技術(shù),將醫(yī)療健康信息智能化傳輸至應(yīng)用層,最后對數(shù)據(jù)進(jìn)行全局化決策分析[1]。各個(gè)醫(yī)院利用物聯(lián)網(wǎng)技術(shù)對患者的生理參數(shù)采集、傳輸、存儲的流程和方式可能不一,但每天都需要至少一次定時(shí)采集病區(qū)所有患者的生理參數(shù),并進(jìn)行實(shí)時(shí)存儲。因受物聯(lián)網(wǎng)無線射頻通信距離的限制、醫(yī)院病房的構(gòu)造對射頻信號的衰減和其他醫(yī)療儀器對射頻信號的干擾,需利用中繼器來實(shí)現(xiàn)患者生命體征數(shù)據(jù)的射頻信號遠(yuǎn)距、實(shí)時(shí)、精確、高效地從醫(yī)院病房終端傳送至護(hù)士工作站,供醫(yī)護(hù)人員進(jìn)行迅速的決策分析。
該文實(shí)現(xiàn)的產(chǎn)品功能屬于物聯(lián)網(wǎng)的傳輸層,是物聯(lián)網(wǎng)技術(shù)的神經(jīng)中樞,其將感知層獲取的信息進(jìn)行傳遞和處理。筆者利用STM32F103、nRF905和串口Wi-Fi模塊設(shè)計(jì)出一款中繼器,保證了醫(yī)療健康信息進(jìn)行穩(wěn)定、實(shí)時(shí)、高效地?zé)o誤差傳遞。
系統(tǒng)總體設(shè)計(jì)方案如圖1所示,整個(gè)系統(tǒng)由基于nRF905芯片的射頻接收模塊、STM32F103控制模塊和串口轉(zhuǎn)Wi-Fi模塊組成。射頻接收模塊負(fù)責(zé)接受醫(yī)療健康信息并對其進(jìn)行校驗(yàn)存儲。STM32F103控制模塊負(fù)責(zé)控制nRF905芯片和串口轉(zhuǎn)Wi-Fi模塊。串口轉(zhuǎn)Wi-Fi模塊負(fù)責(zé)將醫(yī)療健康信息在Wi-Fi的環(huán)境下傳給上位機(jī)。
系統(tǒng)的硬件設(shè)計(jì)主要是基于nRF905芯片的射頻接收模塊、STM32F103控制模塊、串口Wi-Fi模塊。
2.1STM32F103控制模塊
設(shè)計(jì)選用STM32F103單片機(jī)作為中繼器的核心部件。該器件是由意法半導(dǎo)體公司專為要求高性能、低成本、低功耗的嵌入式設(shè)計(jì)制造的32為ARM C°rtex-M3微控制器,片內(nèi)集成了內(nèi)核、嵌套向量中斷控制器(NVIC)、存儲器保護(hù)單元、總線接口單元和跟蹤調(diào)試單元等[3]。
2.2射頻接收模塊
系統(tǒng)的射頻接收模塊使用nRF905模塊,工作在433/868/915 MHz的ISM(Industrial Scientific Medical)頻段,內(nèi)部集成了調(diào)制和解調(diào)器、功率放大器和低噪聲放大器等模塊。采用曼徹斯特編碼,傳輸速率可以達(dá)到100 kbps。
芯片的TRX_EN管腳和TX_EN管腳與微控制器的IO口進(jìn)行連接就可以實(shí)現(xiàn)數(shù)據(jù)通信。數(shù)據(jù)發(fā)射時(shí),STM32F103可以低速的將數(shù)據(jù)發(fā)送給通信模塊;接收數(shù)據(jù)時(shí),數(shù)據(jù)包到達(dá)通信模塊后,通信模塊通知STM32F103。射頻模塊的電路圖[4]如圖2所示。

圖2 nRF905的應(yīng)用硬件連接Fig.2 The applied hardware c°nnecti°n °f nRF905
微控制器對nRF905的操作是通過配置寄存器、設(shè)置發(fā)送模式和接收模式實(shí)現(xiàn)的,所有的配置都是通過SPI接口傳送給nRF905。
2.3串口轉(zhuǎn)Wi-Fi
串口轉(zhuǎn)Wi-Fi的功能選用USR-Wi-Fi-232模塊來實(shí)現(xiàn),其用于實(shí)現(xiàn)串口到Wi-Fi數(shù)據(jù)包的雙向透明轉(zhuǎn)發(fā),用戶無需關(guān)心具體細(xì)節(jié),模塊內(nèi)部完成協(xié)議轉(zhuǎn)換。串口一側(cè)是串口數(shù)據(jù)透明傳輸,Wi-Fi網(wǎng)絡(luò)一側(cè)是TCP/IP數(shù)據(jù)包,通過簡單的設(shè)置便可指定工作細(xì)節(jié),設(shè)置可以通過模塊內(nèi)部的網(wǎng)頁進(jìn)行,也可以通過串口使用AT指令進(jìn)行,一次設(shè)置永久保存。為了高可控性,本設(shè)計(jì)采用AT指令進(jìn)行設(shè)置。圖3是模塊與STM32F103的硬件連接。

圖3 USR-WiFi-232的應(yīng)用硬件連接Fig.3 The applied hardware c°nnecti°n °f USR-Wi-Fi-232
通過STM32F103控制nRF905模塊和USR-Wi-Fi-232模塊實(shí)現(xiàn)中繼器功能的程序流程,如圖4所示。

圖4 系統(tǒng)整體功能流程圖Fig.4 Overall functi°nal fl°w chart °f the system
為了提高通信效率,采用就緒表查表法[5]進(jìn)行數(shù)據(jù)傳輸。由實(shí)際的情況出發(fā),我們定義一個(gè)64個(gè)內(nèi)存地址單元的數(shù)據(jù)緩存池來盛放接收到數(shù)據(jù),為了調(diào)高整個(gè)系統(tǒng)的效率,待有數(shù)據(jù)放在數(shù)據(jù)緩存池以后,必須以盡快的速度,定位到緩存數(shù)據(jù)的位置,然后取出發(fā)送到上位機(jī)。其工作流程如圖5所示。
為了快速定位到接收數(shù)據(jù)池中的接收數(shù)據(jù)內(nèi)存單元的位置,我們依據(jù)實(shí)時(shí)操作系統(tǒng)任務(wù)查找的機(jī)制,遵從哈希列表的思想,實(shí)現(xiàn)了數(shù)據(jù)的快速定位。

圖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方向定位標(biāo)志項(xiàng)
u8 OSRdyTbl[8]={0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; //X方向定位標(biāo)志項(xiàng)
獲取數(shù)據(jù)并將數(shù)據(jù)放入數(shù)據(jù)池以后,改變相應(yīng)標(biāo)志:
OSRdyGrp |= OSMapTbl[pri°>>3];
OSRdyTbl[pri°>>3]|=OSMapTbl[pri°&0x07];
由X方向定位標(biāo)志、Y方向定位標(biāo)志、偏移量查找表定位數(shù)據(jù)池中有效數(shù)據(jù)的位置:
y=OSUnMapTbl[OSRdyGrp];
x=OSUnMapTbl[OSRdyTbl[y]];
pri° =(y<<3)+x;
將查找到的優(yōu)先級最高的有效數(shù)據(jù)脫離數(shù)據(jù)池,進(jìn)入發(fā)送就緒狀態(tài)。

使用數(shù)據(jù)池、優(yōu)先級查找的程序結(jié)構(gòu)可以很大程度上保證通信的穩(wěn)定與效率,若直接使用輪詢的方法,數(shù)據(jù)的每一次查找都需要遍歷整個(gè)數(shù)據(jù)池,這樣會同時(shí)降低系統(tǒng)的效率以及系統(tǒng)通信的實(shí)時(shí)性。該查找的算法使用的數(shù)據(jù)池最大可容納64個(gè)數(shù)據(jù)結(jié)構(gòu),在此基礎(chǔ)上,也可通過擴(kuò)展偏移量表、X方向定位標(biāo)志項(xiàng)、Y方向定位標(biāo)志項(xiàng),來擴(kuò)展數(shù)據(jù)池可容納的數(shù)據(jù)量。經(jīng)試驗(yàn),采用輪詢的方式轉(zhuǎn)發(fā)數(shù)據(jù)時(shí)大約2~3 s上傳一個(gè)數(shù)據(jù)結(jié)構(gòu),而采用該快速查表算法后時(shí)間縮短為0.2 s左右,極大的提高了數(shù)據(jù)通信效率。
本系統(tǒng)研究的中繼器,采用nRF905 433M射頻模塊將數(shù)據(jù)接收并進(jìn)行校驗(yàn),實(shí)現(xiàn)數(shù)據(jù)的無誤接收;再經(jīng)STM32F103B模塊將數(shù)據(jù)處理后經(jīng)串口轉(zhuǎn)發(fā)到USR-Wi-Fi-232模塊,期中采用就緒表查表法實(shí)現(xiàn)了數(shù)據(jù)高效有序地通信;最后USR-Wi-Fi-232模塊將數(shù)據(jù)經(jīng)由Wi-Fi網(wǎng)絡(luò)傳送到上位機(jī)接收軟件上。該中繼器使用方便,擴(kuò)展了數(shù)據(jù)傳輸?shù)木嚯x和方式,實(shí)現(xiàn)數(shù)據(jù)的實(shí)時(shí)性傳輸,具有較高的應(yīng)用價(jià)值。
[1] 康季槐, 何史林, 陳廣飛, 等. 基于物聯(lián)網(wǎng)的病區(qū)智能監(jiān)護(hù)系統(tǒng)研制[J]. 醫(yī)療衛(wèi)生裝備, 2013, 34(9): 9-12.
[2] 溫麗麗, 李小堅(jiān). 基于 C°rtex-M3的呼吸機(jī)控制器設(shè)計(jì)[J]. 數(shù)字技術(shù)與應(yīng)用, 2013, (4): 22-23.
[3] Yiu J. ARM C°rtex-M3 權(quán)威指南[M]. 宋巖, 譯. 北京: 北京航空航天大學(xué)出版社, 2009.
[4] nRF905 Pr°duct Specificati°n v1.5[R/OL]. http://inf°center. n°rdicsemi.c°m/index. jsp
[5] Labr°sse J. 嵌入式實(shí)時(shí)操作系統(tǒng)μC/OS-II[M]. 第2版, 邵貝貝等譯. 北京: 北京航空航天大學(xué)出版社, 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