車載無線傳感器網絡監(jiān)測系統(tǒng)設計方案2
3.1 軟件整體設計
軟件設計是本設計的核心,關鍵在于軟件的總體架構和數據結構的設計。著重要考慮的因素一個是效率,另一個是設計的清晰性。
車載系統(tǒng)軟件由網關節(jié)點與傳感器節(jié)點兩大部分組成,這兩部分都需要完成SMAC協議的移植,并根據不同需要為上層通信應用提供API接口函數。因為SMAC協議棧編程模型采用層次設計,只有底層的PHY和MAC程序層與硬件相關,而網絡層和應用層程序則不受硬件影響。SMAC在不同硬件平臺的移植只需修改PHY和MAC層,其上各層可以屏蔽硬件差異直接運行。
如圖3所示,本設計把軟件分為系統(tǒng)平臺層、協議層和應用層3層。同時,定義了3個API接口:系統(tǒng)層接口、協議層接口和應用層接口。系統(tǒng)層接口定義了硬件的寄存器映射,這樣C語言就能直接訪問硬件寄存器來控制硬件。系統(tǒng)平臺層建立在μC/OS-II實時操作系統(tǒng)上,為協議層提供系統(tǒng)服務。硬件驅動模塊提供硬件驅動程序,所有對硬件的控制都通過該模塊提供的服務。系統(tǒng)平臺層通過協議層接口為協議層提供服務。協議層則實現了基于IEEE 802.15.4的物理層和鏈路層以及基于ZigBee的網絡層協議。應用層通過應用層接口來調用協議層提供的服務,實現網絡的管理和數據傳輸等任務。應用配置模塊既會調用協議層提供的網絡服務,也會直接對系統(tǒng)進行配置和查詢,這主要是通過AT指令來實現的,因此該模塊會調用應用層接口和協議層接口提供的服務。
3.2 傳感器節(jié)點軟件設計
基于系統(tǒng)長期使用的功能需求,傳感器節(jié)點中軟件設計的關鍵是既能實現所需的功能,又能最大限度地減少傳感器節(jié)點的能耗。
通過測試發(fā)現,ZigBee模塊的能耗要遠遠大于中央處理器和傳感模塊的能耗。因此,傳感器節(jié)點應用軟件的設計既要盡量使各模塊處于休眠狀態(tài),又要盡量減少喚醒ZigBee模塊的次數。因此,在傳感器節(jié)點上電各功能模塊初始化完成、并加入了網絡后,即進入休眠狀態(tài),中央處理器周期地被定時喚醒向網關發(fā)送數據,并接收網關的命令。傳感器節(jié)點的工作流程如圖4所示。
3.3 網關節(jié)點軟件設計
車載網關向下管理傳感器節(jié)點,向上完成和PC監(jiān)控中心的交互,需要進行復雜的任務管理和調度,因此,采用基于uC/OS內核的嵌入式操作系統(tǒng)管理整個網關,為應用任務的高效運行提供良好的軟件平臺支撐。根據網關的功能需求,將μC/OS-II、SMAC協議有機的結合,構成一個網絡化的操作環(huán)境,用戶可以方便地在其基礎上開發(fā)應用程序。基于μC/OS-II擴展的網關軟件平臺結構如圖5所示?;讦藽/OS-II操作系統(tǒng),分別構建系統(tǒng)任務SYS_task()、SMAC星型組網任務START_task()、網關和傳感器節(jié)點交互任務COMM_task()、PC臨控中心端口監(jiān)聽任務SER_task()等一系列應用任務,從而實現網關軟件的應用功能。
評論