码迷,mamicode.com
首页 > 其他好文 > 详细

Zigbee系列 学习笔记一(协议栈)

时间:2015-07-31 19:53:46      阅读:162      评论:0      收藏:0      [点我收藏+]

标签:

IEEE802.15.4协议内容:

802.15.4,即IEEE用于低速无线个人域网(LR-WPAN)的物理层和媒体接入控制层规范。支持两种网络拓扑,即单跳星状或当通信线路超过10m时的多跳对等拓扑。但是对等拓扑的逻辑结构由网络层定义。LR-WPAN中的器件既可以使用64位IEEE地址,也可以使用在关联过程中指配的16位短地址。一个802.15.4网可以容纳最多216个器件。在这个网络中,根据设备所具有的通信能力,可以分为全功能设备(full-function device,FFD)和精简功能设备(reduced-function device,RFD)。FFD设备之间以及FFD设备与RFD设备之间都可以通信。RFD设备之间不能直接通信,只能与FFD设备通信,或者通过一个FFD设备向外转发数据。这个与RFD相关联的FFD设备称为该RFD的协调器(coordinator)。RFD设备主要用于简单的控制应用,如灯的开关、被动式红外线传感器等,传输的数据量较少,对传输资源和通信资源占用不多,这样RFD设备可以采用非常廉价的实现方案。

IEEE 802.15.4标准定义的LR-WPAN网络具有如下特点:

⑴ 在不同的载波频率下实现了20kbps、40kbps和250kbps三种不同的传输速率;

⑵ 支持星型和点对点两种网络拓扑结构;

⑶ 有16位和64位两种地址格式,其中64位地址是全球惟一的扩展地址;

⑷ 支持冲突避免的载波多路侦听技术(carrier sense multiple access with collision avoidance,CSMA-CA)

在802.15.4中定义了14个物理层基本参数和35个媒体接入控制层基本参数,总共为49个,仅为蓝牙的三分之一。这使它非常适用于存储能力和计算能力有限的简单器件。在802.15.4中定义了两种器件:全功能器件(FFD)和简化功能器件(RFD)。对全功能器件,要求它支持所有的49个基本参数。而对简化功能器件,在最小配置时只要求它支持38个基本参数。一个全功能器件可以与简化功能器件和其他全功能器件通话,可以按三种方式工作,即用作个人域网协调器、协调器或器件。而简化功能器件只能与全功能器件通话,仅用于非常简单的应用。

ZigBee从下层到上层可以分为PHY层、MAC层、NWK层和APL层,APL层又可以分为APS、ZDO和制造商定义的应用对象组成。

APS:的功能和任务是给运行在设备上的不同应用端点转发网络信息,包括维护一个能够将各设备按照其提供的服务和需要的服务匹配起来的绑定表,APS可以在绑定表中规定的被绑定的设备之间传输信息。应用对象是运行在端点的应用软件,它具体实现节点的应用功能。

在ZigBee设备里可以定义240个应用对象,每一个端点编号范围可以为1-240,编号0被保留为ZDO的接口,用于整个ZigBee设备的配置和管理,应用程序也可以通过端点0与ZigBee堆栈的其它层通信,从而实现这些层的初始化和配置。而编号255被保留成为向所有应用个对象进行广播数据的接口,端点编号241~254为将来的扩展保留使用。所有端点都是用APS层提供的服务。

PHY层的数据访问类原语用PD开头,PHY层管理类原语用PLME开头;

MAC层数据服务原语用MCPS开头,MAC层管理服务原语用MLME开头;

NWK层数据服务原语用NLDE开头,NWK层管理服务原语用NLME开头;

APS层数据服务原语用APSDE开头,APS层管理服务原语用APSME开头。

ZigBee的MAC层有一种特殊的帧,成为超帧,它内部包含了若干个不同类型的特殊帧,它可以帮助网络协调器限定和分配信道的访问时间。超帧由活动部分和非活动部分组成,在活动部分时间内,设备通过竞争或非竞争的方式使用信道,在非活动部分时间内,设备进入睡眠状态,用来节能。网络协调器通过发送beacon帧表示超帧的开始。

近两年来备受关注的MAC层协议有:IEEE 802.15.4 LR-WPAN和Sensor-MAC SMAC协议。

LR-WPAN有两种运行模式:beaconed(使用无线广播进行同步)和beaconless(采用CSMA/CA机制),而S-MAC具有定期监听和休眠两种运行模式。大多数MAC层协议的主要目的是减少因碰撞、监听信道、开销造成的能源浪费。这些协议可以分为两大类:以时间表为基础和以竞争为基础的MAC层协议。

当前无线传感器网络的主要算法有网络泛洪协议(Flooding)、定向扩散协议(Directed Diffusion,DD)、基于协商的协议(Sensor Protocol for Information via Negotiation,SPIN)和低功耗自适应聚类路由协议(Low-Energy Adaptive Clustering Hierarchy,LEACH)等。

什么是协议栈?我们知道使用Zigbee一般都要进行组网、传输数据。可想而知其中的代码数量是非常庞大的,如果我们每次使用zigbee都需要自己写所以代码的话,会非常麻烦。因此就有了协议栈。可以说它是一个小型的操作系统,把很多通信、组网之类的代码都封装起来了。我们要做的只是通过调用函数来实现我们的目的。

 

 

Zigbee系列 学习笔记一(协议栈)

标签:

原文地址:http://www.cnblogs.com/killer-xc/p/4692803.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!