APP下载

一种基于AVRUSB的红外遥控键盘设计

2015-12-31李如忠

机械工程与自动化 2015年3期
关键词:数据线接收器遥控器

李如忠

(中国工程物理研究院 电子工程研究所,四川 绵阳 621900)

0 引言

目前个人计算机的输入设备一般为标准的键盘和鼠标,键盘和鼠标通过电缆与计算机主机相连。在多媒体教室或会议室应用计算机时,授课者或会议报告人必须在计算机旁操作演示文稿,使讲授形式受到很大的制约,缺少面对面的交流和活跃的授课气氛,不便于形成台上台下的交流互动。虽然现在有无线接口的鼠标和键盘,但在实际操作中不可能把鼠标和键盘时刻拿在手上。文献[1-3]介绍的基于单片机的简易红外遥控键盘在一定程度上解决了上述问题,但设计的红外遥控键盘是基于PC机的串口或PS/2接口。随着计算机技术的发展,在PC机上串口和PS/2接口逐渐被淘汰,并且基于串口的键盘不支持即插即用,不能通过电缆延长距离。本文利用AVRUSB技术,通过AVR单片机的最小系统和低成本的红外接收器,实现了成本低廉的红外遥控键盘,该红外遥控键盘为USB接口,支持即插即用,与PC机上原来的键盘、鼠标不冲突,还可以通过USB线延长键盘接收部分与PC机主机的距离。

1 AVRUSB技术原理及应用

USB是一种计算机总线技术,在现代计算机上已经是标准配置,大部分的计算机外部设备都是通过USB接口与计算机相连。USB协议详细地规定了各种参数以及数据结构格式,使符合USB协议的USB设备都能很好地相互兼容。由于USB协议的复杂性,大部分的USB设备都是采用专用的USB接口芯片来处理USB协议,而AVRUSB技术是利用AVR单片机代替USB专用接口芯片,使用软件模拟USB专用芯片的功能。由于AVR单片机的速度限制,AVR单片机只能用来模拟低速USB设备,AVRUSB技术中USB的通信端口直接使用单片机的IO口。

在研究AVRUSB技术过程中,很多公司和个人推出一些开源项目,其中比较成功的有Objective公司推出的AVRUSB项目。该项目底层驱动部分采用汇编语言编写,可以提高处理速度,上层的程序接口用C语言编写,并提供了几个简单的接口函数和一个配置文件,便于移植。AVRUSB项目提供了一个用户程序框架,该程序框架经过了长期实践,比较成熟和稳定。在程序框架基础上,利用接口函数可以很容易地实现USB协议,形成各种USB设备接口。

AVRUSB无需专用的USB接口芯片,只需一个普通的8位AVR单片机,再加几个无源器件就可以实现USB设备接口。本文利用AVR单片机Atmega 8的最小系统和一个普通的红外接收传感器,组成了红外遥控键盘的USB接收器,配合简单的红外遥控器构成了一个简单的红外遥控键盘,可实现多媒体教室和会议室中演示文稿的操作以及其他用途。

2 红外遥控键盘的硬件设计

本文设计的红外遥控键盘,发射端使用市面上常见的简单红外遥控器,如图1所示。接收端由Atmega 8的最小系统和红外接收器(VS1838)组成,这些器件可以封装在类似U盘大小的空间里,红外遥控键盘接收器电路图如图2所示。

AVRUSB的硬件非常简单,主要由Atmega 8位单片机、单片机时钟电路、稳压二极管和几个电阻等构成。单片机时钟电路由12MHz晶体和两个22pF电容(C2、C3)组成。

图1 红外遥控器

在USB规范中规定,低速USB设备必须在数据线D-与电源之间连接一个1.5kΩ的电阻(R4)。USB的数据线连接在单片机的IO端口上,IO端口可以是任意同名的IO端口,连接的端口名在配置文件中通知底层驱动,本设计中使用的是PB1和PB0端口。数据线D+还需要连接到外部中断接口上,因为底层驱动程序需要利用中断处理数据。

图2中的电阻R2、R3是为了限制USB设备的电流,起到限流保护作用,防止计算机的USB端口被损坏。单片机的电源由计算机的USB端口提供,USB规范中规定数据线上的电平为3.0V~3.6V,而单片机IO端口上的电平与计算机USB端口的电平相同,为5V。由于USB数据线上的电平与单片机IO端口的电平不匹配,会造成USB设备无法被识别。因此,在数据线上的稳压二极管D1和D2将单片机IO端口的电平限制在3.6V以下,使USB数据线上的电平符合USB规范。

图2 红外遥控键盘接收器电路图

红外接收器上有3个引脚,分别为Vout、GND、Vcc,将Vout接到单片机的任意IO口上,GND接地,Vcc接到+5V上。

上面的硬件就组成了一个USB红外接收系统,通过软件处理遥控器发射红外信号。

