nrf24l01通讯协议.docx
- 文档编号:17557
- 上传时间:2022-10-01
- 格式:DOCX
- 页数:8
- 大小:13.97KB
nrf24l01通讯协议.docx
《nrf24l01通讯协议.docx》由会员分享,可在线阅读,更多相关《nrf24l01通讯协议.docx(8页珍藏版)》请在冰豆网上搜索。
nrf24l01通讯协议
竭诚为您提供优质文档/双击可除
nrf24l01通讯协议
篇一:
nRF24l01无线通信模块使用手册12
深圳市德普施科技有限公司
nRF24l01无线通信模块使用手册
一、模块简介该射频模块集成了noRdic公司生产的无线射频芯片nRF24l01:
1.支持2.4ghz的全球开放ism频段,最大发射功率为0dbm2.2mbps,传输速率高
3.功耗低,等待模式时电流消耗仅22ua4.多频点(125个),满足多点通信及跳频通信需求5.在空旷场地,有效通信距离:
25m(外置天线)、10m(pcb天线)6.工作原理简介:
发射数据时,首先将nRF24l01配置为发射模式,接着把地址tx_addR和数据tx_pld按照时序由spi口写入nRF24l01缓存区,tx_pld必须在csn为低时连续写入,而tx_addR在发射时写入一次即可,然后ce置为高电平并保持至少10μs,延迟130μs后发射数据;若自动应答开启,那么nRF24l01在发射数据后立即进入接收模式,接收应答信号。
如果收到应答,则认为此次通信成功,tx_ds置高,同时tx_pld从发送堆栈中清除;若未收到应答,则自动重新发射该数据(自动重发已开启),若重发次数(aRc_cnt)达到上限,max_Rt置高,tx_pld不会被清除;max_Rt或tx_ds置高时,使iRq变低,以便通知mcu。
最后发射成功时,若ce为低,则nRF24l01进入待机模式1;若发送堆栈中有数据且ce为高,则进入下一次发射;若发送堆栈中无数据且ce为高,则进入待机模式2。
接收数据时,首先将nRF24l01配置为接收模式,接着延迟130μs进入接收状态等待数据的到来。
当接收方检测到有效的地址和cRc时,就将数据包存储在接收堆栈中,同时中断标志位Rx_dR置高,iRq变低,以便通知mcu去取数据。
若此时自动应答开启,接收方则同时进入发射状态回传应答信号。
最后接收成功时,若ce变低,则nRF24l01进入空闲模式1。
三、模块引脚说明
1
深圳市德普施科技有限公司
四、模块与at89s52单片机接口电路
注:
上图为示意连接,可根据自己实际需求进行更改;使用at89s52mcu模块时,请将nrf24l01通
讯模块每个端口(mosi、sck、csn和ce)接4.7k的排阻上拉到Vcc增强其驱动能力(如下图:
)。
若使用其它单片机与nrf24l01通讯模块相连时请串联2k电阻。
2
深圳市德普施科技有限公司
五、工作模式控制
注1:
进入此模式后,只要csn置高,在FiFo中的数据就会立即发射出去,直到所有数据数据发射完毕,之后进入待机模式ii。
注2:
正常的发射模式,ce端的高电平应至少保持10us。
24l01将发射一个数据包,之后进入待机模式i。
六、数据和控制接口通过以下六个引脚,可实现模块的所有功能:
①iRq(低电平有效,中断输出)②ce(高电平有效,发射或接收模式控制)③csn(spi信号)④sck(spi信号)⑤mosi(spi信号)⑥miso(spi信号)
通过spi接口,可激活在数据寄存器FiFo中的数据;或者通过spi命令(1个字节长度)访问寄存器。
在待机或掉电模式下,单片机通过spi接口配置模块;在发射或接收模式下,单片机通过spi接口接收或发射数据。
1.spi指令所有的spi指令均在当csn由低到高开始跳变时执行;从mosi写命令的同时,miso实时返回24l01的状态值;spi指令由命令字节和数据字节两部分组成。
spi命令字节表
3
深圳市德普施科技有限公司
2.spi时序spi读写时序见下面两图。
在写寄存器之前,一定要进入待机模式或掉电模式。
其中,cn——spi指令位;sn——状态寄存器位;dn——数据位(低字节在前,高字节在后;每个字节中高位在前)
spi读时序
spi写时序
4
深圳市德普施科技有限公司
5
篇二:
基于nRF24l01无线数据传输
大学生科技活动项目资助申请书
项目名称基于无线数据传输多点测温模块项目类别:
课外科技制作
申请人郭建所在单位机电工程学院
指导教师:
职称
填报时间20xx.06.19
校大学生科技活动领导办公室
第1页
第2页
第3页
第4页
篇三:
nRF24l01双向通信
//nRF24l01发送端:
#include
#include
typedefunsignedcharuchar;
typedefunsignedcharuint;
//****************************************io端口定义***************************************
sbitmiso=p1^4;
sbitmosi=p1^3;
sbitsck=p1^2;
sbitce=p1^0;
sbitcsn=p1^1;
sbitiRq=p1^5;
//***********************************数码管0-9编码*******************************************
//ucharseg[10]={0xc0,0xcF,0xa4,0xb0,0x99,0x92,0x82,0xF8,0x80,0x90};//0~~9段码
//************************************继电器**********************************************
//sbitjdq=p2^5;
//sbitbell=p2^6;
//************************************按键**********************************************
//sbitkey1=p3^6;
sbitkey2=p3^7;
//sbitkey=p3^3;//定义按键输入端口
//***********************************数码管位选*********************************************
*****
//sbitled1=p2^1;
//sbitled0=p2^0;
//sbitled2=p2^2;
//sbitled3=p2^3;
//*********************************************nRF24l01*************************************
#definetx_adR_width5//5uintstxaddresswidth
#defineRx_adR_width5//5uintsRxaddresswidth
#definetx_pload_width20//20uintstxpayload
#defineRx_pload_width20//20uintstxpayload
uintconsttx_addRess[tx_adR_width]={0x34,0x43,0x10,0x10,0x01};//本地地址uintconstRx_addRess[Rx_adR_width]={0x34,0x43,0x10,0x10,0x01};//接收地址//***************************************nRF24l01寄存器指令*******************************************************
#defineRead_Reg0x00//读寄存器指令
#definewRite_Reg0x20//写寄存器指令
#defineRd_Rx_pload0x61//读取接收数据指令
#definewR_tx_pload0xa0//写待发数据指令
#defineFlush_tx0xe1//冲洗发送FiFo指令
#defineFlush_Rx0xe2//冲洗接收FiFo指令
#defineReuse_tx_pl0xe3//定义重复装载数据指令
#definenop0xFF//保留
//*************************************spi(nRF24l01)寄存器地址****************************************************
#defineconFig0x00//配置收发状态,cRc校验模式以及收发状态响应方式#defineen_aa0x01//自动应答功能设置
#defineen_RxaddR0x02//可用信道设置
#definesetup_aw0x03//收发地址宽度设置
#definesetup_RetR0x04//自动重发功能设置
#defineRF_ch0x05//工作频率设置
#defineRF_setup0x06//发射速率、功耗功能设置
#definestatus0x07//状态寄存器
#defineobseRVe_tx0x08//发送监测功能
#definecd0x09//地址检测
#defineRx_addR_p00x0a//频道0接收数据地址
#defineRx_addR_p10x0b//频道1接收数据地址
#defineRx_addR_p20x0c//频道2接收数据地址
#defineRx_addR_p30x0d//频道3接收数据地址
#defineRx_addR_p40x0e//频道4接收数据地址
#defineRx_addR_p50x0F//频道5接收数据地址
#definetx_addR0x10//发送地址寄存器
#defineRx_pw_p00x11//接收频道0接收数据长度
#defineRx_pw_p10x12//接收频道0接收数据长度
#defineRx_pw_p20x13//接收频道0接收数据长度
#defineRx_pw_p30x14//接收频道0接收数据长度
#defineRx_pw_p40x15//接收频道0接收数据长度
#defineRx_pw_p50x16//接收频道0接收数据长度
#defineFiFo_status0x17//FiFo栈入栈出状态寄存器设置
//**************************************************************************************
voiddelay(unsignedints);
voidinerdelay_us(unsignedcharn);
voidinit_nRF24l01(void);
uintspi_Rw(uintuchar);
ucharspi_Read(ucharreg);
voidsetRx_mode(void);
uintspi_Rw_Reg(ucharreg,ucharvalue);
uintspi_Read_buf(ucharreg,uchar*pbuf,ucharuchars);
uintspi_write_buf(ucharreg,uchar*pbuf,ucharuchars);
unsignedcharnRF24l01_Rxpac
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- nrf24l01 通讯 协议
![提示](https://static.bdocx.com/images/bang_tan.gif)