查看: 25854|回复: 39

[原创]奥特曼Zigbee读书日记(六)-- 开源协议(MSSTATE LRWPAN)学习.1

[复制链接]
outman 发表于 2010-6-17 14:07:08 | 显示全部楼层 |阅读模式
笔记最近暂停一段时间了,因为最近都在思考一个问题:下一步的学习的方向是什么?有兴趣的同学可以去“开源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
superman 发表于 2010-6-20 22:08:02 | 显示全部楼层
好帖,楼主伟大,希望能继续看到楼主的分享!!期待ing
天脉男孩 发表于 2010-6-24 11:00:45 | 显示全部楼层
终于等到了。
 楼主| outman 发表于 2010-6-24 13:28:04 | 显示全部楼层
一个东西要自己先明白了,然后写出来让大家也明白。不是件太容易的事,多谢支持。继续努力。。。
shir 发表于 2010-6-27 18:01:03 | 显示全部楼层
谢谢,很有帮助
品味开心茶 发表于 2010-7-5 14:58:03 | 显示全部楼层
在我们前进的道路上,不要忘了感谢楼主~~~
xingqingly 发表于 2010-7-5 20:20:20 | 显示全部楼层
期待楼主  很是感谢楼主的分享
leida_3669 发表于 2010-8-5 22:18:26 | 显示全部楼层
感谢楼主的伟大分享精神!在当今中国,这种精神太可贵啦
slcfhr 发表于 2010-8-10 00:47:00 | 显示全部楼层
比论坛”,为比特插上翅膀,和梦想一起飞翔
whuwhl 发表于 2010-8-12 09:19:00 | 显示全部楼层
很好狠强大!楼主的创新精神值得赞赏!
可以考虑组织群里一群爱好者共同努力!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表