contiki专题

Contiki——Chameleon理解

Chameleon结构的作用在Chameleon的pack_header()函数中体现了出来(这里的打包方式像以前自己讨论过的一个问题,是在组织数据时直接将数据写入发送缓冲区中,还是保存在一个结构体中到最后一起打包)。Chameleon的方式,属于将需要打包的数据先放在一个结构体中,在最后将要发送时,调用pack_header函数将数据写入发送缓冲区中。这样会浪费一些内存。但是,折中的结果是通过

Contiki——Rime缓冲区packetbuf分析

2013-7-5 19:02 首先关于里边的一个变量: buflen指的是payload(packetbuf的数据部分)的长度, bufptr指的是payload(packetbuf的数据部分)的起始位置; hdrptr指的是报文头的起始位置(在packetbuf的报文头部分); packetbuf实际大小是PACKETBUF_HDR_SIZE+PACKETBUF_SIZE(即

Contiki——Rime Stack分析

一 分析Rime的大概思路 在Rime中,理解Rime Stack的工作原理,首先要理解整体框架; 之后要理解这里边的list,memb,packetbuf,channel,等几个部分; 之后要明白chameleon的结构,以及一些具体实现; 这几个部分中,以packetbuf和chameleon最为重要。 像packetbuf.c,packetqueue.c是最基本的几个

Contiki协议栈Rime:通道channel

更多的Contiki协议栈知识,请参考索引目录: 《Contiki协议栈:索引目录》 1 概述   在变色龙架构中,不同的协议使、程序用不同的逻辑通道进行通信。每个通道都有自己的一些列协议和包属性。在下图中,应用程序1使用运行在Rime协议栈之上的组网路由协议,应用程序2直接使用Rime协议栈,这两个应用程序各自拥有自己的逻辑通道。   简而言之,如果不同节点的两个

Contiki协议栈Rime:缓冲区管理packetbuf management

更多的Contiki协议栈知识,请参考索引目录: 《Contiki协议栈:索引目录》 1 概述   关于Rime的缓冲区管理这一块,能在网上搜到很多博客,但是我想说的是,99%+都是过时的,坑爹啊!Contiki的开发非常活跃,所以对代码的改进很多,而Rime的缓冲区管理这也在今年二月份进行了优化,由之前难以理解的、晦涩的“双头栈”改为了现在通俗易懂的结构。双头栈有多晦涩,你将con

Contiki协议栈Rime:包属性packetbuf_attr

更多的Contiki协议栈知识,请参考索引目录: 《Contiki协议栈:索引目录》 1 概述   包属性其实属于下一篇博客《Contiki协议栈Rime:缓冲区管理packetbuf management》的一部分,但是它比较难以理解,所以单独抽出一篇博客对它做介绍。   为了兼容其他协议,Rime不定义任何头部格式,而用包属性代替。一种属性是一种头部字段的抽象。当Rime协议栈

Contiki协议栈Rime: 节点链接地址linkaddr

更多的Contiki协议栈知识,请参考索引目录: 《Contiki协议栈:索引目录》 1 概述   linkaddr模块是对Rime中地址的抽象表示,用来标识节点在无线传感器网络中的地址。   在早期的Contiki代码中,节点地址是以rimeaddr表示的,所以网上很多教程都是rimeaddr的。在2014年1月30日后,adam对Contiki中的所有节点地址相关定义由rime

Contiki协议栈Rime:引子introduction

更多的Contiki协议栈知识,请参考索引目录: 《Contiki协议栈:索引目录》 1. 前言 思来想去,既然是程序员,当然还是用一个程序引入比较好。当然,这个程序必须满足以下几点: 足够简单,不会把大家给吓着了能够引入足够多的知识点,可以串起来能够说明包如何在网络中传输 然后我就找啊找,找到了Contiki的一个demo例程:examples/rime/example-abc

Contiki协议栈学习计划

写在前面   由某个物联网岗位招聘中,里面有一条加分项是这样说的: Familiarity with Contiki or Tiny OS programming is a PLUS.   然后就在网上疯狂搜索这条招聘中的相关专业术语,最后打算以Contiki作为切入点。Contiki作为一个操作系统,综合了多门学科知识,比如C语言、操作系统、数据结构、计算机网络,而Contiki在网

[Contiki系列论文之11]Rime:传感器网络中的轻量级分层通信栈

说明:本系列文章翻译自Contiki之父Adam Dunkels经典论文,版权归原作者所有。 Contiki是由Adam Dunkels及其团队开发的系统,研读其论文是对深入理解Contiki系统的最佳资料。 摘要   在早期的传感器网络的研究过程中,人们发现传统的分层通信架构具有太多的局限性,因此提出了跨层优化。不过,在最近的研究工组中,人们又发现跨层优化过于复杂,可能导致系统很脆弱

Contiki教程——链表list

1 相关宏和数据结构 1.1 LIST_CONCAT #define LIST_CONCAT2(s1, s2) s1##s2#define LIST_CONCAT(s1, s2) LIST_CONCAT2(s1, s2) 该宏的作用非常简单,将s1,s2拼接在一起。其中,##起连接作用,编译器在预处理时负责将s1,s2连接在一起。比如hello_##world经过编译器预处理后就变成了he

[Contiki系列论文之4]ContikiMAC RDC协议

目录 目录摘要介绍ContikiMAC 1 ContikiMAC时序2 包检测和快速睡眠3锁相传输 实现评估 1 微观基准2 网络功率消耗 相关工作总结参考文献 摘要   为了降低系统功耗,低功耗无线设备必须尽可能地将无线电收发器关闭,但是为了接收来自邻居节点的通信消息,它必须被经常唤醒。本论文描述了ContikiMAC RDC(Radio-Duty-Cycling)机制,

Contiki:一个鲜为人知的、主宰物联网的开源操作系统

Contiki是一个鲜为人知的IoT操作系统,它能够被人们真正接受的最大原因在于它的体积很小、功能强大、轻便、免费和成熟等特性。现在它主要是用在传感器、追踪器和基于网络的自动化系统等领域。 毋庸置疑,你几乎可以将任何东西链接到计算机网络上,这一点其实并不难。例如: Light bulbs、Thermostats、Coffee makers,甚至是Badgers。 Contiki 的由来

Contiki 2.5发布

为什么80%的码农都做不了架构师?>>> %的Contiki 2.5 Released Contiki 2.5发布 posted by Adam Dunkels on Mon 12th Sep 2011 21:05 UTC 发表于:2011年9月13日 北京时间05:05 The Contiki operating system allows tiny wireless