Un dispositivo controlador de artefactos electrónicos
a través de línea telefónica en forma remota


Tabla de contenido

  1. Descripción del proyecto
  2. Descripción de las funcionalidades
  3. Generación de los beeps de respuesta
  4. Administración de la contraseña
  5. Administración de la cantidad de rings de espera
  6. Diagrama de conexiones en bloque
  7. Software
  8. Listado de componentes
  9. Conclusiones
  10. Circuito esquemático
  11. Hojas de datos de algunos de los componentes utilizados
  12. Código assembly del programa construído
  13. Fotos
  14. Links

Descripción del proyecto

El dispositivo electrónico construído es una interfáz que, conectada a la línea telefónica, es capáz de recibir y atender llamadas entrantes, con el fin de controlar uno o más artefactos conectados al mismo, desde un aparato telefónico remoto. El microcontrolador utilizado es un AT89S8252 fabricado por ATMEL. También fue necesario incorporar al circuito un conversor DTMF a binario y un controlador para comunicación serie RS-232, ambos genéricos.

Ir al principio

Descripción de las funcionalidades

Nuestro dispositivo es capáz de recibir e interpretar tonos a través de la línea telefónica, y posteriormente tomar determinadas acciones relacionadas con el control de otros dispositivos electrónicos (como podrían ser los electrodomésticos hogareños). Esto permitie al usuario tener control en forma remota de determinados equipos electrónicos, utilizando un aparato telefónico convencional, mediante el teclado del mismo, según el siguiente protocolo:

