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

Contiki学习入门之概览的更多相关文章

  1. 每天成长一点---WEB前端学习入门笔记

    WEB前端学习入门笔记 从今天开始,本人就要学习WEB前端了. 经过老师的建议,说到他每天都会记录下来新的知识点,每天都是在围绕着这些问题来度过,很有必要每天抽出半个小时来写一个知识总结,及时对一天工 ...

  2. C# BackgroundWorker组件学习入门介绍

    C# BackgroundWorker组件学习入门介绍 一个程序中需要进行大量的运算,并且需要在运算过程中支持用户一定的交互,为了获得更好的用户体验,使用BackgroundWorker来完成这一功能 ...

  3. 给深度学习入门者的Python快速教程 - 番外篇之Python-OpenCV

    这次博客园的排版彻底残了..高清版请移步: https://zhuanlan.zhihu.com/p/24425116 本篇是前面两篇教程: 给深度学习入门者的Python快速教程 - 基础篇 给深度 ...

  4. 给深度学习入门者的Python快速教程 - numpy和Matplotlib篇

    始终无法有效把word排版好的粘贴过来,排版更佳版本请见知乎文章: https://zhuanlan.zhihu.com/p/24309547 实在搞不定博客园的排版,排版更佳的版本在: 给深度学习入 ...

  5. UML学习入门就这一篇文章

    1.1 UML基础知识扫盲 UML这三个字母的全称是Unified Modeling Language,直接翻译就是统一建模语言,简单地说就是一种有特殊用途的语言. 你可能会问:这明明是一种图形,为什 ...

  6. 简单的玩玩etimer <contiki学习笔记之九 补充>

    这幅图片是对前面  <<contiki学习笔记之九>>  的一个补充说明. 简单的玩玩etimer <contiki学习笔记之九> 或许,自己正在掀开contiki ...

  7. 简单的玩玩etimer <contiki学习笔记之九>

    好吧,我承认etimer有点小复杂,主要是它似乎和contiki的process搅在一起,到处都在call_process.那就先搜搜contiki下的etimer的example看看,然后再试着写一 ...

  8. Stanford Parser学习入门(2)-命令行运行

    在Stanford parser目录中已经定义了一部分命令行工具以及图形界面,本文将介绍如何在windows使用这些工具进行语法分析,Linux下也有shell可以使用. 关于如何搭建环境请参考上一篇 ...

  9. Python学习入门基础教程(learning Python)--5.6 Python读文件操作高级

    前文5.2节和5.4节分别就Python下读文件操作做了基础性讲述和提升性介绍,但是仍有些问题,比如在5.4节里涉及到一个多次读文件的问题,实际上我们还没有完全阐述完毕,下面这个图片的问题在哪呢? 问 ...

随机推荐

  1. 测试JS

    <html> <head> </head> <body> <script> function loadScript(url, callbac ...

  2. cocos2d-x 资源路径研究

    调用cc.FileUtils:getInstance():addSearchResolutionsOrder("src"); 加入�一个搜索路径,就能够直接载入src文件夹下的资源 ...

  3. iOS开发——语法篇OC篇&高级语法精讲

    高级语法精讲 一.NSSet.NSMutableSet集合的介绍 1)NSSet.NSMutableSet集合,元素是无序的,不能有重复的值. 2)用实例方法创建一个不可变集合对象 例如: //宏定义 ...

  4. 标准库类型vector

    标准库类型vector表示对象的集合,其中所有对象的类型都相同.集合中的每个对象都有一个与之对应的索引,索引用于访问对象.因为vector“容纳着”其他对象,所以它被称为容器. 要想使用vector, ...

  5. debian的备份与还原

    不管是windows还是linux 备份都很重要 因为配好一个系统是要花很多时间的 出了问题的话 有备份直接还原就可以了 windows下有ghost 那么linux下呢?Linux可以在系统正在运行 ...

  6. 中兴电信光纤猫F612管理员密码获取方法

    1.telnet 192.168.1.1 账号:root 密码:Zte521 2.输入命令: sendcmd 1 DB p DevAuthInfo 得到管理员账号密码如下: <DM name=& ...

  7. iOS H5容器的一些探究(一):UIWebView和WKWebView的比较和选择

    一.Native开发中为什么需要H5容器 Native开发原生应用是手机操作系统厂商(目前主要是苹果的iOS和google的Android)对外界提供的标准化的开发模式,他们对于native开发提供了 ...

  8. 《JavaScript学习指南》第2版 学习笔记1

    1.<noscript> 标签 noscript 元素用来定义在脚本未被执行时的替代内容(文本). 注释:如果浏览器支持脚本,那么它不会显示出 noscript 元素中的文本.无法识别 & ...

  9. 为什么arcgis里,鼠标的图标都变成放大镜不能用了

    做作业做到一半,鼠标的图标就只有放大镜了,不管是点箭头还是作图工具都没用,手抓的也没用,只剩下放大镜的功能和图标了,这是怎么一回事啊?种情况我碰到过几次,具体原因不清楚,但是解决方法是有的:把你的数据 ...

  10. 【安卓面试题】在一个Activity启动另一个Activity和在Service中启动一个Activity有什么区别

    在Activity中可以直接使用Intent启动另一个Activity 显式Intent intent = new Intent(context, activity.class) 隐式 Intent ...