随着微电子技术的迅速发展,高性能MCU广泛地运用在嵌入式系统中,完成数据的采集、分析、处理与通讯功能。有线模式下的数据通讯系统,由于受时空、环境等因素的制约,不能完全满足所有条件下任务的执行,而通过无线数据传输方式代替有线数据传输,则能很好地解决此类问题。综上论述,文中提出一种基于高性能MCU和nRF24L01的网络化无线通信系统的解决方案,稳定可靠地实现数据传输,满足各种条件的需要。
1 系统硬件设计
1.1 nRF24L01无线通讯模块介绍
系统选用云佳科技的nRF24L01无线射频收发模块来实现子母机间的通讯,它使用Nordic公司的nRF24L01芯片开发而成,是一款工作在2.4~2.5 GHz世界通用ISM频段的单片无线收发器芯片,其具有如下性能特点:
(1)低工作电源电压,且范围广1.9~3.6 V,体积小巧,能方便集成到各种电子器件。
(2)极低的功耗。当工作在发射模式下发射功率为-6 dBm时电流消耗为9 mA,接收模式时为12.3 mA。待机模式下电流消22μA,掉电模式电流消耗仅为900 nA。
(3)无线速率达到2 Mbit・s-1,SPI接口速率为0~8 Mbit・s-1,具自动应答机制,极大地降低丢包率。
(4)拥有自动重发功能、地址及CRC校验功能。
(5)具有125个可选工作频道,拥有很短的频道切换时间,可用于跳频。
1.2 STC12L5608AD芯片简介
STC12L5608AD型MCU是宏晶科技新一代低电压增强型8051单片机,该系列单片机具有如下特性:宽工作电压(2.1~3.6 V);具有1个时钟/机器周期的高速性能,比普通8051快8~12倍,可用低频晶振;自带-8路10位AD转换器等;加密性强,无法解密;超强抗干扰、高抗静电、轻松过4 kV快速脉冲干扰(EFT测试)、宽温度范围(-40~85℃);超低功耗,正常工作模式2.7~7 mA,空闲模式1.8mA,掉电模式功耗<0.1μA;能在系统编程等。
1.3 硬件接口电路
nRF24L01通过SPI接口与外部单片机进行数据交换,CE作为片选端,它与CONFIG寄存器的PWR_UP和PRIM_RX位组合用于选择芯片的工作方式;CSN为芯片内部SPI硬件接口的使能端,低电平有效;SCK为SPI的时钟输入端,MOSI为SPI接口的数据输入端,MISO为SPI接口的数据输出端,IRQ为中断请求端,与单片机的外部中断1相连,当nRF24L01产生中断后IRQ将置低,单片机检测到此中断后通过程序得知其与nRF24L01无线射频模块的数据收发情况。通过单片机与无线通讯模块的硬件连接,从而实现模式控制和数据交换。图2给出两模块的硬件接口设计。整个无线通讯系统由3个模块组成。
2 系统软件设计
2.1 数据包处理方式
将nRF24L01配置成增强型ShockBurst模式,使得双向链接协议执行更为简易有效。发送方要求终端设备在接收数据后有应答信号,以便发送方检测有无数据丢失。一旦数据丢失则通过重新发送功能将丢失的数据恢复。它可以同时控制应答及重发功能而无需增加MCU工作量。nR F24L01配置为增强型的ShockBurst发送模式下时,只要MCU有数据要发送,nRF24L01就会启动ShockBurst模式来发送数据。在发送完数据后nRF24L01转到接收模式并等待终端的应答信号。如未收到应答信号,nRF24L01将重发相同的数据包,直到收到应答信号或重发次数超过SETUP _RETR_ARC寄存器中设置的值为止。如果重发次数超过了设定值,则产生MAX_RT中断。只要收到确认信号,nRF24L01就认为最后一包数据已经发送成功,把TX FIFO中的数据清除掉并产生TX_DS中断,IRQ引脚置高。
nRF24L01在接收模式下可以接收6路不同通道的数据,如图3所示。每个数据通道使用不同的地址,但共用相同的频道。即6个不同的nRF 24L01设置为发送模式后,可以与同一个设置为接收模式的nRF24L01进行通讯,而设置为接收模式的nRF24L01可以对这6个发射端进行识别。n RF24L01在确认收到数据后记录地址,并以此地址为目标地址发送应答信号。在发送端,数据通道0被用作接收应答信号。
2.2 系统软件设计流程
程序基本思路为子模块配置为接收状态,如成功接收到数据则进行EEPROM子程序操作,否则切换成发射模式,成功发送并接收到应答信号后再变成接收模式,进入下一次接收发射循环;主模块设置为接收数据信息状态,能与多路处于发射状态的数据通道进行通讯,并从接收到的数据中判别数据通道口;接收信息后自动回复应答信号。通过切换接收发射状态实现多点对单点的双向无线数据通讯。
2.2.1 nRF24L01初始化程序
nRF24L01初始化程序包括引脚初始化和中断初始化。引脚初始化使芯片工作在待机模式下(CE=0),时钟设置SCK低电平,片选不使能(CSN=1),工作在串行输入状态(MOSI=0);中断初始化则使能外部中断(EX1=1),低电平触发。
2.2.2 nRF24L01配置接收/发射模式
对芯片内部的特殊功能寄存器进行初始化操作。
通过对CONFID配置设定其工作模式,设置接收地址,接收有效数据宽度、选择射频通道、数据传输率、发射功率等参数。配置完成后,置高CE,准备接收数据包,如表1所示。
2.2.3 单片机内部EEPROM应用子程序
单片机内部EEPROM应用子程序进行扇区的擦除、写入以及读出功能,实现系统信息的读取保存。
STC12L5608AD单片机内部有8个扇区,每个扇区512 Byte。在使用时,统一修改的数据放在同一个扇区。使用ISP/IAP功能,所使用的特殊功能寄存器为ISP_DATA、ISP_ADDRH、ISP_ADDRL、ISP_CMD、ISP_TRIG、ISP_CONTR。扇区写入数据流程图如图5所示,扇区擦除以及读操作流程与之类似。
3 结束语
介绍了利用高性能MCU和nRF24L01芯片设计的网络化无线通讯系统,说明了其软硬件设计要点。该系统已应用于某故障监测系统中,系统成本低、体积小、传输速率高、具有良好的通用性和可靠性,可供无线数据传输系统参考。
审核编辑 黄宇
1 系统硬件设计
1.1 nRF24L01无线通讯模块介绍
系统选用云佳科技的nRF24L01无线射频收发模块来实现子母机间的通讯,它使用Nordic公司的nRF24L01芯片开发而成,是一款工作在2.4~2.5 GHz世界通用ISM频段的单片无线收发器芯片,其具有如下性能特点:
(1)低工作电源电压,且范围广1.9~3.6 V,体积小巧,能方便集成到各种电子器件。
(2)极低的功耗。当工作在发射模式下发射功率为-6 dBm时电流消耗为9 mA,接收模式时为12.3 mA。待机模式下电流消22μA,掉电模式电流消耗仅为900 nA。
(3)无线速率达到2 Mbit・s-1,SPI接口速率为0~8 Mbit・s-1,具自动应答机制,极大地降低丢包率。
(4)拥有自动重发功能、地址及CRC校验功能。
(5)具有125个可选工作频道,拥有很短的频道切换时间,可用于跳频。
1.2 STC12L5608AD芯片简介
STC12L5608AD型MCU是宏晶科技新一代低电压增强型8051单片机,该系列单片机具有如下特性:宽工作电压(2.1~3.6 V);具有1个时钟/机器周期的高速性能,比普通8051快8~12倍,可用低频晶振;自带-8路10位AD转换器等;加密性强,无法解密;超强抗干扰、高抗静电、轻松过4 kV快速脉冲干扰(EFT测试)、宽温度范围(-40~85℃);超低功耗,正常工作模式2.7~7 mA,空闲模式1.8mA,掉电模式功耗<0.1μA;能在系统编程等。
1.3 硬件接口电路
nRF24L01通过SPI接口与外部单片机进行数据交换,CE作为片选端,它与CONFIG寄存器的PWR_UP和PRIM_RX位组合用于选择芯片的工作方式;CSN为芯片内部SPI硬件接口的使能端,低电平有效;SCK为SPI的时钟输入端,MOSI为SPI接口的数据输入端,MISO为SPI接口的数据输出端,IRQ为中断请求端,与单片机的外部中断1相连,当nRF24L01产生中断后IRQ将置低,单片机检测到此中断后通过程序得知其与nRF24L01无线射频模块的数据收发情况。通过单片机与无线通讯模块的硬件连接,从而实现模式控制和数据交换。图2给出两模块的硬件接口设计。整个无线通讯系统由3个模块组成。
2 系统软件设计
2.1 数据包处理方式
将nRF24L01配置成增强型ShockBurst模式,使得双向链接协议执行更为简易有效。发送方要求终端设备在接收数据后有应答信号,以便发送方检测有无数据丢失。一旦数据丢失则通过重新发送功能将丢失的数据恢复。它可以同时控制应答及重发功能而无需增加MCU工作量。nR F24L01配置为增强型的ShockBurst发送模式下时,只要MCU有数据要发送,nRF24L01就会启动ShockBurst模式来发送数据。在发送完数据后nRF24L01转到接收模式并等待终端的应答信号。如未收到应答信号,nRF24L01将重发相同的数据包,直到收到应答信号或重发次数超过SETUP _RETR_ARC寄存器中设置的值为止。如果重发次数超过了设定值,则产生MAX_RT中断。只要收到确认信号,nRF24L01就认为最后一包数据已经发送成功,把TX FIFO中的数据清除掉并产生TX_DS中断,IRQ引脚置高。
nRF24L01在接收模式下可以接收6路不同通道的数据,如图3所示。每个数据通道使用不同的地址,但共用相同的频道。即6个不同的nRF 24L01设置为发送模式后,可以与同一个设置为接收模式的nRF24L01进行通讯,而设置为接收模式的nRF24L01可以对这6个发射端进行识别。n RF24L01在确认收到数据后记录地址,并以此地址为目标地址发送应答信号。在发送端,数据通道0被用作接收应答信号。
2.2 系统软件设计流程
程序基本思路为子模块配置为接收状态,如成功接收到数据则进行EEPROM子程序操作,否则切换成发射模式,成功发送并接收到应答信号后再变成接收模式,进入下一次接收发射循环;主模块设置为接收数据信息状态,能与多路处于发射状态的数据通道进行通讯,并从接收到的数据中判别数据通道口;接收信息后自动回复应答信号。通过切换接收发射状态实现多点对单点的双向无线数据通讯。
2.2.1 nRF24L01初始化程序
nRF24L01初始化程序包括引脚初始化和中断初始化。引脚初始化使芯片工作在待机模式下(CE=0),时钟设置SCK低电平,片选不使能(CSN=1),工作在串行输入状态(MOSI=0);中断初始化则使能外部中断(EX1=1),低电平触发。
2.2.2 nRF24L01配置接收/发射模式
对芯片内部的特殊功能寄存器进行初始化操作。
通过对CONFID配置设定其工作模式,设置接收地址,接收有效数据宽度、选择射频通道、数据传输率、发射功率等参数。配置完成后,置高CE,准备接收数据包,如表1所示。
2.2.3 单片机内部EEPROM应用子程序
单片机内部EEPROM应用子程序进行扇区的擦除、写入以及读出功能,实现系统信息的读取保存。
STC12L5608AD单片机内部有8个扇区,每个扇区512 Byte。在使用时,统一修改的数据放在同一个扇区。使用ISP/IAP功能,所使用的特殊功能寄存器为ISP_DATA、ISP_ADDRH、ISP_ADDRL、ISP_CMD、ISP_TRIG、ISP_CONTR。扇区写入数据流程图如图5所示,扇区擦除以及读操作流程与之类似。
3 结束语
介绍了利用高性能MCU和nRF24L01芯片设计的网络化无线通讯系统,说明了其软硬件设计要点。该系统已应用于某故障监测系统中,系统成本低、体积小、传输速率高、具有良好的通用性和可靠性,可供无线数据传输系统参考。
审核编辑 黄宇
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。
举报投诉
-
芯片
+关注
关注
453文章
50360浏览量
421646 -
mcu
+关注
关注
146文章
16977浏览量
350215 -
无线通讯
+关注
关注
5文章
575浏览量
39859
发布评论请先 登录
相关推荐
SI24R1与NRF24L01P 对比方案
Si24R1低功耗2.4GHz收发一体射频芯片量产于2012年,由于其一致性稳定性高、功耗低、远距离、兼容替代NRF24L01+,兼容NORDIC 2.4GHz协议等特点,一直广泛应用于各物联网场景
发表于 09-30 15:05
基于STM32的E01和E01C驱动移植
实验简介基于STM32F103C8T6的E01系列(nRF24L01P)和E01C系列(SI24R1)的EBYTE官网例程移植。EBYTE官网例程是基于STM8
SI24R1 TO NRF24L01P 引脚及软硬件中文开发资料
的视野是与友商的NRF24L01P芯片兼容通信。从而被打上了国产NRF24L01P的标签,更有甚者居然磨掉芯片原本的SI24R1的LOGO打成NRF
发表于 07-30 14:26
如何使用RTOS SDK才能正确驱动NRF24L模块呢?
你好,我刚接触 ESP8266 TROS SDK,想用ESP8266的HSPI驱动NRF24L01模块,自己模拟SPI时序可以正常驱动NRF24L01,但通信速率只有350K左右。请问
发表于 07-19 14:15
2.4GHz的Si24R03芯片:无线通信的新里程碑
在无线通信领域中,2.4GHz频段因其广泛的应用和稳定的性能而备受青睐。而在这个频段中,Si24R03芯片以其出色的性能和多样的功能,正逐渐成为行业的新宠。今天,我们就来深入了解一下这款引领无线通信
STM8L做的计步器总是复位的原因?
STM8L做的计步器总是复位,主芯片STM8L151K4T6,CR2477供电,无线模块NRF24L01,水银球计步,请高手帮下,可能导致复位的原因?
发表于 05-16 08:14
NRF24L01加个if就发送不成功的原因?
我最近在调个NRF24L01其实早已经调试好了,之前都是一个发送一个接,我现在想改成,我发送端发送成功后,接收端能返回信息回来。我调试时发现在把发送函数放到“if”里面发送不成功.把\"
发表于 05-10 07:06
nrf24l01+自动应答失败的原因?
NRF24L01_Write_Reg(NRF_WRITE_REG+RF_CH,40); //设置RF通信频率
NRF24L01_Write_Reg(
发表于 04-24 07:51
STM8在低功耗模式(即Active-Halt或者Halt下) RTC还会继续工作吗?
基于STM8L051的无线通信,主机STM8L051通过配置NRF24L01,接收端用无线转串口模块连接至PC。 先设置STM8
发表于 04-19 06:09
无线通信时代nRF24L01无线模块的应用与特点
nRF24L01是一种低功耗、高性能的2.4GHz无线收发器,由Nordic Semiconductor公司开发。它广泛应用于无线通信领域,特别是在低功耗应用和物联网设备中。
NRF24L01P和SI24R1的区别
NRF24L01无线模块广泛地运用于:无线门禁、无线数据通讯、安防系统、遥控装置、遥感
勘测、智能运动设备、工业传感器;平常我们用到的
发表于 03-29 15:05
无线通信系统的组成 无线通信系统的工作原理
无线通信系统的组成 无线通信系统是由多种组件组成的,这些组件共同协作,实现了无线信号的传输和接收。下面将详细介绍
nrf24l01接收延迟什么原因
NRF24L01是一种低功耗的无线收发模块,广泛应用于各种无线通信系统中。它具有高度集成的特点,具备理想的发射和接收功率,还能提供数据速率高达2Mbps的
无线通信技术有哪几种?
无线通信技术有哪几种? 无线通信技术指的是在无线电波传播的信道上实现通信的技术。随着科技的发展,无线通信技术得到了广泛应用,并不断创新和发展
评论