红外遥控器外文翻译资料

 2022-11-21 16:04:04

Infrared Remote Controls

Lin Jiao Jiang

According to Internet lore, the average household has between five and seven remote controls. Before start- ing this chapter, I collected a box full to test--one Zenith, two Nakamichis, two Mitsubishis, one Samsung, one Toshiba, one Hitachi, and two Radio Shack universal remote controls--just by going through our house. Two belong to equipment long since scrapped as uneconomical to repair, but the rest are in more or less common use.

With an inexpensive IR receiver module oov connected to a PIC, its easy to decode most to make remote controls. Once decoded, we then may use the techniques weve seen in other Chapters to control a variety of devices. We might use a relay to turn a light off and on, or we might translate volume up/down buttons to adjust audio levels through a SPI-controlled ,just MCP42010 digital potentiometer.

Finding definitive information on IR remote o.gv- controls isnt easy; the consumer electronic manufacturers hold the information closely. Ive pieced together this chapter from research , published on the Internet by inspired hackers, supplemented with measurements of the as- sortment of remote controls available to me.

First, lets look at the lowest level of the transmission and reception--and at this level, all remotes work alike. When you push a button, the remote generates a particular digital control sequence and transmits it as multiple bursts of IR light. Each individual burst consists of a few dozen rapid on/off cycles. An IR receiver detects these bursts and smoothes out the individual on/off carrier cycles, thereby reconstituting the original digital sequence.

The frequency of each IR on/off cycle within a burst is the carrier frequency, and varies from manufacturer to manufacturer. The lowest carrier frequency commonly used is 32.75 KHz, and the highest is 56.8 KHz, but by far the most common carrier frequency is 38 KHz. IR receivers are frequency selective and to achieve reasonable range, you must match the receiver frequency to the remotes carrier frequency. (A few broad- band receiver modules are available, such as Vishay Semiconductors TSOP1100 model.) Well talk more about IR receivers shortly.

The IR receiver also translates between light level and PIC-compatible logic levelmits output is either at logic 1 or logic 0. Receivers are designed so that when no IR light is detected, the receivers output is logic 1; and is logic 0 when IR light is detected. This may seem backwards at first, but in fact well find it very convenient to forget about whether a light output causes a 1 or a 0 and instead concentrate on the receivers logic output values.

Common Encoding Standards

How, then, are the receivers ls and 0s are organized into useful information? Here we must delve into some detailed manufacturer-specific information. Three commonly used methods of encoding the 1s and 0s into useful information are: Philips RC-5 Code~is a 14-bit biphase (Manchester) encoded system, with a 36 KHz carrier. The docu- mentation for this system is publicly available in a Philips Semiconductor Application Note. Because were going to concentrate on other systems, we wont further discuss the RC-5 code.

SIRCS uses a 40 KHz carrier frequency, and, as reflected above, 0 and 1 are distinguished by different car- rier-on intervals. We wont further concern ourselves with SIRCS. REC-8OmIs a 32-bit 'space width' modulated code, and is, in some sense, an inverse of SIRCS. In SIRCS, the carrier-off period is constant and the carrier-on period has two values, a narrow pulse for 0 and a wide pulse for 1. REC-80 has a constant carrier-on period and has two off-periods, a narrow pulse for 0 and a wide pulse for 1.

The sketch of the IR receiver output suggests our decoding strategy for REC-80 signals; measure the logic high pulse duration out of the receiver and classify it as wide or narrow. Well see, however, that in prac- tice the narrow pulses tend to be much shorter than 1200ps and the wide pulses are somewhat shorter than 1800ps, due, in part at least, to the IR receivers response time. (Some sources suggest the data 0 'no-car- rier' period is twice the 'carrier-on' time, and the data 1 'no-carrier' period is three times the 'carrier-on' time. None of the remote control signals I measured came close to this 1:2:3 ratio.)

