Contiki 是一个开源的、高度可移植的多任务操作系统,适用于联网嵌入式系统和无线传感器网络,完全采用 C 语言开发,可移植性非常好,对硬件的要求极低,能够运行在8051 单片机、MSP430、AVR、ARM、PC 机等硬件平台上,典型的配置下 Contiki 只占用约 2Kbytes 的 RAM 以及 40Kbytes 的 Flash 存储器。
多个线程共享同一个任务栈,从而减少 RAM 占用。还提供一种可选的任务抢占机制、基于事件和消息传递的进程间通信机制。
Contiki 系统内部集成了两种类型的无线传感器网络协议栈: uIP 和 Rime。
1)uIP 是一个小型的符合 RFC 规范的 TCP/IP 协议栈,使得 contiki 可以直接和Internet 通信。 uIP 包含了 IPv4 和 IPv6 两种协议栈版本,支持 TCP、UDP、ICMP等协议,但是编译时只能二选一,不可以同时使用。
2)Rime 是一个轻量级为低功耗无线传感器网络设计的协议栈,该协议栈提供了大量的通信原语,能够实现从简单的一跳广播通信,到复杂的可靠多跳数据传输等通信功能。
Contiki 操作系统特点
1、事件驱动( Event-driven) 的多任务内核
多个任务共享同一个栈( stack),而不是每个任务分别占用独立的栈。
2、低功耗无线传感器网络协议栈
提供完整的 IP 网络和低功耗无线网络协议栈。
3、集成无线传感器网络仿真工具
提供了 Cooja 无线传感器网络仿真工具,能够多对协议在电脑上进行仿真,仿真通过后才下载到节点上进行实际测试。
4、集成 Shell 命令行调试工具
类似于 Unix 命令行的 Shell工具,用户通过串口输入命令可以查看和配置传感器节点的信息、控制其运行状态, 是部署、维护中实用而有效的工具。
5、基于 Flash 的小型文件系统: Coffee File System
是基于 Flash 的文件系统,用于在资源受限的的节点上存储数据和程序。CFS 是充分传感器网络数据采集、数据传输需求以及硬件资源受限的特点而设计的,因此在耗损平衡、坏块管理、掉电保护方面、垃圾回收、映射机制方等方面进行优化,具有使用的存储空间少、支持大规模存储的特点。
6、集成功耗分析工具
Contiki 提供了一种基于软件的能量分析工具, 自动记录每个传感器节点的工作状态、时间,并计算出能量消耗,在不需要额外的硬件或仪器的情况下就能完成网络级别的能量分析。
7、开源免费
总结
大致了解一下,Contiki 完全 C 语言开发、易于移植、支持大量的硬件平台和开发工具、事件驱动机制占用内存小、集成了多种无线传感器网络协议、无专利和版权费、集成仿真工具等特点和优势。能不能学好,还要看以后的学习,为毕业设计加油。