高天星, 趙旭強, 馬忠梅
(北京理工大學 計算機學院,北京 100081)
?
基于CC3200的Wi-Fi無線組網式跌倒檢測系統※
高天星, 趙旭強, 馬忠梅
(北京理工大學 計算機學院,北京 100081)
摘要:TI公司的CC3200是一款基于ARM Cortex-M4處理器核的微控制器,是TI SimpleLink產品線上的一員,其具有既方便又強大的Wi-Fi網絡通信能力。本文利用CC3200這些特性,結合MMA7260加速度傳感器,設計了一種新型的以Wi-Fi作為組網模式的無線加速度檢測系統,其主要應用方向為檢測人的跌倒等情況。
關鍵詞:CC3200;Wi-Fi;跌倒檢測
引言
近些年來,由于智能移動設備的飛速發展,Wi-Fi這種無線互聯技術被廣泛應用在各種各樣的生活場景中,如辦公室、咖啡廳、校園、家庭等。因此,使用Wi-Fi技術,可以以最方便快捷的方式接入到互聯網,或與其他智能移動設備互聯。在這一背景下,衍生了許多具有Wi-Fi能力的MCU,使用它們可以方便地實現物理控制功能,進行物理數據的采集。此外,通過Wi-Fi以無線的方式向智能終端傳遞數據,可以獲得更好的交互效果。
SimpleLink Wi-Fi CC3200是由TI公司研制的低功耗MCU平臺,SimpleLink Wi-Fi技術可以方便地編寫運行在CC3200上的Wi-Fi數據傳輸程序,大大降低了過去將MCU與Wi-Fi結合開發的復雜度與成本。CC3200芯片上有豐富的資源可供使用,因此將其作為開發平臺,自制了一套無線加速度傳感器采集系統,通過對加速度的實時監控,可以方便地檢測出老年人是否意外摔倒。
1平臺介紹
1.1Simplelink Wi-Fi CC3200
CC3200是內置 Wi-Fi模塊的微控制器,TI專為物聯網的開發與應用設計了這塊集成芯片。在這塊芯片上集成了高性能的ARM Cortex-M4處理器內核和Wi-Fi網絡處理器,CC3200的網絡通信能力穩定可靠,并擁有完整的安全協議。不僅如此,CC3200平臺還提供了完整的開發軟件、開發樣例、調試工具與文檔,是十分理想的開發平臺[1]。
ARM Cortex-M4處理器的運行頻率為80 MHz,并外接多種外設,包括快速并行接口、SPI、UART串口、ADC模塊等。芯片中的ROM存儲了相關外設驅動程序。此外,CC3200的網絡處理子系統包含一個802.11b/g/n射頻模塊,以滿足各頻段Wi-Fi的連接需要。而在網絡處理芯片的軟件部分,其內置了TCP/IP等協議棧,極大方便了接入互聯網的軟件操作。
1.2MMA7260加速度傳感器
MMA7260是一款低功耗、低成本的高靈敏加速度傳感器。通過調整芯片,選擇性地輸入電平,可以設定4種不同的高靈敏度模式,這些模式以加速度量程區分,包括±1.5 g、±2 g、±4 g 和±6 g,在1.5 g范圍內,敏感度可以達到800 mV/g。另外它體積非常小,采用6 mm×6 mm×1.45 mm QFN 封裝,并擁有睡眠模式以節電。以上這些特性,讓MMA7260非常適合運用于以電池供電的手持設備上[2]。

TI-RTOS是由TI開發的可裁減嵌入式實時操作系統,此操作系統是在一個名為SYS/BIOS的實時多線程內核基礎之上構建的,提供了實時多任務搶占式調度機制,并包含了硬件抽象和實時性能分析,可以有效地優化目標機的內存和CPU使用。在內核層之上,TI-RTOS不僅提供了一套設備驅動,還附加了諸如文件系統、網絡層等組件,使開發者可以將精力集中在應用的開發上[3]。
2系統設計
2.1網絡拓撲
系統的整體網絡拓撲如圖1所示,作為數據的接收方和交互終端由Android智能設備擔任,其可以是智能手機、平板等,目前攜帶無線網卡的Android智能設備,均可以在系統設置中開啟共享網絡選項,使設備變為一個無線熱點,令其他同樣采用802.11標準的無線設備可以接入。

圖1 系統網絡拓撲
因熱點AP具有一對多的連接能力,本系統采取了兩個接有MMA7260傳感器的CC3200作為Station接入熱點AP。而當選取的智能設備擁有3G上網能力時,甚至可以將數據通過3G網絡傳入位于因特網的云端,令其他觀測者獲取。采用這一拓撲結構有以下優點:
① 采用雙CC3200,極大提高了采集數據的穩定性與容錯性,即使一臺設備宕機或斷開連接,另一臺也可以正常工作。
② 使系統可攜帶。通常情況下,AP熱點由無線路由器擔任,但是對于摔倒檢測,始終令用戶隨身攜帶無線路由是不現實的,而諸如手機等智能設備是方便攜帶的。由MMA7260與CC3200組成的傳感器設備體積小,可以將其別在衣物上以便使用。
2.2接口連接
MMA7260與CC3200的連接方式如圖2所示,接入3.3 V電壓并令Sleep引腳保持高電平。g-Select1與g-Select2引腳懸空,表示選擇模式00,即為量程1.5g模式。此外,圖2中用到了6個10 kΩ電阻,這些電阻起到調整電壓的作用。CC3200的ADC引腳P58、P59、P60的輸入電壓范圍為1.5 V,如果超過這個電壓值,ADC模塊將不會檢測到電壓變化,始終判定為1.5 V[4],而MMA7260的輸出電壓可以達到2.85 V,使用電阻并聯后輸入電壓減少至一半,即可正常檢測傳感器數據。

