首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

ZigBee协议请教?

ZigBee协议请教?

1、隔壁两户人家同时使用自己的一套基于zigbee的灯光系统,则各自建立了不同的网络,由不同的PANID来区分?现有一新的结点要加入到某户人家的网络里,那该结点是如何避免不加入另外一户人家的呢?


2、zigbee协议是如何实现低功耗的,即其结点的睡眠和唤醒机制怎么实现?是通过定时的广播becon唤醒帧实现的吗?

1。通过应用层选择PANID来加入;
2。结点的睡眠和唤醒都是通过MCU来实现的。目前zigbee不支持网络唤醒的功能。
关于z-stack的应用实例有哪些文档呢?我只看到AN2994.pdf.
可以查看z-stack中的一些文档。
另外,主要是查看z-stack给出的一些实例程序,通过程序了解应用
请问Z-STACK的OSAL是哪一种OS的API? 我初看提供的OSAL源码,这不是一个简单的OS的源码吗?为什么说它仅是API?

[此贴子已经被作者于2006-4-12 15:37:39编辑过]

这里面的OS应该是自己编写的一个简单的OS,用于调度而已。
对Beacon帧中,如
FFD发出的00 80 0f ef be fe ca 11 ef 80 00
通过分析,该帧类型为BEACON,11 ef为super frame specification
80为GTS
00为pending
但我对这几个表示的是什么意思,有啥作用,还没领会出来也?请指教!
具体数字的含义还是要查看IEEE802.15.4的spec
我在对freescale针对802.15.4 MAC PHY Software所提供的例子MyWirelessApp中的应用例程,如My_Wireless_App_Ex05a及My_Wireless_App_Ex05b,所抓下来的over the air的帧,
RFD:23 c8 20 ef be fe ca ff ff ff ff ff ff ff ff ff ff 01 80(associate.request)
RFD:63 c8 29 ef be fe ca ff ff ff ff ff ff ff ff 04(poll-data.request)
FFD:12 00 29(ack)
FFD:62 cc 3b ef be ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 02 01 00 00(associate.response)

以上RFD完成了接入FFD所建成的PAN.
不明白的地方是,按照IEEE 802.15.4 specification所提供的接入过程,FFD应该对RFD的associate.request给一个ACK,然后RFD才向FFD发送poll-data.request的帧,为什么这里不是呢?freescale的MAC PHY库也有不符合标准的吗?
[upload=image/pjpeg]uploadImages/association.jpg[/upload]
第一种情况:
RFD1:63 88 d2 30 34 0 0 6f 79 4 (MLME_POLL_request)
Coordinator:12 0 d2(ACK)
Coordinator:41 88 4a 30 34 6f 79 0 0 (MLME_POLL_response)

第二种情况:
RFD1:63 88 cf 30 34 0 0 6f 79 4(MLME_POLL_request)
Coordinator:2 0 cf(ACK)
第一种和第二种效果不是一样吗?为啥要区分出来呢?是怎么样的情况下才需要第一种的应答形式呢?
为什么没人回复我呢?
你用的802154软件是哪个版本的?

两种情况是什么意思?具体你指的是哪两种情况?

前一个帖子FFD得到的ACK会不会是data request的ack?
没有抓过802.15.4 MAC over the air的帧,不知道会不会出现你所说的那种情况。加入网络的过程,应该是要符合IEEE802.15.4的规范的。但这个功能是在MAC层中完成的,所以对你来说,最重要的是能实现这个网络的加入功能。可以通过API来知道这个网络的加入状况。

该网络内有三个结点,即coordinator,RFD1,RFD2,现在是由RFD1与coordinator绑定后,向coordinator发送数据(64 65 66 ),

RFD1(short address:6F 79)向coordinator发送数据64 65 66
RFD1: 61 88 bc 30 34 0 0 6f 79 4 0 0 0 6f 79 7 1 54 1 5 f b 21 0 3 64 65 66
RFD2:63 88 3d 30 34 0 0 70 79 4 (poll data)
Coordinator:12 0 3d(ack)
Coordinator:41 88 43 30 34 70 79 0 0 (data send(NO_DATA),need not ack)

RFD1:63 88 bd 30 34 0 0 6f 79 4 (poll data)
Coordinator :12 0 bd(ack)
Coordinator :61 88 42 30 34 6f 79 0 0 44 0 6f 79 0 0 7 1 6 b 1 5 f

疑问如下:可以看到,当RFD2向coordinator 进行poll_data_request时,coordinator做出的反馈如下:
Coordinator:12 0 3d(ack,frame pending=1)
Coordinator:41 88 43 30 34 70 79 0 0 (data send(NO_DATA),need not ack)
也就是说此时,coordinator有RFD1的indirect data frame,而没有RFD2的indirect data frame,但对RFD2的poll data request回复为什么带frame pending=1,并紧跟一个data_length=0的数据帧,何不更省略一点,就回复一个frame pending=0的ACK呢?

[此贴子已经被作者于2006-6-14 14:46:33编辑过]

我现在是以freescale所提供的协议库功能为参照物,我当然期望它能和协议specification里的一样,不然我理解起来会非常费劲。
返回列表