3 红外接收原理

红外遥控器作为发射端需要把二进制脉冲码调制到特定的频率上,即载波频率,通过调制增强了信号的抗干扰能力。红外发射端发射的是红外光信号,接收端接收到遥控器发射的红外信号后,必须把其转换为电信号,再经放大、滤波、整形和解调,从载波频率信号中还原出遥控器发射的原始二进制脉冲码,最后通过单片机的IO端口传送给单片机处理程序。

遥控器的编码方式采用NEC协议,NEC协议传输的是8位地址码和8位命令码,采用脉冲位置调制,载波频率为38kHz,当二进制码位为1时,先发射560μs的高电平,接着为1.69ms的低电平,总时间为2.25ms;当二进制码位为0时,先发射560μs的高电平,接着为560μs的低电平,总时间为1.12ms,如图3所示。

图3 逻辑1和逻辑0的定义

一个消息是由一个9ms的高电平开始,随后有一个4.5ms的低电平,这两段电平组成引导码,然后是地址码和命令码。地址码和命令码传输两次,第二次所有位都取反,可用于对所收到的消息进行校验。消息传输时序图如图4所示。

图4 消息传输时序图

脉冲波形进入一体化接收器以后,因为接收器要进行解码、信号放大和整形,在没有红外信号时,接收头输出端为高电平,有信号时为低电平,故其输出信号电平正好与发射端相反。

4 红外遥控键盘接收软件设计

4.1 AVRUSB软件设计

AVRUSB软件设计主要由HID(Human Interface Device-人机接口设备)报告描述符、系统硬件设置定义和USB事件处理3部分组成[4]。

红外遥控键盘接收器作为USB HID设备与PC机通信,HID设备以报告形式与PC机间进行数据传输,数据传输的组织形式和性质通过报告描述符方式进行定义。在AVRUSB程序框架下,完成HID描述符和报告描述符的枚举。在AVRUSB相关网站上提供了一些开源的实例作为参考,其中就有HID的实例。

由于AVRUSB是开源项目,并且AVRUSB提供了一个成熟的用户程序框架,在使用时可以不需改动AVRUSB底层驱动部分,只需要以usbconfig-prototype.h文件为模板生成usbconfig.h文件。该文件描述了系统硬件结构,主要包括硬件IO端口的选择、USB数据线的定义、设备生产商ID以及产品ID等。

USB事件处理是AVRUSB程序框架的主程序,它由一个固定结构组成,基本不需要过多改动,只需要添加扫描遥控键盘信息,如果收到红外信号并解码成功,就通过USB中断消息,发送报告数据给上位机。

4.2 红外扫描解码软件设计

红外扫描解码软件主要是对红外接收器接收到的红外信号根据其时序进行严格的解码,然后将从编码脉冲信号中提取出来的功能码解析为对应普通键盘的键值,再把按键键值发送给上位机。该红外遥控键盘如果只用在多媒体教室或会议室时,实际上只实现两个键值反馈就可以了,主要是Pagedown和PageUp键。红外扫描解码软件流程见图5。

5 红外遥控键盘的使用

由于红外遥控键盘是USB设备,支持即插即用,并且红外遥控键盘为标准的HID键盘设备。HID类USB设备是windows操作系统内置驱动支持的USB设备,应用程序可以直接调用操作系统提供的驱动程序。所以,在windows操作系统下,不需要另外安装驱动程序,并且和计算机上原来的键盘、鼠标不发生冲突。

图5 红外扫描解码软件流程图

6 结束语

本文所设计的红外遥控键盘接口电路非常简单,成本低廉,遥控距离远,安装容易,无需安装驱动,支持即插即用,工作稳定,功耗极低,无需外接电源,能很好地满足使用要求,而且可以根据实际扩充按键的个数满足相应的需求。另外,利用AVRUSB技术的遥控键盘设计方法还可以应用在其他USB控制领域。

[1]潘小琴.基于单片机的简易红外遥控键盘研究[J].宁波职业技术学院学报,2007(2):52-54.

[2]王清辉.基于红外PS/2键盘的设计与实现[J].龙岩学院学报,2008(6):24-27.

[3]洪刚,潘小琴.一种简易红外遥控键盘的设计[J].重庆科技学院学报,2008(4):103-104.

[4]刘景文.基于AVRUSB的USB小键盘设计[J].天津职业院校联合学报,2012(5):96-98.

猜你喜欢

数据线接收器遥控器
我是“糊涂虫”
时间遥控器
爸妈有个“遥控器”
行走的飞行遥控器
JXG-50S型相敏轨道电路接收器自动测试台
第三方编织数据线材质更抗拉、更耐用
数据线接口超声波焊接设备设计
会叫唤的数据线
ZPW-2000A轨道电路接收器冗余电路存在问题分析及对策
IDT推出超紧凑型无线电源接收器,可节省70%板面积