1ro.) Esperar x rings antes de atender el teléfono (configurable).
2do.) Una vez atendido el teléfono, solicitar una contraseña para dar el servicio a quien está llamando. Luego de validada la contraseña, se pasa al menú de opciones.
3ro.) Se usarán casi todos los dígitos del teléfono (salvo 6, 7, # y *). En nuestro trabajo práctico pretendemos manejar 9 relés, aunque en principio se ha implementado uno solo, relacionando cada uno con cada dígito numeral del teclado. Una vez atendida la llamada, el menú de opciones es el siguiente:

1 - encendido: una vez marcada esta opción, el sistema queda a la espera de otro dígito (este segundo dígito ingresado indica el número de relé a encender).
2 - apagado: una vez marcada esta opción, el sistema queda a la espera de otro dígito (este segundo dígito ingresado indica el número de relé a apagar).
3 - consulta: una vez marcada esta opción, el sistema queda a la espera de otro dígito (este segundo dígito ingresado indica el número de relé a consultar). Si el relé está encendido, entonces se emite un beep largo a través de la línea telefónica, y si está apagado se emite un beep corto.
4 - cambio de contraseña: se utiliza para cambiar la contraseña de acceso. Una vez marcada esta opción, el sistema queda a la espera de los 4 dígitos para la nueva contraseña.
5 - cambio de la cantidad de rings de espera: se utiliza para cambiar el parámetro que indica la cantidad de rings a esperar antes de atender la llamada entrante. Una vez marcada esta opción, el sistema queda a la espera de un dígito que indica la nueva cantidad de rings.
6-7: disponibles.
8 - reinicialización: reinicializa el sistema pero sin desloguear al usuario. Esto es particularmente útil cuando el usuario, luego de seleccionar algunas opciones, no sabe en qué situación está.
9 - salir: corta la llamada.


Ir al principio

Generación de los beeps de respuesta

Luego de la selección de cualquiera de las opciones, el sistema emite un beep largo para indicar "si". En algunos casos, el sistema emite un beep corto para indicar "no"; esto sucede cuando la contraseña ingresada es inválida, o para indicar que un relé se encuentra apagado. Ambos beeps se emiten por el pin 0 del puerto 1 (P1.0).

Ir al principio

Administración de la contraseña

Antes de poder utilizar cualquiera de las opciones, el usuario deberá loguearse (es decir, ingresar la contraseña, y que ésta sea validada por el sistema). Una vez validada la contraseña, el sistema emite una melodía para indicar al usuario que ya puede comenzar a utilizar el dispositivo. La contraseña es única (no se permiten múltiples usuarios), y está compuesta de 4 caracteres alfanuméricos (0-9, # ó *). La primera vez que se utiliza el sistema, o cuando el sistema es reseteado externamente (a través de un pulsador al efecto), se espera el ingreso de la contraseña por defecto (1111). Posteriormente, el usuario puede modificarla mediante la opción 4.

Ir al principio

Administración de la cantidad de rings de espera

El sistema espera una cierta cantidad de rings antes de atender la llamada (análogamente al funcionamiento de un contestador automático). Esa cantidad es configurable mediante la opción 5, aunque por defecto se toma el valor 3. Solo acepta un dígito, con lo cual se podrá configurar hasta 9 rings de espera.

Ir al principio

Diagrama de conexiones en bloque

En la siguiente figura se presenta el diagrama de conexiones en bloque del circuito construído.



Ir al principio

Software

Diagrama de flujo

En la siguiente figura se presenta el diagrama de flujo correspondiente al software desarrollado.




Descripción de las interrupciones utilizadas

Las interrupciones utilizadas son las siguientes:

Interrupción externa 0 (IE0) : disparada cuando el circuito integrado conversor de DTMF a binario pone en alto el pin 12 (INT0) del microcontrolador, notificando la presencia de un dígito válido en sus 4 salidas.
Interrupción externa 1 (IE1) : disparada por el circuito detector de rings, con cada detección efectuada.
Interrupción del puerto serie (RI/TI) : disparada por software (TI) cuando se tiene un caracter para enviar por comunicación serie RS232, o por hardware (RI) cuando se ha recibido un caracter por la misma vía.
Interrupción del timer 0 (TF0) : disparada por el timer 0 cuando transcurre una cantidad determinada de segundos sin que el usuario haya seleccionado alguna opción. Permite administrar un time-out, impidiendo que el programa quede en un bucle de espera infinito en caso de que se corte la comunicación telefónica sin un desloguéo explícito con la opción 9.


Ir al principio

Descripción de los puertos de entrada/salida

De los 4 puertos disponibles en el AT89S8252 se utilizaron los puertos 1, 2 y 3, con las siguientes finalidades:

Puerto P1

P1.0: salida de la señal que genera los beeps. Por este pin el sistema emite la señal con diferentes duraciones para representar "si" o "no".
P1.1: encendido y apagado del relé. El sistema pone en alto este pin para encender el relé, o lo pone en bajo para apagarlo.
P1.2: comunicación establecida. Cuando el sistema "atiende" la llamada entrante, pone en bajo este pin, y lo mantiene en ese nivel mientras dure la comunicación telefónica.
P1.3 a P1.7: no utilizados.

Puerto P2

P2.0: entrada del bit 4 desde el conversor DTMF a binario.
P2.1: entrada del bit 3 desde el conversor DTMF a binario.
P2.2: entrada del bit 2 desde el conversor DTMF a binario.
P2.3: entrada del bit 1 desde el conversor DTMF a binario.
P2.4 a P2.7: no utilizados.

Puerto P3

P3.0: entrada de caracteres desde el controlador de comunicación serie (HIN232).
P3.1: salida de caracteres hacia el controlador de comunicación serie (HIN232).
P3.2: interrupción externa 0, disparada por el conversor DTMF a binario, cuando se ha recibido un caracter válido.
P3.3: interrupción externa 1, disparada por el circuito detector de rings, cuando se recibe un ring por la línea telefónica.
P3.4 a P3.7: no utilizados.


Ir al principio

Listado de componentes

A continuación se detallan los componentes utilizados en la implementación del proyecto:

Resistencias
56 ohms 1W
1 unidad
100 ohms
1 u.
820 ohms
1 u.
1K
2 u.
2K2
2 u.
10K
2 u.
47K
2 u.
56K
1 u.
68K
1 u.
220K
3 u.
270K
1 u.


Capacitores
33 pF
2 unidades
10 nF 100V
2 u.
100 nF
2 u.
120 nF
1 u.
470 nF
1 u.
1 uF
4 u.
1 uF 63V
2 u.
4,7 uF
1 u.
10 uF
1 u.


Circuitos integrados
AT89S8252
1 unidad
HIN232
1 u.
ULN2003
1 u.
CM8870
1 u.
Optoacoplador 4N27
1 u.
Optoaislador LCA110
1 u.
Puente de diodos W04
1 u.
Transistor MPSA42 NPN
1 u.
Transistor MJE340 NPN
1 u.
Diodo 1N5250
2 u.
Diodo 1N4148
2 u.

Cualquier microcontrolador basado en el 8051 es válido para el proyecto, pero en particular, el AT89S8252 permite la programación "en sistema" (ISP). Cualquier controlador para comunicación RS-232 es válido para el proyecto. Se recomendó el MAX232, y se optó por el HIN232 por ser más económico. El ULN2003 es un controlador para poder conectar diferentes cargas al circuito (relés, LEDs, displays, etc.). En nuestro caso lo utilizamos para controlar el relé, y para la generación de la onda acústica que emitimos a través de la línea telefónica.

Otros
Relé TDS-0502 (o similar)
1 unidad
Cristal 12 Mhz
1 u.
Cristal 3.5795 Mhz
1 u.
L7805
1 u.
Varistor
1 u.
Jack telefónico
1 u.
Pulsador
1 u.
Conector DB9
1 u.
Conector DB25
1 u.
Jumper
2 u.
Zócalo de 16 pines
2 u.
Zócalo de 18 pines
1 u.
Zócalo de 40 pines
1 u.
Plaqueta univ. BK-06
1 u.

El L7805 es un regulador de tensión continua, que establece a su salida 5 volts.

Ir al principio

Conclusiones

Se cumplió con el objetivo establecido en el anteproyecto, administrando correctamente el tiempo y los recursos. Así también, la realización del proyecto nos permitió conocer en profundidad el funcionamiento de un microcontrolador, como también de otros circuitos integrados. En muchas oportunidades, los distintos obstáculos que se fueron presentando nos han permitido adquirir importante experiencia en la superación de los mismos.

Ir al principio

Circuito esquemático

Ir al principio

Hojas de datos de algunos de los componentes utilizados

    AT89S8252
    HIN232
    LCA110 (optoaislador)
    Otras

Ir al principio

Código assembly del programa construído

El código es abierto (estamos a favor de la política open source), con lo cual puede ser bajado y utilizado con libertad, pero nunca para fines comerciales (nació en un ambiente académico, y debe conservarse dentro de tal).

    Para bajar el código completo, click aquí.

Ir al principio

Fotos

Un circuito fotogénico...

Ir al principio

Links

Si desea agregar links relacionados, por favor enviarlos a ajvega@fi.uba.ar

Ir al principio

Augusto J. Vega & Gustavo A. Schmidt
ajvega@fi.uba.ar   gschmid@fi.uba.ar
Copyright 2003  JAKARTA. Reservados todos los derechos.
ARGENTINA
Revisado: 07 de Diciembre de 2003 .