zigbee笔记:九中,我们已经学会了利用模板,定制自己的个性开发工程,本文为协议栈(ZStack-CC2530-2.3.0-1.4.0)代码使用分析笔记,来进一步掌握协议栈的使用。
一、协议栈使用知识点
1、协调器、路由器、终端代码下载
通过选项卡选择不同的节点类型工程(分别是协调器、路由节点和终端节点工程),就会导致参与编译的配置文件不同,配置不同就会导致部分宏定义不同,宏定义不同就会导致工程里某些宏的值不同。这些宏值的不同会影响程序执行的流程,就会导致出现不同的功能,如下图所示。
在选项卡里每一种版本模块都貌似有2个分为不带Pro和带Pro。zigbee协议在发展过程中经历了3个版本,其中zigbee在7出的是最新的规范这个规范有2个版本 zigbee2007和 zigbeePro他们之间的区别是,功能基本相同,Pro版本功能稍微强大咱们一般都选 Pro 。
2、信道选择与网络PANID设置
在工程配置文件f8wConfig.cfg中, 参数-DDEFAULT_CHANLIST和-DZDAPP_CONFIG_PAN_ID。
(1)-DDEFAULT_CHANLIST 参数
信道编码采用64位独热码,当需要多信道通信时,可以采用或运算,如编码为0x00001800表示采用11和12信道,把结果作为 DEFAULT CHANLIST值。
路由器和终端:可以在参与或操作的这些信道上选择一个相对于我来说最佳的网络,加入进去。
协调器: 可以在参与或操作的这些信道上选择一个最佳的信道并在这个信道上创建自己的Zigbee网络()。
(2)-DZDAPP_CONFIG_PAN_ID 参数
-DZDAPP_CONFIG_PAN_ID值非0xFFFF时:
路由器和终端:必须要加入到PANID为参数值这样一个Zigbee无线局域网。
协调器:我要创建一个网络,并且把这个参数值作为这个网络的PANID。
-DZDAPP_CONFIG_PAN_ID值为0xFFFF时:
路由器和终端:在加入网络的时候没有PANID的限制。
协调器:可以随机生成一个值,把这个随机值作为这个网络的PANID。
(3)补充:
问1: 当2个模块下载相同的协调器代码,并且指走的PANID参数值为非0xFFFF,后果会怎样?
答: 先上电的模块可以创建0xFFFB这样-个zigbee网络,后上电的模块创建一个在DXFFF8基础上加1的网络。
问2:网络创建成功后,协调器的网络短地址固定为0x0000。
3、引脚初始化准备
启动osal之前main函数中还初始化调用了TI的一些硬件实验,其中很多引脚的功能已经被初始化为片上外设了,所以我们使用时要自己修改,不能漏步骤。如果添加自己的一些外设初始化要放在osal_start_system函数前面,WatchDogEnable之后,如初始化LED,如果缺少配置为普通IO模式这一步骤,可能会导致LED无法使用。
4、OSAL操作系统
OSAL(O