基础射频无线通信技术应用设计

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

启动环节的设置通过相关的数据结构体和相关函数来实现,涉及到的结构体和函数分别是:
1)定义basicRfCfg_t数据结构体
*********************************************************************
typedef struct { uint16 myAddr;
*********************************************************************
static void appSwitch()
{pTxData[0] = LIGHT_TOGGLE_CMD; //发送的数据放到buffer中(即数组pTxData)
项目三 基础射频无线通信技术应用设计
【知识目标】
1. 了解BasicRF Layer工作机制; 2. 熟悉无线发送和接收函数; 3. 理解发送地址和接收地址、PAN_ID、RF_CHANNEL等概念; 4. 理解CC2530_lib库文件内各驱动文件的作用; 5. 理解串口读写函数; 6. 掌握各类典型传感器的工作原理。
{ if(halButtonPushed()==HAL_BUTTON_1) //调用按键函数
{ //调用发送函数
basicRfSendPacket(LIGHT_ADDR,pTxData,APP_PAYLOAD_LENGTH);
3.1.1 Basic RF工作原理
1.CC2530 BasicRF工作机制 Basic RF由TI公司提供,它包含了IEEE 802.15.4标准的数据包的收发功能
但并没有使用到协议栈,Basic RF仅让两个节点进行简单的通信,也就是 说Basic RF仅包含IEEE 802.15.4标准的一小部分。其主要特点有: 不会自动加入协议; 不会自动扫描其他节点,同时也没有组网指示灯(LED3); 没有协议栈中的协调器、路由器或终端的区分,即各节点地位均相等; 没有自动重发的功能。
任务3.1 Basic RF无线控制LED灯
【任务描述】 以Basic RF无线点对点传输协议为基础,采用两个ZigBee模块作为遥控模
块(无线发射模块)和被控对象模块(无线接收模块),按发射模块上的 SW1键,可以控制接收模块上的LED1灯的亮和灭,实现无线控制LED灯的 功能。 【任务环境】 硬件:NewLab平台2套、zigbee节点板2块、CC2530仿真器1组、PC机2台。 软件:Windows 7/10, IAR 集成开发环境。 【必备知识点】 Basic RF工作机制; Basic RF无线发送和接收函数; Basic RF发送地址和接收地址、PAN_ID、RF_CHANNEL等概念。
2)定义basicRfCfg_t数据结构体
为basicRfCfg_t型结构体变量basicRfConfig填充部分参数。在void main(void)函数中有如下3行 代码,就是为basicRfConfig数据结构部分变量赋值的。
*********************************************************************
//宏定义:#define TRUE1
*********************************************************************
3)调用halBoardInit()函数
对硬件外设和I/O端口进行初始化,void halBoardInit(void)函数在hal_board.c文件中。
basicRfConfig.panId = PAN_ID;
//宏定义:#define PAN_ID 0x2007
basicRfConfig.channel = RF_CHANNEL; //宏定义:#define RF_CHANNEL 25
basicRfConfig.ackRequest = TRUE;
4)调用halRfInit()函数
此函数可打开射频模块,设置默认配置选项,允许自动确认和允许随机数产生。
(2)发送
创建一个buffer,把数据放入其中,调用basicRfSendPacket()函数发送数据。在该工程中,light_switch.c文件中的appSwitch() 函数是用来发送数据的,appSwitch()函数代码如下,请注意删除了液晶显示代码。
//本机地址,取值范围0x0000 ~ 0xffff,作为识别本模块的地址
uint16 panId;
//网络ID,取值范围0x0000 ~ 0xffff,收、发模块此参数必须一致
uint8 channel; //通信信道号,取值范围11~26,收、发模块此参数必须一致
uint8 ackRequest //应答信号
basicRfConfig.myAddr = SWITCH_ADDR; //本机地址 if(basicRfInit(&basicRfConfig)==FAILED) //初始化
{ HAL_ASSERT(FALSE);
}Байду номын сангаас
basicRfReceiveOff();
//关闭接收模式,节能
while (TRUE)
3.1.1 Basic RF工作原理
2.Basic RF操作环节 Basic RF操作依次包括启动、发送、接收三个环节。 (1)启动:主要包括以下几项内容:
初始化开发板的硬件外设和配置I/O端口; 设置无线通讯的网络ID; 设置无线通讯的通信信道号; 设置无线通讯的网络接收和发送模块地址; 若有必要,设置无线通讯的网络安全加密等参数。
#ifdef SECURITY_CCM //是否加密,预定义时取消了加密
uint8* securityKey;
uint8* securityNonce;
#endif
} basicRfCfg_t;
*********************************************************************
相关文档
最新文档