無線傳感器網絡數據中轉器的設計
3.1 數據中轉器的工作流程
本文所討論的數據中轉器和無線傳感器都具備休眠功能,這樣可以有效的降低系統功耗。無線傳感器平時處于休眠狀態,當需要采集數據和上傳數據時,再自動醒來聯網并喚醒數據中轉器。數據中轉器被喚醒后,便可接收無線傳感器網絡的上傳數據,并存儲在SD卡中,然后判斷無線傳感器網絡上傳數據次數N(N的初始值為0),如果N小于10,數據中轉器將通知無線傳感器休眠,同時自己也進入休眠狀態。如果N等于10,數據中轉器將啟動GPRS模塊,再將SD卡內的大量數據上傳給上位機,在供用戶存儲顯示使用之后,上位機將下達新的數據采集控制命令,以控制無線傳感器采集數據的類型、數據采集間隔、數據上傳間隔、網絡數據上傳的類型等給數據中轉器,數據中轉器將新的數據采集控制命令轉達給尢線傳感器后便進入休眠狀態,無線傳感器在更新采集參數后,也進入休眠狀態。整個無線傳感器網絡數據采集系統就這樣周而復始的工作,圖3所示為其系統軟件工作流程圖。本文引用地址:http://www.104case.com/article/161036.htm
3.2 數據通信協議
無線傳感器網絡數據采集系統中各個模塊之間的通信需要制定明確的數據通信協議。數據通信協議可以保證數據安全正確的收發,便于系統中各個模塊對數據的接收、解析和存儲管理。該系統通信協議的數據幀格式如表1所列。
表1中:SOP為起始標志符,可用一個字節來表示數據幀的起始,將這個字節定義為0x7E;CMD表示命令ID,用一個字節的數據來標識命令消息;LEN表示DATA的長度.也用一個字節來指示DATA位的數據長度;DATA為具體要發送的數據;FCS是校驗位,這里的校驗使用異或校驗來校驗CMD、LEN、DATA中的所有數據;STOP為結束標志符,用一個字節來表示數據幀的結束,一般將這個字節定義為0xAA。
當無線傳感器網絡數據采集系統的各個模塊接收到數據后,都是通過判別CMD來對數據幀的類型進行解析。數據幀的CMD有如下五種類型:其中,0X02為無線傳感器向數據中轉器上傳采集數據的命令;0X03為數據中轉器告知無線傳感器休眠的命令;0X04為數據中轉器向上位機服務器上傳采集數據的命令;0X05為上位機服務器向數據中轉器下達數據采集控制的命令;0X06為數據中轉器向無線傳感器轉達數據采集控制的命令。
系統中各個模塊之間按以上制定的數據幀格式進行通信,可以極大地排除雜亂信號的干擾,簡化系的軟件設計,從而達到數據傳輸的安全性和可靠性。
3.3 基于AT指令的GPRS通信
GPRS模塊SIM300C作為一個功能獨立而且完善的模塊,可以通過外接SIM手機卡實現與遠端上位機的連接和通信,ARM芯片LPC2148則利用AT指令以GPRS流量的方式發送數據給上位機。ARM發送的AT指令都是以字節為單位,回車符代表指令的結束,模塊接收到回車符后開始執行指令。模塊執行指令后的一切返回值(無論是指令執行后的OK,還是ERROR)都是以不可打印字符“0D0A”開始和結束。LPC2148與GPRS模塊之間可通過UART1通信。本系統使用表2所列指令來實現與遠程上位機服務器的數據傳輸。
表2中第一條AT指令可使得GPRS模塊附著到GPRS網絡;第二條AT指令為GPRS模塊聯網而設置的上下文環境;第三條AT指令用于激活GPRS網絡的上下文環境,并獲取網絡IP;第四條AT指令用于建立TCP連接。由于本設計中的數據中轉器需與遠程上位機相互通信,因而必須建立TCP連接,這樣,首先GPRS模塊會返同一個對此條指令認可的確認消息“OK”,之后,如若TCP網絡連接建立成功則會返回“CONNECT OK\r”,表示物理通道已經成功建立,之后便可調用最后一條指令與遠端上位機進行數據通信。
4 結語
無線傳感器網絡數據中轉器在很大程度上可以解決無線傳感器網絡與上位機服務器之間的遠程通信問題,并能有效地降低整個系統的功耗。經過試驗表明,上述設計方案具有穩定可靠,數據傳輸準確等優點,能夠滿足無線傳感器網絡數據采集系統在長期無人值守的情況下監測某一區域環境信息的要求。
評論