设为首页 加入收藏

TOP

nrf2401 - 最廉价的2.4G无线通信方案(一)
2019-09-01 23:10:49 】 浏览:76
Tags:nrf2401 廉价 2.4G 无线通信 方案

nRF2401

所有的使用Arduino 的朋友大多都会知道大名鼎鼎的XBee 这个土豪级的ZigBee 的通信模块。我们是做产品开发的,对于XBee这个产品可谓是又爱又恨,不得不承认他确实是一个好货,从做工到功能都无须质疑,让人最感到遗憾的是他并不太适合于做平民化的产品,¥150~¥300 多的集价只能让我们对它望而轻叹了,这货只能用来DIY玩一下,这样的售价在产品上应有将直接将产品的成本推到难以承受的地步,所以它必须被取代!

疯狂地google后终于也让我们找到了取代这个必备级土豪的最佳解决方案,开始还真是没低,但后来经多番在google上翻阅老外的博客后也确定了这一点,老外都觉得XBee贵!这个解决方案就是基于 nRF24L01 的 2.4G通信方案,它在淘宝上的售价极低,看了他的价格,如果在没有特殊情况下都没人再原意选择 ZigBee 和 蓝牙了吧,不相信?去淘一下就知道我是否言过其实。

好吧,废话不多说,先来看看 nRF23L01的介绍,(以下的文字来源于某厂商的文档资料,具体的文件请看附件)

NRF24L01是一款工作在2.4-2.5GHz世界通用ISM频段的单片收发芯片,无线收发器包括:频率发生器 增强型 SchockBurstTM 模式控制器 功率放大器 晶体放大器 调制器 解调器 输出功率频道选择和协议的设置可以通过SPI接口进行设置极低的电流消耗,当工作在发射模式下发射功率为6dBm时电流消耗为9.0mA 接受模式为12.3mA掉电模式和待机模式下电流消耗模式更低。

  1. 2.4Ghz 全球开放 ISM 频段免许可证使用
  2. 最高工作速率 2Mbps,高效 GFSK 调制,抗干扰能力强,特别 适合工业控制场合
  3. 126 频道,满足多点通信和跳频通信需要
  4. 内置硬件 CRC 检错和点对多点通信地址控制
  5. 低功耗 1.9 - 3.6V 工作,待机模式下状态为 22uA;掉电模 式下为 900nA
  6. 内置 2.4Ghz 天线,体积种类多样
  7. 模块可软件设地址,只有收到本机地址时才会输出数据(提 供中断指示),可直接接各种单片机使用,软件编程非常方便
  8. 内置专门稳压电路,使用各种电源包括 DC/DC 开关电源均有 很好的通信效果
  9. 2.54MM 间距接口,DIP 封装
  10. 工作于 Enhanced ShockBurst 具有 Automatic packet handling, Auto packet transaction handling,具有可选的内置包 应答机制,极大的降低丢包率。
  11. 与 51 系列单片机 P0 口连接时候,需要加 10K 的上 拉电阻,与其余口连接不需要。
  12. 其他系列的单片机,如果是 5V 的,请参考该系列单片机 IO 口输出电流大小,如果超过 10mA,需要串联
    电阻分压,否则容易烧毁模块! 如果是3.3V的,可以 直接和RF24l01模块的IO口线连接。 比如AVR系列单片机
    如果是5V 的,一般串接2K 的电阻

工作方式

NRF2401 有工作模式有五种:

  • 收发模式
  • 配置模式
  • 空闲模式
  • 关机模式

收发模式

收发模式有 Enhanced ShockBurstTM 收发模式、ShockBurstTM 收 发模式和直接收发模式三种,收发模式由器件配置字决定,具体配置 将在器件配置部分详细介绍。

Enhanced ShockBurstTM 收发模式

Enhanced ShockBurstTM 收发模式下,使用片内的先入先出堆栈区, 数据低速从微控制器送入,但高速(1Mbps)发射,这样可以尽量节能, 因此,使用低速的微控制器也能得到很高的射频数据发射速率。与射 频协议相关的所有高速信号处理都在片内进行,这种做法有三大好处: 尽量节能;低的系统费用(低速微处理器也能进行高速射频发射);数 据在空中停留时间短,抗干扰性高。Enhanced ShockBurstTM 技术同时也减小了整个系统的平均工作电流。

