Cómo funciona un mando a distancia

From JavierValcarce.Eu
Jump to: navigation, search
Luz IR vista con el CCD de una cámara digital

La comunicación entre un mando a distancia y su receptor se produce mediante un haz de luz infrarroja (IR). La luz IR es una onda electromagnética cuya frecuencia está en el intervalo

<math>0.3THz < f < 428.5THz</math><ref>O equivalentemente su longitud de onda está en el intervalo <math>0.7\mu m < \lambda < 1000 \mu m </math>, la relación entre ambas es <math>\lambda = c / f</math> con c la velocidad de la luz en el medio, en el vacio es <math>c_0 = 3 \times 10^8</math> m/s</ref>,

En el espectro se encuentra justo por debajo de la luz roja por lo que nuestros ojos no pueden verla pero sí que puede por ejemplo el CCD de una cámara digital (si tienes una puedes hacer rápidamente la prueba). La naturaleza de la luz IR y de la luz visible es exactamente la misma, sólo cambia su frecuencia.


El mando a distancia

Cuando pulsamos una tecla, el mando envía una secuencia de pulsos de luz IR que transportan un código de N bits que identifica la tecla pulsada. La secuencia de pulsos de luz se obtiene como se muestra a continuación. La señal <math>x(t)</math> que aparece en la figura es la que genera en concreto el mando a distancia de la Xbox (kit DVD), en otros mandos a distancia, dicha señal puede ser diferente (ver más abajo)

Ir rf signal.png

La figura anterior muestra las señales necesarias para construir la señal final <math>m(t)</math> que es la que apaga/enciende el led IR. Obviamente, hace falta un circuito electrónico que genere todas esas señales y operaciones pero eso es un detalle "sin importancia" que he obviado para no perdernos en los detalles.<ref>El mencionado circuito electrónico, de todas formas, es muy simple y puede de hecho implementarse por software mediante un microcontrolador, por ejemplo.</ref>

Descripción de las señales de la figura anterior

<math>x(t)</math>
Señal (eléctrica) moduladora. Es una señal eléctrica digital en banda base. Los bits van codificados en la señal de a acuerdo con un determinado tipo de modulación digital (también llamado código de línea) como p. ej: PWM, Manchester, Manchester Diferencial, etc
<math>c(t)</math>
Portadora eléctrica, que en este caso es cuadrada en lugar de sinusoidal (que sería lo habitual), de frecuencia típicamente <math>f_0=38</math>kHz (otros valores pueden ser 30kHz, 36kHz, 40kHz, 56kHz e incluso 455kHz)
<math>m(t)</math>
Señal (eléctrica) modulada, el producto de las dos anteriores que es la que excita a un diodo luminiscente (LED) de infrarrojos (IR)
luz IR
Portadora óptica generada por un diodo luminiscente de infrarrojos (LED IR), se trata de una onda electromagnética modulada en amplitud o todo o nada, lo que da lugar a una secuencia de pulsos/destellos de luz cuyo espectro<ref>La luz que emite un LED está compuesta por ondas electromagnéticas en un rango continuo de frecuencias, los LEDs no son una fuente de luz monocromática pura</ref> está centrado en 319.15THz (<math>\lambda=940</math>nm) como muestra la figura.
Ir led spectrum.png

Portadora eléctrica y portadora óptica

Como se puede ver, la señal digital en banda base <math>x(t)</math> es subida en frecuencia dos veces

  1. Cuando multiplicamos <math>x(t)</math> por la portadora eléctrica <math>c(t)</math>. Esto hace que el espectro de <math>x(t)</math> se desplace a a <math>f_0</math> (a esta banda le vamos a llamar "RF")
  2. Cuando modulamos la luz del led IR para generar un chorro de pulsos de luz IR (la señal modulada óptica). Esto hace que el espectro de <math>m(t)</math> se desplace a frecuencias ópticas (<math>\lambda = 940</math>nm).

La segunda subida del espectro es algo inevitable porque estamos usando un LED IR para transmitir, pero ... ¿Por qué es necesaria subir primeramente a RF? ¿Porqué no modulamos el LED IR directamente con la señal en banda base <math>x(t)</math>?

