msstatePAN-协议介绍.doc

  1. 1、本文档共6页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
msstatePAN-协议介绍

msstatePAN?—?(一个公开源码的?Zigbee?协议栈) 作者简介: ????? Robert Reese,an associate professor in the Electrical Computer Engineering department at Mississippi State University.? 我简称R教授,是在参考Microchip Zigbee stack?的基础上自己编写的,基于?Zigbee1.0 ,支持硬件平台??CC2430 和 PIC184620+CC2420 ,里面好像也有MSP430. ????? 其中 Zigbee各个层的源码都是公开的,而且里面的实验历程也比较多,还有一个很好的说明手册。个人认为代码写得不够规范,网络地址是静态分配的(只支持树状路由,而没有?AODV路由) ????? 对于想深入研究zigbee协议栈还是很有帮助的,? ????? 链接如下所示: ????? /~reese?? ????? 近来想用RSSI来测量节点间的距离,在用TI协议栈时代码量太大下载个程序老费劲了。还是考虑用丢弃已久的R教授的协议栈,简称zigbee精简协议栈,在网上看到一篇相关的文章,顺便也总结一下。 ????? 1? ZigBee精简协议栈简介 ?????   美国密西西比州立大学的Robert?Reese教授出于教学、科研目的开发出一套精简版(subset)ZigBee协议栈。标准协议栈和精简协议栈的功能对比如表1所列,可以看出,精简协议栈实现了ZigBee的主要功能。国内一些研究机构在此精简协议上进行扩充,实现了一些其原本不具备的功能。 ?????   这里再补充一些术语概念,这有助于理解协议栈的代码结构。 ?????   IEEE Address节点的8位802.15.4网络地址,也称为长地址。 ?????   Network Address节点的2位网络地址,也称短地址。 ?????   PAN个人局域网。 ?????   PAN ID个人局域网标识符。 ?????   HAL协议栈物理抽象层。 ?????   PHY协议栈物理层。 ?????   MAC协议栈媒体访问控制层。 ?????   NWK协议栈网络层。 ?????   APS协议栈应用支持层。 ?????   APL协议栈应用层。 ?????   精简协议栈的代码结构如表2所列。 ???????????????????????????????????????????????????????????????????????????????? 表 1 ??????????????????????????????????????????????? ????????????????????????????????????????????????????????????????????????????????????????? 表 2 ?????????????????????????????????????????????????? 2? ZigBee协议编程 ?????   对于实际应用来说,最重要的是协议栈的APL函数。协议栈的每一层都有自己的有限状态机(FSM)以追踪要进行的操作。顶层的状态机函数为apsFSM(),这个函数需要最早被调用以使协议栈运行,这与标准栈中的APLTask()函数等价。所有的应用层函数都以apl或者aps开头,这些函数被分为两类: ????? 一类是对栈内数据的存取函数,一类是数据传输过程触发一系列事件的服务函数(调用)。这里需要说明的是服务调用不能重叠,这可以通过调用apsBusy()函数进行判断。 ??????? 2.1? 节点程序设计 ?????   如果节点作为协调器(coordinator),那么需要定义LRWPAN_COORDINATOR;而如果节点作为路由器(router)则需要定义LRWPAN_ROUTER;如果两者都没有定义,将作为RFD节点。 ????? 协调器节点形成网络,然后进入一个无限循环并调用apsFSM()运行协议栈。调用aplFormNetwork()服务后调用函数aplGetStatus(),如果返回了LRWPAN_SUCCESS则表示服务调用成功。代码如下: ????? main() { ?????   halInit();//初始化HAL 层 ?????   evbInit();//初始化评估板 ?????   aplInit();//初始化协议栈 ?????   ENABLE_GLOBAL_INTERRUPT();//开中断 ?????   aplFormNetwork();//形成网络 ?????   while(apsBu

文档评论(0)

xcs88858 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档