0 卖盘信息
BOM询价
您现在的位置: 首页 > 技术方案 >无线互联 > 基于nRF24L01无线射频芯片和STM32L152RD微处理器的超低功耗无线通信系统设计方案

基于nRF24L01无线射频芯片和STM32L152RD微处理器的超低功耗无线通信系统设计方案

来源: elecfans
2021-08-19
类别:无线互联
eye 33
文章创建人 拍明

原标题:基于nRF24L01和STM32L152RD超低功耗无线通信系统设计方案

  随着科学技术水平的不断提高,传统的有线通信因自身的局限性已越来越不能满足人们的需要,无线通信技术得到了快速发展。如今出现了种类众多的无线通信技术,目前比较热门的有WiFi、蓝牙、UWB、ZigBee、Nordic nRF以及TI公司的SimpliciTI等。不同无线通信技术在成本、功耗、传输速率、使用频段、功能方面有很大区别,针对不同的需求要选择适合的无线技术。

  针对便携式设备的低成本、低功耗要求,蓝牙和WiFi功耗相对较大,UWB规范尚不统一且芯片价格高,Zigbee的传输速率受限仅250 kbit/s,SimpliciTI则受TI公司硬件平台限制。综合考虑各个因素,本系统采用了NordicSemiconductor公司2.4 GHz低成本高性能的nRF24L01无线射频芯片,由低功耗ARM系列STM32L152RD微处理器控制,实现短距离无线数据通信。nRF24L01不仅可以提供一个真正的超低功耗解决方案,而且也拥有优良的共存性,其载波监测功能保证了在WLAN干扰下的可靠通信。高速的频率切换时间减少了与蓝牙等跳频系统出现互相干扰的可能。

  1硬件设计

  系统的设计思路是在满足高速传输数据的同时尽可能的降低功耗,故在MCU与无线芯片的选型上侧重于性能和功耗的平衡。系统硬件部分采用模块化的设计思想,主要由供电模块,nRF24L01射频模块和微控制器模块组成。其中供电模块根据实际需求方案很多,本文就不详细叙述了。

  1.1 nRF24L01射频模块

  nRF24L01是由Nordic Semiconductor公司出品的GF-SK单片式收发芯片,工作于2.4~2.5 GHz的世界通用(ISM)频段,传输速率可达2 Mbit/s。芯片包括频率发生器、功率放大器、增强型SchockBurstTM模式控制器、晶振和调制解调器。发射功率和频道选择等工作参数可以通过SPI接口进行设置。增强型ShockBurstTM功能使软件设计更为简单,集成了双向通信所需要的链路层,而通常这些功能需要一个高速的MCU和大空间的存储器和高的电源消耗来实现。nRF24L01及外部接口如图1所示。

  

image.png


  1.2微控制器模块

  STM32L152RD基于高品质的ARM Cortex-M3内核,融合了高性能和超低功耗的特性,内置高速存储器,工作频率为32 MHz。它采用了优化的节能架构与0.13μm的STMicroelectronics超低漏电生产工艺,此外,为了实现超低功耗,STM32L152RD还划分了6种工作模式,使其在任何设定时间内都能以最低的功耗完成任务。STM32控制器的SPI(串行外设接口)允许芯片与外部设备以全双工或者半双工、同步、串行方式通信,可用于多种用途,包括使用一条双向数据线的双线单工同步传输,还可使用CRC校验的可靠通信。

  通常SPI通过4个管脚与外部器件相连。MISO:主设备输入/从设备输出管脚,该管脚在从模式下发送数据,在主模式下接收数据;MOSI:主设备输出/从设备输入管脚,该管脚在主模式下发送数据,在从模式下接收数据;SCK:串口时钟,作为主设备的输出,从设备的输入;NSS:从设备选择。这是一个可选的管脚,用来选择主/从设备。

  系统除了使用MCU这4个管脚与无线模块相连,还通过PA0管脚控制nRF24L01的片选端CE,PB0管脚控制中断响应。图2是微控制器模块STM32L152RD与nRF24L01的接口电路原理图。

  

