Contiki是專為物聯網領域而設計的開源操作系統,適用於聯網嵌入式系統和無線傳感器網絡。由瑞典計算機科學學院的Adam Dunkels團隊開發。它有以下幾個特點。
1. 網絡標准
contiki提供強大的低功耗網絡通訊,支持標准IPv4和IPv6,連同最新的低功耗無線標准,6lowpan,ROL,CoAP等等。配合ContikiMAC層和具備休眠功能的路由器,每個無線路由器都可以由電池供電。
2. 快速開發
Contiki應用全部是用標准C語言來編寫,可移植性非常好。可以使用Cooja模擬器來仿真Contiki網絡。Instant Contiki提供一套完整的開發環境,典型的配置下,contiki只占用2KBytes的RAM以及40KB的Flash存儲器。下載地址:Get-Started-with-contiki
3. 硬件平台
Contiki可以運行在多種低功耗無線設備上,從基於8051內核的單片機,MSP430到多種ARM內核設備上,都可以運行。擁有一個活躍的開發社區,該社區由Thingsquare的Adam Dunkels領導,社區成員有Atmel、Cisco、ETH、SAP等等。典型的Contiki配置只需要2K的RAM和40K的ROM。代碼可以免費的用於商業領域和非商業領域,發布源碼采用的協議為contiki-BSD-license
Contiki特點
1. 針對內存受限特點,開發了專用的內存塊分配器memb,托管內存分配器mmem,和標准malloc內存分配相類似。
2. 針對能量受限特點,Contiki設計為一個極低功耗的系統,憑借AA電池,可以長時間運行。為了便於測量功耗,Contiki提供了檢測系統功耗的機制,理解系統能量的消耗構成。
3. 全網絡支持,支持標准IP協議,例如UDP、TCP和HTTP。除此之外,最新的低功耗標准,像6lowpan、RPL和Coap也支持的。在Contiki中的IPv6協議棧由Cisco開發,通過IPv6認證標志項目認證 。contiki內部集成兩種無線傳感器網絡協議棧:uIP和Rime。uIP是一個小型的符合RFC規范的TCP/IP協議棧,使得contiki可以直接和Internet通訊,uIP包含了IPv4和IPv6兩種版本,可在編譯時二選一。
Rime是一個輕量級為低功耗無線傳感器網絡設計的協議棧,該協議棧提供了大量的通信原語,能夠實現從簡單的一跳廣播通信,到復雜的可靠多跳數據傳輸等通信功能。
4. 基於事件驅動(Event-driven)內核,多個任務共享同一個棧(stack),支持動態模塊加載機制,提供protothreads機制,在這種機制下,每個事件處理可以獨立等待事件的發生,而不會阻礙其他事件。提供輕量級的flash文件系統,稱為Coffee。提供一個可選的基於文本的shell命令行接口。
5. Contiki無線傳感器網絡仿真工具,能夠對協議在電腦上進行仿真,仿真通過了下載到節點上世紀運行。
6. 得益於Contiki的MAC射頻占比循環機制,在網絡中作為消息中轉的路由器也可以采用電池供電,這和ZigBee網絡中的路由器能量供應不同。在Contiki網絡中,稱這種路由器為sleepy路由器。
7. Contiki采用BSD授權協議,用戶可以用於科研和商用,並且可以任意修改代碼,無需任何專利以及版權費用。
安裝Contiki工具
1. 下載Instant Contiki和對於的VMWare Player工具。下載InstantContik2.7好幾次,解壓到最后的時候出錯,我想就這,官方網址,總不可能下錯吧。我下了三四次contiki2.7的壓縮包,總是解壓錯誤。今天,最后用IE下載,經過漫長的等待,終於成功了。
密碼是:user
接下來就是一步一步來學習了。
參考資料:http://www.cmeee.com/forum/contiki-bbs/46-instantcontiki2-6-for-cc2530dk 這是一系列學習contiki的博客,很好很強大。
參考資料:
Contiki官方網站: www.contiki-os.org
Contiki Wiki:www.sics.se/contiki/wiki
Contiki 源代碼文檔:http://dak664.github.com/contiki-doxygen
Contiki代碼下載:http://sourceforge.net/projects/contiki/files/Contiki/
Instant Contiki開發環境:http://sourceforge.net/projects/contiki/files/Instant%20Contiki