您当前的位置:五五电子网电子知识电子知识资料遥控器-遥控设备如何用电脑分析红外遥控器信号 正文
如何用电脑分析红外遥控器信号

如何用电脑分析红外遥控器信号

点击数:7161 次   录入时间:03-04 12:02:40   整理:http://www.55dianzi.com   遥控器-遥控设备

  许多业余电子爱好者研究红外遥控器的时候往往苦于没有专业的仪器,如示波器、红外分析仪等等。这里介绍一种业余的、成本低廉、精度相对比较高的方法。

  需要用到的材料有:个人计算机一台(需配有9针或25针串口)、9针或25针D型串口母头1只、任意红外遥控器1只、AT98C2O5lx1、集成红外接收头1只、MAX232xl、lμsl6V电解电容x5、22pF电容x2、22.ll84MHz晶振x1、8cmx5cm小型万能实验板2块。

  说明:现在的台式机多数还是配有9针串口的,不推荐使用USB-232转接器(容易造成数据传输不稳定或者无法使用)。红外遥控器采用任意家用电器的遥控器一般都是可以的(发射频率应为38kHz)以便与集成接收头配合使用。接收头构造见下图。

  红外信号的接收采用红外一体接收器接收,常见的封装形式有塑封与金属封装两种。两种形式的接收器用法相同,一般可以互相替代。但是其管脚定义并不相同,使用时不可盲目替代以免损毁器件。器件在末接收到信号时,输出端为高电平,接收到有效的38kHz信号后,变为低电平。其吸收电流能力有限不可直接驱动负载。

  接收器接收38kHz的红外信号,并屏蔽大部分的干扰光线,稳定性好。

  内部包含高增益放大电路,可将接收到的微弱信号进行放大,输出标准的ITL电平,可直接与单片机接口,使用极为方便。因此,很多小型机器人壁障电路的红外接收管使用的就是它。

  整体电路如下图所示,共分为两部分:一是以MAX232为中心的TTL-232接口电路,另一部分便是以2051为中心的下位机。

  RS232C使用-3V~-25V表示数字1,使用3V-25V表示数字0,显然无法直接与单片机联机通信。

  MAX232是一款兼容RS232标准的芯片,内部包含2个驱动器、2个接收器和一个电压发生器电路以便提供TIA/EIA-232-F电平。该器件符合TIA/EIA-232-F标准,每一个接收器将TIA/EIA-232-F电平转换成5VTTL/CMOS电平。每一个发送器将TTL/CMOS电平转换成TIA/EIA-232-F电平。虽然该电路也可采用几个廉价的三极管组合替代,但是专用集成电路简单、可靠和免调试的特点也是廉价替代电路所难以超越的。

  下位机采用Atmel公司生产的AT89C2O5l单片机,负责红外信号的解码和与PC机的通信。VD起通信指示作用可不接。笔者在实际制作时为了接线方便,将VD与限流电阻接在VCC与GND之间,以指示电源的通断。读者制作时可根据自己的实际情况做出决定。

  下位机的软件比较简单,由红外解码部分与UART通信部分组成。目前红外遥控发射的信号多数为脉宽调制的串行码,以脉宽0.565ms,间隔0.56ms的组合表示二进制的“0”;以脉宽1.685ms,间隔0.56ms的组合表示二进制的“1”。然后再用38kHz的载波将信号发射出去,以降低电源功耗和提高发射距离。

  采用2051的外中断0来检测红外信号的起始,检测到信号后启动定时/计数器以量取电平宽度。在RAM信号中开辟一块空间用以存储高、低电平的脉宽数据。检测到红外信号的结束后,再将脉宽数据通过串口发送到PC机。有关串口发送的波特率设置读者可参照相关教材,不再赘述。

  至于上位机软件可采用VB、C++等编写。VB是计算机程序语言中最简单的语言之一,很多人都对VB不屑一顾,就是因为VB太简单。其实简单的未必不好用,复杂的未必用起来方便。

  读者如果对计算机语言也有研究的话,可以尝试用各种语言编写上位机程序,以便比较各种程序语言的特点,为今后更复杂的工作做好铺垫。如果读者对计算机编程语言了解不多,建议采用伦科单片机的上位机软件。其下载界面地址为 www.lunke.cn/SOFtshow.

  asp?id=75。下载的软件包内含有上位机软件、下位机软件的HEX格式文件,以及电路原理图。

  上位机软件操作界面如下图所示。

  其上部为波形显示部分,分为 3个通道,分别对应了下方的通道选择。中间为滑动条,下部为操作面板。放大和缩小分别可将波形在横向上放大,以便不同通道间的信号对比,或者对电平宽度进行测量。按钮“关闭串口”有两个状态,串口打开时显示为“关闭串口”;串口关闭时,显示为“打开串口”。

  改变串口的状态,只需单击该按键。强烈建议读者分析数据时将串口关闭。

以防止分析数据时,单片机受到干扰而将干扰信号发送到电脑中将缓存的有用信号覆盖。如果你的电脑后面有两个或者两个以上串口的话,可以通过“串口选择”,选择相应的串口。而通道选择可以将信号锁存到不同的通道中去。例如想比较遥控器上某3个按键对应的信号可采取如下操作:

  1. 打开串口,不要忽略这一步。很多时候失败就是由于一些低级错误引起的。忙活了半天又是查电路,又是查连线的,就是查不出屏幕无显示的原因。在就要放弃的时候却发现是串口没有打开,或者没有给下位机供电。

  笔者屡在做各种实验时犯此类毛病,希望读者引以为鉴。

  2. 通道选择1,用遥控器对着接收头接下待测键,此时通道 1应该显示出对应的波形;再按照该方法获得通道2、3的波形。

  3. 关闭串口。

  另外该软件上还有个比较方便的工具用来测量任意两点之间的时间差,如图 3 中显示的细红线 (竖线),可以用来测量某个脉冲的宽度。鼠标在图上滑动时该细线会跟随鼠标的移动,在某一点单击鼠标左键,按住不放拖动到另外一点,图上便会显示两点间的时间差,用起来还是挺方便的。如果某波形太小不便捕捉测量,可以点击“放大”键,将波形放大到合适的宽度即可。笔者测试了一下其工作精度,用红线测量引导码长为 1 3.

  45486ms,与软件自动测量的 13.44ms(见软件右下方显示)相差无几。如此高的精度,如此低廉的成本,聪明的读者你还在等什么,快快动手制作吧!

  该装置制作简单,制作完成后无需调试。作者使用的遥控器为国产某VCD遥控器,成功解码。如果读者的单片机实验板上有红外接收头与 232通信电路的话,可以不必再单独制作电路,稍加改动便可傲该实验,并且单片机可以是89C4O5l、89C5l、89S5l、89S52等51内核单片机。如果读者愿意单独制作该电路板,建议读者将主体电路的两部分分开制作,中间以数据线连接即可,以便以后能复用某个子电路。另外读者可以尝试使用某些串口调试软件显示接收的数据。

  将调试软件的接收数据形式设置为十六进制格式。

  笔者制作的实物电路如下图所示。




本文关键字:如何  遥控器  电脑  遥控器-遥控设备电子知识资料 - 遥控器-遥控设备