龚国友
(成都电子机械高等专科学校 通信工程系,成都 610071)
在现代教学工作和演讲中,教室和演讲厅基本都采用PPT等多媒体方式进行讲解与演示,使课程或演讲内容丰富、讲解生动。但是在演讲过程中因为使用计算机鼠标,使得演讲人操作不便,影响效果。计算机遥控鼠标或无线电子教鞭油然而生,本设计是基于单片机技术的红外线PC遥控器,即利用单片机设计一个功能简单的嵌入式USB外设[1],将其与PC机连接,通过USB接口实现PC机与外设之间的相互通信。
在红外无线电子教鞭和遥控鼠标技术方面,国内外已经有各种较成熟的技术,包括2.4 GHz无线电、27 MHz无线电、蓝牙无线等各种无线鼠标。但红外线无线遥控鼠标还是比较少,笔者所研制的红外线无线遥控器就是基于红外的数据传送与单片机相结合的产物。
实现计算机鼠标的所有功能:1)遥控器控键为:左键、右键、上下左右移动键、前后翻页等功能键;2)遥控距离大于15 m,方向360°。
设计方案由发射电路和接收电路2部分组成,发射电路部分用红外发射芯片编码,接收部分用单片机解码(见图1),并用 PDIUSBD12芯片[2]功能实现USB接口与PC的通信。
接收电路选取STC89C52,它有64 kB的存储容量,对于固件程序已经足够使用了,而且这款单片机支持在线编程,这给程序的下载和使用带来方便,程序设计采用C语言进行编程,软件仿真平台采用Keil C51。
为降低系统的成本,选用USB接口芯片PDIUSBD12,PHILIPS公司推出的PDIUSBD12是一款性价比很高的USB器件,它通常用作微控制器系统中实现与微控制器进行通信的高速通用并行接口,而且还支持本地的DMA传输(Direct Memory Access,直接存储器存取,是一种快速传送数据的机制)。
图1 原理方框图
红外线的光谱位于红色光之外,波长是0.76~1.5 μm,比红光的波长还长。红外遥控是利用红外线进行传递信息的一种控制方式,红外遥控具有抗干扰、电路简单、容易编码和解码、功耗小、成本低的优点。红外遥控系统的主要部分为调制、发射和接收。
红外遥控以调制的方式发射数据,即把数据和一定频率的载波进行“与”操作,这样既可以提高发射效率又可以降低电源功耗。调制载波频率一般在30~60 kHz之间,大多数使用的是38 kHz、占空比1/3的方波,由发射端所使用的455 kHz晶振决定。在发射端要对晶振进行整数分频,分频系数一般取12,所以455 kHz÷12≈37.9 kHz≈38 kHz。
一帧完整的发射码有引导码、用户编码和键数据码3部分组成。引导码由一个4.5 ms高电平脉冲及4.5 ms的低电平脉冲组成;8位用户编码,被连续发送2次;8位的键数据码也被连续发送2次,第1次发送的是键数据码的原码,第2次发送的是键数据码的反码。
“1”和“0”的区分取决于脉冲之间的时间,称之为脉冲位置调制方式(PPM)。引导码及位“0”和位“1”的波形见图2。
图2 红外线编解码方式
红外接收电路通常被厂家集成在一个元件中,成为一体化红外接收头。内部电路包括红外监测二极管、放大器、限副器、带通滤波器、积分电路、比较器等。红外监测二极管监测到红外信号,然后把信号送到放大器和限幅器,限幅器把脉冲幅度控制在一定的水平,而不论红外发射器和接收器的距离远近。交流信号进入带通滤波器,带通滤波器可以通过30~60 kHz的载波频率,通过解调电路和积分电路进入比较器,比较器输出高低电平,还原出发射端的信号波形。注意输出的高低电平和发射端是反相的,以提高接收的灵敏度。
电路原理图见图3。
图3 电路原理图
1)串行接口引擎
PSIE实现了全部的USB协议层,且完全由硬件实现而不需要固件的参与。该模块的功能包括:同步模式的识别,并行/串行的转换,位填充/解除填充,CRC校验/产生,PID校验/产生,地址识别和握手评估/产生。
2)SoftConnect技术
SoftConnect与USB的连接是通过1.5 kΩ上拉电阻将D+设置为高电平实现的。1.5 kΩ上拉电阻集成在PDIUSBD12片内,默认状态下不与电源相连,其连接的建立是通过外部/系统微控制器发送命令实现的。
3)GoodLink技术
GoodLink技术可以提供良好的USB连接指示。在枚举过程中,LED指示灯根据通信状况间歇闪烁。配置完成并装安驱动程序后指示灯将一直亮[3]。
单片机最小系统主要包括其供电系统、时钟电路和复位电路。将PDIUSBD12的8根DATA引脚和单片机的P0口相连。由于单片机的P0口在作为普通I/O口使用时不能输出高电平,需要接上拉电阻。从PDIUSBD12芯片资料可以看出,DATA的驱动能力为2 mA,所以接了上拉电阻后,DATA口为0时电流不能超过2 mA。这里用的是5 V的电源,当电流为2 mA时,电阻为2.5 kΩ。因此选择上拉电阻大于2.5 kΩ就可以了。因为数据总线上只有PDIUSBD12这个器件,所以片选信号CS_N直接接地,该芯片一直处于选中状态。SUSPEND引脚是双向的,当芯片处于挂起状态时,其输出为高,当发送远程唤醒命令时,需要通过外部电路将其电位拉低。由于可以通过程序来检查芯片是否挂起,所以在硬件连接上不需要用到这个引脚,直接接地即可。DMA中断请求信号,这里没有用到DMA功能,所以该引脚悬空即可。DMACK_N和EOT_N分别是DMA应答和DMA传输完成,这里没有使用DMA功能,直接用1 kΩ的上拉电阻将其置为高电平。EOT_N还兼做Vbus检查用,必须要接高电平,芯片才会进入正常的工作状态。RESET_N是复位引脚,由于芯片内部已经有内置的上电复位电路,所以不需要连接额外的上电复位电路,直接将该引脚通过1 kΩ的电路上拉到高电平。
由计算机辅助软件Protel 99生成的PCB文件并加工成PCB板,焊接上元件调试检查无误后的最终电路板如图4所示。
用一条USB连接线把接收模块和电脑连接起来,电脑自动检测到接收模块并自动加载驱动程序。使用遥控器按着翻页键就可以实现PPT、Word、PDF等文件的翻页功能,按向下键就可以控制鼠标向下移动,实现了设计的所有要求,演讲者可以将该遥控器当电子教鞭使用,不必一直站在电脑面前按鼠标了。
图4 电路板照片
单片机和PHILIPS公司的PDIUSBD12芯片为外设的核心,基于USB规范开发和红外编码解码,设计了USB接口的红外无线遥控鼠标(或称电子教鞭),样品经过教师在实际教学中试用,完全达到了设计要求,成功地实现了红外无线控制单片机实现红外无线遥控器的功能。
[1]陈逸.USB大全[M].北京:中国电力出版社,2001.
[2]马春雷,申宇皓,刘于端.基于PDIUSBD12芯片的USB接口的研究与开发[J].微计算机信息,2005(13):140-142.
[3]任卫华,叶明.基于PDIUSBD12芯片的USB接口实现方案[J].国外电子元器件,2005(6):25-27.
[4]徐爱钧,彭秀华.Keil Cx51 V7.0单片机高级语言编程与Vision2应用实践[M].北京:电子工业出版社,2004.
[5]周立功.PDIUSBD12USB固件编程与驱动开发[M].北京:北京航空航天大学出版社,2003.
[6]马军,李玉林.基于PDIUSBD12芯片的USB接口设计[J].微计算机信息,2006(2):285-287,181.
[7]黄煌,姜义成,林力.基于PDIUSBD 12的USB接口设计及应用[J].微计算机信息,2007(11):292-293,183.
[8]王立锦,于富强.单片机控制系统的红外线遥控器接口[J].电子技术,1998(10):36-38.