- 1、本文档共6页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 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
您可能关注的文档
- [牛津中小学英语网]第三单元单元测试.doc
- 大学英语精读4 Unit6答案.doc
- 理解和使用Linux的硬件抽象层HAL.docx
- 路标语料库(重点).doc
- 信息安全课后复习题.doc
- 2007-2014完形填空(辽宁).doc
- unit 1高级英语1.doc
- VC6.0下GTK函数的配制方法.doc
- 雅思听力医疗场景词汇大盘点.docx
- Dictation中100个易错单词 专四备考.doc
- 专题32《湖心亭看雪》(最新模拟)-2024年中考语文课内39篇文言文阅读.docx
- 兴国中学高一下学期历史期末复习卷(一)参考答案及解析.docx
- 七年级历史开学摸底考(江苏南京专用)(全解全析).docx
- 3.3能量转化的量度练习课件浙教版九年级上册科学.pptx
- 专题15议论文阅读(原卷版)-5年(2018-2022)中考1年模拟语文分项汇编.docx
- Unit4Let'sgoonapicnicPartBReadandact(课件)陕旅版英语六年级上册.pptx
- 湖南省长沙市师范大学附属中学高三下学期三模数学试卷.docx
- Unit6-2023-2024学年七年级英语上册单元速记巧练(人教版)(原卷版).docx
- 黄金卷03(呼和浩特专用)(原卷版).docx
- 专题5易错点归纳及专练.docx
文档评论(0)