天线|RF射频
直播中

谢芳芳

7年用户 138经验值
私信 关注
[问答]

基于nRF24E1的无线键盘应用

作者:郑启忠 朱宏辉 耿四军

nRF24E1 收发器是Nordic VLSI推出的系统级射频芯片。采用先进的0.18μm CMOS工艺、6×6mm的36引脚 QFN封装,以nRF2401 RF芯片结构为基础,将射频、8051MCU、9输入10位ADC、125通道、UART、SPI、PWM、RTC、WDT全部集成到单芯片中,内部有电压调整器(工作电压1.9~3.6V,推荐工作电压为3.3V)和VDD电压监视,通道开关时间小于200μs,数据速率1Mbps,最大射频输出分贝数 0dB,不需要外接SAW(声表)滤波器。nRF24E1是全球最早推出且全球通用的收发频段为2.4GHz的、完整的低成本射频系统级芯片。适用于无线键盘和鼠标、无线手持终端、无线频率识别、数字视频、遥控和汽车电子及其他短距离无线高速方面的应用。




回帖(4)

洪子云

2019-7-22 15:24:11
1 nRF24E1简介

1.1 微处理器

nRF24E1微处理器的指令系统与工业标准8051的指令系统兼容,但二者的指令执行时间稍有不同。通常,nRF24E1的每条指令执行时间为 4~20个时钟周期,而工业标准8051的每条指令执行时间为12~48个时钟周期。nRF24E1比工业标准8051增加了ADC、SPI、RF接收器 1、RF接收器2和唤醒定时器5个中断源;3个与8052一样的定时器。nRF24E1内含有1个与8051相同的UART,在传统的异步通信方式下,可用定时器1和定时器2作为UART(串口)的波特率发生器。为了便于和外部RAM区进行数据传递,nRF24E1的CPU还集成2个数据指针,其微控制器的时钟直接来源于晶振。nRF24E1功能模块图如图1所示。



微处理器中有256B的数据RAM和512B的ROM。上电复位或软件复位后,处理器自动执行ROM中引导区中的代码。用户程序通常是在引导区的引导下,从E2PROM加载到1个4KB的RAM中(该RAM也可作存储数据用)。如果应用中不用掩膜ROM(即内含的ROM),程序代码必须从外部非易失性存储器中加载。比较常见的是通过SPI接口扩展E2PROM,型号推荐为25320。

与标准8051相比,因nRF24E1的微控制器增加了一些新的功能,因此也相应地增加了一些特殊功能寄存器来对这些新增的功能进行控制。新增的特殊功能寄存器有RADIO(P2)、ADCCON、ADCDATAH、ADCDATAL、ADCSTATIC、PWMCON、PWMDUTY等。 nRF24E1的微控制器中,P0和P1口的寄存器也和标准8051的有所不同,其他特殊功能寄存器与标准8051的相同。
举报

曾佳宁

2019-7-22 15:24:21
1.2 PWM和SPI接口

nRF24E1有一个可编程控制的PWM输出,使用时,通过程序可改变DIO9(即P0.7)的功能,并可编程决定PWM工作于6位、7位或8位。

SPI的3个口与GPIO(DIN0、DIO0、DIO1)和RF收发器重用。SPI硬件不产生任何片选信号,通常,用GPIO的位(P0口)作为外部SPI设备的片选口。

1.3 RTC唤醒定时器、WTD和RC振荡器

nRF24E1内有一个低功耗的RC振荡器,当VDD≥1.8V时,可连续工作,和应用程序无关。RTC唤醒定时器和WTD(看门狗)为2个16位可编程定时器,它们的工作时钟为RC振荡器的LP_OSC。唤醒定时器和看门狗的定时时间约为300μs~80ms,默认值为10ms。

1.4 A/D转换器

nRF24E1内有9通道10位ADC,线性转换时间为每10位48个CPU指令周期。A/D转换器的9个输入可通过软件进行选择,通道0~7可以把对应引脚AIN0~AIN7上的电压值转换为数字值,通道8用于对nRF24E1工作电压的监控。A/D转换器默认工作于10位方式,可通过软件使其工作于 6位、8位或12位方式。

1.5 无线收发器

nRF24E1收发器通过内部并行口或内部SPI口与其他模块进行通信,其功能与单片射频收发器nRF2401相同。DuoCeiver接收器输出的数据准备信号,可通过程序使其成为微处理器的中断信号或通过GPIO口传给CPU。nRF2401工作于全球开放的2.4G~2.5GHz频段。收发器由1个完整的频率合成器、1个功率放大器、1个调节器和2个接收器组成。输出功率、频道和其他射频参数可通过对特殊功能寄存器RADIO(0xA0)编程进行控制。发射模式下,射频电流消耗仅为10.5mA,接收模式下为18mA(可通过程序控制收发器的开/关来节能)。

2 无线键盘的基本知识

