《電子技術應用》
您所在的位置:首頁 > 通信與網絡 > 設計應用 > 傳感器網絡應用程序的建模,、仿真與自動代碼生成框架
傳感器網絡應用程序的建模、仿真與自動代碼生成框架
Icbuy
Icbuy
摘要: 無線傳感器網絡(Wireless Sensor Networks,WSN)在現場應用時,,通過無線信道通信進行信息共享和協(xié)作處理。   WSN應用目前存在兩種功能分析包,,即特定平臺操作系統(tǒng)和量身定制模型,,在應用程序開發(fā)階段都存在明顯的缺陷。第一類將應用程序遷移到其他平臺時很困難,,例如從TinyOS遷移到MANTIS或遷移到ZigBee兼容平臺,,必須重寫大量代碼并進行大量調試。第二類有許多依賴于平臺的具體代碼需要開發(fā)和調試,,如果在開發(fā)和集成階段結束后發(fā)現問題,,惟一的解決方法就是基于LED進行調試,極為耗時,。
Abstract:
Key words :
  引言

  無線傳感器網絡(Wireless Sensor Networks,,WSN)在現場應用時,通過無線信道通信進行信息共享和協(xié)作處理,。

  WSN應用目前存在兩種功能分析包,,即特定平臺操作系統(tǒng)和量身定制模型,在應用程序開發(fā)階段都存在明顯的缺陷,。第一類將應用程序遷移到其他平臺時很困難,,例如從TinyOS遷移到MANTIS或遷移到ZigBee兼容平臺,必須重寫大量代碼并進行大量調試,。第二類有許多依賴于平臺的具體代碼需要開發(fā)和調試,,如果在開發(fā)和集成階段結束后發(fā)現問題,惟一的解決方法就是基于LED進行調試,,極為耗時,。 

  參考仿真框架

  The MathWorks公司構建了基于 Simulink的傳感器網絡模型作為動態(tài)系統(tǒng)的基時仿真器。模型具有兩個主要組件:無線信道模型(下文稱為Communication Medium)和Node塊,。

  Communication Medium塊可以通過C語言實現,,可將其修改為重用任意現有信道和連接模型。

  Node塊有多個完全參數化的mote,,包含硬件與軟件平臺模型,。例如包括計時器、LED以及應用程序的參數化Stateflow塊,。Stateflow是一種有限狀態(tài)機語言,,用于建模,、仿真控制邏輯和流程圖??梢杂糜趯崿F各mote內運行的算法(應用程序,、中間件或設備驅動器)。

  只需修改模板算法(Stateflow 庫對象),,在Communication Medium塊中設置節(jié)點的連接參數即可開始仿真,。使用動畫狀態(tài)圖、觀測儀器和顯示器收集統(tǒng)計數據,,以執(zhí)行算法的功能分析,。如果結果分析表明需要改進,則可通過改進算法實現,。

  完成算法的功能分析后,,通過算法的Stateflow自動為任何受支持的WSN平臺生成代碼。這是利用RealTime Workshop Embedded Coder軟件的自定義功能完成的,,它能為Simulink和Stateflow塊生成可嵌入的ANSIC代碼,。

WSN的一個簡單仿真框架

圖1 WSN的一個簡單仿真框架

  WSN應用程序操作系統(tǒng)示例:TinyOS與MANTIS

  TinyOS的編程模型基于組件,概念實體由模塊和配置兩類組件表示,,實現用于聲明命令和事件簽名的接口,。事件即軟件抽象,例如接受信息包,、完成傳感器取樣等,。命令用于觸發(fā)操作,例如傳感器讀取操作或啟動無線電接收和傳輸信息等,。TinyOS應用程序是使用nesC編寫的,,這是C語言的一個擴展。

  MANTIS是一種輕量級,、多線程的操作系統(tǒng),能在能源受限的分布式傳感器網絡上進行多任務處理,。調度程序采用基于優(yōu)先級的輪叫調度,,支持線程先占(pre-emption),允許操作系統(tǒng)在活動線程間自由切換而無需等待,。由于采用了這樣的方法,,操作系統(tǒng)對于關鍵事件的響應速度比TinyOS更快。MANTIS的內核和API都是使用標準C語言編寫的,。

WSN應用程序建模,、仿真和代碼生成框架

圖2 WSN應用程序建模、仿真和代碼生成框架

  實現 WSN 應用程序

  MANTIS線程和任務的計算主體以及TinyOS的命令實際上都是使用C語言編寫的,。在MANTIS中,,集成非常直接,,因為Real-Time Workshop Embedded Coder的ANSIC輸出可直接用作用戶線程。TinyOS的程序由高級抽象組成,,但這些抽象的主體是使用C語言編寫的,,因而只需要一個代碼轉換器,以C語言代碼作為輸入,,將代碼分割成不同的部分(包括定義,、函數等),并使用這些部分來生成nesC代碼,。

  本文使用The MathWorks公司的 Target Language Compiler(TLC)實現這樣的代碼轉換器,。它提供了生成特定平臺代碼的機制,可接受來自ANSIC代碼的部分(例如包含,、定義,、函數代碼等),也可為目標平臺添加自定義代碼,。使用Stateflow時無需考慮通用函數在TinyOS或MANTIS中的實際實現,,因為TLC庫中已經實現了這些函數,可用于任意操作系統(tǒng),。通過使用TLC腳本自動生成TinyOS或MANTIS應用程序,,在無需修改的前提下為目標平臺編譯和執(zhí)行這些應用程序。并且,,TLC可重寫并修改源代碼,,分割源代碼并使之適合底層平臺。這不僅實現了比編譯器更出色的優(yōu)化,,還能方便的在硬件和軟件平臺之間遷移應用程序,。



 

此內容為AET網站原創(chuàng),未經授權禁止轉載,。