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

圖2 nRF905的應用硬件連接Fig.2 The applied hardware c°nnecti°n °f nRF905
微控制器對nRF905的操作是通過配置寄存器、設置發(fā)送模式和接收模式實現的,所有的配置都是通過SPI接口傳送給nRF905。
2.3串口轉Wi-Fi
串口轉Wi-Fi的功能選用USR-Wi-Fi-232模塊來實現,其用于實現串口到Wi-Fi數據包的雙向透明轉發(fā),用戶無需關心具體細節(jié),模塊內部完成協(xié)議轉換。串口一側是串口數據透明傳輸,Wi-Fi網絡一側是TCP/IP數據包,通過簡單的設置便可指定工作細節(jié),設置可以通過模塊內部的網頁進行,也可以通過串口使用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 系統(tǒng)整體功能流程圖Fig.4 Overall functi°nal fl°w chart °f the system
為了提高通信效率,采用就緒表查表法[5]進行數據傳輸。由實際的情況出發(fā),我們定義一個64個內存地址單元的數據緩存池來盛放接收到數據,為了調高整個系統(tǒng)的效率,待有數據放在數據緩存池以后,必須以盡快的速度,定位到緩存數據的位置,然后取出發(fā)送到上位機。其工作流程如圖5所示。
為了快速定位到接收數據池中的接收數據內存單元的位置,我們依據實時操作系統(tǒng)任務查找的機制,遵從哈希列表的思想,實現了數據的快速定位。

圖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;
將查找到的優(yōu)先級最高的有效數據脫離數據池,進入發(fā)送就緒狀態(tài)。

使用數據池、優(yōu)先級查找的程序結構可以很大程度上保證通信的穩(wěn)定與效率,若直接使用輪詢的方法,數據的每一次查找都需要遍歷整個數據池,這樣會同時降低系統(tǒng)的效率以及系統(tǒng)通信的實時性。該查找的算法使用的數據池最大可容納64個數據結構,在此基礎上,也可通過擴展偏移量表、X方向定位標志項、Y方向定位標志項,來擴展數據池可容納的數據量。經試驗,采用輪詢的方式轉發(fā)數據時大約2~3 s上傳一個數據結構,而采用該快速查表算法后時間縮短為0.2 s左右,極大的提高了數據通信效率。
本系統(tǒng)研究的中繼器,采用nRF905 433M射頻模塊將數據接收并進行校驗,實現數據的無誤接收;再經STM32F103B模塊將數據處理后經串口轉發(fā)到USR-Wi-Fi-232模塊,期中采用就緒表查表法實現了數據高效有序地通信;最后USR-Wi-Fi-232模塊將數據經由Wi-Fi網絡傳送到上位機接收軟件上。該中繼器使用方便,擴展了數據傳輸的距離和方式,實現數據的實時性傳輸,具有較高的應用價值。
[1] 康季槐, 何史林, 陳廣飛, 等. 基于物聯網的病區(qū)智能監(jiān)護系統(tǒng)研制[J]. 醫(yī)療衛(wèi)生裝備, 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. 嵌入式實時操作系統(tǒng)μ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