微波EDA网,见证研发工程师的成长!
首页 > 通信和网络 > 通信网络技术文库 > 基于2.4 GHz射频通信的多功能鼠标设计

基于2.4 GHz射频通信的多功能鼠标设计

时间:06-12 来源:EDN 点击:

点地址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时进入此模式。待机模式下,所有配置字仍然保留。在掉电模式(Power Down)下电流损耗最小,同时nRF24L01也不工作,但其所有配置寄存器的值仍然保留。

  无线发射部分上电初始化时,进行了如下配置:

①CONFIG寄存器的低4位置1,分别为16位CRC校验,芯片上电和接收模式;
②SETUP_AW(地址宽度)寄存器配置地址宽度为5字节;
③SETUP_RETR(自动重发)寄存器配置为自动重发延时500μs,重发5次;
④RF_CH(RF频道)寄存器配置为工作频道2400MHz;
⑤RF_SETUP(RF设置)寄存器配置为发射功率O dBm,Air Data Rate为1 MHz;
⑥将地址写入地址寄存器。

  在配置寄存器时应注意一点:在写nRF24L01的寄存器时,它必须工作在掉电模式或待机模式。而在nRF24L01上电达到l.9 V以后,要经过10.3 ms的上电复位然后再进入掉电模式。这是一个不确定状态。在此状态下,对寄存器的写操作是无法完成的,因此必须加上一个合适的延时,使程序对 nRF24L01的配置操作在掉电模式或待机模式下进行。

  当光传感器或按键等有操作时,主控制器将读入的信号写入nRF24L01的TX_PLD,然后由芯片自动生成报头和CRC校验码,并发送出去。当收到应答信号(ACK)后,程序中所设置的标志位success置1,清除TX FIFO队列中的数据,可以进行下一次数据的写入了;若未收到应答信号(ACK),则标志位success置O,继续重发,且新的数据无法写入。

  2.3 读光传感器位移值

  读光传感器的位移值,其实就是读它对应的寄存器。在ADNS-5030的内部寄存器中,地址为Ox02的Motion寄存器用于表示是否有位移。其最高位若为O,则无位移;最高位若为1,则有位移。另外,使用到的两个寄存器的地址是Ox03和Ox04的DeltaX和DeltaY。这两个寄存器的值分别表示X轴和Y轴方向上的位移。最高位表示位移的方向,1为负方向,O为正方向,低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 读按键与键盘

  左右键的没计与普通按键的设计稍有不同。使用鼠标时可以看到,在按下左键同时拖动鼠标时,可以选中光标移动范围内的选项;同样,右键也具有这样的功能。

在左右键的扫描程序中,当程序扫描到有键按下时(例如左键按下),立刻将所得到的键值发送

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top