APP下载

基于USB的无线鼠标的设计

2016-12-31李彦鹏

移动信息 2016年5期
关键词:串口数据包端口

李彦鹏



基于USB的无线鼠标的设计

李彦鹏

张家口市人民防空办公室,河北 张家口 075000

鼠标自1968年诞生以来,已经经历过四十多年的演变和发展。近十年来,随着消费型电脑的普及,鼠标的工作方式也有了翻天覆地的进步。研究将论述一种把PS2鼠标改变成无线鼠标的方法,根据鼠标的工作原理和协议,利用老旧的PS2鼠标和2.4GHz的无线收发模块,配合PCUSB口,来实现一款简易的无线USB口鼠标。

USB;无线;鼠标

随着人们对办公环境和操作便捷性要求日益增高,无线鼠标普及也被提到日程上来。研究在鼠标与电脑接口间用发射和接收电路代替了鼠标线,根据鼠标的工作原理和协议,利用老旧的PS2鼠标和2.4GHz的无线收发模块,配合PCUSB口,实现了一款简易的无线USB口鼠标[1]。

1 设计思路

1.1 发射部分

发射部分电路主要由AVR单片机ATMEL Mega8(以下简称为Mega8)和315M发射模块组成。Mega8是一款高性能、低功耗单片机:采用先进RISC精简指令,1MHz时钟能达到近1MIPS的运算速度;内部集成了较大容量的存储器和丰富的硬件接口电路,自带RC振荡电路可代替晶振;价格与低档单片机相当,性价比极高。在这里,Mega8主要完成PS2接口鼠标的控制与数据获取,并通过315M发射模块发送位移数据[2]。

1.2 接收模块

接收部分电路主要由接收模块和cp2102组成,其中LED用于指示无线信号的接收解调情况,有数据接收时LED应闪亮。Silicon Laboratories公司推出的USB接口与RS232接口转换器CP2102/CP2103是一款高度集成的USB-UART桥接器,提供一个使用最小化元件和PCB空间来实现RS232转换USB的简便解决方案。

1.3 异步串行数据总线(UART)接口

CP2102/CP2103 UART接口包括TX (发送)和RX(接收)数据信号以及RTS、CTS、DSR、DTR、DCD和RI控制信号。UART支持RTS/CTS、DSR/DTR和X-On/X-Off握手[3]。

通过编程设置UART,支持各种数据格式和波特率。在PC机的COM端口编程设置UART的数据格式和波特率。

2 软件设计

鼠标的工作模式有四种,分别为Reset模式,Wrap模式,Remote模式和Stream模式。前两种作为测试用,Remote模式为主机有需要时,发送命令使鼠标回送位移数据,Stream模式是上电的初始模式,每当鼠标产生位置或者按键状态的改变就自动发送数据。显而易见,第四种模式是最合适的。在正常读取鼠标数据前只需发送命令(0xF4),此命令告知鼠标,主机已经准备完毕,可以接受位移数据。

无线鼠标软件流程如下:

(1)Mega8自身初始化,并通过0xF4命令告知PS2鼠标准备完毕;

(2)等待PS2鼠标回送位移数据:Mega8利用中断按Bit进行数据读取,每读取一个数据包,进行正确性验证,然后根据无线发射模块的发射特性,在数据包头尾分别添加0xAA与0x55封装成新的数据包,并通过UART端口将位移数据进行发送;

(3)接收模块接收的数据通过CP2102,将数据传送至USB口,PC软件进行解释并转换为鼠标的运动轨迹。

3 制作方法

本无线鼠标的制作方法与要点:

(1)由于单片机串口不发送数据时为高电平,因此将模块中比较小的一个贴片三极管改为PNP型三极管,例如8550、9012等。经这样改造后,发射模块仅在发送低电平数据时才产生315M的调制信号,尤其是符合了串口低电平起始位的特点,并且节省了相当一部分的功耗。

(2)研究发现部分接收模块的输出信号总在1/2VDD附近,这样的信号必然不能被单片机的串口所正确接收,通过分析,将LM358后一级放大器的IN+与IN-之间的电阻(R11)去掉,效果就比较满意了:没有接收信号时为低电平,接收到信号时为高电平。当然,不同接收模块性能不尽相同,如果读者在制作时候遇到此类现象,不妨可以试试此方法。

(3)发射模块和接受模块的天线可以选用(1/4λ)23.8 cm左右的硬质的铜线,在铅笔上缠成螺旋形并适当拉长即可。天线有一定的方向性,这与接收到的信号强弱有很大的关系。

(4)由于本代码未涉及精确的延时,对AVR熔丝位编程时选择使用内部RC振荡8M即可。

AVR系列单片机与51系列的单片机端口结构不同,它的输入输出的转换需要通过修改寄存器(DDRx)来实现。因此读写时需分清端口的方向。在本电路中,只用了PD3(接PS2的CLK)和PD4(接PS2的DATA)两个端口,利用PD3检测PS2的时钟下降沿产生中断,并按Bit读取PS2的串行数据。当然读者也可以进行修改以适用更加小巧的AVR单片机甚至贴片封装的单片机。

4 驱动下载

当CP2102转换器与主机连接后,必须根据操作系统选择相对应的虚拟串行口驱动程序。不必修改设备的应用程序,就像存取一个标准的物理串口一样访问该虚拟串口,端口设备会产生“CP2102 USB to UART Bridge Controller(COM×)”的新端口(×随计算机的配置而异),此时说明驱动程序安装成功。

5 结论

研究利用Mega8完成了鼠标移动数据的读取与PC机通信数据的传送,其实质为PS/2到TTL232协议的转换,有兴趣的读者可以使用更加小巧、低电压的芯片进行改造,使结构更加合理,外观更加美观。笔者将包含鼠标定位点的串口数据包使用无线收发模块为媒介,实现了无线数据传送和接受,从而完成了无线鼠标的制作,从通用性和易用性上说,具有广泛的应用价值。

[1]刘海成.AVR单片机原理及测控工程应用[M].北京:北京航空航天大学出版社,2008(04):364-374.

[2]求是科技.单片机典型模块设计实例导航[M].第二版.北京:人民邮电出版社,2009(09):362-368.

[3]白智涛,赵莉,姜红梅.基于PS/2接口的无线鼠标[J].无线电工程,2000(06):13-14.

TP334.2

A

1009-6434(2016)05-0069-01

猜你喜欢

串口数据包端口
二维隐蔽时间信道构建的研究*
基于NPORT的地面综合气象观测系统通信测试方法及故障处理
一种有源二端口网络参数计算方法
一种端口故障的解决方案
民用飞机飞行模拟机数据包试飞任务优化结合方法研究
基于API函数库实现串口数据通信的分析与设计
基于EM9000工控板高性能双串口通信模型设计与实现
多按键情况下,单片机端口不足的解决方法
现有网络架构及迁移方案
C#串口高效可靠的接收方案设计