基于體感網(wǎng)的可穿戴運動監(jiān)測系統(tǒng)
3.2 終端節(jié)點軟件設(shè)計
本文引用地址:http://www.ex-cimer.com/article/267435.htm3.2.1 主程序
上電,進(jìn)行時鐘模塊、定時器模塊、SPI接口、IIC接口以及無線通信模塊的初始化配置,將無線通信模塊配置為接收模式,然后進(jìn)入主循環(huán)。在主循環(huán)中通過判斷標(biāo)志位“ComFlag”來執(zhí)行相應(yīng)的操作。當(dāng)ComFlag為“1”時,打開定時器中斷,讀取傳感器數(shù)據(jù)并將數(shù)據(jù)寫入Flash。當(dāng)ComFlag為“2”時,關(guān)閉定時器中斷,停止數(shù)據(jù)采集。當(dāng)ComFlag為“3”時將Flash數(shù)據(jù)全部擦除。當(dāng)ComFlag為“4”時進(jìn)入無線發(fā)送狀態(tài),將數(shù)據(jù)從Flash讀出并發(fā)送。詳見圖6。
3.2.2 無線接收中斷服務(wù)程序
當(dāng)接收無線數(shù)據(jù)時,通過“IRQ”引腳可觸發(fā)單片機外部中斷。在中斷服務(wù)程序中進(jìn)行無線命令字符串的匹配,并給標(biāo)志位ComFlag賦值。當(dāng)接收到上傳命令后會進(jìn)行ID匹配,與本機地址一致時,將ComFlag賦值。此部分的程序流程與網(wǎng)關(guān)節(jié)點的中斷服務(wù)程序流程基本一樣,請參考圖5。
3.2.3 定時器中斷服務(wù)程序
當(dāng)收到“開始”命令后,打開定時器中斷,開始讀取傳感器數(shù)據(jù),每次讀取為12字節(jié)數(shù)據(jù),在讀取后將數(shù)據(jù)寫入Flash,記錄Flash地址。用Flash寫入的最終地址減去初始地址進(jìn)行數(shù)據(jù)的統(tǒng)計。具體見圖7。
3.2.4 無線數(shù)據(jù)發(fā)送流程
與網(wǎng)關(guān)節(jié)點的接收流程對應(yīng),終端節(jié)點進(jìn)入無線發(fā)送狀態(tài)后,從Flash中讀取30字節(jié)數(shù)據(jù),按位相加,將和的奇偶性作為校驗標(biāo)志,添加至每幀數(shù)據(jù)尾部,打包發(fā)送一幀數(shù)據(jù)。進(jìn)入無線接收狀態(tài),等待網(wǎng)關(guān)節(jié)點應(yīng)答信號,若收到“Success”則表示當(dāng)前幀發(fā)送成功,繼續(xù)發(fā)送下一幀數(shù)據(jù),若收到“Fail”則需重新發(fā)送當(dāng)前數(shù)據(jù)幀。每幀數(shù)據(jù)發(fā)送成功后Flash地址增加。當(dāng)Flash讀取到記錄的最終地址時候表示數(shù)據(jù)發(fā)送完畢。詳見圖8。
3.3 網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)設(shè)計
無線通信模塊負(fù)責(zé)網(wǎng)關(guān)節(jié)點和終端節(jié)點間命令的廣播和數(shù)據(jù)的傳輸,是本系統(tǒng)設(shè)計的核心內(nèi)容,網(wǎng)絡(luò)結(jié)構(gòu)的配置是體感網(wǎng)的設(shè)計的關(guān)鍵。
加速度計相關(guān)文章:加速度計原理
評論