Esto se hace para combatir la radiación IR ambiental que capta el fotodiodo PIN que es en este caso representa ruido sobre la señal <math>m(t)</math>. Este ruido lo genera de manera natural cualquier objeto a una temperatura T > 0 y muy especialmente las lámparas fluorescentes.

Este ruido tiene una densidad espectral de potencia mucho mayor en baja frecuencia (DC) que en frecuencias en torno a 38kHz. Así pues, para evitar toda esta potencia de ruido transmitimos la señal <math>x(t)</math> en una banda de frecuencia en torno a <math>f_0</math> donde la potencia de ruido es menor, luego, en el receptor, filtramos y bajamos a banda base.

Los términos "óptico" o "eléctrico" no hacen referencia solamente a la diferencia de frecuencias (kHz frente a THz) de las señales, sino también a su distinta naturaleza:

  • La portadora eléctrica es una corriente eléctrica oscilante, es decir, una onda electromagnética que mueve los electrones del metal conductor y provoca así una corriente eléctrica.
  • La portadora óptica, en cambio, es una onda electromagnética que se propaga en el espacio libre y que no implica movimiento de electrones. Es imposible que exista una corriente eléctrica que pueda oscilar a frecuencias ópticas (~THz) porque las cargas eléctricas no pueden vibrar tan rápido (el electrón tiene masa <math>m_e</math> y por tanto inercia)

El chip receptor de mando a distancia

El receptor debe deshacer todas las operaciones que ha hecho el transmisor para poder recuperar los bits transmitidos. Esto se hace en 3 fases

  1. Un fotodiodo PIN convierte la señal luminosa incidente en la señal eléctrica modulada <math>m(t)</math>. Esto representa la primera bajada en frecuencia, desde las frecuencias ópticas (~THz) a las frecuencias eléctricas (~kHz).
  2. Mediante un amplificador, integrador y un filtro paso banda, se elimina la portadora eléctrica <math>c(t)</math> y se recupera la señal en banda base <math>x(t)</math> original. Esto representa la segunda bajada en frecuencia, desde "RF" hasta banda base. Ahora que ya tenemos la señal en banda base podemos proceder a demodularla (recuperar los bits enviados).
  3. Teniendo en cuenta la modulación digital que el mando emplea, demodular la señal en banda base <math>x(t)</math> para recuperar los bits enviados. A partir de la secuencia de bits enviados sabremos qué tecla del mando ha sido pulsada.

Afortunadamente, existen en el mercado receptores de IR integrados que ya se encargan de las 2 primeras tareas, tienen 3 patas (+Vcc, GND y <math>V_{out}</math>) y cuestan unos ~2€.

El integrado entrega en su terminal <math>V_{out}</math> la señal <math>x(t)</math> original. Queda para nosotros la tercera tarea: demodular <math>x(t)</math> y recuperar los bits enviados. Esto lo podemos hacer mediante un circuito hardware o bien mediante software corriendo en un microcontrolador (lo más habitual). También podemos muestrear la señal de <math>V_{out}</math> con la tarjeta de sonido del PC y demodular por software en el PC (mira el proyecto LIRC).

La siguiente figura es el diagrama de bloques del chip TFMS5XX0 (Telefunken) receptor de mando a distancia, existen diferentes versiones según la frecuencia <math>f_0</math> de portadora del mando

Ir rx pins.png
Ir rx diagram.png

El control automático de ganancia (AGC, Automatic Gain Control) ajusta el nivel de señal entregado al demodulador. Esto explica porqué casi todos los mandos envían al principio un pulso de larga duración (pulso AGC). Lo hacen para estabilizar el circuito AGC antes de la recepción de la secuencia de bits.

Resumiendo
Para acoplar un mando a distancia a nuestro proyecto basado en microcontrolador tan sólo necesitamos el chip receptor de IR correspondiente a la frecuencia de nuestro mando y conocer además

  • La modulación digital (código de línea) que usa nuestro mando para poder demodular <math>x(t)</math> y recuperar los bits enviados
  • El código binario de cada tecla del mando, para poder saber qué tecla ha sido pulsada, claro.

