BasicRF
概述
TI
公司提供了基于
CC253x
芯片的
BasicRF
软件包,其包括硬件层(
Hardware layer
)、
硬件抽象层(
Hardware Abstraction layer
)、基本无线传输层(
BasicRF layer
)和应用
层(
Application)。
BasicRF
无线通信初始化
初始化
ZigBee
模块的硬件外设,配置
I/O
端口,设置无线通信的网络
ID
、信道、接收
和发送模块地址、安全加密等参数。
1.
创建
basicRfCfg_t
数据结构。在
basic_rf.h
文件中可以找到
basicRfCfg_t
数据
结构的定义。
typedef struct {
uint16 myAddr; //本机地址,取值范围 0x0000 ~ 0xffff,作为识别本模块的地址
uint16 panId; //网络 ID,取值范围 0x0000 ~ 0xffff,要建立通信此参数必须一致
uint8 channel; //通信信道,取值范围 11~26,要建立通信此参数必须一致
uint8 ackRequest; //应答信号
#ifdef SECURITY_CCM //是否加密,预定义时取消了加密
uint8* securityKey;
uint8* securityNonce;
#endif
} basicRfCfg_t;
程序分析:首先要确定两个通信模块的
“
网络
ID”
和
“
通信信
”
要
一
致,其次设置各模
块的识别地址,即模块的地址或编号。
2.
为
basicRfCfg_t
型结构体变量
basicRfConfig
填充部分参数。在
main
主函数中
中有如下
3
行代码:
basicRfConfig.panId = PAN_ID; //宏定义:#define PAN_ID 0x2007
basicRfConfig.channel = RF_CHANNEL; //宏定义:#define RF_CHANNEL 25
basicRfConfig.ackRequest = TRUE; //宏定义:#define TRUE 1
3.
调用
halBoardInit()
函数,对硬件外设和
I/O
端口进行初始化,
halBoardInit
函
数在
hal_board.c
文件中。
4.
调用
halRfInit()
函数,打开射频模块,设置默认配置选项,允许自动确认和允许随
机数产生。
BasicRF
关键函数分析
1.
初始化函数
basicRfInit
,该函数的原型格式:
basicRfInit(basicRfCfg_t* pRfConfig)
参数含义:pRfConfig:basicRfCfg_t 型结构体变量。
2.
发送函数
basicRfSendPacket
,该函数原型格式:
basicRfSendPacket(uint16 destAddr, uint8* pPayload, uint8 length),各参数含义如下:
destAddr:发送的目标地址,即接收模块的地址。
pPayload:指向发送缓冲区的地址,该地址的内容是将要发送的数据。
length:发送数据长度,单位是字节。
3.
接收函数
basicRfReceive
,该函数原型格式:
basicRfReceive(uint8* pRxData, uint8 len, int16* pRssi),如参数含义如下:
pRxData:接收数据缓冲区。
189
190
len:接收数据长度。
pRssi:说明无线信号强度,它与模块的发送功率以及天线的增益有关。