首页 理论教育 TinyOS通信模型分析与实现

TinyOS通信模型分析与实现

时间:2023-06-30 理论教育 版权反馈
【摘要】:TinyOS的通信模型基于主动消息,是一种高性能并行通信方式。在TinyOS 2.x中,消息结构是message_t,相对TOS_Msg代表明确的主动消息数据包不同,message_t兼容性更高,能使data域置于固定偏移位置,方便不同链路层间的通信。TinyOS要求每个应用程序在消息被释放后,能返回一块未用的消息缓存,以接收下个未到的消息。基于以上的原因,TinyOS采用Active Message作为节点之间通信的机制。在TinyOS中,每种类型的消息都被分配一个独一无二的类型号,该类型号被包括在Active Message报文头中。

TinyOS通信模型分析与实现

TCP/IP是在计算机网络中应用非常普遍的通信协议,但它并不适用于无线传感器网络。首先,在传感器网络中,通信消耗的能量最为可观,因此必须尽可能减少报文的长度。而TCP/IP通信控制开销过大。其次,TCP/IP采用了复杂的存储器管理机制,这既需要较大的存储器开销,又带来了较大的时延。

TinyOS的通信模型基于主动消息(Active Message),是一种高性能并行通信方式。在每次发送消息后,接收方需返回一个同步的确认消息。此确认消息是在主动消息层的最底层生成,其内容是一个特殊立即序列,发送方可迅速确定是否需重发消息。

Active Message是UC Berkeley为并行和分布式计算机通信开发的一种高效的通信机制。它可以被看成是一种轻量级的远程进程调用(RPC),其基本思想是让消息本身带有消息处理程序的地址和参数,消息到达目的节点后系统立即产生中断调用,并由中断处理机制启动消息处理程序。Active Message能很好地实现通信与计算的重叠。与TCP/IP相比,Active Message的另一个优势就是它不需要额外的通信缓冲区,在通信的接收方,消息中的用户数据可以直接送入应用程序预先为它分配好的存储区。

在TinyOS 1.x中,消息结构是TOS_Msg,包含消息地址、消息类型、消息所属群号及消息处理函数ID等信息。在TinyOS 2.x中,消息结构是message_t,相对TOS_Msg代表明确的主动消息数据包不同,message_t兼容性更高,能使data域置于固定偏移位置,方便不同链路层间的通信。

其结构定义如下:

978-7-111-43089-6-Chapter04-21.jpg(www.xing528.com)

每个链路层定义了其header、footer、metadata。这些结构必须是外部结构体(nx_struct),其所有域必须是外部类型(nx_*)。因为外部类型可保证平台间兼容,可使结构体以字节对齐,从而避免数据包缓冲对齐和域偏移的问题。

978-7-111-43089-6-Chapter04-22.jpg

图4-9 TinyOS通信

当数据转发到无线传感器节点时,先存储在缓存中,然后由主动消息分发层交给上层应用组件对应的消息处理函数完成消息的解包操作、计算处理或发送相应消息等工作。TinyOS要求每个应用程序在消息被释放后,能返回一块未用的消息缓存,以接收下个未到的消息。通信的实现也是通过各层组件通信实现的。结构如图4-9所示。

基于以上的原因,TinyOS采用Active Message作为节点之间通信的机制。在TinyOS中,每种类型的消息都被分配一个独一无二的类型号,该类型号被包括在Active Message报文头中。接收到该消息的节点,将根据类型号去触发相应的事件处理函数。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