- 浏览: 607009 次
- 性别:
- 来自: 西安
文章分类
- 全部博客 (365)
- Java 基础知识(笔试面试有用) (35)
- SQL 相关 (11)
- Oracle笔试 (1)
- Java 笔试面试 (11)
- LINUX (12)
- ExtJS (21)
- Javascript (17)
- WebGIS (2)
- 软件工程 (3)
- 数据库 (17)
- 项目管理 (63)
- 工作流 (2)
- 计算机网络 (3)
- ZigBee技术及应用 (24)
- 单片机(AVR Studio) (7)
- 项目人力资源管理 (3)
- 项目管理高级知识 (4)
- JAVA技术 (12)
- 项目管理中的概念 (3)
- SQL SERVER (1)
- C++ (1)
- C/C++编程经验 (12)
- C和C++面试笔试题 (12)
- 其他IT技术笔试面试 (6)
- 名企笔试面试集锦 (16)
- 非技术 (10)
- C#相关 (1)
- Matlab相关 (2)
- 计算机专业课相关 (2)
- Web Service (1)
- Excel 使用 (1)
- PhotoShop相关 (4)
- ASP 相关 (2)
- android (1)
- Java WEB 相关 (1)
- web 安全相关 (7)
- 网络安全 (1)
- IBatis (1)
- web 开发技巧 (2)
- css 相关 (1)
- Ruby相关 (2)
- 生活 (3)
- 操作系统安全相关 (6)
- 操作系统相关 (1)
- PHP相关 (3)
- 开发经验 (12)
- Redis (1)
最新评论
美国密西西比州立大学的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。直到aps为idle状态才进行数据业务填充,并调用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()返回收到消息的信号强度
aplGetRxCluster()返回簇号
aplGetRxSrcEp()返回源端点
aplGetRxSADDR()返回源端点的短地址
aplGetRxMsgLen()返回消息长度
aplGetRxMsgData()返回消息数据的指针
aplGetRxRSSI()返回收到消息的信号强度
而后用户回调函数usrRxPacketCallback()将被调用。这个函数将使用用户数据结构保存数据,设置已收到数据的标志位。此函数结束后消息数据的指针将会被释放,所以在函数结束之前要将数据保存以防止下一个包将数据覆盖掉。
本文出自 “bluefish” 博客,请务必保留此出处http://bluefish.blog.51cto.com/214870/163424
发表评论
-
h文件和c文件中变量的关系
2013-01-22 19:15 796一般的,在h中定义好变量。在c文件中可以直接引用,不过在c文件 ... -
802.15.4 MAC 层 一些参数的说明
2012-11-16 11:28 1460802.15.4 MAC 层可以用周期性的发送信标来 ... -
C 语言嵌入式开发 经验
2012-10-31 18:56 840(1) #include <> "&qu ... -
802.15.4的帧格式
2012-10-31 15:15 2575帧控制字段 ... -
Each undeclared identifier is reported only once for each function it appears in
2012-10-15 16:32 8148Each undeclared identifier is r ... -
Zigbee MAC层 程序框架
2012-10-09 09:55 1642macFSM : phyFSM() ===== ... -
802.15.4
2012-10-02 16:14 1398IEEE 802.15.4网络是指在一个POS内使用相同无线信 ... -
802.15.4标准
2012-09-27 09:35 1108附件以下是 802.15.4 标准协议! -
CSMA 简介
2012-09-27 09:05 2077CSMA/CD CSMA/CD(Carri ... -
Zigbee MAC层 服务功能描述
2012-08-24 10:22 2647MAC层管理服务 一: 关联原语 ... -
Zigbee中的GTS-02
2012-08-20 11:18 1091(5)GTS重分配 撤销GTS后可能导致超帧变成零散的 ... -
Zigbee中的GTS-01
2012-08-17 11:11 1490GTS的分配和管理 ... -
CSMA/CA
2012-07-28 09:11 1074非坚持的CSMA:线路忙,等待一段时间,再侦听 ... -
Zigbee 之mac层之 mac_pib(一)
2012-07-26 12:35 1508mac_pib 的结构如下: typede ... -
超帧,信标帧
2012-06-28 19:26 3055信标帧能够实现协调点与周围节点间的同步并对超帧结构进行相应的描 ... -
CSMA/CA算法流程
2012-06-19 20:33 7920我们知道总线型局域网在MAC层的标准协议是CSMA/CD ... -
ZigBee组网机制以及数据的发送和接收
2012-04-15 21:00 2086Zigbee是一种新型的短距离无线通信技术。其特点是低功耗,低 ... -
无线龙zigbee2004精简版试验总结
2012-04-10 14:58 1803花了很长时间看代码,中间有限状态机部分还没有看懂,目前只 ... -
基于ZigBee的WPAN网络配置应用
2012-04-10 09:42 1459ZigBee是一种新兴的短距离、低速率、低成本、低功耗的 ... -
zigbee学习(一)总体概况
2012-04-10 09:32 1415zigbee学习zigbee设备模型:FFD(具有完整功能的设 ...
相关推荐
《无线龙Zigbee精简协议栈:深入解析与学习指南》 Zigbee,一种基于IEEE 802.15.4标准的低功耗、短距离、无线通信技术,广泛应用于智能家居、物联网等领域。无线龙的Zigbee协议栈源代码,为开发者提供了一扇深入...
1. **阅读源代码**:通过阅读代码了解ZigBee协议栈的结构和工作流程,学习如何处理帧的收发、网络的建立和管理以及数据的路由。 2. **调试工具**:使用调试器跟踪代码执行,以更好地理解各个函数和模块的作用。 3....
《Zigbee精简协议栈中文使用说明》 Zigbee是一种基于IEEE 802.15.4标准的低功耗、低数据速率的无线通信技术,主要用于物联网(IoT)中的传感器和控制网络。罗伯特里斯博士创建的Zigbee-subset/IEEE 802.15.4多平台...
Zigbee2006精简协议栈是Zigbee技术的一个重要组成部分,它基于IEEE 802.15.4标准,主要用于构建低功耗、低成本的无线传感器网络。Zigbee技术源于2003年,随着时间的推移,其规范不断更新和完善,其中2006版是一个...
### ZigBee精简协议栈 #### 概述 ZigBee是一种低功耗、低成本的无线网络技术,主要用于传感器网络、智能家居等场景。ZigBee2007协议栈是ZigBee联盟定义的一个标准版本,它包含了完整的ZigBee网络层、应用层以及...
"msstatePAN"是一个针对Zigbee协议栈的精简版本,特别适合于学习和理解Zigbee协议的底层工作原理。此版本由Dr. Robert B. Reese开发,完全使用C语言编写,这使得源代码更加直观易懂,便于开发者深入研究。 Zigbee...
#### ZigBee精简协议栈简介 ##### 精简协议栈的起源与发展 美国密西西比州立大学的Robert Reese教授为了满足教学和科研需求,开发了一套ZigBee精简版协议栈。相较于标准版本,这套精简版协议栈虽然在功能上有所...
《IAREW8051基于ZigBee802.15.4的CC2430/CC2431精简版协议栈C51源代码详解》 在物联网技术日益发展的今天,ZigBee作为低功耗、短距离无线通信标准,被广泛应用于智能家居、工业控制等领域。IAREW8051是一款适用于微...
超精简版zigbee协议栈 目标平台: atmega128+CC2420, 硬件原理图及PCB版图见hardware文件夹 开发工具: WinAvr提供gcc编译器,AVRStudio用来建立工程 功能: 1 支持beacon寻找网络 2 Coord建立网络,RFD加入网络,...
"msstatePAN"是由国外某大学教授团队实现的一个简化版ZigBee协议栈,它虽功能相对精简,但对于学习、研究ZigBee技术以及进行相关项目开发来说,具有很高的参考价值。 ZigBee是一种基于IEEE 802.15.4标准的低功耗、...
通过学习Zigbee协议栈详解,我们不仅可以更好地理解这项技术的工作原理,而且还能掌握如何利用Zigbee技术构建出高效、可靠的无线网络系统。这不仅有助于推动物联网技术的发展,也为实现智能社会打下了坚实的技术基础...
TI公司的“精简协议栈 BASIC RF”是针对无线通信领域的一种高效、轻量级的解决方案,主要用于实现Zigbee协议栈的功能。这个小巧的协议栈仅有4KB大小,但却能够提供完整的组网能力和一定的安全特性,是嵌入式系统...
这个压缩包包含了ZigBee协议栈的精简源代码,已经过测试,确保了其在实际应用中的可用性和稳定性。 ZigBee是一种基于IEEE 802.15.4标准的低功耗、短距离无线通信技术,广泛应用于物联网(IoT)设备中,如智能家居、...
### Zigbee协议栈框架详解 #### 一、Zigbee及其它无线协议简介 ##### Zigbee概述 Zigbee作为一种新兴的短距离、低速率无线网络技术,是基于IEEE 802.15.4标准的一种无线通信协议。Zigbee协议栈的设计目的是为了...
Zigbee协议栈基于国际标准的开放系统互连(OSI)七层模型,但并不完全按照该模型构建,而是根据实际需求精简了一些层。 在Zigbee协议栈中,数据实体主要负责数据的传输服务,而管理实体则负责提供各种管理服务,如...
Zigbee协议栈是无线通信技术中用于物联网设备的一种低功耗、短距离通信标准,其设计基于OSI七层模型。本文档主要探讨了Zigbee协议栈的各层功能,特别是针对一个名为msstate_lRwpan的简化实现进行分析。这个协议栈由...