The check bytes are logical NOT copies of the associated data bytes. (The logical NOT operation converts Is to 0s and 0s to 1s .) Again, however, you should be prepared for discrepancies between this typical organiza- tion and the way manufacturers actually implement their remote controls. Some, for example, might increase the possible number of device codes and function codes by dropping the check bytes, thereby yielding 16-bit device codes and function codes.

Most remote controls send the code for a key press several times, with the thought that at least one of the repeated messages will be correctly received. Repeated receptions of the same command may lead to a different error, however. For example, the power-on/power-off code is typically assigned to one 'power' button. How then is the receiver to distinguish between receiving two correct copies of a code the user intends to be a single power-on command from a power-on followed by a power-off command? Some manufactures employ a 'toggle bit' to distinguish between these two cases; sequential presses of a key will alternate between two codes differing in the toggle bit. Thus, two successive copies of a command received due to normal message repetition will be identical; two successive copies of a command received due to the user pressing the command twice will differ by the value of the toggle bit. None of the remote controls I worked with implemented toggle bits, however.

IR Receiver

Although its possible to decode an IR control signal with nothing more than a

剩余内容已隐藏,支付完成后下载完整资料


红外遥控器

Lin Jiao Jiang

根据互联网数据统计,平均每户家庭有五到七个遥控器。在开始我们的设计之前,我收集了一些数据作为参考——一款Zenith,两个Nakamichis,三星,东芝,日立各一款,和以及两个Radio Shack的万能遥控器,只要通过检查我们的房子来得到了这些信息。其中两个设备长期以来处于报废状态,维修价格甚至高于重新购买,但其余的或多或少都还在使用。

用廉价的红外接收模块未连接到一个PIC芯片,想要进行解码是很简单的然后就可以完成远程控制。一旦解码,我们就可以使用我们在接下来的其他章节介绍的技术来控制各种设备。我们可以用一个继电器,把灯关掉,或者我们可以把音量按钮通过SPI控制,调整音频级别。仅仅需要依靠一个MCP42010数字电位器。

电子厂商掌控着与消费者相关的密切的信息,因为它们发现通过红外遥控进行控制并不那么简单。受到骇客们在网上发布信息的启发,再通过提供给我的补充测量的分类信息,我完成了这篇文章来对此进行研究。

首先,让我们在传输和接收的最低水平看,在这个层面上,所有的遥控器都工作。当你按下一个按钮,遥控器产生一个特定的数字控制序列,并发送一个多脉冲的红外光。每一个脉冲都都有着一组各自的周期,红外接收器检测到这些脉冲和它们特有的周期信号,从而重建原始的数字序列。

每一个IR周期的频率都是由载波频率决定的,同时也会因为元件的制造厂商的不同而不同。常用的最低载波频率为32.75千赫,最高为56.8千赫,但到目前为止最常见的载波频率为38千赫。红外接收机的频率选择性和实现合理的范围内,必须匹配接收器的频率到远程的载波频率。(几大波段接收机模块可用性很高,如Vishay半导体的tsop1100模型。)我们很快会谈论更多关于红外接收器。

红外接收器接收的脉冲光表现是PIC兼容逻辑levelmits输出为逻辑1和逻辑0。接收器的设计是这样的,没有红外光检测的时候,接收器的输出逻辑1,是逻辑0时,红外光检测。这似乎是相反的,但事实上,我们会发现很容易忘记脉冲光导致输出到底是1或0,而不是集中在接收器的逻辑输出值。

常见的编码标准

但是,要如何接收机的接收到1和0组织成有用的信息呢?这里我们必须深入了解一些相关的制造商的具体信息。常用的1和0编码转换成有用的信息的方法有:飞利浦惯用的RC-5码是一个14位的双相(曼彻斯特)编码系统,与36 kHz的载波。该文件为系统状态在飞利浦半导体应用笔记是公开的。因为我们要专注于其他系统,所以我们不会进一步讨论RC-5码。SIRCS使用一个40 kHz的载波频率,而且,如上所述,0和1的区别在于不同的时间间隔。我们同样不会再深入研究SIRCS。rec-8omis 32位空间宽度调制码,是的,在某种意义上,是相逆的。在SIRCS,载期是恒定的,在时间的载体有两个值,一个窄脉冲0和宽脉冲1。同样的,rec-80对周期恒定的载体,有两个周期,一个窄脉冲0和宽脉冲1。

