- 1、本文档共18页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Lesson3---节点对节点的无线电通信 TinyOS系统经典PPT教程 教学课件
Lesson 3 节点对节点的无线通信 介绍TinyOS 系统的通信模块,熟悉TinyOS 中支持通信的接口和组件。 使用message_t类型数据(即TinyOS 2.x的消息缓冲区) 发送一条消息缓冲到无线电。 从无线电接收一条消息缓冲。 一、介绍 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:提供了获得和设定节点活动消息地址的的命令。这个接口不能作为一般使用,修改活动消息地址可能破坏网络堆栈,所以尽量不要使用,除非程序员非常清楚自己在做什么。 1.4 封装包 TinyOS支持多平台,每个平台都可以实现对无线电的驱动。所有平台的无线驱动统一封装为 ActiveMessageC组件。 ActiveMessageC组件可以实现接口与底层特定硬件的连接。提供了1.2节提到的大多数通信接口。 ActiveMessageC(eyesIFX平台)由Tda5250ActiveMessageC组件实现; ActiveMessageC(intelmote2, micaz, telosa和telosb平台) 由 CC2420ActiveMessageC组件实现; ActiveMessageC(mica2平台)由 CC1000ActiveMessageC组件实现。 二、tinyos2.x消息缓冲抽象 Tinyos2.x 用message_t代替了tinyos1.x的TOS_Msg,作为底层数据结构。 tos/types/message.h 三、通过无线电发送消息 将编写一个简单的应用程序,一个定时器,一个计数值,用无线电发送这个计数值。另一个节点接收无线电显示计数值在LED上。 修改Blink为BlinkToRadio。 3.2 定义消息结构 不能直接用数据读写message_t的有效载荷区,而是使用一种结构体去操纵有效载荷区,结构如下: 3.3 无线电发送消息 STEP1:首先需要认识一些接口和组件,它们能提供对无线电访问,并允许操作message_t数据类型。 STEP2:接下来必须修改BlinkToRadioC.nc中的规范说明,增加 uses所需接口的语句。 3.3 无线电发送消息 STEP3:需
文档评论(0)