在 Enhanced ShockBurstTM 收发模式下, NRF24L01 自动处理字头
和 CRC 校验码。在接收数据时,自动把字头和 CRC 校验码移去。在送 数据时,自动加上字头和 CRC 校验码,在发送模式下,置 CE 为高,至 少 10us,将时发送过程完成后。

Enhanced ShockBurstTM 发射流程

  1. 把接收机的地址和要发送的数据按时序送入 NRF24L01;
  2. 配置 CONFIG 寄存器,使之进入发送模式。C. 微控制器把 CE 置高 (至少 10us),激 发 NRF24L01 进行 Enhanced ShockBurstTM 发射; D. N24L01 的 Enhanced ShockBurstTM 发射(1) 给射频前端供电; (2) 射频数据打包(加字头、CRC 校验码); (3) 高速发射数据包; (4) 发射完成,NRF24L01 进入空闲状态。4.1.1.2 Enhanced ShockBurstTM 接收流程 A. 配置本机地址和要接收的数据包大小;B. 配置 CONFIG 寄存器,使之进入接收模式,把 CE 置高。
  3. 130us 后,NRF24L01 进入监视状态,等待数据包的到来; D.收到 正确的数据包(正确的地址和 CRC 校验码),NRF2401 自动把字头、地址
    和 CRC 校验位移去;
  4. NRF24L01 通过把 STATUS 寄存器的 RX_DR 置位(STATUS 一般引起微
    控制器中断)通知微控制器;F. 微控制器把数据从 NewMsg_RF2401 读 出;
  5. 所有数据读取完毕后,可以清除 STATUS 寄存器。NRF2401 可以进入 [ShockBurstTM 收发模式]

ShockBurstTM 收发模式可以与 Nrf2401a,02,E1 及 E2 兼容

空闲模式

NRF24L01 的空闲模式是为了减小平均工作电流而设计,其最大的 优点是,实现节能的同时,缩短芯片的起动时间。在空闲模式下,部分片内晶振仍在工作,此时的工作电流跟外部晶振的频率有关。

关机模式

在关机模式下,为了得到最小的工作电流,一般此时的工作电流为 900nA 左右。关机模式下,配置字的内容也会被保持在 NRF2401 片内, 这是该模式与断电状态最大的区别。

配置 NRF24L01 模块

NRF2401 的所有配置工作都是通过 SPI 完成,共有 30 字节的配置字。
官方推荐 NRF24L01 工作于 Enhanced ShockBurstTM 收发模式,这 种工作模式下,系统的程序编制会更加简单,并且稳定性也会更高, 因此,下文着重介绍把 NRF24L01 配置为 Enhanced ShockBurstTM 收发 模式的器件配置方法。

ShockBurstTM 的配置字使 NRF24L01 能够处理射频协议,在配置完 成后,在 NRF24L01 工作的过程中,只需改变其最低一个字节中的内容, 以实现接收模式和发送模式之间切换。

ShockBurstTM 的配置字可以分为以下四个部分:

  • 数据宽度:声明射频数据包中数据占用的位数。这使得 NRF24L01 能够区分接收数据包中的数据和 CRC 校验码;
  • 地址宽度:声明射频数据包中地址占用的位数。这使得 NRF24L01 能够区分地址和数据;
  • 地址:接收数据的地址,有通道 0 到通道 5 的地址;
  • CRC:使 NRF24L01 能够生成 CRC 校验码和解码。

当使用 NRF24L01 片内的 CRC 技术时,要确保在配置字(CONFIG 的 EN_CRC)
中 CRC 校验被使能,并且发送和接收使用相同的协议。 NRF24L01 配置字的 CONFIG 寄存器的位描述如下表所示。

工作模式由 PWR_UP register 、PRIM_RX register 和 CE 决定,下表

Ard

首页 上一页 1 2 3 下一页 尾页 1/3/3
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇认真分析mmap:是什么 为什么 怎.. 下一篇MIPI调试经验(转载)

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目