OpenWSN意為開源的無線感測器網路基礎平台。
基本介紹
- 中文名:開源無線感測器
- 外文名:OpenWSN
簡介,特點,
簡介
OpenWSN: 開源的無線感測器網路基礎平台(事件驅動的作業系統核心,硬體的組件化封裝,協定棧,示例)。
特點
OpenWSN與 TinyOS的比較
相同點:
* 都是事件驅動
* 都是組件架構
* 同樣都提供了非常豐富的組件
不同點:
* OpenWSN基於 ANSI C語言開發,TinyOS基於nesC,語法不同;
* OpenWSN採用C容易上手,學習曲線短,但TinyOS採用nesC 不受C語言語法的制約,提供了更加優雅的組件組裝方式;
* OpenWSN強調對工業界傳統遺留資源(現有代碼、員工和員工的經驗與技能)的保護與利用,TinyOS誕生自學術界,更多的是一個創新想法的實驗溫床,工業界接受程度有限;
* OpenWSN實施嚴格的分層設計與實現,強調先分好層然後在層內再區分組件;TinyOS因為過於強調組件而在層次上不夠明顯,特別是在早期1.0版本中;
* 因為採用 ANSI C,所以OpenWSN移植性非常好,可被輕鬆移植到絕大部分資源受限的系統中,今天不支持C編譯器的微控制器非常少見,且可充分利用廠家提供的C編譯器或第三方提供的開發環境進行最佳化;而nesC的移植相對困難,且與GCC綁定,撇開nesC的移植不談,對GCC不支持的硬體就無法運行TinyOS。
* OpenWSN 可以作為母體作業系統的一個任務運行,母體作業系統可以是uCOS, uCLinux or 其他OS。向一個母體作業系統移植與向一個新硬體平台移植遵循類似的思路;而TinyOS自成體系,要想與其他作業系統融合,利用其它作業系統的功能就非常困難;
* OpenWSN取消了TinyOS中Configurator配件的概念,組件的組裝過程隱含於組件初始化過程中,TinyOS中刻意引入配件強調了組裝的概念但事實上顯得有些多餘。
* OpenWSN的osx kernel,提供了事件調度,未來將進一步擴展到soft real time schedule
* OpenWSN中osx中的事件為單一類型,不象TinyOS中那樣設計出兩種不同類型事件(普通的事件和中斷事件),從而簡化了組件的開發。中斷事件在開發實踐中是不太好處理,如代碼在中斷態運行必然要求有輔助的各種保護措施以及中斷態和非中斷態之間的聯絡溝通機制,事實上複雜化了套用層的開發。中斷事件在OpenWSN中儘量在HAL 層封裝掉。即使不被封裝掉,也往往是以listener方式對外提供,這在使用上比區分事件類型更清楚。
* OpenWSN的組件設計更加強調被動性,即強調一個組件應以服務方式運行,被動接受外部輸入事件然後做出回響。當然,OpenWSN並不要求所有組件必須如此。