关于ZigBee协议栈的问题?

供稿:hz-xin.com     日期:2024-05-01
关于ZIGBEE协议栈的学习问题

单片机和C语言的基础是前提,然后要想学习协议栈,最好大概读一下协议栈的几个层次介绍,有个表面认识,说实话,不太推荐国内的书。多是以卖开发板为主要目的,很难读得痛快,有本国外专著,写得非常好,叫Newnes.ZigBee.Wireless.Networks.and.Transceivers,如果英文可以的话,建议阅读,如果不困难。有个叫奥特曼的做了个论坛,翻译了些资料。可以去看看。

然后就是买开发板,跑例程。推荐用TI的CC2530(2430已经是过去时了),资料相对丰富。把例程成功运行后,大概对功能会有了解了。也算是初步入门了。

然后就是协议栈网络行为的了解,通过读文档、改程序,了解组网、路由、中继等一系列的行为。当然,协议栈远不至这些,如果对底层感兴趣,建议阅读freakz,一个开源的zigbee协议栈。

在ZigBee Pro里,则新增加了一对多路由(Multicast Routing)、多对一路由及源节点路由。一对多路由与一对一路由(Unicast Routing)相同,路由节点会发出路由要求,差别在于当收到封包的节点,会检查群组身分表(Group ID Table, GIDT),GIDT由当地(Local)端设定,如果是属于相同的群组身分(Group ID)的话,就会回路由响应,在回路由响应后,建立的路由表条目(Route Table Entry)就可以使用。因此如果发送一对多的封包(图6),会先检查GIDT,如果不是属于同一个群组,就会检查路由表,把封包往下一个节点(Next Hop)传送,如果检查到是属于自己群组封包时,会将自己的状态改成会员模式(Member Mode),然后再将封包以广播(Broadcast)方式,确保同一个群组的节点都能够接收到这笔数据。当然,为了避免这个广播的封包在网络上一直重复的传送,当节点的状态为会员模式时,会检查广播传送表(Broadcast Transmission Table),以确保不再重复传送同样的封包。

就应用而言,很多情境会把数据集中收集,多数的节点都会把数据往同一个节点送,因此,整个网络拓扑就如树状一样。由于ZigBee Pro放弃树状路由的功能,此时为建立树状的路由路径,如果每个节点都做一对一路由,才能建立往源节点(Originator/Source)的路径,这样会花较多的时间,较没有效率,所以必须提出一个新的路由方式,即所谓的多对一路由(图7)。由源节点发送多对一路由的路由要求,当接收到这个封包的节点,就会直接建立一条往源节点路由的路径,所以所有节点很快就会建好路由条目。

反向基本上还是得透过一对一路由的方式,建立起源节点对于其它节点的路由路径。不过在ZigBee Pro增加源节点路由的方式,就是当路由路径有变化时,节点会先发出一个路由纪录命令(Route Record Command),这个命令中会记录这条路径上经过的节点,因此当源节点接收该命令后,会把这条路径记录在源节点路由表(Source Route Table),只要源节点须把数据传送到其它节点时,会先到源节点路由表找寻路由路径,以加快时间,并且减少建立路由路径或路径修复的次数。


更详细的解释看参考资料里的吧,讲的很清楚

你说的1.4.2版本应该是TI公司的ZigBee协议栈Z-Stack 1.4.2,它符合 ZigBee 2006 规范。

“那些2003,2004版本”指的是zigbee联盟制定的zigbee规范,分别有2004(也称为ZigBee 1.0,之后的都用年份来表示版本号),2006,2007和PRO。
具体看这个吧:http://hi.baidu.com/fanggai/blog/item/c8e016d8a117f23e32fa1c7a.html

zigbee协议栈的结构是怎样的
答:6. 应用层(APL):应用层是协议栈的最顶层,负责处理特定的应用任务。这一层可以进一步细分为应用支持子层(APSE)、Zigbee设备对象(ZDO)和制造商定义的应用对象。在这一层,开发者可以实现自定义的应用逻辑,满足特定的...

zigbee协议栈的绑定原理及应用?
答:他们帮你考虑底层和网络层的内容,将复杂部分屏蔽掉。让用户通过API函数就可以轻易用ZigBee。这样大家使用他们的产品也理所当然了,确实高明。也就是说,协议栈是一个小操作系统。大家不要听到是操作系统就感觉到很复杂。回想...

ZigBee协议栈中一个用户任务下可以有多少个用户事件?
答:ZigBee协议栈:协议栈中有三个变量至关重要:l tasksCnt保存了任务的总个数 uint8 tasksCnt l tasksEvents这是一个指针(可以看做数组),作为事件表,数组的索引是任务ID号,每一元素对应了该任务下的所有事件,这个事...

Zigbee协议栈是什么,TI推出过好像有Zstack, RemoTI,Simpliciti 它们有...
答:1、Zstack 是针对Zigbee pro协议的 正确 2、RemoTI是针对Zigbee RF4CE协议的 正确 3、Simpliciti 简单的使用TI的zigbee芯片进行无限数据收发,只是使用mac层收发数据而已,自定义非标准 4、RF4CE不属于zigbee 标准,无法兼...

关于ZIGBEE协议栈的学习问题
答:单片机和C语言的基础是前提,然后要想学习协议栈,最好大概读一下协议栈的几个层次介绍,有个表面认识,说实话,不太推荐国内的书。多是以卖开发板为主要目的,很难读得痛快,有本国外专著,写得非常好,叫Newnes.ZigBee....

关于Freescale Zigbee协议的问题
答:--- 关于你的补充问题:其实我主要使用的是Freescale的协议栈,TI的相对不那么熟悉。我也没有去对比过具体的协议栈代码。因为两大厂商都是得遵循ZigBee标准的,所以大体上是相同的。但是,我们可以注意到这些厂商在宣传他们...

你好,我也碰到了向在ZIGBEE协议栈编程串口收发时,向2530发送一次数据...
答:可能原因是你用串口助手发送数据的时候,未按照预定义的帧结构发送数据。或者是你发送的时候选择的进制有问题。

ZigBee协议栈如何添加多个终端节点,协调器根据什么判断哪个终端设备发 ...
答:协调器会为每个节点分配网络短地址,节点就是依据网络地址来发送数据的。

用IAR开发ZigBee协议栈时,关于HalUARTWrite()函数的问题。
答:可以用这样的方法实现:定义一个字符数组 unsigned char buf[1]; buf[0]=0x22;//双引号的ASCII码,然后发送HalUARTWrite(0,"It's "A",20);HalUARTWrite(0,buf,1);

Zigbee协议栈分为哪几层?
答:1.应用层,应用层定义了各种类型的应用业务,是协议栈的最上层用户。2.应用会聚层,主要负责把不同的应用映射到Zigbee网络上,主要包括安全属性设置、多个业务数据流的会聚、设备发现和业务发现等功能。3.网络层,网络层的...