解决Linux连接MySQL报错:access denied的Zigbee协议栈解析

需积分: 12 86 下载量 182 浏览量 更新于2024-08-10 收藏 2.43MB PDF 举报
"ZigBee协议栈说明书(中文版).pdf" ZigBee协议栈是一种基于IEEE 802.15.4标准构建的通信协议,它定义了物理层(PHY)和媒体访问控制层(MAC)的规范,同时包含了网络层(NWK)、应用层以及安全服务提供层。在ZigBee设备中,PHY和MAC层负责无线射频(RF)通信和相邻设备间的交互。ZigBee堆栈的上层则提供了更高级别的功能。 网络层(NWK)是ZigBee协议栈的关键组成部分,它负责设备间的数据传输、网络初始化、消息路由以及网络发现。当设备尝试加入网络时,可能会遇到各种状态值,如表3.1所示: 1. `SUCCESS`(0x00):请求执行成功,表示操作已完成且无错误。 2. `INVALID_PARAMETER`(0xc1):高层传来的原始数据无效或超出预期范围。 3. `INVALID_REQUEST`(0xc2):考虑到网络当前状态,高层发送的请求无效或无法执行。 4. `NOT_PERMITTED`(0xc3):NLME-JOIN.request原语不被接受,可能是因为不允许加入网络。 5. `STARTUP_FAILURE`(0xc4):NLME-NETWORK-FORMATION.request启动网络失败,意味着网络创建未成功。 6. `ALREADY_PRESENT`(0xc5):设备的邻居表中已存在指定地址,无法直接加入。 7. `SYNC_FAILURE`(0xc6):MAC层的NLME-SYNC.request原语同步失败。 8. `NEIGHBOR_TABLE_FULL`(0xc7):邻居表已满,无法直接加入新设备。 9. `UNKNOWN_DEVICE`(0xc8):NLME-LEAVE.request原语的设备地址不在邻居表中。 10. `UNSUPPORTED_ATTRIBUTE`(0xc9):NLME-GET或NLME-SET请求中包含未知属性标识符。 11. `NO_NETWORKS`(0xca):检测不到网络,无法发起NLME-JOIN.request。 12. `LEAVE_UNCONFIRMED`(0xcb):设备离开网络确认失败。 13. `MAX_FRM_CNTR`(0xcc):帧计数器达到最大值,导致帧安全处理失败。 14. `NO_KEY`(0xcd):输出帧尝试安全处理失败,因为没有有效的密钥。 15. `BAD_CCM_OUTPUT`(0xce):安全处理输出帧时发生错误。 16. `NO_ROUTING_CAPACITY`(0xcf):由于路由表限制,路由发现失败。 17. `ROUTE_DISCOVERY_FAILED`(0xd0):找不到合适的路由路径。 18. `ROUTE_ERROR`(0xd1):由于发送设备的路由问题,NLDE-DATA.request原语失败。 19. `BT_TABLE_FULL`(0xd2):广播或组播帧发送失败,因为广播表(BTT)已满。 ZigBee设备通常根据预定义的模板(公共或私有)进行操作,这些模板定义了设备的应用环境、设备类型以及设备间通信使用的簇。每个设备都有应用对象,通过端点与ZigBee堆栈其余部分连接。通信本质上是端点到端点的,通过簇来共享信息。端点0用于设备配置和管理,而端点255用于广播。应用支持子层(APS)提供数据传输、安全和绑定服务,适应不同设备的兼容性。网络层(NWK)则负责设备间的通信和网络管理。应用层通过ZigBee设备对象(ZDO)与网络层交互,实现对网络的初始化和配置。