新闻中心

EEPW首页 > 手机与无线通信 > 设计应用 > 基于MCU和nRF24L01的无线通信系统设计

基于MCU和nRF24L01的无线通信系统设计

作者: 时间:2012-06-27 来源:网络 收藏


2 软件
2.1 数据包处理方式
配置成增强型ShockBurst模式,使得双向链接协议执行更为简易有效。发送方要求终端设备在接收数据后有应答信号,以便发送方检测有无数据丢失。一旦数据丢失则通过重新发送功能将丢失的数据恢复。它可以同时控制应答及重发功能而无需增加工作量。nR F24L01配置为增强型的ShockBurst发送模式下时,只要有数据要发送,就会启动ShockBurst模式来发送数据。在发送完数据后转到接收模式并等待终端的应答信号。如未收到应答信号,nRF24L01将重发相同的数据包,直到收到应答信号或重发次数超过SETUP _RETR_ARC寄存器中设置的值为止。如果重发次数超过了设定值,则产生MAX_RT中断。只要收到确认信号,nRF24L01就认为最后一包数据已经发送成功,把TX FIFO中的数据清除掉并产生TX_DS中断,IRQ引脚置高。

本文引用地址:https://www.eepw.com.cn/article/154546.htm

c.JPG


nRF24L01在接收模式下可以接收6路不同通道的数据,如图3所示。每个数据通道使用不同的地址,但共用相同的频道。即6个不同的nRF 24L01设置为发送模式后,可以与同一个设置为接收模式的nRF24L01进行通讯,而设置为接收模式的nRF24L01可以对这6个发射端进行识别。n RF24L01在确认收到数据后记录地址,并以此地址为目标地址发送应答信号。在发送端,数据通道0被用作接收应答信号。
2.2 软件流程
图4为子模块和主模块程序流程图,软件开发环境为KeilC uVision3。

d.JPG


程序基本思路为子模块配置为接收状态,如成功接收到数据则进行EEPROM子程序操作,否则切换成发射模式,成功发送并接收到应答信号后再变成接收模式,进入下一次接收发射循环;主模块设置为接收数据信息状态,能与多路处于发射状态的数据通道进行通讯,并从接收到的数据中判别数据通道口;接收信息后自动回复应答信号。通过切换接收发射状态实现多点对单点的双向无线数据通讯。
2.2.1 nRF24L01初始化程序
nRF24L01初始化程序包括引脚初始化和中断初始化。引脚初始化使芯片工作在待机模式下(CE=0),时钟设置SCK低电平,片选不使能(CSN=1),工作在串行输入状态(MOSI=0);中断初始化则使能外部中断(EX1=1),低电平触发。
2.2.2 nRF24L01配置接收/发射模式
对芯片内部的特殊功能寄存器进行初始化操作。
通过对CONFID配置设定其工作模式,设置接收地址,接收有效数据宽度、选择射频通道、数据传输率、发射功率等参数。配置完成后,置高CE,准备接收数据包,如表1所示。

e.JPG



评论


相关推荐

技术专区

关闭