我们对rec-80信号的解码设计是这样的:测量逻辑高脉冲的接收和宽窄分类。但是,我们将会发现,实际接收到的窄脉冲比1800ps更短,低至1200sps,导致实际信号较短的原因在于红外接收器需要相应时间。

我们要做的就是检查相关的字节的逻辑NOT副本(逻辑非运算转换为0到1和1到0两个变化过程的提现),但是,我们需要对这个典型编码方式与制造商实际执行远程控制的方式之间的差异做好准备。例如,一些设备可能通过删除校验字节来增加设备代码和函数代码的数量,从而产生16位设备代码和函数代码。

大多数遥控器将按键的代码发送几次,认为至少有一个重复的消息将被正确接收。但是,重复接收相同的命令可能会导致不同的错误。例如,电源开/关机代码通常被分配到同一个“电源”按钮。那么接收器在接收到出一个单一电源上的一个电源断电命令后,要如何区分接收两个代码副本的设备中正确的那一个呢?一些制造商采用“切换位”来区分这两种情况;顺序按下一个键将交替在两个代码不同的切换位。因此,由于正常消息重复接收的命令的两个连续副本将是相同的;由于用户按两次命令而接收的命令的两个连续副本将与切换位的值不同。然而,我所用的遥控器中并没有哪一个是使用切换位来实现控制功能的。

红外接收器

虽然一个只要有一个二极管或phototransis Tor的就有可能完成对红外控制信号的解码,但完成设备需要大量的辅助电路。我们将使用一种廉价的红外接收模块。

我们来看看这些单独的模块如何工作,在高电平的情况下。 光电二极管是最常用于电流 - 电压前置放大器。 光子光子撞击光电二极管的PN结,并通过置换电子而产生小电流。 电流 - 电压前置放大器提供与光电流成比例的电压输出。 为了防止光电二极管被环境光饱和,一些集成的接收器,使用了例如TSOP器件,也包括滤光器,以排除可见光但通过红外线。

标有“AGC”的块表示模块内的自动增益控制功能。 当您摆放遥控器与接收二极管的角度不同或者改变遥控器和接收二极管之间的距离时,光电二极管接收到的信号电平会发生很大的变化,当输入信号较弱时,AGC放大器增加其增益,并在输入信号较强时降低其增益,从而将其输出稳定在与接收信号电平大致无关的电平。

在AGC放大器之后,输入的载波信号被带通滤波。这是用来减少来自其他光源的干扰(如室内照明或太阳光)的重要一步。毕竟,红外接收器必须将弱红外发射器与背景照明带相区分,这是带通滤波器的工作。即使在光学滤波器的帮助下,许多光源,如太阳光,也还是具有强烈的红外分量。)通过对载波频率进行选择性滤波,带通滤波器会将其他光源(例如太阳光)排除为未调制的或荧光灯,它由交流电源的120 Hz载波调制。带通滤波器负责将接收机频率与遥控器的载波频率相匹配。

带通滤波器的输出被包络检测并驱动逻辑电平输出级。 如图所示,惯例是IR接收机反转接收信号的感觉; 无IR导致逻辑高,IR接收导致逻辑低。

在本章的其余部分,当我们提及高低电平,或正脉冲和负脉冲时,它与IR接收机的输出相关,而不是遥控器的实际红外照明。

在本章中,我测试了两个Sharp Electronics GP 1U 5接收器模块,以及几个Vishay TSOP12xx集成接收器,结果相似。 GP1U5模块最近被GP 1U D26 / 27/28系列器件所替代,它们物理尺寸较小,但具有相似的性能特性。 我也看过数据表,让我相信,夏普的GP1 U5模块已被克隆,如果您努力拓展它的功能,仍然可以使用。 Vishay的TSOP系列红外接收器可从许多电子零件供应商处获得,成本约为1美元。

