基于體感網(wǎng)的可穿戴運(yùn)動(dòng)監(jiān)測系統(tǒng)
3.1.1 主程序
本文引用地址:http://butianyuan.cn/article/267435.htm 上電后,主程序進(jìn)行各模塊初始化,包括時(shí)鐘初始化、串口配置、開啟總中斷、無線通信配置為發(fā)送模式,進(jìn)入主循環(huán)。在主循環(huán)中通過判斷命令標(biāo)志位ComFlag來執(zhí)行相應(yīng)的操作。當(dāng)ComFlag為“1”、“2”和“3”時(shí),通過無線模塊以廣播形式分別發(fā)送“開始”、“結(jié)束”和“擦除”命令,之后標(biāo)志位ComFlag置0,繼續(xù)主循環(huán)。當(dāng)ComFlag為“4”時(shí),通過無線模塊發(fā)送“上傳”命令,之后切換無線收發(fā)狀態(tài)為接收模式,開始接收終端節(jié)點(diǎn)數(shù)據(jù)。流程圖如圖4所示。
無線數(shù)據(jù)接收流程為:無線通信切換成接收模式,數(shù)據(jù)按照“幀”格式接收,為了保證數(shù)據(jù)的有效性,對每一幀數(shù)據(jù)進(jìn)行校驗(yàn)。每幀數(shù)據(jù)包含30字節(jié)有效數(shù)據(jù),并在數(shù)據(jù)幀尾添加1位校驗(yàn)位。采用奇偶校驗(yàn)法,在接收到一幀數(shù)據(jù)后,將前30字節(jié)數(shù)據(jù)按位想加,判斷和的奇偶,并與終端節(jié)點(diǎn)計(jì)算的數(shù)據(jù)幀校驗(yàn)位結(jié)果進(jìn)行對比,若校驗(yàn)一致,則去除校驗(yàn)位,將有效數(shù)據(jù)通過串口上傳至PC機(jī),并進(jìn)行數(shù)據(jù)字節(jié)個(gè)數(shù)的統(tǒng)計(jì),然后向終端節(jié)點(diǎn)發(fā)送“success”,通知終端節(jié)點(diǎn)當(dāng)前數(shù)據(jù)幀接收成功。若校驗(yàn)不一致,則發(fā)送“fail”,通知終端節(jié)點(diǎn)重新發(fā)送當(dāng)前數(shù)據(jù)幀。終端節(jié)點(diǎn)在采集存儲數(shù)據(jù)時(shí)候會記錄數(shù)據(jù)個(gè)數(shù),在收到“上傳”命令后首先發(fā)送數(shù)據(jù)個(gè)數(shù),用以進(jìn)行數(shù)據(jù)上傳結(jié)束的判斷。當(dāng)接收到的數(shù)據(jù)個(gè)數(shù)與采集的個(gè)數(shù)一致時(shí)數(shù)據(jù)上傳結(jié)束,流程如圖5所示。
3.1.2 中斷程序
網(wǎng)關(guān)節(jié)點(diǎn)通過串口中斷來進(jìn)行上位機(jī)命令的識別。當(dāng)通過串口接收到字符串之后,進(jìn)入串口中斷,在串口中斷服務(wù)程序里,首先進(jìn)行命令字符串的匹配,然后給命令標(biāo)志位ComFlag賦值,如圖6所示。
評論