无线键盘使用无线的方式在键盘与PC间进行通信,其中的无线模块一般用射频技术或蓝牙技术来实现。由于蓝牙技术协议复杂、成本高和开发周期长,所以,目前的许多无线键盘都是用射频技术来实现无线连接。在射频领域,挪威Nordic VLSI公司的射频芯片的性能非常出众,其产品主要有nRF401系列、nRF903系列、nRF2401系列和nRF24E1系列。本文介绍的即是采用 nRF24E1来实现无线键盘的设计方法。

无线键盘大部分都由电池供电,所以需要用到许多节能技术。基于节能的目的,许多无线键盘没有使用有线键盘上的“Num Lock”、“Caps Lock”、“Scroll Lock”这3个LED指示灯。另外,无线键盘应该合理有效地使用RF模块,从键盘到PC的RF数据包可能包含多达8个的击键信息。键盘扫描矩阵约每秒钟扫描500次,一般每个扫描周期内,所检测到的击键不多于1个。因为人感觉不到150ms的检测延时,所以,当键盘检测到1个击键和发送RF数据包到PC 后,可以空闲150ms以上的时间,直到有下一个按键被按下,这样可以尽量减少RF模块的工作时间[2]。

对于只需要发送数据的键盘,使用nRF24E2即能满足一般键盘的需要。如果要求键盘不仅能够发送信息而且还要接收PC机反馈信息,则需要使用nRF24E1来做键盘中的无线模块。双向收发更利于实现密码编制、数据包重发和当系统关闭时键盘处于节能状态。
举报

庄当甜

2019-7-22 15:24:28
3 nRF24E1在无线键盘中的应用

3.1 键盘扫描矩阵

nRF24E1与无线键盘的接口方式如图2所示。普通PC键盘的按键是104个,而图2所示的键盘矩阵为8行20列,最多可定义160个按键开关。设计过程中,其中的某些按键可以不进行定义。每个按键布置在行列交接处,当按键被按下时,与该按键相接的行和列即被短接。为了进行键盘矩阵扫描,nRF24E1按时序把列扫描信号送到移位寄存器。列扫描信号由1个“0”和19个“1”组成,“0”在移位寄存器中逐位往后移,每移动1次,键盘行的状态就被扫描1次。如果此列的某按键被按,则与该按键相对应的行值为“0”,其他的为“1”。



在键盘扫描的过程中,按键可能会出现抖动,因此编写软件时应该考虑到去抖动问题。常用的去抖动方法:一旦系统检测到某按键被按下,则延时30~50ms后再去检测该按键。如果此时检测到的该按键状态还是被按下状态,就把该按键当作被按下一次处理。

3.2 系统软件

nRF24E1有4KB的片内RAM,这对于键盘软件已经够用。系统上电后,E2PROM中的程序自动下载到该4KB的RAM中,MCU即可直接对RAM中的代码进行读写。

键盘软件的功能:

(1)提供移位寄存器所需要的列扫描信息。
(2)读出行扫描值。
(3)检测按键被按下和去抖动。
(4)发送扫描到的被按下按键的信息到PC。
(5)节能状态循环。

无线键盘应该使用节能技术以延长电池的寿命。nRF24E1片内nRF2401的ShockBurstTM技术是为用户节能设计的,所以设计人员在编写软件时可以不考虑节能问题。但是,设计人员应该考虑在系统空闲时怎样进一步减小电流。

nRF2401的晶振为16MHz时,其片内的8051内核工作电流为3mA。由于键盘是周期性工作的,相对工作时间来说,键盘的空闲时间很长。所以,当键盘不工作时,有必要把片内8051设为空闲状态,且片内8051空闲状态的工作电流只有2μA,用此来减小电池消耗。系统在空闲状态和工作状态时的任务分述如下。

空闲状态:

(1)完成所有的键盘扫描(约需要0.5ms)。
(2)如果有按键被按下,则进入工作状态。
(3)把8051设为空闲状态,同时RTC的唤醒时间设为20ms。
(4)空闲状态循环。

工作状态:

(1)每秒钟扫描键盘500次。
(2)发送所有的按键信息给PC。
(3)如果10秒钟内没有按键被按下,则进入空闲状态。
(4)工作状态循环。

一般来说,按照上述方法考虑电池节能的问题,可以使电池的寿命提高约40倍。所以,在系统软件设计时,进行电池节能的考虑至关重要。
举报

高媛

2019-7-22 15:24:30
4  结  论

实践证明,nRF24E1非常适合用来实现无线键盘与PC机之间的通信,其优点:

(1)nRF24E1内嵌8051,更易于减小体积。
(2)采用了ShockBurstTM技术,使编程更方便。
(3)更易于实现安全的键盘信息发送。
(4)2.4GHz的收发频段为全球开放频段。
(5)电池监管更方便,并且功耗低。
(6)nRF24E1具有的GPIO使得扩展其他功能,如LED指示等更加容易。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分