由nRF24Ex构成的单片2.4GHz无线鼠标
扫描二维码
随时随地手机看文章
来自Nordic VLSI ASA的nRF24E1和nRF24E2(本文统称为nRF24Ex)使设计一个2.4GHz ISM波段的3键3轴无线鼠标单片解决方案成为可能。nRF24Ex系列芯片内置8051微控制器、一个9通道ADC和与流行的 nRF2401/nRF2402芯片一样的RF部分。nRF24Ex系列可以在1.9V到3.6V电压范围内工作,因此特别适用于由电池供电的产品的应用。本文介绍怎样利用nRF24Ex系列芯片制作3键3轴无线鼠标。
2.设计方案
图1. nRF24Ex在3键3轴无线鼠标设计中的应用
2.1 RF部分
如图3原理图所示,RF部分的设计以可从www.nvlsi.no网站下载的nRF24Ex参考设计作为参考。该设计用16MHz晶振、一个作为固件存储器的外部EPROM。EPROM作为固件存储器。固件用ShockBurst技术从鼠标发送数据包。ShockBurst技术用来最大限度减小每发射一位数据的电流消耗,从而延长电池的寿命。如果想进一步了解ShockBurst技术可以参考 nRF24Ex的数据手册或者可以从www.nvlsi.no网站下载相关资料。
2.2无线鼠标基础
无线鼠标和标准鼠标具有一样的基本功能。不同的是无线鼠标用无线电信号传输数据到主机而不是用电缆。这意味著无线鼠标收集移动和按键信息的方式和老式有线鼠标是一样的。本文以一个使用滚球的鼠标作为例子。该鼠标每个键有一个开关、一个滚球和若干用来测量移动的滚轴。滚轴其实是一个刻有光槽的转轮,它可以对每一步移动作出响应输出波形。因为无线鼠标用电池供电所以应该注意尽量省电。因此往主机发射更新数据的次数越少越好(移动或者点击时60-100次/ 秒)。
2.3 无线鼠标的光学结构
如图2所示,因为鼠标中有光学机构,所以IR-LED(红外发光二极管)经过转轮照在两个光电三极管上。转轮随著鼠标的圆形滚轴转动。经过转轮的光线照在两个接成源极跟随器的光电三极管上。从IR-LED(红外发光二极管)发出的光会使光电三极管处于开状态。
转轮阻挡红外光线使光电三极管开和关从而输出方波。输出波形每变化一次代表鼠标移动的一次计数。比较光学结构的当前和下一个状态就可得知鼠标移动的方向。
图2. 从IR-LED(红外发光二极管)面看鼠标的光学结构
2.4 无线鼠标的按键
每个鼠标按键就是一个标准的开关,各个开关直接与nRF24Ex芯片的GPIO 引脚相连。GPIO引脚设置为输入端由外部上拉电阻上拉。-----固件按键按下时间应在15-25ms-----。本设计有3个键∶左键、中间键和右键。
2.5 原理图
图3显示怎样把光学机构、按键与标准nRF24Ex芯片外带一个EPROM连接起来,制作成一个2.4GHz无线鼠标。
3.电池寿命
本节内容包括电流消耗的计算和一个怎样实现省电的例子。
3.1 省电
无线鼠标中最耗电的器件不是RF部分而是光学装置中的红外发光二极管。因此在保证我们想要实现的鼠标功能的同时使LED(发光二极管)点亮时间尽量短、熄灭时间尽量长是很重要的。为了达到这个目的我们定义了3种不同的状态为LED施加脉冲。
状态1∶该状态设置在鼠标正在移动需要最精确测量的时候。在该状态下tledon=10us,tledoff=200us并且累计鼠标移动的总量每隔10ms发送一次数据给主机PC。
状态2∶该状态设定在最近还在使用但目前处于静止的时候。在该状态tledon=10us,tledoff=25000us。使用者不会注意到鼠标再次使用时的短暂延迟。在状态1时如果鼠标在5ms内没有动作则进入状态2。处在状态2时当检测到鼠标移动时鼠标从状态2进入状态1。
状态3∶一段时间内没有用鼠标後鼠标将进入该状态。tledon=10us, tledoff=100000us。在该模式下意味著使用者已长时间没有使用鼠标,不会注意到鼠标移动到光标处的延迟,在该状态下当检测到鼠标移动时鼠标应立即进入到状态1。从状态2进入状态3应有1-2分钟间隔。
3.2 计算电流消耗
点亮时每个IR-LED(红外发光二极管)耗电10mA。nRF24Ex在活动状态耗电3 mA,在省电状态下耗电2uA,当处于发送ShockBurst数据包的时候外加10.5mA。除了发送ShockBurst数据包时我们假设IR- LED(红外发光二极管)熄灭时nRF24Ex处于待命状态。这样各个状态下的平均电流消耗可以用方程1计算。
方程1 平均电流消耗
对状态2和状态3的平均电流消耗可以直接计算出来∶
方程2 状态2的平均电流消耗
方程3 状态3的平均电流消耗
对状态1我们必须加上ShockBurst发送的电流消耗。如前面所设定的当鼠标处于移动状态时每10ms必须发送一次数据。我们假设一个鼠标数据包包含 124位数据。这就是说nRF2401将用124us时间以1Mbit/s速度发送该数据包。另外还有202us的数据建立时间。这意味著一次 ShockBurst发送将在326us内消耗10.5mA的电流外加微控制器使用的3mA。把这代入给出的方程∶
方程4 状态1的平均电流消耗
3.3 电池寿命例子
计算电池预期寿命需要用到典型的使用者怎样使用鼠标的统计材料。这个例子不是基于统计模型仅是一个介绍怎样计算电池寿命的例子。
我们假设电池容量为1000mAh并且假设典型的使用者每天把鼠标置于状态1 的时间为20分钟,置于状态2的时间为120分钟,其馀时间置于状态3。这就得出了总电流消耗为∶
方程5 总的平均电流消耗
电池寿命由下式给出∶
方程6 计算电池寿命
在激活模式工作时使用4MHz晶振代替16MHz晶振可以把nRF24Ex的电流消耗从3mA降低到1.6mA。虽然这样会导致RF连接速度从 1Mbit/s 降低到250Kbit/s但它有延长电池寿命的好处。用这些数据进行同样计算可得∶
方程7 用4MHz晶振时总的电流消耗
方程7 用4MHz晶振时总的电池寿命