Para demodular lo normal es usar la interrupción de temporizador y quizá también la interrupción externa. La siguiente figura muestra cómo conectar el chip a un microcontrolador, las resistencias y condensadores que aparecen son opcionales

Ir rx schem.png

Puedes ver un ejemplo concreto sobre cómo Acoplar un mando a distancia en Arduino (Arduino es una tarjeta de desarrollo con el micro Atmel ATmega8)


Mi mando es de 40kHz y yo uso un receptor de 30kHz ¿Funcionará?
Sí, pero el alcance disminuirá.

<math>f_0</math> IC
30kHz TFMS5300
33kHz TFMS5330
36kHz TFMS5360
38kHz TFMS5380
40kHz TFMS5400
56kHz TFMS5560

La portadora, al no estar perfectamente centrada en la banda de paso del filtro paso-banda saldrá de este bastante atenuada, tanto más cuanto más dispares sean las frecuencias de portadora y de paso. Por ejemplo, si usamos un mando de 56kHz y un receptor de 30kHz funcionará regular. Si usamos un mando de 455kHz y un receptor de 30kHz entonces no funcionará en absoluto.

Existen muchos fabricantes y muchos modelos de chips receptores de IR. Podemos usar cualquier chip siempre que sea adecuado para la frecuencia del mando, no importa el fabricante. La tabla muestra los chips de la casa Telefunken, otros muy conocidos son los de Siemens (SFH 511X), Panasonic (PNA460XM), Vishay (TSOP17XX), etc...


Códigos de línea

Por desgracia, no hay ningún tipo de normalización y cada mando genera un código de línea (secuencia de pulsos y espacios) diferente. Puedes encontrar información sobre el formato de trama y códigos de distintos modelos en el proyecto LIRC (Linux Infrared Remote Control) y también aquí.

La lista, sin embargo, dista mucho de ser completa así que si tienes un mando "rarito" tendrás que investigar tú mismo el código de línea que genera (más información)

La modulación digital de <math>x(t)</math> consiste siempre en un tren de pulsos de amplitud +V (+5V ó +3.3V por ejemplo). Los bits suelen ir codificados de alguna de estas formas

  • la duración del pulso
  • la duración del espacio (entre dos pulsos consecutivos)
  • la duración del pulso o espacio
  • la posición del pulso dentro de un periodo de bit
  • los flancos de la señal (modulación Manchester, Manchester diferencial, AMI, etc)

Acerca de la comunicación óptica no guiada

El clásico mando a distancia con el que cambiamos de canal en la TV es un ejemplo de comunicación óptica no guiada porque la luz (en este caso infrarroja) viaja a través del espacio libre sin ser guiada por una fibra óptica (guía de ondas dieléctrica) como sería lo habitual.

La comunicación óptica no guiada es adecuada en las siguientes circunstancias

  1. El receptor está cerca. La atmósfera atenúa mucho la luz IR por lo que el receptor debe estar cerca, en el caso de un mando a distancia un par de metros a lo sumo.
  2. El receptor no cambian su posición ni orientación. La luz IR es muy directiva (se difracta poco) por lo que el emisor y el receptor deben estar en visión directa y apuntados. El caso extremo es la utilización de luz láser, en el que el apuntamiento es crítico.
  3. No es necesaria una gran velocidad de transmisión. Un mando a distancia consigue unos pocos bps, mientras que un enlace láser está generalmente por debajo de 100Mbps.
  4. No es necesaria una gran fiabilidad en el enlace. Un obstáculo puede afectar en cualquier momento al despejamiento del enlace óptico. No se puede recibir ni por refléxión y ni por difracción como en el caso de la radio.
  5. Necesitamos desplegar un enlace inhalámbrico rápidamente y a bajo coste. Los enlaces ópticos no guiados son más baratos que las comunicaciones guiadas (ópticas o en RF) ya que el tendido de las líneas es una inversión altísima.

<references />