CC2530 RF部分使用 ——实现点对点收发

1.前言

本文将分析一个利用CC2530实现无线串口,文中将会列举部分代码并对CC2530的具体操作进行分析。本文的具体的内容包括以下几个部分

  • CC2530是符合802.15.4标准的无线收发芯片,但是本文并没有遵守802.15.4协议规则,在发送过程中忽略了网络ID、源地址和目标地址等参数,在接收的过程中禁止了帧过滤。通过发送和接收过程的处理使得CC2530无线部分的使用尽可能的简单清晰,通过最少的代码说明问题。
  • 无线芯片的调试具有一定的难度,一般存在发送设备和接收设备。为了通过最简单的代码说明无线芯片的使用,本文中仅编写一种设备代码同时实现发送和接收功能。设备的功能也相对简单,CC2530从串口接收数据并把数据通过RF部分“无损”发送,于此同时CC2530把从RF部分接收的数据通过串口“无损”发送,通过这样的方式实现无线串口。
  • 串口数据属于“流”型数据包,RF部分属于“帧”型数据包。在串口数据处理与分析中,一般采用特定的串口头和长度的方式解析数据,但是本文采用通过串口时间间隔的方式接收数据,这种方法等同于modbus-RTU串口数据处理方法。通过这种检测字节数据时间间隔的方法使得CC2530的串口部分可以接收无特殊格式要求的数据,真正实现无线串口功能。

完整代码百度网盘、视频和文档】2014年4月更新代码

视频链接


1.1实验准备

为了实现无线串口功能,需要准备两套CC2530模块和一个仿真器。如果条件允许可以增加一个仿真器,仿真器可以是CC Debugger也可以是SmartRF04EB,同时也可以准备一套CC2531 USBDongle做为嗅探器,抓取RF发送数据做调试分析。


1.2 实验结果

本文主要实现了无线串口功能,通过串口调试助手发送字节数据。例如通过串口向设备A发送Hello CC2530,设备B可收到Hello CC2530,并把该字符串通过串口调试助手打印至屏幕。设备B发送Hello RF,设备A同样可以收到数据并打印至屏幕。

图1.2.1(a-b) 设备A和设备B串口调试界面

图中中括号包含的数字为RSSI结果,RSSI表示接收信号强度,例如图中的-28。RSSI结果的单位为dBm,dBm为绝对单位且参考的标准为1mW。

2.初始化

RF部分的寄存器较多,需要耐心阅读数据手册和相关工具才可以完成设置。虽然RF部分的寄存器较多,但是还是借助smartRF工具、数据手册和示例代码,依然可以总结出使用CC2530无线部分的一般方法。

初始化部分包括接收数据包帧过滤控制,发射功率控制和信道选择;借助smartRF工具生成若干推荐值;打开接收终端并进入接收状态。

2.1 代码

void rf_init()

{

FRMFILT0 =0x0C;//静止接收过滤,即接收所有数据包

TXPOWER =0xD5;//发射功率为1dBm

FREQCTRL =0x0B;//选择通道11

CCACTRL0 =0xF8;//推荐值 smartRF软件生成

FSCAL1 =0x00;

TXFILTCFG =0x09;

AGCCTRL1 =0x15;

AGCCTRL2 =0xFE;

TXFILTCFG =0x09;

RFIRQM0 |=(1<<6);//使能RF数据包接收中断

IEN2 |=(1<<0);//使能RF中断

RFST =0xED;//清除RF接收缓冲区 ISFLUSHRX

RFST =0xE3;// RF接收使能 ISRXON

}

2.2 分析<

  • 0
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值