傳感器網(wǎng)絡(luò)應(yīng)用程序的建模、仿真與自動代碼生成框架
引言
本文引用地址:http://2s4d.com/article/161521.htm無線傳感器網(wǎng)絡(luò)(Wireless Sensor Networks,WSN)在現(xiàn)場應(yīng)用時,通過無線信道通信進行信息共享和協(xié)作處理。
WSN應(yīng)用目前存在兩種功能分析包,即特定平臺操作系統(tǒng)和量身定制模型,在應(yīng)用程序開發(fā)階段都存在明顯的缺陷。第一類將應(yīng)用程序遷移到其他平臺時很困難,例如從TinyOS遷移到MANTIS或遷移到ZigBee兼容平臺,必須重寫大量代碼并進行大量調(diào)試。第二類有許多依賴于平臺的具體代碼需要開發(fā)和調(diào)試,如果在開發(fā)和集成階段結(jié)束后發(fā)現(xiàn)問題,惟一的解決方法就是基于LED進行調(diào)試,極為耗時。
The MathWorks公司構(gòu)建了基于 Simulink的傳感器網(wǎng)絡(luò)模型作為動態(tài)系統(tǒng)的基時仿真器。模型具有兩個主要組件:無線信道模型(下文稱為Communication Medium)和Node塊。
Communication Medium塊可以通過C語言實現(xiàn),可將其修改為重用任意現(xiàn)有信道和連接模型。
Node塊有多個完全參數(shù)化的mote,包含硬件與軟件平臺模型。例如包括計時器、LED以及應(yīng)用程序的參數(shù)化Stateflow塊。Stateflow是一種有限狀態(tài)機語言,用于建模、仿真控制邏輯和流程圖??梢杂糜趯崿F(xiàn)各mote內(nèi)運行的算法(應(yīng)用程序、中間件或設(shè)備驅(qū)動器)。
只需修改模板算法(Stateflow 庫對象),在Communication Medium塊中設(shè)置節(jié)點的連接參數(shù)即可開始仿真。使用動畫狀態(tài)圖、觀測儀器和顯示器收集統(tǒng)計數(shù)據(jù),以執(zhí)行算法的功能分析。如果結(jié)果分析表明需要改進,則可通過改進算法實現(xiàn)。
完成算法的功能分析后,通過算法的Stateflow自動為任何受支持的WSN平臺生成代碼。這是利用RealTime Workshop Embedded Coder軟件的自定義功能完成的,它能為Simulink和Stateflow塊生成可嵌入的ANSI C代碼。
圖1 WSN的一個簡單仿真框架
WSN應(yīng)用程序操作系統(tǒng)示例:TinyOS與MANTIS
TinyOS的編程模型基于組件,概念實體由模塊和配置兩類組件表示,實現(xiàn)用于聲明命令和事件簽名的接口。事件即軟件抽象,例如接受信息包、完成傳感器取樣等。命令用于觸發(fā)操作,例如傳感器讀取操作或啟動無線電接收和傳輸信息等。TinyOS應(yīng)用程序是使用nesC編寫的,這是C語言的一個擴展。
MANTIS是一種輕量級、多線程的操作系統(tǒng),能在能源受限的分布式傳感器網(wǎng)絡(luò)上進行多任務(wù)處理。調(diào)度程序采用基于優(yōu)先級的輪叫調(diào)度,支持線程先占(pre-emption),允許操作系統(tǒng)在活動線程間自由切換而無需等待。由于采用了這樣的方法,操作系統(tǒng)對于關(guān)鍵事件的響應(yīng)速度比TinyOS更快。MANTIS的內(nèi)核和API都是使用標準C語言編寫的。
評論