圖2 MMA7260與CC3200連接圖
2.3軟件設計
應用部署在TI-RTOS上,利用TI-RTOS的多線程能力,可以將運行在CC3200微控制器上的軟件分為采集任務、網絡任務、發送任務。其中,采集任務用來驅動ADC接口,收集由MMA7260傳感器得到的三軸加速度數據;網絡任務用于在CC3200啟動時與Android設備AP建立連接;而發送任務用于將采集的數據發送給AP。
當MCU啟動后,會由TI-RTOS創建3個線程,分別運行以上描述的3個任務,在這3個線程中,網絡連接的優先級最高,因為連接網絡的操作是整個檢測系統的運行基礎。采集任務和數據發送任務同步運行,由ADC采集到的三軸加速度數據存儲在公共緩沖區中,數據發送任務從公共緩沖區提取數據,并通過TCP/IP協議以數據包形式發送。
同樣,在Android設備AP上運行接收程序,這一程序周而復始地運行,采集從MCU設備傳送過來的數據,并將數據進行解析處理顯示在屏幕上。如果設備支持3G網絡,可以同時將數據上傳到物聯網云平臺,以支持遠程設備監視。
3軟件實現
3.1采集任務
CC3200提供了API以供開發者調用,所以可以很容易地獲取到CC3200的采集數據。
CC3200的ADC模塊的內存映射地址由DriverLib給出,本程序使用到的符號分別為ADC_BASE基地址、ADC_CH_1、ADC_CH_2、ADC_Ch1偏移地址。使用前對ADC模塊進行初始化,代碼如下:
MAP_ADCTimerConfig(ADC_BASE,2^17);
MAP_ADCTimerEnable(ADC_BASE);
MAP_ADCEnable(ADC_BASE);
MAP_ADCChannelEnable(ADC_BASE, ADC_CH_1);
首先使用MAP_ADCTimerConfig與MAP_ADCTimerEnable函數對ADC模塊的定時器進行設置與使能,這里使能了全部17個位作為時間戳的長度,并使用MAP_ADCChannelEnable使能ADC通道。
ADC模塊的采樣數據存儲于ADC模塊的FIFO數據寄存器中,在其32位的長度中,2~13位為采樣數據,使用DriverLib中提供的MAP_ADCFIFORead函數即可獲取相應通道FIFO數據寄存器的long型數值。之后,將采樣的X、Y、Z軸的數值向右移2位,并用掩碼去掉時間戳等多余信息,按照電壓比換算,進一步轉換為電壓值,存儲在全局數組中,以供發送程序采集使用。
3.2網絡任務
網絡任務按順序共分為3部分:第一部分在SimpleLink軟件層,將相關的網絡器件狀態調整為默認態,并調用sl_Start函數以就緒設備;第二部分為連接部分,使用函數sl_WlanConnect進行對AP的連接,將AP的SSID作為參數傳入;第三部分將設置一個循環來監聽g_ulStatus的狀態,當g_ulStatus同時滿足已獲取IP和網絡已連接狀態,說明網絡已成功連接,跳出循環使程序繼續運行。
3.3發送任務
發送任務程序采用TCP/Socket實現,MCU端作為TCP Client,首先連接運行位于AP設備上的TCP Server。使用SlSockAddr_t結構體存儲TCP Server的IP地址與端口號,并在調用連接函數sl_Connect時作為參數傳入。
數據發送代碼如下:
while (1){
sprintf(g_cBsdBuf, " x: %f y: %f z: %f ",
(((float)((pulAdcSamples1[4] >> 2 ) & 0x0FFF))*1.4)/4096,
(((float)((pulAdcSamples2[4] >> 2 ) & 0x0FFF))*1.4)/4096,
(((float)((pulAdcSamples3[4] >> 2 ) & 0x0FFF))*1.4)/4096);
// sending packet
iStatus = sl_Send(iSockID, g_cBsdBuf, 38, 0 );
}
因sl_Send每次只能發送一個數據包,故使用while循環來發送多個數據包,iSockID為建立特定Socket連接后提供的標識符,g_cBsdBuf和sTestBufLen為發送數據的緩沖區和發送長度。
3種任務通過函數的形式封裝,并使用由TI-RTOS提供的osi_TaskCreate對任務進行注冊,待系統啟動時,操作系統會自動調度3種任務。優先級最高的網絡任務優先執行,待其結束后,優先級稍低的采集任務和發送任務開始執行,兩種任務都是常駐的循環程序,所以需要在它們的循環中調用osi_Sleep函數使任務停轉,以保證另一任務可以搶占,讓多任務可以并行。在微控制器上運行的所有程序的流程圖如圖3所示。