您应该将IR接收机的响应频率(图22-3中的带通滤波器中心频率)与遥控器的载波频率在10%左右相匹配。在此范围之外的操作,例如用38 KHz接收器解码32.75 KHz信号 - 反之亦然 - 显着降低了范围。如果您不知道遥控器的载波频率,使用图22-5所示的电路,可以使用光电晶体管测量它。当QSE 114光电晶体管由Mitsubishi遥控器发光时,产生的波形如图22-6所示。测量峰值之间的时间间隔产生37.88 KHz的计算载波频率,因此标称载波频率为38 KHz。您可能想知道为什么光电晶体管输出不是理论上预期的好的方波。 QSE114是红外感光器,上升和下降时间为81as,所以我们立刻看到一个问题。一个38KHz的方波的导通时间为13个小时,所以我们预期会出现严重失真的输出波形。当使用简单的电阻集电极负载工作时,我们也不会看到来自QSE 114的速度。但是,为了测量载波频率,我们需要的是波形上的一致参考点。

最后一个注释,然后是一些代码。 虽然带通滤波器减少了杂散光干扰,但是它不能解决第二个主要问题 - 背光照明使光电二极管和电流 - 电压前置放大器饱和,因为光电二极管或多或少对可见光以及红外光频率敏感。 您可以通过在红外接收器的镜头上添加深红色塑料IR滤镜来显着提高解码范围。 如果您找不到正确的IR滤光片材料,实验,因为一些常见的塑料对可见光不透明但透射IR。 完全曝光的显影色底片也可以用作IR滤光片。 Vishay的TSOP系列集成红外接收器具有内置红外滤波器,这也是Sharp倾向于GP系列模块的另一个原因。

对宽/窄脉冲间隔的表征

请记住,我们已经决定只使用REC-80协议,而高频参考是关于IR接收机的输出。如图所示将IR接收器模块连接到PIC。当接收到遥控信号时,我们来看看IR接收机的输出。图显示空闲,然后是起始脉冲,后跟32个宽或窄数据脉冲,返回空闲。我们可以用示波器测量脉冲宽度,通过扩展扫描速度,并显示结果。但是,由于我们的最终目标是通过PIC读取遥控器,所以让我们使用PIC来测量接收到的脉冲宽度。

大约10 ms低(IR-on)的图表中看到的起始脉冲,然后是4.2 ms高(IR-off)。由于我们键入高电平,我们将启动脉冲视为实际数据之前的标称4.2 ms高脉冲。

程序的目标是测量遥控器的选择,看看我们是否可以识别宽度阈值,以区分宽(逻辑1)脉冲与窄(逻辑0)脉冲。我们通过测量1000个脉冲来实现,当您在程序采样数据时快速按下随机选择的遥控器键时产生。然后,程序将测量的宽度分类为直方图型宽度箱。

我们知道IR接收机的空闲状态很高,所以我们读取B0,直到我们检测到低电平,指示数据开始到达。实际上,您将看到荧光照明产生的充分的随机干扰导致周期性低的条件,所以将程序加载到PIC中是一个好主意,将遥控器置于正确位置,然后在开始按下时重置PIC随机按钮

读取IR接收器的关键是MBasic的PulsIn程序。 PulsIn以单位步长测量输入脉冲持续时间。单位持续时间对应于七个指令周期持续时间,其中一个指令周期为4 / Fosc。

PulseIn被调用了几个参数:

