|
笔记最近暂停一段时间了,因为最近都在思考一个问题:下一步的学习的方向是什么?有兴趣的同学可以去“开源Zigbee意见征集贴”中参与讨论。在没有更好的建议之前,决定还是按照自己的想法,继续摸石头过河--开源协议+从零搭建!
当然,让一个Zigbee的初学者去写协议,这是不现实的,只能让自己迷失在森林里!这个时候,“拿来主义”是最好的方法了。只是我不会像某些人那样,把别人的版权信息去掉,然后加上自己的名字!我觉得这和剽窃没什么区别!!!
最近放在论坛上的精力少了些,论坛冷清也许多,每天看到可怜的访问量,多少有些失落,但我坚信自己在做一件对大家有益的事情,同时也相信“坚持,就是一种力量”!复习下口号::“飞比论坛”,为比特插上翅膀,和梦想一起飞翔~~~
[注:本文源自www.feibit.com--“飞比”Zigbee论坛,为尊重劳动者成果,如需转载请保留此行]
首先,做个回顾和展望。日记(一)从入门开始,了解了些最基本的概念;(二)进入Zstack的学习,从其使用的系统“OSAL”的基本框架开始;(三)和(四)以官方Zstack2006为基础,搭建了一个“老张”和“老王”通信的基本例程。在这个过程中,发现应该加强基本概念的理解,于是(五)从“葵花宝典”的第三章开始补习基本概念。现在又发现纯讲基本概念也是件比较枯燥的事情,于是推出(六)物理层的基本概念的“练习篇”。想法是:以一个开源协议为基础,从发送数据到组网,先了解基本的应用,中间再穿插一些协议的讲解,最终达到融会贯通的目的。当然,一切都是尝试,也许还会做出调整。
好了,该正式开始了(有人开始抱怨了,每次都铺这么长时间的垫。。。)。等等,这之前还得介绍一个人,Robert Reese
http://www.ece.msstate.edu/~reese/
他是美国密西西比州大学电子与计算机系副教授,在Zigbee的教学中,发现原有协议的缺点及其在教学中不开源的弊端,自己开发了一套完全开源的协议,取名叫MSSTATE_LRWPAN。取得了很好的效果,后来也为很多人所采用。本教程的后续几个章节,将以这套协议为基础,一步步学习无线通讯的基本原理及Zigbee协议。
这次真的要开始了~~~
问题11. MSSTATE LRWPAN与标准Zigbee协议(以Microchip Stack (V3.6)为例)相比,有什么异同?
MSSTATE LRWPAN已经完成了Zigbee的基本功能,但并不完全,下表列出了其异同:
功能 | Microchip Stack (V3.6) | MSSTATE_LRWPAN | 路由 | 网状/树状 | 只有树形 | 网络配置 | 动态组网。节点启动及有组网要求时触发。 | 动态组网。节点启动及有组网要求时触发。 | PAN ID选择 | 启动时动态选择 | 用户静态指定 | 频道选择 | 网络启动时,自动寻找空闲频道 | 用户静态指定 | 支持频率 | 2.4GHz, 900MHz? | 2.4GHz | Zigbee信息格式 | Key/Value Pair, MSG | MSG | 直接信息 | 长短地址均有 | 长短地址均有 | 绑定、间接信息 | 动态绑定,绑定表保存在coordinator节点的存储器中,绑定表大小取决于存储器容量 | 静态绑定(绑定表在程序编译时已经决定),绑定表保存在coordinator节点的存储器中,绑定表大小取决于存储器容量 | 带Beacon网络 | 无 | 无 | Zigbee广播 | 有 | 无 | APS层信息ACK | 有 | 有 | Coord, router为睡眠节点保存信息 | 有 | 无,
Coord/Router直接将信息传给节点,而不保存. | Zigbee Profiles | 有 | 无 | 加密 | 无 | 无 | 平台/编译器 | PICDEMZ/MCC18
(CC2420, UZ2400 radios) 限于Microchip processors. | PICDEMZ/MCC18/HI-TECH C
(CC2420 radio only) CC2430 (8051+RF radio)/IAR51, HI-TECH C51 WIN32 Virtual Nodes/Msoft.NET 通过修改也可与其它硬件平台接口。 | Zigbee认证 | 有 | 无 |
问题12. MSSTATE LRWPAN可以在我的开发板上运行吗?
请参见上表,此套协议除了可以用电脑模拟器来学习外,实际的硬件平台主要支持PIC系列的单片机,及TI 2430的平台。当然,由于软件的完全开源,也可以在此基础上进行修改,与其他硬件平台接口。如果在使用过程中有疑问,请移步“答疑解惑区”进行讨论。
问题13. IEEE Address是什么意思?如何获得?
IEEEAddress是由IEEE组织为每个Zigbee设备分配的物理地址,由8*8=64比特组成的地址数据。当然我们如果作为学习来用的板子就不用去申请啦,自己随便改一个都可以的,每个开发板都会提供开具来读写的,TI的工具叫SmartRF04Prog,128KB IC的物理地址保存在flash的0x1fff8地址中。
问题14. PAN ID是什么?如何指定?
就像家里的“路由器”要向广域网申请一个IP地址一样,一个小型的PAN网络也需要向上级网络申请一个PAN ID,在大型的Zigbee网络中,这个要动态指定,但MSSTATE LRWPAN协议,暂时只提供了静态指定的方式,
#define LRWPAN_DEFAULT_PANID 0x1347
当然,这并不影响我们现阶段的学习。
问题15. MSSTATE LRWPAN用哪个频道进行通信?
上一章的3.1 频率安排中,我们讲过,2.4G下有11-26共16个频道,同时物理层负责对频道进行空闲评估,动态安排频道。但MSSTATE LRWPAN则由用户(开发人员)进行静态指定,如下:
#define LRWPAN_DEFAULT_START_CHANNEL 20 //valid channels are 11 to 26 for 2.4GHz.
我们再利用上节中学习的知识,算一下实际的频率值:
中心频率(MHz) = 2405 + 5 × ( 频道号 – 1) = 2445M(注意:频道号是20-11=9,而不是20!),也就是说我们后面的数据都是在2.445GHz的频率上传播哦~~
附件:MSSTATE LRWPAN源代码及说明文档下载
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
|