Open eternal-echo opened 1 year ago
zigbee znp的教程
HA的python组件,使用了cc2530的znp
zigbee2mqtt
znp让cc2530作为zigbee模块,处理zigbee协议相关的底层通信任务。主机控制器通过串口来控制cc2530,主从之间通过特定的协议来控制。符合本项目的要求。
ZNP,即Zigbee网络处理器,是TI的Zigbee解决方案的一种应用形式。在这种形式下,Zigbee芯片只负责处理底层网络的功能,而将上层应用交给主机处理,ZNP与主机之间通过USB或UART连接。Zigbee芯片实现ZNP功能所需的固件及其源码,以及接口API的说明都包含在Z-Stack中。所谓接口API,指主机通过USB或UART与ZNP通信的帧格式,以及命令和参数的定义。在主机侧,TI提供了对接口API的包装,即znp-host-framework,C语言实现,开源,代码托管在TI的Git网站上,另外在GitHub上还有适用于Node.js的版本。
Generic APP
宏定义配置在下面,这里的修改都保存在
.ewp
文件中。工程介绍
Z-Stack Monitor and Test API.pdf
文档中介绍了这个库,MT
用于通信的监视器和测试(MT)接口。OnBoard.c
文件是对板上外设的定义和初始化。的void InitBoard( uint8 level )
函数实现了按键初始化和中断回调函数的设置。Zmain.c
是工程的正真入口,包含了main
函数。Zmain.c介绍
初始化了板上外设、驱动、NV存储、Mac、osal系统
串口debug
工程的宏定义中有个
xZTOOL_P1
,在ewp
文件中,说明系统选择串口1作为默认的debug串口 zstack的lcd包含了串口的配置,具体的函数实现如下。首先通过下面创建一个msg,设置为CMD_DEBUG_STR
事件,MT_ProcessEvent
函数会添加到应用程序的任务列表中,比如Projects\zstack\HomeAutomation\GenericApp\Source\OSAL_GenericApp.c
中的tasksArr
。MT_ProcessIncomingCommand
函数中的CMD_DEBUG_STR
的分支对应着前面debug_str
消息的配置,调用了MT_ProcessDebugStr
函数,但是这个调试函数对应的是ztool的响应。串口波特率设置是在这里: