ZigBee 学习笔记(JN5139)
2011-11-03 13:36
211 查看
几个重要概念:
node(节点):
在zigbee堆栈中最多有三种节点:Coordinator(协调器)、Router(路由器)、End Device(终端)。
其中Coordinator负责选择工作频段,建立网络,允许子设备加入网络;Router负责传递消息,允许子设备加入网络;End Device只负责收发消息。
一个网络中可以有若干Router和End Device,但只能有一个Coordinator。
下面几个图说得更清楚点
![](http://hi.csdn.net/attachment/201111/5/0_13204844599e4r.gif)
![](http://hi.csdn.net/attachment/201111/5/0_1320484462RdSs.gif)
![](http://hi.csdn.net/attachment/201111/5/0_1320484465xzIh.gif)
profile:
有人将profile翻译为“规约”,它规定了设备的具体应用环境(这是由zigbee使用联盟制定的,我们只能选择其一)。
![](http://hi.csdn.net/attachment/201111/5/0_13204896166g9u.gif)
其中stack profile定义了网络类型、深度等;application profile针对给定的stack profile定义了不同功能的标准函数,说明了设备类型、接口、如何传输数据等等。
总之,profile就是对设备的描述。目的是形成标准,便于不同制造商间产品的兼容。
descriptor:
cluster:
attribute:
endpoint:
endpoint的作用举例说明下:
![](http://hi.csdn.net/attachment/201111/7/0_1320642871kxdR.gif)
假如我们想让node1的开关1控制node2的灯1、2、3,开关2只控制灯4。但是由于节点间信息只依靠网络地址定位,所以node2接收到node1的控制信息后,无法判断究竟是哪个开关的控制信息。所以引入了endpoint概念(这和TCP/IP协议里的“端点”概念很像),给node2两个endpoint(端口),一个对应开关1,一个对应开关2。这样node2的应用程序就能通过接收到的endpoint来区别究竟是接收到哪个开关的信息了。
杂记:
ZigBee网络层的主要功能是路由,路由算法是它的核心。目前ZigBee网络层主要支持两种路由算法——树状路由和网状路由。树状路由(具体可以参考ZigBee的协议栈规范)把整个网络看作是以协调器为根的一棵树,因为整个网络是由协调器所建立的。协调器的子节点可以是路由器或者是末端节点,路由器的子节点也可以是路由器或者末端节点,而末端节点没有子节点,相当于树的叶子。树状路由利用了一种特殊的地址分配算法,使用四个参数—深度、最大深度、最大子节点数和最大子路由器数来计算新节点的地址,于是寻址的时候根据地址就能计算出路径,而路由只有两个方向——向子节点发送或者向父节点发送。树状路由不需要路由表,节省存储资源,但缺点是很不灵活,浪费了大量的地址空间,并且路由效率低。ZigBee当中还有一种路由方法是网状路由,这种方法实际上是AODV路由算法的一个简化版本,非常适合于低成本的无线自组织网络的路由。它可以用于较大规模的网络,需要节点维护一个路由表,耗费一定的存储资源,但往往能达到最优的路由效率,而且使用灵活。除了这两种路由方法,ZigBee当中还可以进行邻居表路由,其实邻居表可以看作是特殊的路由表,只不过只需要一跳就可以发送到目的节点。
node(节点):
在zigbee堆栈中最多有三种节点:Coordinator(协调器)、Router(路由器)、End Device(终端)。
其中Coordinator负责选择工作频段,建立网络,允许子设备加入网络;Router负责传递消息,允许子设备加入网络;End Device只负责收发消息。
一个网络中可以有若干Router和End Device,但只能有一个Coordinator。
下面几个图说得更清楚点
![](http://hi.csdn.net/attachment/201111/5/0_13204844599e4r.gif)
![](http://hi.csdn.net/attachment/201111/5/0_1320484462RdSs.gif)
![](http://hi.csdn.net/attachment/201111/5/0_1320484465xzIh.gif)
profile:
有人将profile翻译为“规约”,它规定了设备的具体应用环境(这是由zigbee使用联盟制定的,我们只能选择其一)。
![](http://hi.csdn.net/attachment/201111/5/0_13204896166g9u.gif)
其中stack profile定义了网络类型、深度等;application profile针对给定的stack profile定义了不同功能的标准函数,说明了设备类型、接口、如何传输数据等等。
总之,profile就是对设备的描述。目的是形成标准,便于不同制造商间产品的兼容。
descriptor:
cluster:
attribute:
endpoint:
endpoint的作用举例说明下:
![](http://hi.csdn.net/attachment/201111/7/0_1320642871kxdR.gif)
假如我们想让node1的开关1控制node2的灯1、2、3,开关2只控制灯4。但是由于节点间信息只依靠网络地址定位,所以node2接收到node1的控制信息后,无法判断究竟是哪个开关的控制信息。所以引入了endpoint概念(这和TCP/IP协议里的“端点”概念很像),给node2两个endpoint(端口),一个对应开关1,一个对应开关2。这样node2的应用程序就能通过接收到的endpoint来区别究竟是接收到哪个开关的信息了。
杂记:
ZigBee网络层的主要功能是路由,路由算法是它的核心。目前ZigBee网络层主要支持两种路由算法——树状路由和网状路由。树状路由(具体可以参考ZigBee的协议栈规范)把整个网络看作是以协调器为根的一棵树,因为整个网络是由协调器所建立的。协调器的子节点可以是路由器或者是末端节点,路由器的子节点也可以是路由器或者末端节点,而末端节点没有子节点,相当于树的叶子。树状路由利用了一种特殊的地址分配算法,使用四个参数—深度、最大深度、最大子节点数和最大子路由器数来计算新节点的地址,于是寻址的时候根据地址就能计算出路径,而路由只有两个方向——向子节点发送或者向父节点发送。树状路由不需要路由表,节省存储资源,但缺点是很不灵活,浪费了大量的地址空间,并且路由效率低。ZigBee当中还有一种路由方法是网状路由,这种方法实际上是AODV路由算法的一个简化版本,非常适合于低成本的无线自组织网络的路由。它可以用于较大规模的网络,需要节点维护一个路由表,耗费一定的存储资源,但往往能达到最优的路由效率,而且使用灵活。除了这两种路由方法,ZigBee当中还可以进行邻居表路由,其实邻居表可以看作是特殊的路由表,只不过只需要一跳就可以发送到目的节点。
相关文章推荐
- ZigBee学习笔记_zmain_vdd_check()
- zigbee学习笔记2----cc2530 IO实验
- zigbee学习笔记1----安装zstack协议栈
- Zigbee系列 学习笔记六(设置项)
- 《ZigBee Wireless Networking》学习笔记【1】
- Zigbee开发板学习笔记(二)
- Zigbee系列 学习笔记一(协议栈)
- Zigbee系列 学习笔记二(工程文件分析)
- zigbee 学习笔记
- Zigbee开发板学习笔记(一)
- Zigbee开发板学习笔记(三)
- ZigBee组网学习笔记(一)无线点灯
- 转 zigbee学习笔记---Channel、PANID、发射功率及其它参数
- zigbee学习笔记3----cc2530 外部中断实验
- 我的zigbee学习笔记(1)----如何利用官方的工程文件修改为自己的工程文件
- ZigBee学习笔记_zmain_ram_init()
- zigbee学习笔记(二) 开发环境
- zigbee学习笔记
- Zigbee系列 学习笔记三(初始化程序解析)
- ZigBee学习笔记_osal_int_disable()