多功能无线鼠标包括无线发射部分和无线接收部分,其中发射部分是关系到其总体性能好坏的关键部分。本系统以nrf24l01为核心构建无线发射模块。nrf24l01是一款新型单片射频收发器件,工作于2.4~2.5 ghz ism频段;内置频率合成器、功率放大器、晶体振荡器、调制器等功能模块,并融合了增强型shockburst技术,其中输出功率和通信频道可通过程序进行配置。nrf24l01功耗低,在以0 dbm的功率发射时,工作电流只有11.3 ma;接收时,工作电流只有12.3 ma;多种低功率工作模式(掉电模式和空闲模式)使节能设计更方便。
多功能无线鼠标是一款使用电池供电的手持设备,功耗是衡量其性能的一个重要标准。本设计所选用的主控芯片是msp430f413,它是一种16位超低功耗的混合信号处理器,在活跃模式下最大电流为350μa,ram数据保持方式下耗电仅0.1μa。光传感器芯片选用adns-5030。这款芯片体积小,功耗低,在工作模式下,它的工作电流最大为17 ma;仅在光传感器工作的时候,led才被点亮,这样会使光传感器的功耗进一步下降(小于1 ma)。
本文在介绍多功能无线鼠标发射部分开发过程的同时,对其设计应用中的注意事项和优化方法作了相应的论述。在设计过程中,多注意细节和优化方法可使设计更加顺利,并为大规模算法提供有效的时间。
1 硬件电路设计
多功能无线鼠标发射部分主要实现光传感器位移、按键键值的采集,并通过无线发射给接收器。主要由控制部分、光传感器部分、鼠标按键和键盘部分以及无线发射部分组成。系统框图如图1所示。
1.1 无线发射部分
无线发射部分是多功能无线鼠标的主要部分,本设计以nrf24l01为核心构建无线发射模块。
nrf24l01具有无条件使用2.4 ghz全球开放ism频段,内置硬件crc检错和一点对多点通信地址控制等特点,数据传输率为2 mb/s,126个频道;能满足多点通信和跳频通信的需要;功耗低,供电电压为1.9~3.6 v,待机模式下工作电流为22μa,掉电模式下仅为900 na。这些是nrf24l01的主要优点。
无线发射部分的电路原理如图2所示。
1.2 电源管理
手持系统对低功耗有较严格的要求。msp430系列单片机有5种低功耗模式。在一定时问内无操作的情况下,可以使其进入某一种低功耗模式,这时的工作电流可以控制在十几μa以下。
对于外围器件,如光传感器和无线发射部分,设置了一个开关,在主控芯片进入低功耗模式之前先切断它们的电源,使系统的功耗进一步降低。而在有操作到来的时候,主控芯片从低功耗模式返回到活跃模式,首先将外围器件的电源开关打开,这样可以保证系统正常工作。低功耗电源控制电路如图3所示。开关由一个pnp型的晶体管构成,基极作为控制信号的输入,发射极为电压输入,集电极为电压输出。控制信号的电平变化可以控制线路上电源的通断。
1.3 光传感器部分
光传感器adns-5030用于鼠标的定位。adns-5030的正常工作电压为3.3 v,在光传感器的设计中需要将电池供电输出的3.0 v电压转换成其所需要的3.3 v电压。电路采用ht7733 芯片来完成电压的转换。adns-5030通过spi总线与主控芯片进行数据通信,其连接方式如图4所示。
1.4 按键与键盘
多功能无线鼠标的按键与普通鼠标的按键功能基本相同,只是将普通鼠标的滚轮(wheel)改成了上下键的设计。这两种设计的功能是相同的。
键盘用于阿拉伯数字、字母以及各种功能键的输入。采用矩阵式的手机键盘,节省了主控芯片的i/o口资源。
2 软件部分设计
2.1 通用i/o模拟spi接口
无线发射芯片nrf24l01和光传感器adns-5030均是采用spi总线与主控芯片进行数据交换的。出于成本考虑,本设计所选用的主控芯片msp430f413内部没有spi总线接口,因此,需要用通用i/o口来模拟spi接口。
用通用i/o口来模拟spi串行接口,必须严格遵守器件spi的总线时序。adns-5030的spi总线时序有几个需要注意的地方:一是spi总线的串行时钟频率应小于1 mhz,若spi总线的时钟频率过高,器件无法在短时间内作出响应,相应的操作也就无法完成;二是adns-5030对spi总线上的时钟信号要求50%的占空比,这种要求并不是针对所有器件的,但对具体提出这种要求的个例,就必须遵循了(实验证明这个结论是正确的,笔者通过在程序中加空指令的方式来填补空缺,使其占空比达到器件的要求);三是spi总线操作中有许多必要的延时,如读操作中写地址和读数据之间需要4μs的延时,程序中若无该延时,就不能执行正常的读写操作。
2.2 无线发射部分
nrf24l01的工作原理如下:发射数据时,首先将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中清除;若未收到应答,则自动重新发射该数据(自动重发已开启),若重发次数(arc)达到上限,max_rt置高,txfifo中数据保留以便再次重发。max_rt或tx_ds置高时,使irq变低,产生中断,通知mcu。发射成功时,若ce为低,则nrf24l01进入待机模式1;若发送堆栈中有数据且ce为高,则进入下一次发射;若发送堆栈中无数据且ce为高,则进入待机模式2。
接收数据时,首先将nrf24l01配置为接收模式,接着延迟130μs进入接收状态等待数据的到来。当接收方检测到有效的地址和crc时,就将数据包存储在rxfifo中,同时中断标志位rx_dr置高,irq变低,产生中断,通知mcu取数据。若此时自动应答开启,接收方则同时进入发射状态回传应答信号。接收成功时,若ce变低,则nrf24l01进入待机模式1。
nrf24l01有发射、接收、待机和掉电4种工作模式,可以通过配置寄存器来设置其工作状态,如表1所列。
待机模式1(standby-i)主要用于降低电流损耗(在该模式下,晶体振荡器仍然工作)。待机模式2(standby-ii)是当fifo寄存器为空且ce=1时进入此模式。待机模式下,所有配置字仍然保留。在掉电模式(powerdown)下电流损耗最小,同时nrf24l01也不工作,但其所有配置寄存器的值仍然保留。
无线发射部分上电初始化时,进行了如下配置:
①config寄存器的低4位置1,分别为16位crc校验,芯片上电和接收模式;
②setup_aw(地址宽度)寄存器配置地址宽度为5字节;
③setup_retr(自动重发)寄存器配置为自动重发延时500μs,重发5次;
④rf_ch(rf频道)寄存器配置为工作频道2 400mhz;
⑤rf_setup(rf设置)寄存器配置为发射功率0 dbm,air data rate为1 mhz;
⑥将地址写入地址寄存器。
在配置寄存器时应注意一点:在写nrf24l01的寄存器时,它必须工作在掉电模式或待机模式。而在nrf24l01上电达到1.9 v以后,要经过10.3 ms的上电复位然后再进入掉电模式。这是一个不确定状态。在此状态下,对寄存器的写操作是无法完成的,因此必须加上一个合适的延时,使程序对nrf24l01的配置操作在掉电模式或待机模式下进行。
当光传感器或按键等有操作时,主控制器将读入的信号写入nrf24l01的tx_pld,然后由芯片自动生成报头和crc校验码,并发送出去。当收到应答信号(ack)后,程序中所设置的标志位success置1,清除tx fifo队列中的数据,可以进行下一次数据的写入了;若未收到应答信号(ack),则标志位success置0,继续重发,且新的数据无法写入。
2.3 读光传感器位移值
读光传感器的位移值,其实就是读它对应的寄存器。在adns-5030的内部寄存器中,地址为0x02的motion寄存器用于表示是否有位移。其最高位若为0,则无位移;最高位若为1,则有位移。另外,使用到的两个寄存器的地址是0x03和ox04的deltax和deltay。这两个寄存器的值分别表示x轴和y轴方向上的位移。最高位表示位移的方向,1为负方向,0为正方向,低7位表示位移量。
如图5所示,首先判断是否有位移,即motion的最高位是否为1。若不为1,则表示没有位移,本次查询结束;若为1,则表示有位移,然后再去读deltax和deltay的值,并将其通过无线发射部分发送出去。
读deltax、deltay寄存器后,寄存器中的值自动清零,但是motion寄存器读后不清零,所以最后需要对motion寄存器的最高位进行清零,以防止在没有位移的情况下,系统也对deltax、deltay寄存器进行扫描,造成不必要的浪费。
另一个需考虑的地方是光传感器的分辨率。在上电复位后,光传感器的分辨率为默认的500cpi(cells perinch),但是实验效果并不好。在调试时,其位移并不明显,后来修改寄存器的值,将其分辨率改为1 000 cpi(只有500 cpi和1 000 cpi两种分辨率),光标的位移效果明显好于分辨率为500 cpi时的效果。由此可见,光传感器的这一属性也是相当重要的。
2.4 读按键与键盘
左右键的设计与普通按键的设汁稍有不同。使用鼠标时可以看到,在按下左键同时拖动鼠标时,可以选中光标移动范围内的选项;同样,右键也具有这样的功能。
在左右键的扫描程序中,当程序扫描到有键按下时(例如左键按下),立刻将所得到的键值发送出去,这时,接收端的左键值一直是处于按下状态的,同时也不耽误光传感器等的扫描;当左键抬起时,再向接收端发送按键抬起的指令,一次左右键的扫描就完成了。这样就可以实现在按下左键同时拖动鼠标时,选中光标移动范围内选项的操作了。
上下键与左键和右键的操作方式不同。在上下键的扫描程序中还应考虑点动和连动这两种不同的情况。点动即为在一定时间内快速按下一个按键,然后立即释放;而按下一个键并延时一段时间再释放,则程序将其识别为连动。
键盘部分设置了20个键,是一个5×4的矩阵,包括“o~9”10个数字键,“上、下、左、右”4个方向键,“←”键,“确定”键,“esc键以及3个快捷键(“显示桌面”、“浏览器”和“我的电脑”)。其中“0~9”10个数字键是复用键,像手机键盘一样,根据一定时间内连击次数的不同,可以输入不同的键值。
结 语
本文所涉及的硬件均在实际中调试通过。实验证明,msp430系列单片机成本较低,在低功耗产品中的应用极为广泛,将会得到广大开发人员的认同。本系统已实现鼠标和手机键盘结合的基本功能,以后仍可以对其功能进行补充,完善多功能无线鼠标的性能。
小米mix2什么时候发布?小米mix2又新增一项黑科技:屏幕内嵌指纹技术
语音模块能给浴室暖气扇带来什么?
计算机控制系统关于工业方面设计过程
单片机也可以轻松玩转UTF-8码和TTF字体了
HarmonyOS 2.0一横一纵赋能全场景生态 未来一年冲击过亿目标
采用2.4GHz射频通信的多功能鼠标设计
三星研发自发光QLED显示技术 意图实现更长的使用寿命
华为正式发布鸿蒙手机操作系统
西门子S7-200SMART输出控制问题
未来一群超级人类将通过基因工程甩开其他人类 最终接管地球?
用线性数字电位器实现对数调节
车灯IC 带过温保护降压型恒流芯片 PT4115
网络时代下 我们该如何界定网络隐私的边界
如何利用无线技术提高采矿效率
森林防火远程监控解决方案,再隐秘的角落也难逃天眼
苹果正在要求供应商增加iPhone产能
路面铣刨机状态监测与运维管理系统
显示技术的变革之路在哪里
大尺寸化显示的趋势显著,55英寸已成为中国彩电市场的主流尺寸
【3D形状分析利器】3D扫描应用案例集分享