基于MSP430F149與Si4432的無(wú)線(xiàn)傳感器網(wǎng)絡(luò )的實(shí)現
4 系統軟件設計
本文引用地址:http://dyxdggzs.com/article/161572.htm本系統軟件設計注重低功耗、數據采集實(shí)時(shí)性、系統穩健性及可靠性, 在低功耗設計中采用智能控制策略, 讓系統需要工作時(shí)處于全速工作模式, 其他時(shí)刻處于低功耗模式。數據采集實(shí)時(shí)性設計中關(guān)鍵是路由選擇, 主要依據是跳數最少路徑最短原則( 兼顧能量?jì)?yōu)先原則)。系統穩健性設計部分, 當傳感器節點(diǎn)因能量耗盡或其他原因不能工作或者有新的傳感器節點(diǎn)請求加入網(wǎng)絡(luò )時(shí), 整個(gè)網(wǎng)絡(luò )會(huì )馬上重新組網(wǎng), 形成新的網(wǎng)絡(luò )拓撲結構。在系統可靠性設計中采用看門(mén)狗等技術(shù)增強系統抗干擾能力。系統軟件框圖如圖4 所示。
圖4 系統軟件結構
4.1 基站軟件
基站節點(diǎn)通過(guò)上位機USB 供電所以一直工作在全速狀態(tài), 加快了對外部的響應速度。上電初始化后, 根據中斷程序中的標志位值對獲得的信息進(jìn)行相應處理, 處理完后把標志位置零, 循環(huán)執行此操作?;竟濣c(diǎn)通過(guò)串口與上位機相連; 因此外部事件包括串口中斷事件和接收到數據中斷事件。
為了防止串口通信過(guò)程中丟失數據, 軟件設計上加了握手協(xié)議。當基站節點(diǎn)每發(fā)送一個(gè)數據包給上位機時(shí), 上位機都會(huì )向基站節點(diǎn)發(fā)送應答信號, 直到數據包發(fā)送給上位機。上位機接收到數據包后, 馬上進(jìn)入中斷處理, 處理完后把相應標志位置1, 通過(guò)主程序做進(jìn)一步處理。
4.2 傳感器節點(diǎn)軟件
傳感器節點(diǎn)主程序主要是實(shí)現組網(wǎng), 當節點(diǎn)上電初始化后設定發(fā)射功率為最小,請求入網(wǎng)。如果入網(wǎng)不成功則加大發(fā)射功率,繼續請求入網(wǎng)。經(jīng)試驗證實(shí),發(fā)射功率越小,電池的使用壽命就越長(cháng)。入網(wǎng)成功后,保存入網(wǎng)信息, 并馬上進(jìn)入低功耗狀態(tài), 同時(shí)使用兩個(gè)中斷, 一個(gè)外部接收數據中斷,一個(gè)定時(shí)器采集中斷。程序流程圖分別如圖5、圖6 所示。數據發(fā)送放在定時(shí)中斷程序里完成。
圖5 接收數據中斷
圖6 串口中斷流程
當多個(gè)傳感器節點(diǎn)同時(shí)發(fā)送數據時(shí), 則會(huì )出現掙搶信道的現象。為了避免多個(gè)傳感器節點(diǎn)同時(shí)與某個(gè)傳感器節點(diǎn)通信造成數據丟失, 軟件上采用一定的退避機制。一方面, 利用射頻芯片Si4432 的載波偵聽(tīng)信號來(lái)產(chǎn)生隨機延時(shí), 以避免同時(shí)發(fā)送信號; 另一方面, 當一個(gè)傳感器節點(diǎn)與某個(gè)傳感器節點(diǎn)建立了通信通道時(shí), 其他發(fā)送數據的節點(diǎn)會(huì )增加發(fā)射數據的次數。
4.3 上位機軟件
上位機主要功能有發(fā)送重組網(wǎng)命令、向任意傳感器節點(diǎn)發(fā)送采集信息命令、建立良好的人機界面用于觀(guān)察傳感器采集來(lái)的信息、幫助基站節點(diǎn)處理數據減輕基站的負擔等。人機界面采用Visual Basic(VB) 來(lái)設計, 利用VB 的MSComm 控件實(shí)現上、下位機的串口通信。利用其他控件實(shí)現對無(wú)線(xiàn)傳感器網(wǎng)絡(luò )的分析、顯示和操作, 在此不再詳細說(shuō)明。
Si4432 的緩沖寄存器為64 KB, 一次性可發(fā)送接收信息量可多達62 KB?;竟濣c(diǎn)通過(guò)串口跟上位機相連, 在上位機建立良好的人機界面可以觀(guān)察每個(gè)傳感器采集來(lái)的信息, 并且可以控制每個(gè)節點(diǎn)的工作狀態(tài)。本系統已在實(shí)際中成功應用。
評論