基于nrf24l01模块的无线通信系统设计内容摘要:

编程器。 在单芯片上,拥有灵巧的 8 位 CPU 和在系统可编程 Flash,使得 AT89S52 在众多嵌入式控制应用系统中得到广泛应用。 AT89S51 具有如下特点: 40 个引脚, 8k Bytes Flash 片内程序存储器, 256 bytes 的随机存取数据存储器( RAM), 32 个外部双向输入 /基于 nRF24L01 模块的无线通信系统设计 8 输出( I/O)口, 5个中断优先级 2层中断嵌套中断, 2个 16 位可编程定时计数器 ,2 个 全双工串行通信口,看门狗( WDT)电路,片内时钟振荡器。 引脚图如图 此外, AT89S51 设计和配置了振荡频率可为 0Hz 并可通过软件设置省电模式。 空闲模式下, CPU 暂停工作,而 RAM 定时计数器,串行口,外中断 系统可继续工作,掉电模式冻结振荡器而保存 RAM 的数据,停止芯片其它功能直至外中断激活或硬件复位。 同时该芯片还具有 PDIP、TQFP 和 PLCC 等三 种封装形式,以适应不同产品的需求。 图 单片机管脚图 ( 1) 主要功能特性 : 178。 兼容 MCS51 指令系统 178。 8k可反复擦写 (1000 次) ISP Flash ROM 178。 32个双向 I/O 口 178。 工作电压 178。 2个 16位可编程定时 /计数器 178。 时钟频率 033MHz 基于 nRF24L01 模块的无线通信系统设计 9 178。 全双工 UART 串行中断口线 178。 256x8bit 内部 RAM 178。 2个外部中断源 178。 低功耗空闲和省电模式 178。 中断唤醒省电模式 178。 3级加密位 178。 看门狗( WDT)电路 178。 软件设置空闲和省电功能 178。 灵 活的 ISP 字节和分页编程 178。 双数据寄存器指针 ( 2) AT89S52 单片机引脚介绍 : 引脚如图 ,以下是各引脚的说明。 VCC: AT89S52 电源正端输入,接 +5V。 VSS:电源地端。 XTAL1:单芯片系统时钟的反向放大器输入端。 XTAL2:系统时钟的反向放大器输出端,一般在设计上只要在 XTAL1和 XTAL2 上接上一只石英振荡晶体系统皆可以工作了,此外可以在两个引脚与地之间加入一 20PF 的小电容,可以使系统更稳定,避免噪声干扰而死机。 RESET: AT89S52 的重置引脚,高电平工 作,当要对晶片重置时,只要对此引脚点评提升至高电平并保持两个机器周期以上的时间,AT89S51 便能完成系统重置的各项动作,使得内部特殊功能寄存器内容均被设成已知状态,并且至地址 0000H处开始读入程序代码而执行程序。 EA/Vpp:“ EA”为英文“ External Access”的缩写,表示存取外部程序代码之意,低电平动作,也就是说当引脚为低电平后,系统会调用外部的程序代码(存于外部 EPROM 中)来执行程序。 因此在 8031 及 8032中, EA 引脚必须接低电平,因为其内部无程序存储器空间。 如果使用8751 内部程 序空间时,引脚要接成高电平。 此外,在将程序代码烧录至8751 内部 EPROM 时,可以利用此引脚来输入 21 V的烧录高压( Vpp)。 PORT0( ― ):端口 0是一个 8 位宽的开路电极( Open Drain)双向输出入端口,共有 8 个位, 表示位 0, 表示位 1,依此类基于 nRF24L01 模块的无线通信系统设计 10 推。 其他三个 I/O 端口( P P P3)则不具有此电路组态,而是内部有一提升电路, P0 在当做 I/O 用时可以推动 8 个 LS的 TTL 负载。 如果当 EA 引脚为低电平时(即取用外部程序代码或数据存储器), P0就以多工方式提供地址总线( A0― A7)及数据总线( D0― D7)。 设计者必须外加一个锁存器将端口 0送出的地址锁住成为 A0― A7,再配合端口 2 所送出的 A8― A15 合成一个完整的 16 位地址总线,而定位地址到 64K 的外部存储器空间。 PORT1(― ):端口 1 也是具有内部提升电路的双向 I/O 端口,其输出缓冲器可以推动 4 个 LS TTL 负载,若将端口 1 的输出设为高电平,使是由此端口来输入数据。 如果是使用 8052 或是 8032 的话, 又当作定时器 2 的外部缓冲输入脚,而 P。 1 可以有 T2EX 功能,可以做外部中断输入的触发引脚。 PORT2(― ):端口 2 是具有内部提升电路的双向 I/O 端口,每一个引脚可以推动 4 个 LS 的 TTL 负载,同样地,若将端口 2 的输出设为高电平时,此端口便能当成输入端口来使用。 P2 除了当做一般 I/O端口使用外,若是在 AT89S51 扩充外接程序存储器或数据存储器时,也提供地址总线的高字节 A8― A15,这个时候 P2便不能当做 I/O来使用了。 PORT3( ― ):端口 3 也具有内部提升电路的双向 I/O 端口,其输出缓冲器可以推动 4 个 TTL 负载,同时还多工具有其他的额外特殊功能,包括串行通信、外部中断控 制、计时计数控制及外部数据存储器内容的读取或写入控制等功能。 其引脚分配如下: : RXD,串行通信输入。 : TXD,串行通信输出。 : INT0,外部中断 0 输入。 : INT1,外部中断 1 输入。 : T0,计时计数器 0 输入。 : T1,计时计数器 1 输入。 : WR,外部数据存储器的写入信号。 : RD,外部数据存储器的读取信号。 基于 nRF24L01 模块的无线通信系统设计 11 单片机控制模块 单片机控制模块由 AT89S52 最小系统组成,其中包括单片机,晶振电路和复位电路。 ( 1)、晶振电路 晶振电路由两个 30pF 电容和一个 12MHz 晶体振荡器构成,接入单片机的 X X2引脚。 ( 2)、复位电路 单片复位端低电平有效。 单片机最小系统如图 : 图 单片机最小系统 E A /V P31X119X218R E S E T9RD17WR16IN T 012IN T 113T014T115P 1 0 / T1P 1 1 / T2P 1 23P 1 34P 1 45P 1 56P 1 67P 1 78P 0 039P 0 138P 0 237P 0 336P 0 435P 0 534P 0 633P 0 732P 2 021P 2 122P 2 223P 2 324P 2 425P 2 526P 2 627P 2 728P S E N29A L E / P30T X D11R X D10U18 0 C 5 2C13 0 p FC23 0 p FX11 2 M H zX1X2V C CR11 0 KC31 0 u FR E S E TP 1 0P 1 1P 1 2P 1 3P 1 4P 1 5P 1 6P 1 7P 2 0P 2 1P 2 2P 2 3P 2 4P 2 5P 2 7P 2 6D0D1D2D3D4D5D6D7R E S E T R X DT X DA L EP S E NIN T 0IN T 1T0T1RDWRX1X2基于 nRF24L01 模块的无线通信系统设计 12 单片 nRF24L01 无线模块 nRF24L01 芯片概述 nRF24L01 是一款新型单片射频收发器件 ,工作于 GHz~ GHz ISM 频段。 内置频率合成器、功率放大器、晶体振荡器、调制器等功能模块 ,并融合了增强型 ShockBurst 技术,其中输出功率和通信频道可通过程序进行配置。 nRF24L01 功耗低 ,在以 6 dBm 的功率发射时,工作电流也只有 9 mA。 接收时,工作电流只有 mA,多种低功率工作模式 (掉电模式和空闲模式 )使节能设计更方便。 nRF24L01 主要特性如下: GFSK 调制 ; 硬件集成 OSI 链路层 ; 具有自动应答和自动再发射功能 ; 片内自动生成报头和 CRC 校验码 ; 数据传输率为 l Mb/s 或 2Mb/s; SPI 速率为 0 Mb/s~ 10 Mb/s; 125 个频道 ; 与其他 nRF24 系列射频器件相兼容 ; QFN20 引脚 4 mm179。 4 mm 封装 ; 供电电 压为 V~ V。 引脚功能及描述 nRF24L01 的封装及引脚排列如图所示。 各引脚功能如下: 基于 nRF24L01 模块的无线通信系统设计 13 图 nRF24L01 封装图 CE:使能发射或接收。 CSN, SCK, MOSI, MISO: SPI 引脚端 , 微处理器可通过此引脚配置 nRF24L01: IRQ:中断标志位 ; VDD:电源输入端 ; VSS:电源地 ; XC2, XC1:晶体振荡器引脚。 VDD_PA:为功率放大器供电,输出为 V; ANT1,ANT2:天线接口 ; IREF:参考电流输入。 工作模式 通过配置寄存器可将 nRF241L01 配置为发射、接收、空闲及掉电四种工作模式,如表所示。 待机模式 1 主要用于降低电流损耗,在该模式下晶体振荡器仍然是工作的 ; 待机模式 2 则是在当 FIFO 寄存器为空且 CE=1 时进入此 模式; 待机模式下,所有配置字仍然保留。 基于 nRF24L01 模块的无线通信系统设计 14 在掉电模式下电流损耗最小,同时 nRF24L01 也不工作,但其所有配置寄存器的值仍然保留。 表 1: nRF24L01 四种工作模式 模式 PWR_UP PRIM_RX CE FIFO 寄存器状态 接收模式 1 1 1 发射模式 1 0 1 数据在 TX FIFO 寄存器中 发射模式 1 0 1→0 停留在发送模式,直至数据发送完 待机模式 2 1 0 1 TX FIFO 为空 待机模式 1 1 0 无数据传输 掉电 0 工作原理 发射数据时,首先将 nRF24L01 配置为发射模式:接着把接收节点地址 TX_ADDR 和有效数据 TX_PLD 按照时序由 SPI 口写入 nRF24L01 缓存区, TX_PLD 必须在 CSN 为低时连续写入,而 TX_ADDR 在发射时写入一次即可,然后 CE 置为高电平并保持至少 10μs ,延迟 130μs 后发 射数据。 若自动应答开启,那么 nRF24L01 在发射数据后立即进入接收模式,接收应答信号(自动应答接收地址应该与接收节点地址 TX_ADDR 一致)。 如果收到应答,则认为此次通信成功, TX_DS 置高,同时 TX_PLD 从 TX FIFO 中清除。 若未收到应答,基于 nRF24L01 模块的无线通信系统设计 15 则自动重新发射该数据 (自动重发已开启 ),若重发次数 (ARC)达到上限, MAX_RT 置高, TX FIFO 中数据保留以便在次重发。 MAX_RT或 TX_DS 置高时,使 IRQ 变低,产生中断,通知 MCU。 最后发射成功时 ,若 CE 为低则 nRF24L01 进入空闲模式 1。 若发送堆栈 中有数据且 CE 为高,则进入下一次发射。 若发送堆栈中无数据且 CE 为高,则进入空闲模式 2。 接收数据时 ,首先将 nRF24L01 配置为接收模式,接着延迟 130μs 进入接收状态等待数据的到来。 当接收方检测到有效的地址和CRC 时,就将数据包存储在 RX FIFO 中,同时中断标志位 RX_DR置高, IRQ变低,产生中断,通知 MCU去取数据。 若此时自动应答开启,接收方则同时进入发射状态回传应答信号。 最后接收成功时,若 CE 变低,则 nRF24L01 进入空闲模式 1。 在写寄存器之前一定要进入待机模式或掉电模式。 如下图,给出 SPI 操作及时序图: 图 SPI 读操作 图 SPI 写操作 配置字 SPI 口为同步串行通信接口,最大传输速率为 10 Mb/s,传输时先传送低位字节,再传送高位字节。 但针对单个字节而言,要先送基于 nRF24L01 模块的无线通信系统设计 16 高位再送低位。 与 SPI 相关的指令共有 8个,使用时这些控制指令由 nRF24L01 的 MOSI 输入。 相应的状态和数据信息是从 MISO 输出给 MCU。 nR。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。