Contiki学习入门之概览
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学习入门之概览的更多相关文章
- 每天成长一点---WEB前端学习入门笔记
WEB前端学习入门笔记 从今天开始,本人就要学习WEB前端了. 经过老师的建议,说到他每天都会记录下来新的知识点,每天都是在围绕着这些问题来度过,很有必要每天抽出半个小时来写一个知识总结,及时对一天工 ...
- C# BackgroundWorker组件学习入门介绍
C# BackgroundWorker组件学习入门介绍 一个程序中需要进行大量的运算,并且需要在运算过程中支持用户一定的交互,为了获得更好的用户体验,使用BackgroundWorker来完成这一功能 ...
- 给深度学习入门者的Python快速教程 - 番外篇之Python-OpenCV
这次博客园的排版彻底残了..高清版请移步: https://zhuanlan.zhihu.com/p/24425116 本篇是前面两篇教程: 给深度学习入门者的Python快速教程 - 基础篇 给深度 ...
- 给深度学习入门者的Python快速教程 - numpy和Matplotlib篇
始终无法有效把word排版好的粘贴过来,排版更佳版本请见知乎文章: https://zhuanlan.zhihu.com/p/24309547 实在搞不定博客园的排版,排版更佳的版本在: 给深度学习入 ...
- UML学习入门就这一篇文章
1.1 UML基础知识扫盲 UML这三个字母的全称是Unified Modeling Language,直接翻译就是统一建模语言,简单地说就是一种有特殊用途的语言. 你可能会问:这明明是一种图形,为什 ...
- 简单的玩玩etimer <contiki学习笔记之九 补充>
这幅图片是对前面 <<contiki学习笔记之九>> 的一个补充说明. 简单的玩玩etimer <contiki学习笔记之九> 或许,自己正在掀开contiki ...
- 简单的玩玩etimer <contiki学习笔记之九>
好吧,我承认etimer有点小复杂,主要是它似乎和contiki的process搅在一起,到处都在call_process.那就先搜搜contiki下的etimer的example看看,然后再试着写一 ...
- Stanford Parser学习入门(2)-命令行运行
在Stanford parser目录中已经定义了一部分命令行工具以及图形界面,本文将介绍如何在windows使用这些工具进行语法分析,Linux下也有shell可以使用. 关于如何搭建环境请参考上一篇 ...
- Python学习入门基础教程(learning Python)--5.6 Python读文件操作高级
前文5.2节和5.4节分别就Python下读文件操作做了基础性讲述和提升性介绍,但是仍有些问题,比如在5.4节里涉及到一个多次读文件的问题,实际上我们还没有完全阐述完毕,下面这个图片的问题在哪呢? 问 ...
随机推荐
- 设计模式六大原则——合成/聚合复用原则(CARP)
1.定义 简而言之,对于合成/聚合复用原则的定义就是:要尽量使用合成和聚合,尽量不要使用继承. 2.释义 为什么"要尽量使用合成和聚合.尽量不要使用继承"呢? 这是由于: 第一,继 ...
- PAT 1003
1003. Emergency (25) As an emergency rescue team leader of a city, you are given a special map of yo ...
- OpenVPN莫名其妙断线的问题及其解决-confirm
本文很短,目的在于confirm一下凌乱的< OpenVPN莫名其妙断线的问题及其解决>,如果看觉得我比较啰嗦,那么一定要看看最后一个小节,好在CSDN为每篇文章都自动添加了目录,可以直接 ...
- c语言海量数据处理
教你如何迅速秒杀掉:99%的海量数据处理面试题 http://wenku.baidu.com/view/4546d06ca45177232f60a276.html c语言如何对海量数据进行处理 PDF ...
- Http Message Converters with the Spring Framework--转载
原文:http://www.baeldung.com/spring-httpmessageconverter-rest 1. Overview This article describes how t ...
- Android检测是否安装了指定应用
检测是否安装了指定应用的方法如下: private boolean isAvilible( Context context, String packageName ) { final PackageM ...
- 自问自答-hadoop在安全模式下究竟干了什么见不得人的事
本来想自己从网上搜集整理的,但是发现吴超写的刚刚好,不多不少,所以直接转载(图片失效了,用自己的图片) http://www.superwu.cn/2013/08/23/548/ 在hadoop集群的 ...
- C语言第一节 C语言程序与开发工具
开发工具的选择 可以用来写代码的工具:记事本.UltraEdit.Vim.Xcode等 选择Xcode的原因:苹果官方提供的开发利器.简化开发过程.有高亮显示功能 使用Xcode新建一个C程序的源代码 ...
- ConcurrentHashMap 源码解析 -- Java 容器
ConcurrentHashMap的整个结构是一个Segment数组,每个数组由单独的一个锁组成,Segment继承了ReentrantLock. 然后每个Segment中的结构又是类似于HashTa ...
- Android 高级UI设计笔记02:可以拖动交换item位置的GridView(转载)
如果大家不知道GridView基本使用,可以先参见:Android(java)学习笔记154:使用GridView以及重写BaseAdapter 1. 首先我们明白GridView拖拽的思路: ()根 ...