`
wangleide414
  • 浏览: 607009 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

ZigBee精简协议栈学习

 
阅读更多


美国密西西比州立大学的Robert Reese教授出于教学、科研目的开发出一套精简版(subset)ZigBee协议栈。
 
APS的状态:
typedef enum _APS_STATE_ENUM
{
  APS_STATE_IDLE,
  APS_STATE_COMMAND_START,
  APS_STATE_GENERIC_TX_WAIT,
  APS_STATE_NWK_PASSTHRU_WAIT,
  APS_STATE_INDIRECT_GETDST,
  APS_STATE_INDIRECT_TX,
#ifdef LRWPAN_COORDINATOR
  APS_STATE_INJECT_INDIRECT,
#endif
  APS_STATE_ACK_SEND_START,
  APS_STATE_INDIRECT_TX_WAIT,
  APS_STATE_INJECT_LOOPBACK,
  APS_STATE_INDIRECT_LOOPBACK
 } APS_STATE_ENUM;
从程序可以看出,除了APS_STATE_IDLE其余都是busy状态。
 
APL层的服务调用【对外功能函数】:
函数
功能
aplSendMSG
发送消息
aplSendEndDeviceAnnounce (saddr)
发送终端设备宣告
aplSendNodeInfo (saddr)
发送节点信息
aplSendAlarm (saddr,mde)
发送警告
aplPingParent ()
查询父节点连接状态
aplPingNode (saddr)
查询某个节点的连接状态
aplFormNetwork()
协调器形成网络
aplJoinNetwork()
尝试接入网络
aplRejoinNetwork()
尝试再次接入网络
这里的函数(或者宏)都要先循环调用apsBusy()检查aps是否为idle状态,如果不是就调用apsFSM。直到apsidle状态才进行数据业务填充,并调用apsDoService处理
#define apsDoService() \
   a_aps_service.status = LRWPAN_STATUS_APS_INPROGRESS;\
   apsState = APS_STATE_COMMAND_START;\
   apsFSM();
 
APL层的访问及设置调用【对内功能函数】:
                  函数
                  功能
aplInit()
初始化协议栈
aplShutdown
关闭协议栈
aplWarmstart
唤醒协议栈
apsGenTSN()
产生事务对列号
aplGetMyShortAddress()
获取节点的短地址
aplGetParentLongAddress()
获取父节点的长地址
aplGetParentShortAddress()
获取父节点的短地址
aplSetMacMaxFrameRetries(x)
设置MAC层帧重传的最大次数
aplSetApsMaxFrameRetries(x)
设置APS层帧重传的最大次数
aplIsUsrBufferFree()
最后一个消息是否被拷贝
aplMacTicksToUs
MAC滴答为微秒
 
对于APS(应用支持子层)这一层来说,apsFSM函数是整个的主角,在asp.c文件中定义的函数几乎都为这个函数所调用。协议栈的每一层都有自己的有限状态机(FSM)以追踪要进行的操作
 
如果节点作为协调器(coordinator),那么需要定义LRWPAN_COORDINATOR;而如果节点作为路由器(router)则需要定义LRWPAN_ROUTER;如果两者都没有定义,将作为RFD节点。协调器节点形成网络,然后进入一个无限循环并调用apsFSM()运行协议栈。调用aplFormNetwork()服务后调用函数aplGetStatus(),如果返回了LRWPAN_SUCCESS则表示服务调用成功。路由器节点通过调用aplJoinNetwork()运行协议栈。
 
协议栈使用以下APL访问函数接收数据包。
aplGetRxDstEp()返回目的端点
aplGetRxCluster()
返回簇号
aplGetRxSrcEp()
返回源端点
aplGetRxSADDR()
返回源端点的短地址
aplGetRxMsgLen()
返回消息长度
aplGetRxMsgData()
返回消息数据的指针
aplGetRxRSSI()
返回收到消息的信号强度
 
  而后用户回调函数usrRxPacketCallback()将被调用。这个函数将使用用户数据结构保存数据,设置已收到数据的标志位。此函数结束后消息数据的指针将会被释放,所以在函数结束之前要将数据保存以防止下一个包将数据覆盖掉。

本文出自 “bluefish” 博客,请务必保留此出处http://bluefish.blog.51cto.com/214870/163424

分享到:
评论

相关推荐

    无线龙的zigbee精简协议栈完整源代码

    《无线龙Zigbee精简协议栈:深入解析与学习指南》 Zigbee,一种基于IEEE 802.15.4标准的低功耗、短距离、无线通信技术,广泛应用于智能家居、物联网等领域。无线龙的Zigbee协议栈源代码,为开发者提供了一扇深入...

    完整开源ZigBee协议栈C语言代码

    1. **阅读源代码**:通过阅读代码了解ZigBee协议栈的结构和工作流程,学习如何处理帧的收发、网络的建立和管理以及数据的路由。 2. **调试工具**:使用调试器跟踪代码执行,以更好地理解各个函数和模块的作用。 3....

    Zigbee精简协议栈中文使用说明

    《Zigbee精简协议栈中文使用说明》 Zigbee是一种基于IEEE 802.15.4标准的低功耗、低数据速率的无线通信技术,主要用于物联网(IoT)中的传感器和控制网络。罗伯特里斯博士创建的Zigbee-subset/IEEE 802.15.4多平台...

    zigbee2006精简协议栈

    Zigbee2006精简协议栈是Zigbee技术的一个重要组成部分,它基于IEEE 802.15.4标准,主要用于构建低功耗、低成本的无线传感器网络。Zigbee技术源于2003年,随着时间的推移,其规范不断更新和完善,其中2006版是一个...

    zigbee精减协议栈

    ### ZigBee精简协议栈 #### 概述 ZigBee是一种低功耗、低成本的无线网络技术,主要用于传感器网络、智能家居等场景。ZigBee2007协议栈是ZigBee联盟定义的一个标准版本,它包含了完整的ZigBee网络层、应用层以及...

    zigbee 精简版协议栈 ,CC2430

    "msstatePAN"是一个针对Zigbee协议栈的精简版本,特别适合于学习和理解Zigbee协议的底层工作原理。此版本由Dr. Robert B. Reese开发,完全使用C语言编写,这使得源代码更加直观易懂,便于开发者深入研究。 Zigbee...

    基于精简协议栈的ZigBee网络节点研究

    #### ZigBee精简协议栈简介 ##### 精简协议栈的起源与发展 美国密西西比州立大学的Robert Reese教授为了满足教学和科研需求,开发了一套ZigBee精简版协议栈。相较于标准版本,这套精简版协议栈虽然在功能上有所...

    IAREW8051基于ZigBee802.15.4的CC2430CC2431的精简版协议栈全部C51源代码

    《IAREW8051基于ZigBee802.15.4的CC2430/CC2431精简版协议栈C51源代码详解》 在物联网技术日益发展的今天,ZigBee作为低功耗、短距离无线通信标准,被广泛应用于智能家居、工业控制等领域。IAREW8051是一款适用于微...

    超精简版zigbee协议栈

    超精简版zigbee协议栈 目标平台: atmega128+CC2420, 硬件原理图及PCB版图见hardware文件夹 开发工具: WinAvr提供gcc编译器,AVRStudio用来建立工程 功能: 1 支持beacon寻找网络 2 Coord建立网络,RFD加入网络,...

    国外大学实现的ZigBee协议栈msstatePAN

    "msstatePAN"是由国外某大学教授团队实现的一个简化版ZigBee协议栈,它虽功能相对精简,但对于学习、研究ZigBee技术以及进行相关项目开发来说,具有很高的参考价值。 ZigBee是一种基于IEEE 802.15.4标准的低功耗、...

    zigbee协议栈PPT学习教案.pptx

    通过学习Zigbee协议栈详解,我们不仅可以更好地理解这项技术的工作原理,而且还能掌握如何利用Zigbee技术构建出高效、可靠的无线网络系统。这不仅有助于推动物联网技术的发展,也为实现智能社会打下了坚实的技术基础...

    TI 精简协议栈 BASIC RF

    TI公司的“精简协议栈 BASIC RF”是针对无线通信领域的一种高效、轻量级的解决方案,主要用于实现Zigbee协议栈的功能。这个小巧的协议栈仅有4KB大小,但却能够提供完整的组网能力和一定的安全特性,是嵌入式系统...

    CC2430ZStack.rar_2430_ZigBee 协议_cc2430_zigbee协议栈

    这个压缩包包含了ZigBee协议栈的精简源代码,已经过测试,确保了其在实际应用中的可用性和稳定性。 ZigBee是一种基于IEEE 802.15.4标准的低功耗、短距离无线通信技术,广泛应用于物联网(IoT)设备中,如智能家居、...

    zigbee 协议栈框架

    ### Zigbee协议栈框架详解 #### 一、Zigbee及其它无线协议简介 ##### Zigbee概述 Zigbee作为一种新兴的短距离、低速率无线网络技术,是基于IEEE 802.15.4标准的一种无线通信协议。Zigbee协议栈的设计目的是为了...

    zigbee协议栈 (2).docx

    Zigbee协议栈基于国际标准的开放系统互连(OSI)七层模型,但并不完全按照该模型构建,而是根据实际需求精简了一些层。 在Zigbee协议栈中,数据实体主要负责数据的传输服务,而管理实体则负责提供各种管理服务,如...

    zigbee协议栈各层的功能.docx

    Zigbee协议栈是无线通信技术中用于物联网设备的一种低功耗、短距离通信标准,其设计基于OSI七层模型。本文档主要探讨了Zigbee协议栈的各层功能,特别是针对一个名为msstate_lRwpan的简化实现进行分析。这个协议栈由...

Global site tag (gtag.js) - Google Analytics