- 1、本文档共16页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
2---节点对节点的无线电通信[兼容模式]-DrKeShi
Lesson 2 节点对节点的无线通信
介绍TinyOS 系统的通信模块,熟悉TinyOS
i
h
中支持通信的接口和组件。
S
使用message_t类型数据 (即TinyOS 2.x的消
e
息缓冲区) K
发送一条消息缓冲到无线电。
T
从无线电接收一条消息缓冲。
S
U
H
一、介绍
TinyOS 提供了很多的接口来抽象底层的通
信服务,以及提供或实现这些接口的组件。
所有的接口和组件使用了一个共同的消息
缓冲抽象,称为message_t.
message_t可以通过nesC 的结构体来实现
(类似于C语言中的结构体struct )。
message_t 的成员是不透明的,因此不能直
接访问。
1.1 基本通信接口
Packet :提供了对message_t抽象数据类型的基本访问。这
个接口的命令有:清空消息内 ,获得消息的有效载荷区
长度,获得消息有效载荷区的指针。
Send :提供基本的自由地址的消息发送接口。这个接口
提供的命令有:发送消息,取消未成功发出的消息。接口
还提供了事件来指示一条消息是否成功发送。它也提供了
一些便利的函数,来获得消息的最大有效载荷区长度以及
消息有效载荷区的指针。
Receive :提供最基本的消息接收接口。这个接口提供了
接收消息后的事件。它也提供了些命令,可以方便地获得
消息的有效载荷区长度以及消息有效载荷区的指针。
PacketAcknowledgements :提供了一种机制来要求对每
个信息包的确认。
RadioTimeStamping :为无线电发射和接受提供时间标
记信息。
1.2 活动消息接口
由于经常有多个服务需要使用相同的无线电来交流,
TinyOS 提供了活动消息(active message,缩写AM )
来实现多渠道访问无线电。
AM type在功能上类似于以太网的数据帧、IP 协议以及
UDP 端口,所有这些都是为了达到多路访问一个通信服务
的目的。
AMPacket :类似Packet,提供对message_t抽象数据类型
的基本的AM 访问。这个接口提供的命令有:获得节点的
AM 地址,AM信息包的目标地址以及AM信息包的类型。
除此之外还有,设置AM信息包目标地址和类型,检查目
标地址是否为本地节点。
AMSend :类似Send ,提供了基本的活动消息发送接口。
AMSend 与Send 之间的关键区别是,AMSend 在其发送命
令里带有AM 目标地址参数。
1.3 组件
AMReceiverC :Receive, Packet, and AMPacket.
AMSenderC :AMSend, Packet, AMPacket,
PacketAcknowledgements as Acks.
AMSnooperC :Receive, Packet, and AMPacket.
AMSnoopingReceiverC :Receive, Packet, and AMPacket.
ActiveMessageAddressC:提供了获得和设定节点活动消息
地址的的命令。这个接口不能作为一般使用,修改活动消
息地址可能破坏网络堆栈,所以尽量不要使用,除非程序
员 常清楚自己在做什么。
二、tinyos2.x消息缓冲抽象
Tinyos2.x 用message_t代替了tinyos1.x的TOS_Msg,
作为底层数据结构。
tos/typ
文档评论(0)