ZigBee入门小实验——无线点灯
写在前面:无线点灯实验不涉及协议栈,只是对Basic RF的应用,但是其中关于数据收发的思想和协议栈类似,可以借鉴。这个代码和实验过程都是参考某教程的,然后有加上自己的理解......欢迎纠错(*^__^*)
一、设备
两个ZigBee模块
一个方口USB线(这个只是供电用,要看自己模块用什么接口,不一定是方口的,用电池也行)
一个编译器
二、几个名词解释
CCM -Counter with CBC-MAC(mode of operation) 就知道和加密有关,具体不明白...有人能解释下吗?
HAL -Hardware Abstraction Layer (硬件抽象层)
PAN -Personal Area Network (个人局域网)
RF -Radio Frequency (射频)
RSSI -Received Signal Strength Indicator (接收信号强度指示)
三、关于Basic RF
- 在介绍Basic RF之前先看一下该实验例程的大体结构,图见下方
①Hardware layer 硬件层
实现数据传输的基础
②Hardware Abstraction layer 硬件抽象层
提供接口以访问TIMER,GPIO,UART,ADC等,这些接口都通过函数实现。
③Basic RF
为双向无线通信提供一种简单的协议
④Application layer 用户应用层
它相当于一个接口,方便用户使用Basic RF层和HAL,就是说在Application层就可以使用封装好的Basic RF和HAL函数
2. Basic RF layer 简介
Basic RF 由TI公司提供,包含IEEE 802.15.4标准的数据包收发功能但不使用协议栈,仅让两个结点进行简单通信。
Basic RF layer 为双向无线通信提供了一个简单的协议,通过这个协议能够进行数据的发送和接收
四、Basic RF 工作过程分析
Basic RF的工作过程分为三个部分:启动、发射、接收
启动:
- 确保外围器件没有问题
2. 定义一个新的结构体类型,变量名为basicRfCfg_t,打开basic_rf.h可以找到该结构体。
typedef struct { uint16 myAddr; //16位的短地址,就是结点的地址 uint16 panId; //结点的PAN ID uint8 channel; //PF通道