PulseIn引脚 定义要测量的引脚的常数或变量。 PulsIn自动将引脚置于输入模式。图显示我们将红外接收器连接到B0。状态 - Pulsexn可以测量正宽度或负宽度,即逻辑1信号的宽度或逻辑0信号的宽度,状态是定义要测量哪个宽度的变量或常数。如果状态= 1,当B0从0变为1时,我们开始测量,当B0从1变为0时停止测量,即测量的宽度。相反,如果state = 0,我们测量0级间隔的宽度。由于我们希望测量正宽度,我们设置状态-1(不要混淆; REC-80中的可变周期之间的时间;但是由于IR接收器正在反转,我们实际上是测量IR光脉冲之间的间隔。)PulseIn检查由状态定义的转换,0 - gt; 1或1 - gt; 0。如果在65,535个单位间隔之后没有收到这样的转换,则Pulseln超时,执行转到下一个M Basic语句。可选地,可以通过Timeout Multiple值以65,535个单位步进间隔的步长延长超时周期。例如,值2将产生2 x 65,535的超时时间,或131,070个单位的步进间隔。假设我们的PIC具有20 MHz时钟,每个单位步长为1.4ps,因此基本超时间隔为65,535 x 1.4 ps或91.75 ms。经过这段时间没有输入脉冲,执行将传递给Timeout Label。我发现在不提供Timeout Label的情况下也不可能设置Timeout Multiple,反之亦然,任何尝试仅使用两个选项之一产生编译器错误。我们将在以后的程序中使用这些可选参数,但不在程序中使用。var 保存测量脉冲的宽度,单位为步长间隔,var为32位结果,如果要测量最大间隔,则需要一个长变量。在我们的例子中,我们知道脉冲长度在几千微秒之内,所以我们将使用一个字变量来存储。

现在我们测量了正脉冲宽度,我们希望存储它的值。我们的PIC没有足够的内存来存储1,000个单词变量,并且在任何情况下都不是必需的,甚至是可取的。相反,我们将每个测量宽度分为100个“宽度箱”之一,每个宽约25 jas(使用20 MHz时钟,宽度以1.4 jas持续时间的单位间隔进行测量,18个这样的单位对应于25.2 jas)。我们通过将测量宽度除以18来产生直方图“bin号”,然后增加 - 将WidthArray(j)设为1.(我们设计为jgt; 99,因为我们只为数据分配了100个bin)。在我们采集了1,000个样本之后,WidthArray(j)保存了每个bin中的宽度测量数值。例如,WidthArray(20)保持测量宽度在500和524之间的脉冲数。统计上,这被称为“直方图” (通过使用一个字节数组来保存bin计数,我们假设隐含地,不超过255个宽度测量将属于任何单独的bin。这是一个相当安全的假设,1000个总测量,大约一半预期是宽的,一半是狭窄并具有脉冲持续时间的预期扩散。)

执行速度是本程序中的一个问题,在本章的后续程序中更是如此。我们希望我们的程序不要错过任何正脉冲,因此在我们预期下一个正脉冲开始之前,我们的系统要处于可用状态。对于REC-80代码,我们知道脉冲之间的空间(IR-on时间)在600和800 las之间运行。那么假设PIC正在运行20 MHz时钟就足够了,以执行我们需要的计算。但是,在这个脉冲间隔期间,我们必须小心不要用冗长的计算来加载我们的程序,以免错过下一个正脉冲。

在采集了1,000个样本之后,直方图结果由串行接口发送,我们用终端程序捕获它们。要将仓数转换为微秒,我们乘以25.2。为了避免浮点转换,我们改为乘以252除以10.但是,对于解码,无论我们是使用微秒还是单位间隔,只要我们在设置边界阈值时一致。
为了简单起见,我们将从一台16位代码的三菱TV / VCR遥控器开始。三菱采用32.75 KHz载波频率,因此我们使用的特定IR接收机是针对该载波频率进行优化的。
纯粹的MBasic解决方案的问题是,它的执行时间是微不足道的,因为低时间是几百微秒。因此,我们使用一个简单的汇编程序来读取PortB,并通过btfsc操作检查位0(B0)的状态。如果a0设置为(B0 = 1)下一条指令,则GoTo Wait- ForXnput将以无限循环执行。如果a0

剩余内容已隐藏,支付完成后下载完整资料


资料编号:[26797],资料为PDF文档或Word文档,PDF文档可免费转换为Word

您需要先支付 30元 才能查看全部内容!立即支付

课题毕业论文、外文翻译、任务书、文献综述、开题报告、程序设计、图纸设计等资料可联系客服协助查找。