摘 要: 采集人體動作信息,提出了一種基于ZigBee無線傳感技術的采集系統,以CC2530芯片為核心設計網絡的協調器和終端節點,以MMA7361L三軸加速度傳感器為采集傳感器,搭建ZigBee無線采集網絡,并在Visual Studio開發環境下設計上位機監控界面。介紹了ZigBee協議工作原理和節點的軟硬件設計方法,并給出了上位機的軟件設計。實驗給出了無線傳感網絡節點的部分采集結果,并在上位機軟件中顯示加速度變化的曲線圖。
關鍵詞: ZigBee; 無線傳感網絡; CC2530; MMA7361L; Z-stack協議棧; 人體動作信息
人在日常生活中的一舉一動都離不開加速度的變化,所以采集人體動作信息主流方法之一就是利用加速度傳感器來識別人體運動狀態[1]。對于采集人體動作信息,單個加速度傳感器已經無法滿足研究人員的需要,出于不同的實驗目的,投入的加速度傳感器數目也不同,傳統的點對點無線模塊也無法適應多節點的通信需求,結合無線傳感網絡技術采集信息成為學者們研究的熱點話題[2]。ZigBee技術憑借低成本、低功耗、自組織、低復雜度等特點[3],在自動控制、遠程控制、環境監測以及智能家居領域相比較藍牙、WiFi和紅外等技術更具優勢[4]。基于此,本文設計實現了一種基于ZigBee無線傳感網絡的人體動作信息采集系統,該系統可采集加速度值,并將數據傳至上位機進行后續處理。
1 采集平臺架構設計
如圖1所示,本文提出的信息采集平臺由ZigBee無線采集網絡和上位機監測平臺組成,整個ZigBee采集網絡由Z-stack協議棧支撐運行。ZigBee網絡有且僅有一個協調器與多個路由器和終端設備組成,本實驗由于不需要較遠距離的傳輸過程,終端節點相互之間以及節點與協調器之間不受距離因素影響,所以本采集網絡不添加多余的路由節點,以避免不必要的路徑選擇,提高傳輸效率。實驗采用3個終端節點和一個協調器的設計方案,3個終端設備可以分散地綁在實驗對象身體上采集運動信息,終端節點會將加速度值無線傳輸給協調器,協調器再經過串口發送給上位機軟件,上位機軟件描繪出各節點的三軸加速度值的變化曲線圖。
2 ZigBee網絡工作原理及網絡拓撲
實現整個ZigBee無線網絡的功能,其核心就是ZigBee協議棧,本文采用的是美國TI公司推出的Z-stack協議棧[5]。在Z-stack協議中添加了操作系統抽象層OSAL(Operating System Abstraction Layer),該層好比一個簡化的實時操作系統,實現的方式是建立一個多任務鏈表,鏈表中存放著協議棧每層的處理函數名,即指向每層處理函數的指針,并賦給每個處理函數連續的任務ID號。當程序運行時,就會不斷地遞增任務ID號來查詢某任務是否有事件觸發,同時每一個觸發事件都伴隨一些數據傳遞,系統將事件和它的數據封裝成一個消息,為此OSAL層維護了一個消息隊列,每一個任務處理事件時會調用消息接收函數來取得自己的數據包。
ZigBee網絡拓撲結構分為星形網絡、網狀網絡以及樹狀網絡。由于人體動作信息測量的終端節點相互距離短,測試環境在室內測量,實驗采集節點數為3個,數據容量需求小,所以采用結構簡單、速率較快的星形網絡來實現[6]。
3 無線傳感網絡系統實現
3.1終端節點設計
(1)硬件組成
本文系統的終端節點以及協調器節點均采用TI公司的CC2530芯片設計。這款芯集成了一個高性能的RF收發器與一個增強型8051微處理器、8 KB的RAM、32/64/128/256 KB閃存以及一套強大的外設集[7]。終端節點的硬件結構圖如圖2所示,該節點模塊主要由傳感器模塊、CPU內核、RF射頻模塊、A/D轉換模塊、DMA控制模塊、電源模塊以及晶振模塊組成。其中加速度傳感器模塊采用飛思卡爾公司的MMA7361L加速度傳感器,這是一種低功耗、高精度、模擬量輸出的三軸加速度傳感器,本實驗采用1.5 g精度模式,其精度為800 mV/g。
(2)軟件設計
終端節點的軟件設計要滿足低功耗、采集速度快、保證一定的精度要求等特點。本系統ZigBee無線網絡的開發平臺采用IAR Systems公司的IAR 2007開發平臺。編程采用模塊化思想,分別有加速度傳感器驅動模塊、ADC轉換模塊、DMA驅動模塊、通信協議模塊以及中斷處理模塊。為將讀取的加速度模擬量值轉換為可存儲的數字量值,需要開啟A/D轉換,與傳感器三軸連接的GPIO口必須設置為ADC外設引腳。為了減輕CPU內核的負擔,降低轉換時間,提高收發速率,本實驗采用直接存取訪問(DMA)控制器將加速度值從A/D轉換模塊不經過CPU直接傳送到RF接收緩存器中,再傳送給協調器單元[8]。終端節點的程序流程圖如圖3所示。
MMA7361L三軸加速度器所測得的加速度值為模擬量,經過A/D裝換后得到對應的數字量,本實驗用線性插值法計算出與實測數字量對應的加速度值。具體公式如下:
其中Dig為測得模擬量; A為所求的加速度值; U為電壓,其量程為0 V~3.3 V; G為重力加速度,其量程為-1.5 g~1.5 g;C為常數,該A/D轉換的有效位共9位,故29為512。
3.2 協調器設計
協調器硬件設計與終端節點類似,協調器軟件實現主要分為網絡管理、數據上傳功能。網絡管理包括了創建ZigBee網絡,允許新的終端節點加入網絡并分配16位網絡地址,接收網絡中各節點數據,向網絡各節點發送操作命令,綁定網絡節點等操作。數據上傳則是與上位機的通信模塊,在接收到了某終端節點的數據后立即送至上位機,才能使上位機同步的做出加速度值變化曲線圖。為此,協調器沿用DMA控制器將RF收發緩沖器的數據不通過CPU內核直接發送至UART串口,這樣可以保證傳輸速率同時不加重CPU負擔[9]。協調器的軟件設計過程如圖4所示,網絡中有3個終端采集節點,所以要在確認與3個節點都通信成功以后再進行數據采集工作。
4 上位機軟件設計與實現
上位機監測軟件是在Visual Studio開發環境下自定義編寫的。軟件界面上能顯示協調器向上位機串口所發送的數據,經過處理后分別可顯示出各終端節點的網絡短地址以及對應的三軸加速度X、Y、Z實時變化的數值,最后在每個節點對應的圖框中顯示三軸的變換曲線趨勢圖,以紅、藍、綠三色線分別表示不同的方向。測試結果如圖5所示,圖中有A、B、C 3個終端采集節點,分別固定在人體的手臂以及兩腿腳踝處。前兩幅曲線圖采集的是走路時左右腳的加速度值變換,圖中的波峰波谷振動區域就是抬腳落地的過程,平穩區則是腳和地面接觸的過程;第三幅曲線圖采集的是手臂來回擺動加速度值變化曲線,可以從X、Y方向上明顯看出周期性變化,Z方向也有小幅變化,不明顯的原因是Z方向幾乎垂直于手臂擺動的運動平面。
將ZigBee網絡用于采集人體動作信息,介紹了采集網絡以及檢測平臺的總體方案,ZigBee協議棧的工作原理及網絡拓撲,終端節點以及協調器的軟硬件設計,并對系統進行測試。測試結果表明,利用ZigBee網絡星形拓撲能夠較好地采集到各節點加速度值并上傳,通過自定義編寫的監測軟件可以觀察加速度值的變化曲線,從而分析人體動作的變化。該系統方案實現了對人體動作信息的采集,利用該采集網絡進行二次開發,分析動作類別,模擬出人體的運動軌跡,可應用于更廣闊的平臺。
參考文獻
[1] 薛洋.基于單個加速度傳感器的人體運動模式識別[D].廣州:華南理工大學,2011.
[2] 謝小芳,黃俊,譚成宇.基于RFID的電力溫度監控系統的軟件分析與設計[J].電子技術應用,2013,39(1):23-26.
[3] 劉溯. 基于ZigBee技術的工業數據采集系統設計及實現[D].哈爾濱:哈爾濱工業大學, 2011.
[4] 原羿,蘇鴻根.基于ZigBee技術的無線網絡應用研究[J].計算機應用與軟件, 2004, 21(6): 89-91.
[5] 陳志奎, 李良. 基于ZigBee的智能家庭醫保系統[J].計算機研究與發展, 2010,47(2):355-360.
[6] Instrument T. Z-Stack-ZigBee protocol stack[Z]. 2009.
[7] 宋冬,廖杰,陳星,等.基于 ZigBee和GPRS的智能家居系統設計[J]. Computer Engineering, 2012,38(23):243-246.
[8] Instruments T. Z-Stack User′s Guide For SmartRF05EBand CC2530[EB/OL].(2010-01-19)[2012-04-18].http://www.ti.com.
[9] Instruments T. CC2530 data sheet[EB/OL].(2010-10-05)[2012-09-14].http://www.ti.com.