image.png


  2软件设计

  nRF24L01无线射频芯片内置的链路层使软件设计更为简单,系统进行无线通信无须配置复杂的通信协议,只需编程配置好射频芯片与MCU的SPI通信接口,然后在发送时将有效数据放入TX缓冲区,芯片将把地址信息和TX缓冲区的有效数据与内部自行产生的数据头、标志位和CRC校验码等信息结合起来进行数据打包并发送出去。表1给出增强型的ShockBurstTM模式的数据包。整个系统的软件设计部分分为初始化操作、配置发送模式、配置接收模式、配置中断4部分。

  

image.png


  2.1初始化操作

  无线射频芯片nRF24L01要进行无线通信,首先要对MCU的时钟,MCU的SPI通信口和nRF24L01进行初始化操作[5]。MCU时钟和SPI接口初始化部分STM32L152RD的芯片资料很详细,在此就不详细叙述了。nRF24L01的初始化主要包括地址、应答方式、工作频率、数据长度、发射速率、中断响应等参数的配置。nRF24L01初始化操作的流程图如图3所示。

  

image.png


  2.2配置发送模式

  nRF24L01配置为增强型的ShockBurstTM发送模式,当MCU有数据要发送nRF24L01就会启动Shock-BurstTM模式,自动生成数据头、标志位和CRC校验码并发送数据。数据发送完毕后将转到接收模式并等待接收端的ACK应答信号。如果没有收到ACK应答信号,则认为数据丢失,nRF24L01将循环重发数据包,直到收到ACK或重发次数超过重发寄存器中设置的值为止。如果数据重发次数超过了初始设定值,则会产生数据溢出导致IRQ中断。当收到ACK应答信号时,nRF24L01就认为最后一包数据已经发送成功,TX_FIFO寄存器中的数据被清除并产生IRQ中断通知MCU。MCU根据任务需求控制nRF24L01进入发送模式,接收模式或待机模式。发送模式流程如图4所示。

  

image.png


  配置发送模式代码如下:

  void nRF24L01_TxPacket(unsigned char*tx_buf)

  {

  NRF24L01_MODE_CE_0();SPI_Write_Buf(WRITE_REG1+RX_ADDR_P0,TX_ADDRESS,TX_ADR_WIDTH);//写入接收地址

  SPI_Write_Buf(WR_TX_PLOAD,tx_buf,TX_PLOAD_WIDTH);//写入//要发送的数据

  SPI_RW_Reg(WRITE_REG1+CONFIG,0x0e);//IRQ中断,16位CRC

  NRF24L01_MODE_CE_1();//CE置1,激发增强型的ShockBurstTM

  发送模式

  Delay_us(20);//注意延迟值不能太低

  }


责任编辑:David

【免责声明】

1、本文内容、数据、图表等来源于网络引用或其他公开资料,版权归属原作者、原发表出处。若版权所有方对本文的引用持有异议,请联系拍明芯城(marketing@iczoom.com),本方将及时处理。

2、本文的引用仅供读者交流学习使用,不涉及商业目的。

3、本文内容仅代表作者观点,拍明芯城不对内容的准确性、可靠性或完整性提供明示或暗示的保证。读者阅读本文后做出的决定或行为,是基于自主意愿和独立判断做出的,请读者明确相关结果。

4、如需转载本方拥有版权的文章,请联系拍明芯城(marketing@iczoom.com)注明“转载原因”。未经允许私自转载拍明芯城将保留追究其法律责任的权利。

拍明芯城拥有对此声明的最终解释权。

相关资讯

方案推荐
基于MC33771主控芯片的新能源锂电池管理系统解决方案

基于MC33771主控芯片的新能源锂电池管理系统解决方案

AMIC110 32位Sitara ARM MCU开发方案

AMIC110 32位Sitara ARM MCU开发方案

基于AMIC110多协议可编程工业通信处理器的32位Sitara ARM MCU开发方案

基于AMIC110多协议可编程工业通信处理器的32位Sitara ARM MCU开发方案

基于展讯SC9820超低成本LTE芯片平台的儿童智能手表解决方案

基于展讯SC9820超低成本LTE芯片平台的儿童智能手表解决方案

基于TI公司的AM437x双照相机参考设计

基于TI公司的AM437x双照相机参考设计

基于MTK6580芯片的W2智能手表解决方案

基于MTK6580芯片的W2智能手表解决方案