圖3 軟件整體流程圖
3.4接收模塊
接收模塊程序在Android智能終端上實現,將其作為Android應用來實現,當應用程序啟動時,建立一個端口號為5001的TCP Server以供CC3200的TCP模塊進行連接。當連接建立成功后,Server端源源不斷地從Socket數據流讀取數據,每條數據以換行符作為分隔,包含了加速度傳感器的三軸加速度信息。
在界面上將不斷輸出變化的三軸傳感器數值,并將數值連帶時間戳寫入日志中以供觀測和統計。
4跌倒檢測
在進行跌倒測試前可以進行串口數據測試,以確定設備正常工作并得到傳感器的各狀態數值。在發送任務中使用提供的PinMuxConfg函數進行初始化,并調用UART_PRINT函數,即可按一定格式進行串口輸出。在計算機上安裝FTDI驅動之后連接CC3200,可以在設備管理器中得到設備串口號。此時,打開串口工具Trea Term,并設置波特率為115 200 bps,待CC3200連接AP正常工作后,可以看到串口終端中的數據顯示,包括X、Y、Z三個加速度方向的電壓值。
實現硬件連接、組網與程序之后,對設備進行部署,首先將傳感器佩戴在人體的臀部,這一部位相對比較穩定,在平時行進、彎腰等動作時不會對檢測造成明顯影響,并將其標志面向上與地面平行作為標準狀態。作為采集終端的AP熱點Android設備,可以置于衣物口袋中以保證連接,并每隔100 ms將數據寫入文件中。之后,進行每段時長為10 s的人體靜止、行進和摔倒動作,將文件中記錄的300條三軸電壓變化數據導入Excel表格,并做了折線圖繪制。
① 在第一個10 s內,人體保持靜止,其三軸加速度變化如圖4所示。

圖4 靜止狀態三軸電壓變化
② 在第二個10 s內,人體行進,其三軸加速度變化如圖5所示。

圖5 行進狀態三軸電壓變化
③ 在第三個10 s內,人體跌倒并倒地側臥,其三軸加速度變化如圖6所示。

圖6 跌倒狀態三軸電壓變化
通過對以上數據進行分析,可以得知在靜止狀態下,CC3200獲取的X、Y、Z三軸的電壓維持在0.65 V、0.75 V和1.05 V。而在人的行進狀態下,三軸電壓的浮動值不超過0.4 V。通過可以進一步計算出各個方向的角度值,在人體跌倒時,Z軸(即垂直方向)在一定時間(1~2 s)內大幅度下降,代表人體位置大幅下墜,其電壓的振幅超過0.5 V,通過這一條件的判斷,即可得知人體可能摔倒,并發出警告。
結語
本文利用SimpleLink Wi-Fi CC3200平臺,與MMA7260加速度傳感器結合,設計了一套新型組網方式下的加速度檢測系統。其無線的連接方式使檢測系統的部署與測試更加靈活,而通過Android智能終端提供的數據顯示與采集為分析數據帶來了極大的便利,通過分析人體摔倒時的規律,可以很好地起到跌掉檢測和報警的作用。

參考文獻
[1] Texas Instruments.CC3200 SimpleLink Wi-Fi and Internet-of-Things Solution, a Single-Chip Wireless MCU[EB/OL].[2015-09].http://www.ti.com/lit/ds/symlink/cc3200.pdf.
[2] 陳鈺琨.LM4F232pQD與MMA7260加速度傳感器的跌倒檢測[J] .單片機與嵌入式系統應用, 2013(6): 49-52.
[3] Texas Instruments.TI-RTOS 2.14 User’s Guide[EB/OL].[2015-09].http://www.ti.com/lit/ug/spruhd4j/spruhd4j.pdf.
[4] Texas Instruments.CC3200 SimpleLink Wi-Fi and Internet of Things Solution, a Single Chip Wireless MCU Technical Reference Manual[EB/OL].[2015-09].http://www.ti.com/lit/ug/swru367b/swru367b.pdf.
高天星、趙旭強(碩士研究生),馬忠梅(副教授):主要研究方向為嵌入式系統和物聯網應用。
Wi-Fi Wireless Fall Detection System Design Based on CC3200※
Gao Tianxing,Zhao Xuqiang,Ma Zhongmei
(School of Computer Science and Technology,Beijing Institute of Technology,Beijing 10081,China)
Abstract:The CC3200 MCU is produced by TI company based on ARM Cortex-M4,which belongs to TI SimpleLink product line.CC3200 has powerful Wi-Fi network communication ability.In this paper,a new wireless acceleration detection system is designed using CC3200 and MMA7260 acceleration sensor,which takes Wi-Fi as the networking model.The system can be used for the falling detection.
Key words:CC3200;Wi-Fi;fall detection
收稿日期:(責任編輯:楊迪娜2015-09-11)
中圖分類號:TP368
文獻標識碼:A