关于ZigBee协议栈的介绍,先不写,网上很多
无线点灯是大家入门 ZigBee一个很好的经典例子,里面虽然还没有用到协议栈,但它体现出来的数据发送、接收和用协议栈是差不多的,
而且 TI 公司的 Basic RF 的代码容易看懂,如果把这个实验掌握了(不要只是下载程序然后看试现象),到后面的协议栈就比较好入手了。
了解一下下面的关键字:
CCM - Counter with CBC-MAC (mode of operation)
HAL - Hardware Abstraction Layer (硬件抽象层)
PAN - Personal Area Network (个人局域网)
RF - Radio Frequency (射频)
RSSI - Received Signal Strength Indicator (接收信号强度指示)
实验现象: 两块 WeBee 模块通信,一个模块作发射,另外一个模块接收,发射模块依次按下按键 S1,改变接收模块 LED1 的亮灭的状态。实现无线点灯功能。
例程的源代码 CC2530 BasicRF.rar 是 TI 官网上下载的,用户可以去 TI 官网注册并下载。下载链接:https://pan.baidu.com/s/1vXJ4eV25A_w0EslrhwXEFA
首先说明, TI 官网的程序的开发平台是 TI 官网的开发板,硬件资料有所不同,所以要在 WeBee 板上实现无线点灯功能,必须对其代码稍作修改。
实验代码之前,还是先来看看这些看到有点头晕的文件夹吧!
文件夹结构大至如下,仅列出 CC2530 BasicRF 目录一些相关的的文件夹:每个文件夹里面放着什么东西,如果缺少其中某些,我们的灯还是否可以点亮呢?
我们来一一探讨:
docs 文件夹:
打开文件夹里面仅有一个名为 CC2530_Software_Examples 的 PDF 文档,文档的主要内容是介绍 BasicRF 的特点、结构及使用,
如果读者有 TI 的开发板的话阅读这个文档就可以做 Basic RF 里面的实验了,从中我们可以知道,
里面Basic RF 包含三个实验例程: 无线点灯、传输质量检测、谱分析应用。下面讲解的内容中也有部分内容是从这个文档中翻译所得,是一份相当有价值的参考资料。
Ide 文件夹:
打开文件夹后会有三个文件夹,及一个 cc2530_sw_examples.eww 工程,其中这个工程是上面提及的三个实验例程工程的集合,
当然也包含了我们无线点灯的实验工程!在 IAR 环境中打开,在 workspace 看到
Ide\Settings 文件夹:
是在每个基础实验的文件夹里面都会有的,它主要保存有读者自己的 IAR环境里面的设置。
Ide\srf05_CC2530 文件夹:
里面放有三个工程, light_switch.eww、 per_test.eww、 spectrum_analyzer.eww如果读者不习惯几个工程集合在一起看,也可以在这里直接打开你想要用的实验工程。
Source 文件夹:
打开文件夹里面有 apps 文件夹和 components 文件夹
Source\apps 文件夹:
存放 BasicRF 三个实验的应用实现的源代码
Source\components 文件夹:
包含着 BasicRF 的应用程序使用不同组件的源代码
打开实验工程:
打开文件夹 CC2530 BasicRF\ide\srf05_cc2530\iar 路径里面的工程light_switch.eww(无线点灯)。 我们的实验就是对它进行修改的。
并点击application 的 light_switch.c 用户的应用程序就是在里面的了
二、 Basic RF layer 介绍及其工作过程:
在介绍 Basic RF 之前,来看看这个实验例程设计的大体结构,如图所示 BasicRF 例程的软件设计框图就如一座建筑物,
Hardware layer
放在最底,肯定是你实现数据传输的基础了。
Hardware Abstraction layer
它提供了一种接口来访问 TIMER, GPIO, UART, ADC 等。这些接口都通过相应的函数进行实现。
Basic RF layer
为双向无线传输提供一种简单的协议