, ,,,
(浙江工業(yè)大學(xué) 信息工程學(xué)院,杭州 310023)
在全球信息化快速發(fā)展的大背景下,數(shù)據(jù)已成為國家重要的基礎(chǔ)性戰(zhàn)略資源,正引領(lǐng)新一輪科技創(chuàng)新。對(duì)于無處不在的數(shù)據(jù),尤其在人類健康領(lǐng)域,對(duì)于人體的身體機(jī)能和基本生命信息的監(jiān)測(cè)數(shù)據(jù)顯得尤為重要。對(duì)此,目前可穿戴設(shè)備可以在某種程度上實(shí)現(xiàn)了人體基本生命信息的監(jiān)測(cè),比如在醫(yī)療方面,將人們的日常穿戴與生命信息監(jiān)測(cè)技術(shù)相結(jié)合,使其在自然狀態(tài)下獲取用戶的生命基本信息[1]。在體育應(yīng)用方面,對(duì)用戶進(jìn)行運(yùn)動(dòng)量化指標(biāo)和身體機(jī)能監(jiān)測(cè)數(shù)據(jù)的采集[2-3]。但是,目前的可穿戴設(shè)備雖然可以實(shí)現(xiàn)人體部分生命基本信息監(jiān)測(cè)的功能,但是它采集到的數(shù)據(jù)只能供用戶自己查看,而不能實(shí)現(xiàn)多個(gè)可穿戴設(shè)備的局部空間內(nèi)的組網(wǎng)[4-5],也不能對(duì)信息進(jìn)行共享,不能為相關(guān)行業(yè)的決策者提供可用于分析和決策的數(shù)據(jù),并且其系統(tǒng)功能的升級(jí)需要對(duì)硬件進(jìn)行重新設(shè)計(jì),無形中提高了產(chǎn)品的成本。
目前,在局部空間中將多個(gè)設(shè)備進(jìn)行組網(wǎng)[6],采用無線通訊的方式是最便捷的方式,而局部空間中將涉及到短距離的無線通訊。針對(duì)局部空間內(nèi)的短距離無線通信,文獻(xiàn)[7]提出了一種基于嵌入式的短距離無線通訊協(xié)議來解決通訊中不可靠的數(shù)據(jù)鏈路問題。文獻(xiàn)[8]對(duì)短距離無線通信技術(shù)的通信速度和功耗指標(biāo)提出了新的要求。文獻(xiàn)[9]通過分析NRF24L01的射頻技術(shù)在進(jìn)行短距離通信傳輸時(shí),其傳輸幀所需時(shí)間較長的缺點(diǎn),提出了一種SW-ARQ檢測(cè)通信質(zhì)量的通信協(xié)議。文獻(xiàn)[10-11]均是利用RF射頻技術(shù)并配合傳感器技術(shù)實(shí)現(xiàn)了自動(dòng)測(cè)量和控制,但不能進(jìn)行多協(xié)議的無線設(shè)備的通信,其中的傳感器在設(shè)計(jì)時(shí)是與系統(tǒng)集成在一起進(jìn)行采樣和數(shù)據(jù)通信,使系統(tǒng)變得更加復(fù)雜,設(shè)計(jì)成本過高。
局部空間中無線通信的方式與穩(wěn)定性對(duì)通訊質(zhì)量還有著重要的影響。文獻(xiàn)[12]提出了一種利用藍(lán)牙通信和Android智能手機(jī)應(yīng)用程序之間的信息交互方法,其主要是通過手機(jī)控制端APP程序進(jìn)行實(shí)現(xiàn),忽視了通訊過程中無線信號(hào)的干擾。文獻(xiàn)[13]針對(duì)無線通信在復(fù)雜環(huán)境中數(shù)據(jù)信號(hào)易受電磁干擾的影響,提出了一種無線通信過程中抗信道噪聲干擾的高效算法,雖然信號(hào)的抗干擾性得到保障但是在局部空間中對(duì)多個(gè)設(shè)備進(jìn)行無線通信卻并未得到很好的解決。
為了解決在局部空間中多個(gè)外部監(jiān)測(cè)設(shè)備的組網(wǎng)以及信號(hào)傳輸?shù)姆€(wěn)定性和通信協(xié)議的兼容性問題。本文設(shè)計(jì)了一種面向局部空間的多通路無線數(shù)據(jù)通信系統(tǒng),在局部空間中將多個(gè)數(shù)據(jù)采集設(shè)備通過無線通訊進(jìn)行組網(wǎng)連接,從中提取并共享數(shù)據(jù),以便為相關(guān)行業(yè)提供可用于分析與決策的大數(shù)據(jù)。本系統(tǒng)基于藍(lán)牙通訊協(xié)議和NRF射頻技術(shù)對(duì)不同功能的多個(gè)外設(shè)進(jìn)行信息的同步收集,將收集的數(shù)據(jù)傳送到ARM處理器主控模塊進(jìn)行處理,并將處理后的數(shù)據(jù)實(shí)時(shí)地傳輸?shù)娇蛻舳耍煽蛻舳诉M(jìn)行數(shù)據(jù)的存儲(chǔ)、分析和相關(guān)行業(yè)的聯(lián)網(wǎng)共享,為行業(yè)決策者提供可供參考的大數(shù)據(jù),促進(jìn)相關(guān)行業(yè)的健康發(fā)展。本文通過藍(lán)牙協(xié)議和NRF射頻模式這兩種通信方式對(duì)所設(shè)計(jì)系統(tǒng)的穩(wěn)定性和通信協(xié)議的可擴(kuò)展性進(jìn)行了實(shí)驗(yàn)驗(yàn)證。
為了在局部空間中能夠?qū)崟r(shí)、精確地提取用戶產(chǎn)生的各項(xiàng)信息,使數(shù)據(jù)的采集更加的智能與高效,需要有合適的系統(tǒng)對(duì)相應(yīng)的各項(xiàng)指標(biāo)數(shù)據(jù)進(jìn)行收集與處理,并最終實(shí)現(xiàn)數(shù)據(jù)的共享。圖1所示為針對(duì)上述問題提出的一種多通路無線數(shù)據(jù)通信系統(tǒng)的總體設(shè)計(jì)方案圖。
圖1 系統(tǒng)總體方案圖
本系統(tǒng)的核心是利用ARM處理器對(duì)多路數(shù)據(jù)信號(hào)的解碼和處理、藍(lán)牙(BLE)無線技術(shù)中的MTTM協(xié)議[14]和NRF射頻技術(shù)中的ShockBurstTM射頻模式[15]實(shí)現(xiàn)信號(hào)的無線傳輸以及串口技術(shù)進(jìn)行數(shù)據(jù)的收發(fā)與共享,從而在局部空間中實(shí)時(shí)、穩(wěn)定地將不同通信協(xié)議的多個(gè)設(shè)備進(jìn)行組網(wǎng)和信號(hào)處理。
系統(tǒng)總體方案圖中S0為系統(tǒng)的輸入信號(hào),S1、S2作為系統(tǒng)NRF射頻模塊和藍(lán)牙模塊接收到的各項(xiàng)外部信息,S3、S4、S5為系統(tǒng)ARM處理器解碼和處理后的信息,信號(hào)S6可指示出系統(tǒng)的工作狀態(tài)。
輸入信號(hào)S0通過串口端發(fā)送至系統(tǒng)的ARM處理器,使系統(tǒng)與外部的藍(lán)牙設(shè)備和NRF射頻設(shè)備建立連接,接收外部NRF射頻設(shè)備的信號(hào)S1和外部藍(lán)牙(BLE)設(shè)備的信號(hào)S2;并將接收到的信息通過ARM處理器對(duì)其進(jìn)行信息解碼,解碼后的數(shù)據(jù)用于對(duì)系統(tǒng)進(jìn)行自檢,如果自檢失敗則是由于系統(tǒng)與外設(shè)的連接機(jī)制異常導(dǎo)致,此時(shí)系統(tǒng)會(huì)對(duì)連接異常的部分進(jìn)行自動(dòng)重連;如果自檢成功,系統(tǒng)進(jìn)入正常工作模式,此時(shí)系統(tǒng)對(duì)藍(lán)牙端、NRF射頻端和串口端這三條通路經(jīng)過解碼后的數(shù)據(jù)進(jìn)行校驗(yàn)、分類和匹配等處理,并將處理后的數(shù)據(jù)分別發(fā)送至系統(tǒng)內(nèi)部的不同功能模塊,其中數(shù)據(jù)信號(hào)S3發(fā)送給系統(tǒng)內(nèi)部藍(lán)牙(BLE)端、S4發(fā)送給系統(tǒng)內(nèi)部的NRF射頻端、S5發(fā)送給系統(tǒng)內(nèi)部的串口端、S6發(fā)送給系統(tǒng)內(nèi)部的LED部分,使系統(tǒng)可以通過LED燈的變化實(shí)時(shí)為用戶反饋出系統(tǒng)的運(yùn)行狀態(tài)。最后,系統(tǒng)通過內(nèi)部藍(lán)牙(BLE)、內(nèi)部NRF射頻和串口將信號(hào)S3、S4、S5發(fā)送至對(duì)應(yīng)的外部設(shè)備。
系統(tǒng)由串口端、NRF射頻端和藍(lán)牙(BLE)端建立三通路多信號(hào)的同步通信,每個(gè)通道可以同時(shí)傳輸至少兩種以上不同的信息;系統(tǒng)的ARM處理器對(duì)來自不同通道的多種信息進(jìn)行實(shí)時(shí)接收;對(duì)來自不同通道的信息實(shí)時(shí)的進(jìn)行信道解碼、信息獲取、校驗(yàn)和匹配;對(duì)處理后的數(shù)據(jù)以每50 ms一次的通信速率發(fā)送給不同的通信通道;系統(tǒng)處理后的數(shù)據(jù)可以通過串口端傳輸給電腦端進(jìn)行實(shí)時(shí)記錄、存儲(chǔ)以及數(shù)據(jù)的共享;為了確保系統(tǒng)能夠?qū)崟r(shí)正常運(yùn)行,系統(tǒng)每隔500 ms進(jìn)行一次自檢。由于系統(tǒng)無線通信部分采用模塊化設(shè)計(jì),用戶可以根據(jù)需求對(duì)無線通信方式進(jìn)行更改或擴(kuò)展,使系統(tǒng)可以根據(jù)無線通信協(xié)議的不同進(jìn)行定制。
系統(tǒng)的硬件組成主要包括USB轉(zhuǎn)串口模塊、ARM處理器主控模塊、藍(lán)牙模塊、NRF射頻模塊、智能LED燈模塊等。通過各模塊之間的相互配合實(shí)現(xiàn)多通路多協(xié)議的無線數(shù)據(jù)通信。
圖2 系統(tǒng)硬件框圖
如圖2所示:系統(tǒng)通過USB轉(zhuǎn)串口芯片構(gòu)建系統(tǒng)的USB轉(zhuǎn)串口模塊,該模塊連接電腦客戶端和ARM處理器主控模塊,將電腦客戶端USB接口轉(zhuǎn)化為通用串口,實(shí)現(xiàn)電腦客戶端和ARM處理器主控模塊的信息雙向互通;USB轉(zhuǎn)串口模塊接收ARM處理器主控模塊的信息并發(fā)送給客戶端,同時(shí)接收客戶端的信息并發(fā)送給ARM處理器。
系統(tǒng)采用低功耗Cortex-M3內(nèi)核的32位ARM微控制器STM32F103C8T6和相應(yīng)的外圍電路構(gòu)建系統(tǒng)的ARM處理器主控模塊。該模塊與USB轉(zhuǎn)串口模塊、藍(lán)牙模塊、NRF射頻模塊、LED燈模塊相連接,系統(tǒng)運(yùn)行中實(shí)現(xiàn)對(duì)系統(tǒng)的自檢,當(dāng)系統(tǒng)在運(yùn)行中出現(xiàn)藍(lán)牙連接斷開時(shí),ARM處理器主控模塊通過給LED燈模塊的反饋信息使用戶直觀的判斷出系統(tǒng)的運(yùn)行狀態(tài)和故障原因。ARM處理器主控模塊與其它各模塊之間的信息(接收/發(fā)送)交互同步進(jìn)行,其中ARM處理器主控模塊接收的信息包括:接收USB轉(zhuǎn)串口模塊從電腦客戶端接收到的連接外界指定藍(lán)牙設(shè)備的指令信息、動(dòng)態(tài)修改NRF射頻模塊端口地址的指令信息、外部藍(lán)牙設(shè)備的控制信息;接收系統(tǒng)藍(lán)牙模塊發(fā)送過來的多種信息;接收射頻模塊發(fā)送過來的多種信息。并對(duì)接收到的這些信息進(jìn)行數(shù)據(jù)的解析、檢驗(yàn),匹配和重組,然后將重組后的信息發(fā)送給相應(yīng)的功能模塊。
系統(tǒng)的藍(lán)牙模塊采用低功耗、低成本、高速度的2.4 GHz頻段全球開放的BLE4.0藍(lán)牙,并將其設(shè)置成主機(jī)模式,該模塊在系統(tǒng)中與ARM處理器主控模塊相連接,實(shí)現(xiàn)藍(lán)牙模塊與ARM處理器主控模塊的雙向通信,然后利用藍(lán)牙通信協(xié)議中的電話傳送控制協(xié)議(AT命令集)實(shí)現(xiàn)與外界藍(lán)牙設(shè)備的連接,并通過藍(lán)牙自身的主透傳協(xié)議模塊(簡稱MTTM)可以在透傳(TTM)或指令(CM)模式下進(jìn)行工作[14]。當(dāng)MTTM上電啟動(dòng)后,進(jìn)入待機(jī)狀態(tài),用戶通過AT指令連接藍(lán)牙設(shè)備,成功連接后MTTM將自動(dòng)查找從機(jī)藍(lán)牙的透傳通道,進(jìn)入數(shù)據(jù)透傳模式,其中用戶數(shù)據(jù)的具體含義可由上層的應(yīng)用程序自行定義。該模塊在系統(tǒng)中需要接收經(jīng)過ARM處理器主控模塊處理后的藍(lán)牙連接指令并將其發(fā)送給外部藍(lán)牙設(shè)備使其建立連接;接收ARM處理器處理后的控制信息并將控制信息發(fā)送給外部藍(lán)牙設(shè)備,從而對(duì)外部藍(lán)牙設(shè)備進(jìn)行控制;接收外部藍(lán)牙設(shè)備通過透傳模式發(fā)送過來的信息并將其發(fā)送給ARM處理器。系統(tǒng)的NRF射頻模塊采用的是2.4~2.5 GHz世界通用ISM頻段的單片無線收發(fā)器芯片——NRF24L01進(jìn)行射頻模塊的構(gòu)建,該射頻模塊連接ARM處理器主控模塊,并利用ShockBurstTM 模式下芯片內(nèi)部射頻協(xié)議在星形網(wǎng)絡(luò)中的應(yīng)答地址進(jìn)行通道配置,實(shí)現(xiàn)與外部射頻模塊的連接和信息的雙向互通。
其中NRF24L01在ShockBurstTM接收模式下,當(dāng)接收到的數(shù)據(jù)和地址均有效時(shí)IRQ將通知MCU,之后MCU將接收到的數(shù)據(jù)從RX_FIFO寄存器讀出。在接收模式下可以對(duì)6路不同通道的數(shù)據(jù)進(jìn)行接收,每一個(gè)數(shù)據(jù)通道使用不同的應(yīng)答地址,但是共用相同的頻道[15]。該模塊在系統(tǒng)中可以接收經(jīng)過ARM處理器主控模塊處理后的動(dòng)態(tài)修改射頻模塊端口(端口0)地址的指令信息,接收來自外部射頻器件發(fā)送過來的通訊信息;射頻模塊向ARM處理器主控模塊發(fā)送從外部射頻器件接收到的通訊信息。
系統(tǒng)采用體積小、能耗低、壽命長的LED燈(兩盞)構(gòu)成本系統(tǒng)的LED燈模塊,該模塊接收ARM處理器的控制信息,通過LED燈的閃爍狀態(tài)使用戶直觀的判斷出系統(tǒng)當(dāng)前所處的工作狀態(tài),以及當(dāng)系統(tǒng)處于異常時(shí)用戶通過LED燈的狀態(tài)判斷出異常的原因,便于對(duì)系統(tǒng)進(jìn)行維護(hù)。
完成面向局部空間多通路無線數(shù)據(jù)通信系統(tǒng)的相關(guān)硬件電路設(shè)計(jì)和實(shí)現(xiàn)后,若要使多通路無線數(shù)據(jù)通信系統(tǒng)能夠正常運(yùn)行,需要對(duì)其軟件部分進(jìn)行相應(yīng)的設(shè)計(jì)。基于系統(tǒng)穩(wěn)定性、實(shí)時(shí)性的功能需求,系統(tǒng)的軟件方案設(shè)計(jì)了三種工作模式,分別為系統(tǒng)待機(jī)模式、系統(tǒng)正常工作模式和系統(tǒng)異常處理模式。系統(tǒng)軟件功能結(jié)構(gòu)如圖3所示。
圖3 系統(tǒng)軟件功能結(jié)構(gòu)圖
系統(tǒng)待機(jī)模式:在程序開始運(yùn)行時(shí),需要對(duì)系統(tǒng)以及外設(shè)接口進(jìn)行初始化處理,需要初始化的功能結(jié)構(gòu)如下:
……
LED_GPIO_Config();//LED 端口初始化
USART3_Config();//串口3初始化
USART2_Config();//串口2初始化
SPI_Init();//SPI初始化
NRF24L01_Init1();//NRF24L01初始化
TIM3_Configuration();// TIM3定時(shí)初始化
IWDG_Init(IWDG_Prescaler_64,625); //看門狗初始化
……
系統(tǒng)在完成初始化功能后將啟動(dòng)藍(lán)牙協(xié)議棧和NRF24L01的2.4GHz的ISM頻段,使系統(tǒng)中的藍(lán)牙和NRF24L01處于待機(jī)狀態(tài);再開啟系統(tǒng)所需的中斷請(qǐng)求,如下所示:
……
USART3_NVIC_Configuration();//藍(lán)牙接收中斷
USART2_NVIC_Configuration();//USB接收中斷
TIM3_NVIC_Configuration();//定時(shí)器3中斷初始化
……
此時(shí)系統(tǒng)處于待機(jī)狀態(tài),系統(tǒng)中以ARM處理器為核心的ARM主控模塊將不給LED燈模塊發(fā)送指令信息,系統(tǒng)中的LED1和LED2處于常滅狀態(tài),預(yù)示系統(tǒng)處于待機(jī)狀態(tài)。
在局部空間中,處于待機(jī)狀態(tài)的系統(tǒng)通過客戶端進(jìn)行激活,使其進(jìn)入正常工作模式,具體實(shí)現(xiàn)如下:
對(duì)于處于待機(jī)狀態(tài)的系統(tǒng),需要通過客戶端發(fā)送外部藍(lán)牙的連接指令來實(shí)現(xiàn)連接指定外部藍(lán)牙和修改外部射頻通道地址,從而避免信號(hào)的串碼和外部其他藍(lán)牙信號(hào)和射頻信號(hào)的干擾。
首先,客戶端發(fā)送連接指令如:
AT+CONA0x00158330A3B1
其中0x00158330A3B1為外部指定藍(lán)牙設(shè)備的MAC地址,每一個(gè)藍(lán)牙設(shè)備的MAC地址都不相同)經(jīng)過USB轉(zhuǎn)串口模塊傳送給ARM主控模塊,由ARM主控模塊對(duì)其幀頭(“AT+CONA”)進(jìn)行校驗(yàn),無誤后根據(jù)藍(lán)牙協(xié)議中的電話傳送控制協(xié)議(AT指令集)通過串口發(fā)送藍(lán)牙連接的AT指令:
……
UART_send(UBuffer3,24); //發(fā)送藍(lán)牙連接指令
……
使藍(lán)牙模塊與外部藍(lán)牙建立連接。同時(shí)ARM主控模塊從連接指令中截取指令的后四位“A3B1”,將后四位數(shù)據(jù)匹配和重組成射頻模塊NRF24L01通道0的地址(并利用ASCII碼將字符轉(zhuǎn)換成16進(jìn)制數(shù)):
0x410x330x420x310xFF
再調(diào)用修改射頻NRF24L01通道0地址的函數(shù):
……
bsp_change_nrf_ID();//修改NRF24L01通道0的地址
……
此時(shí)系統(tǒng)成功建立藍(lán)牙連接,藍(lán)牙進(jìn)入透傳模式(TTM),同時(shí)NRF24L01射頻模塊的通道0地址修改成功后NRF24L01進(jìn)入ShockBurstTM模式。
其次,通過ARM處理器接收到的來自藍(lán)牙模塊和NRF24L01射頻模塊的數(shù)據(jù),并設(shè)定好參與系統(tǒng)自檢的數(shù)據(jù)類型來對(duì)系統(tǒng)進(jìn)行自檢,除此之外NRF24L01自身會(huì)進(jìn)行自檢、系統(tǒng)看門狗定時(shí)器對(duì)系統(tǒng)是否跑飛進(jìn)行自檢,每500 ms自檢一次如下所示:
……
while(NRF24L01_Check1()){}//NRF24L0自檢
Feed_Dog();//看門狗喂狗函數(shù)
……
自檢通過后系統(tǒng)對(duì)USB端、藍(lán)牙端、射頻端等多個(gè)通道發(fā)送過來的數(shù)據(jù)進(jìn)行接收,接收函數(shù)如下:
……
void USART3_IRQHandler(void);//藍(lán)牙接收中斷
void USART2_IRQHandler(void)//USB接收中斷
NRF24L01_RxMode();//NRF24L01接收數(shù)據(jù)包
……
對(duì)于接收到的數(shù)據(jù)包傳送給ARM主控模塊,由ARM主控模塊對(duì)接收到的數(shù)據(jù)進(jìn)行幀頭與幀尾的校驗(yàn)、匹配、重組后得到新的幾組數(shù)據(jù),(其中幀頭可以設(shè)置成相同的數(shù)據(jù)位,如:幀頭設(shè)置成“123”,幀尾設(shè)置成“21”,數(shù)據(jù)的第四位設(shè)置成校驗(yàn)位,根據(jù)數(shù)據(jù)校驗(yàn)位的不同,將數(shù)據(jù)匹配成不同通道中的不同數(shù)據(jù),再根據(jù)其對(duì)應(yīng)的通道類型對(duì)匹配后的數(shù)據(jù)進(jìn)行重組。)之后這幾組數(shù)據(jù)再經(jīng)過不同的通道每隔50 ms發(fā)送給相應(yīng)的端口。調(diào)用的函數(shù)有:
……
Data_Send3();//發(fā)送給外部藍(lán)牙設(shè)備
Data_Send2();//發(fā)送給外客戶端
NRF24L01_TxMode1(); //發(fā)送給外部射頻
……
最后,對(duì)于系統(tǒng)處于正常工作模式時(shí),系統(tǒng)中ARM處理器主控模塊發(fā)送LED燈(兩盞LED燈)模塊的控制指令,此時(shí)LED燈模塊從常滅狀態(tài)進(jìn)入正常交替閃爍(周期設(shè)置為500 ms),同時(shí)LED燈模塊每隔500 ms的交替閃爍,可以將系統(tǒng)處于正常工作模式的狀態(tài)反饋給使用者。
此外,系統(tǒng)正常模式時(shí)通過USB串口發(fā)送給客戶端的數(shù)據(jù)可以由客戶端進(jìn)行存儲(chǔ),用于實(shí)現(xiàn)數(shù)據(jù)的共享,便于行業(yè)對(duì)數(shù)據(jù)的提取,從而從大數(shù)據(jù)的角度進(jìn)行分析和決策。
但是對(duì)于任何系統(tǒng)都會(huì)有異常情況的出現(xiàn),為了確保系統(tǒng)的穩(wěn)定性,對(duì)系統(tǒng)做了如下的異常分析與處理:
當(dāng)系統(tǒng)上電或者正常運(yùn)行了一段時(shí)間后既不是處于待機(jī)模式也不是處于正常運(yùn)行模式(LED燈模塊既不是常滅也不是以500 ms為周期交替閃爍)時(shí),則此時(shí)默認(rèn)系統(tǒng)為工作異常狀態(tài)。在本系統(tǒng)中出現(xiàn)異常狀態(tài)的原因有:(1)系統(tǒng)供電異常(表現(xiàn)為藍(lán)牙模塊的指示燈不亮);(2)系統(tǒng)藍(lán)牙與外界藍(lán)牙連接斷開(表現(xiàn)為藍(lán)牙模塊指示燈由常量編程閃爍,同時(shí)系統(tǒng)LED燈模塊的LED1狀態(tài)為快速閃爍,LED2狀態(tài)為常滅);(3)系統(tǒng)的射頻部分通道0地址沒有匹配成功(表現(xiàn)為系統(tǒng)的LED燈模塊的LED1狀態(tài)為常滅,LED2狀態(tài)為慢速閃爍);(4)系統(tǒng)程序跑飛(表現(xiàn)為系統(tǒng)LED燈模塊的LED1與LED2同時(shí)閃爍)。
針對(duì)上述四種情況,除了第1種情況系統(tǒng)供電異常屬于外部影響,此時(shí)只需要給系統(tǒng)重新上電即可;對(duì)于第2、3、4這三種情況都是系統(tǒng)自檢未通過造成,當(dāng)出現(xiàn)第2種情況(持續(xù)5秒時(shí))系統(tǒng)將調(diào)用其內(nèi)部flash中保存的連接外部藍(lán)牙設(shè)備的MAC地址,系統(tǒng)將自動(dòng)重發(fā)藍(lán)牙連接的AT指令使系統(tǒng)重新建立連接;當(dāng)出現(xiàn)第3種情況(持續(xù)5秒)時(shí)系統(tǒng)會(huì)調(diào)用其內(nèi)部flash中存放的重組后的射頻模塊NRF24L01通道0的地址再重新發(fā)送給射頻模塊進(jìn)行通道0應(yīng)答地址的配對(duì),重新建立連接;當(dāng)出現(xiàn)第4種情況時(shí),系統(tǒng)看門狗將會(huì)給程序進(jìn)行復(fù)位,系統(tǒng)將重新開始運(yùn)行。
本系統(tǒng)在Keil環(huán)境下完成軟件方案的編寫后,搭建了實(shí)驗(yàn)環(huán)境平臺(tái)進(jìn)行多次反復(fù)實(shí)驗(yàn),實(shí)驗(yàn)平臺(tái)如圖4所示:圖中2(1為2的投影圖)為面向局部空間多通路無線數(shù)據(jù)通信系統(tǒng),左邊的虛線框?yàn)镹RF24L01,中間的虛線框?yàn)長ED燈模塊,右邊的虛線框?yàn)樗{(lán)牙模塊;圖中5為外部藍(lán)牙監(jiān)測(cè)設(shè)備;圖中3為外部藍(lán)牙提供速度采樣值;圖中4為6(外部射頻)的背面構(gòu)造(分別為NRF24L01和MPU6050);圖中7為萬用表。
實(shí)驗(yàn)環(huán)境為三條通路五種信息。通過此實(shí)驗(yàn)平臺(tái)對(duì)本系統(tǒng)的穩(wěn)定性和可靠性進(jìn)行測(cè)試。如圖5實(shí)驗(yàn)原理示意圖所示:通道一為系統(tǒng)與電腦串口端進(jìn)行通信(利用串口助手模擬客戶端應(yīng)用程序,對(duì)通信的過程和結(jié)果進(jìn)行檢測(cè));通道二為系統(tǒng)與外部藍(lán)牙進(jìn)行通信(通信結(jié)果通過keil軟件和串口調(diào)試助手進(jìn)行仿真和檢測(cè));通道三為系統(tǒng)與外部射頻(NRF24L01)設(shè)備進(jìn)行通信。
實(shí)驗(yàn)中通過五種信息的傳輸以及人為對(duì)系統(tǒng)制造干擾從而對(duì)系統(tǒng)進(jìn)行穩(wěn)定性和可靠性測(cè)試,其中5種信號(hào)分別為:1)系統(tǒng)連接信息(包括系統(tǒng)藍(lán)牙與外部藍(lán)牙連接信息、系統(tǒng)射頻與外部射頻設(shè)備的連接信息),可通過藍(lán)牙部分的指示燈以及系統(tǒng)LED燈模塊進(jìn)行查看);2)速度采樣信息(系統(tǒng)接收外部藍(lán)牙發(fā)送的速度采樣信息、經(jīng)過系統(tǒng)處理后的速度信息發(fā)送給電腦串口端)通過串口助手進(jìn)行查看;3)角度信息(系統(tǒng)接收外部射頻設(shè)備中的MPU6050陀螺儀角度信息、經(jīng)過系統(tǒng)處理后的角度信息發(fā)送給電腦串口端)通過串口助手進(jìn)行查看;4)按鍵信息(系統(tǒng)接收外部射頻設(shè)備中的按鍵遙控信息、經(jīng)過系統(tǒng)處理后的按鍵遙控信息發(fā)送給電腦串口端),通過串口助手進(jìn)行查看;5)PWM控制信息(包括:通過串口助手給系統(tǒng)發(fā)送PWM控制信號(hào)、系統(tǒng)將PWM控制信號(hào)進(jìn)行處理后發(fā)送給外部藍(lán)牙設(shè)備,對(duì)外部設(shè)備進(jìn)行控制(通過keil軟件對(duì)外設(shè)進(jìn)行波形仿真)。同時(shí)為了進(jìn)一步測(cè)試系統(tǒng)的穩(wěn)定性和快速響應(yīng)的性能,測(cè)試時(shí)ARM主控每50 ms發(fā)送一次數(shù)據(jù)包。此外人為制造的干擾包括:1)在利用此實(shí)驗(yàn)平臺(tái)進(jìn)行實(shí)驗(yàn)的過程中在實(shí)驗(yàn)環(huán)境周圍增加多個(gè)藍(lán)牙設(shè)備和射頻設(shè)備,測(cè)試系統(tǒng)的抗干擾性能;2)系統(tǒng)正常運(yùn)行時(shí)分別人為的使系統(tǒng)藍(lán)牙與外部藍(lán)牙連接斷開以及系統(tǒng)射頻與外部射頻連接斷開,從而測(cè)試系統(tǒng)的自檢功能。
通過實(shí)驗(yàn)驗(yàn)證:系統(tǒng)的LED燈模塊能夠?qū)崟r(shí)、正確的反應(yīng)出系統(tǒng)的工作狀態(tài)。系統(tǒng)的ARM處理器主控模塊接收串口端的信息源,系統(tǒng)對(duì)其處理后經(jīng)過藍(lán)牙通道將其發(fā)送給外部藍(lán)牙監(jiān)測(cè)設(shè)備,控制外部藍(lán)牙監(jiān)測(cè)設(shè)備的PWM波信號(hào),如圖6所示外部藍(lán)牙設(shè)備接收波形控制信號(hào)產(chǎn)生的PWM波形(50%占空比)仿真圖,測(cè)試系統(tǒng)信號(hào)的穩(wěn)定性。系統(tǒng)的ARM處理器主控模塊對(duì)串口通道、藍(lán)牙通道、NRF射頻通道接收的信息源能夠?qū)崟r(shí)穩(wěn)定的進(jìn)行信道解碼、信息校驗(yàn)、分類匹配和信息傳輸,如圖7所示。
圖6 控制外設(shè)PWM信號(hào)的keil仿真圖
第一行(AT+CONA0x00158330A3B1)為串口成功接收到的藍(lán)牙連接指令,經(jīng)過系統(tǒng)處理后使藍(lán)牙設(shè)備建立無線連接,連接成功后進(jìn)入數(shù)據(jù)透傳模式,而第二行之后為系統(tǒng)運(yùn)行中實(shí)時(shí)接收和處理后的信息經(jīng)串口打印供實(shí)驗(yàn)查看的數(shù)據(jù),如:第二行括號(hào)中數(shù)據(jù)“1231101821”為接收來自外部NRF射頻經(jīng)過系統(tǒng)成功處理后的角度數(shù)據(jù)(101.8°),第四行“1232000021”為系統(tǒng)處理后的外部NRF射頻的遙控信息(無按鍵按下),第六行“1230003921”為系統(tǒng)處理后的外部藍(lán)牙發(fā)送的速度信息(3.9 km/s)。
實(shí)驗(yàn)測(cè)得該系統(tǒng)在一定空間范圍內(nèi)與多個(gè)外部設(shè)備進(jìn)行無線通訊,通過ARM處理器獲取來自不同設(shè)備不同通信協(xié)議的信息源,對(duì)各通道的信息源進(jìn)行信道解碼、信息獲取、信息校驗(yàn)、分類匹配和傳輸?shù)忍幚?。?yàn)證了本系統(tǒng)在局部空間中通過多種無線通信協(xié)議進(jìn)行無線連接并同時(shí)獲取多個(gè)通道中的信息(如:速度、角度、PWM波、遙控等信息)時(shí)系統(tǒng)仍具有很好的實(shí)時(shí)性。實(shí)驗(yàn)中人為制造干擾信號(hào)并使用串口實(shí)時(shí)打印通信信息,數(shù)據(jù)無信息丟失和亂碼現(xiàn)象,確保該系統(tǒng)具有很好的穩(wěn)定性。
本文設(shè)計(jì)并實(shí)現(xiàn)了一種面向局部空間的多通路無線數(shù)據(jù)通信系統(tǒng),該系統(tǒng)硬件部分以ARM處理器為核心,利用藍(lán)牙無線技術(shù)和NRF無線射頻技術(shù)構(gòu)建系統(tǒng)的藍(lán)牙通信端和射頻通信端,并結(jié)合系統(tǒng)的USB串口端組成多通路通信系統(tǒng);軟件部分通過ARM處理器對(duì)各通道的信息源進(jìn)行信道解碼、信息獲取、信息校驗(yàn)、分類匹配和傳輸?shù)忍幚?,?shí)現(xiàn)在局部空間中對(duì)多個(gè)不同通信協(xié)議的外部監(jiān)測(cè)設(shè)備進(jìn)行無線連接,獲取和處理不同通道中來自不同通信協(xié)議不同監(jiān)測(cè)設(shè)備的數(shù)據(jù)。并通過實(shí)驗(yàn)測(cè)試出該系統(tǒng)具有良好的實(shí)時(shí)性和穩(wěn)定性。
由于該系統(tǒng)可以在局部空間中實(shí)時(shí)、穩(wěn)定的對(duì)多個(gè)外部監(jiān)測(cè)設(shè)備進(jìn)行監(jiān)測(cè),將檢測(cè)到的數(shù)據(jù)可以通過客戶端進(jìn)行數(shù)據(jù)的存儲(chǔ)、分析和共享。對(duì)于在臨床醫(yī)療和體育健身方面用戶的生命基本信息和身體機(jī)能指標(biāo)的監(jiān)測(cè)有著很好的推廣價(jià)值,便于為行業(yè)提供用于分析和決策的數(shù)據(jù)。并且該系統(tǒng)可以通過更換或增加不同的通信協(xié)議模塊對(duì)系統(tǒng)的通信方式進(jìn)行擴(kuò)展,使其支持更多的無線通信協(xié)議,實(shí)現(xiàn)更多無線通信協(xié)議之間的組網(wǎng)。