首 页文档资料下载资料维修视频包年699元
请登录  |  免费注册
当前位置:精通维修下载 > 文档资料 > 电子技术 > 通信与网络
基于2.4 GHz射频通信的多功能鼠标设计
来源:本站整理  作者:佚名  2010-06-27 10:09:23




1.2 电源管理
    手持系统对低功耗有较严格的要求。MSP430系列单片机有5种低功耗模式。在一定时间内无操作的情况下,可以使其进入某一种低功耗模式,这时的工作电流可以控制在十几μA以下。
    对于外围器件,如光传感器和无线发射部分,设置了一个开关,在主控芯片进入低功耗模式之前先切断它们的电源,使系统的功耗进一步降低。而在有操作到来的时候,主控芯片从低功耗模式返回到活跃模式,首先将外围器件的电源开关打开,这样可以保证系统正常工作。低功耗电源控制电路如图3所示。开关由一个PNP型的晶体管构成,基极作为控制信号的输入,发射极为电压输入,集电极为电压输出。控制信号的电平变化可以控制线路上电源的通断。


1.3 光传感器部分
    光传感器ADNS-5030用于鼠标的定位。ADNS-5030的正常工作电压为3.3 V,在光传感器的设计中需要将电池供电输出的3.O V电压转换成其所需要的3.3 V电压。电路采用HT7733芯片来完成电压的转换。ADNS-5030通过SPI总线与主控芯片进行数据通信,其连接方式如图4所示。


1.4 按键与键盘
    多功能无线鼠标的按键与普通鼠标的按键功能基本相同,只是将普通鼠标的滚轮(wheel)改成了上下键的设计。这两种设计的功能是相同的。键盘用于阿拉伯数字、字母以及各种功能键的输入。采用矩阵式的手机键盘,节省了主控芯片的I/O口资源。

2 软件部分设计
2.1 通用I/O模拟SPl接口
    无线发射芯片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] [2] [3] 

关键词:

文章评论评论内容只代表网友观点,与本站立场无关!

   评论摘要(共 0 条,得分 0 分,平均 0 分)
Copyright © 2007-2017 down.gzweix.Com. All Rights Reserved .
页面执行时间:64,609.38000 毫秒