系统级RF收发芯片nRF24E1及其在无线键盘中的应用
时间:10-15
来源:便携式产品设计
点击:
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倍。所以,在系统软件设计时,进行电池节能的考虑至关重要。
4 结 论
实践证明,nRF24E1非常适合用来实现无线键盘与PC机之间的通信,其优点:
(1)nRF24E1内嵌8051,更易于减小体积。
(2)采用了ShockBurstTM技术,使编程更方便。
(3)更易于实现安全的键盘信息发送。
(4)2.4GHz的收发频段为全球开放频段。
(5)电池监管更方便,并且功耗低。
(6)nRF24E1具有的GPIO使得扩展其他功能,如LED指示等更加容易。
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倍。所以,在系统软件设计时,进行电池节能的考虑至关重要。
4 结 论
实践证明,nRF24E1非常适合用来实现无线键盘与PC机之间的通信,其优点:
(1)nRF24E1内嵌8051,更易于减小体积。
(2)采用了ShockBurstTM技术,使编程更方便。
(3)更易于实现安全的键盘信息发送。
(4)2.4GHz的收发频段为全球开放频段。
(5)电池监管更方便,并且功耗低。
(6)nRF24E1具有的GPIO使得扩展其他功能,如LED指示等更加容易。
- 基于nRF24E1无线耳麦的设计与实现(03-17)