5
Segundo Congreso Virtual, Microcontroladores y sus Aplicaciones pág. 1 Control de dispositivos mediante DTMF Autor: Gaspar Daniel Gómez País: Argentina Correo-e: [email protected] Abstract. Planteada la necesidad de controlar dispositivos eléctricos tanto de manera local como remota, se propone la investigación del sistema de marcación por tonos, utilizado en el sistema telefónico estándar como medio de comunicación entre el usuario y el equipo final. Utilizando el circuito integrado CM8870 para decodificar dichos tonos y el microcontrolador MC68HC908 derivativo QB8, para el control y procesamiento de señales. Se intenta realizar un dispositivo capaz de controlar la activación y desactivación de cargas eléctricas y electrónicas, contestar automáticamente una llamada entrante e interpretar los comandos introducidos por el usuario mediante funciones implementadas por software.- 1. Que significa DTMF? En telefonía, el sistema de marcación por tonos, también llamado sistema multifrecuencial o DTMF (Dual-Tone Multi-Frequency), consiste en el envío de dos tonos de frecuencias diferentes que identifican cada tecla pulsada en un teléfono. De esta manera se sustituye el disco de marcado de los teléfonos más antiguos, obteniéndose a la vez varias ventajas adicionales como por ejemplo mayor velocidad de marcado. Los tonos que el usuario oye cuando presiona una tecla de su teléfono, están compuestos por dos frecuencias como se indica en la tabla 1.- Las frecuencias ubicadas en la primera fila se conocen como frecuencias de rango alto (Mayores a 1KHz), mientras que las frecuencias ubicadas sobre la primera columna se conocen como frecuencias de rango bajo (Menores a 1KHz). Nótese que a cada tecla le corresponde un solo par de frecuencias compuesto por una frecuencia de rango alto y una de rango bajo.- Este sistema de marcación es posible gracias al desarrollo de circuitos integrados que generan dichos tonos, como así también los decodifican. En este proyecto se utiliza el decodificador CM8870.- Frecuencias DTMF - Tabla 1.- 2. El Tono de Llamada.- En estado de reposo, la línea telefónica se encuentra con una tensión de aproximadamente 40, 45V a 20Hz que se oye de manera continua, cuando el usuario comienza a marcar el número de otro abonado el tono se silencia para que los tonos DTMF se envíen de manera limpia a la central, que identificará el numero destino y establecerá la comunicación. Inmediatamente después de que un usuario termina de marcar el número del destinatario, se produce el conocido “Tono de llamada”. Esta señal es una onda sinusoidal, con una frecuencia de 20Hz y una amplitud que puede alcanzar los 90V, viaja a través de la línea telefónica desde la central hasta el usuario destino, para indicarle al mismo que esta presente una nueva llamada entrante. Al mismo tiempo, la central envía la misma señal al usuario que inicio la llamada (Tono que el usuario origen oye mientras espera a ser atendido) a modo de indicarle que su llamada esta en curso. En este caso no se oye el tono de manera continua, sino que se han establecido códigos de “Tono-espacio” que indican el estado de la llamada en curso. De esta manera sabemos que si la separación entre tonos es de un tiempo mínimo, el abonado al que estamos llamando se encuentra “Ocupado”, si los tonos tienen una separación de mas de 2 segundos, sabemos que solo nos queda esperar a que conteste el abonado destino.- Cuando el usuario destino contesta la llamada, en realidad, lo que esta haciendo es aplicar a la línea una carga de 600Ω, la cual cierra el circuito de comunicación indicando a la central que este usuario esta listo para comenzar la comunicación. Cuando esto sucede la tensión de la línea desciende hasta los 10V. De esta manera queda establecido el enlace entre ambos abonados.- 1209 Hz 1336 Hz 1477 Hz 1633 Hz 697Hz 1 2 3 A 770Hz 4 5 6 B 852Hz 7 8 9 C 941Hz * 0 # D

Control de Dispositivos Mediante DTMF

Embed Size (px)

Citation preview

Page 1: Control de Dispositivos Mediante DTMF

Segundo Congreso Virtual, Microcontroladores y sus Aplicaciones

pág. 1

Control de dispositivos mediante DTMF

Autor: Gaspar Daniel Gómez

País: Argentina

Correo-e: [email protected]

Abstract. Planteada la necesidad de controlar dispositivos eléctricos tanto de manera local como remota, se propone la investigación del sistema de marcación por tonos, utilizado en el sistema telefónico estándar como medio de comunicación entre el usuario y el equipo final. Utilizando el circuito integrado CM8870 para decodificar dichos tonos y el microcontrolador MC68HC908 derivativo QB8, para el control y procesamiento de señales. Se intenta realizar un dispositivo capaz de controlar la activación y desactivación de cargas eléctricas y electrónicas, contestar automáticamente una llamada entrante e interpretar los comandos introducidos por el usuario mediante funciones implementadas por software.-

1. Que significa DTMF?

En telefonía, el sistema de marcación por tonos,

también llamado sistema multifrecuencial

o DTMF (Dual-Tone Multi-Frequency), consiste en

el envío de dos tonos de frecuencias diferentes que

identifican cada tecla pulsada en un teléfono. De esta

manera se sustituye el disco de marcado de los

teléfonos más antiguos, obteniéndose a la vez varias

ventajas adicionales como por ejemplo mayor

velocidad de marcado. Los tonos que el usuario oye

cuando presiona una tecla de su teléfono, están

compuestos por dos frecuencias como se indica en la

tabla 1.-

Las frecuencias ubicadas en la primera fila se

conocen como frecuencias de rango alto (Mayores a

1KHz), mientras que las frecuencias ubicadas sobre

la primera columna se conocen como frecuencias de

rango bajo (Menores a 1KHz). Nótese que a cada

tecla le corresponde un solo par de frecuencias

compuesto por una frecuencia de rango alto y una de

rango bajo.-

Este sistema de marcación es posible gracias al

desarrollo de circuitos integrados que generan dichos

tonos, como así también los decodifican. En este

proyecto se utiliza el decodificador CM8870.-

Frecuencias DTMF - Tabla 1.-

2. El Tono de Llamada.-

En estado de reposo, la línea telefónica se

encuentra con una tensión de aproximadamente 40,

45V a 20Hz que se oye de manera continua, cuando

el usuario comienza a marcar el número de otro

abonado el tono se silencia para que los tonos DTMF

se envíen de manera limpia a la central, que

identificará el numero destino y establecerá la

comunicación. Inmediatamente después de que un

usuario termina de marcar el número del destinatario,

se produce el conocido “Tono de llamada”. Esta señal

es una onda sinusoidal, con una frecuencia de 20Hz y

una amplitud que puede alcanzar los 90V, viaja a

través de la línea telefónica desde la central hasta el

usuario destino, para indicarle al mismo que esta

presente una nueva llamada entrante. Al mismo

tiempo, la central envía la misma señal al usuario que

inicio la llamada (Tono que el usuario origen oye

mientras espera a ser atendido) a modo de indicarle

que su llamada esta en curso. En este caso no se oye

el tono de manera continua, sino que se han

establecido códigos de “Tono-espacio” que indican el

estado de la llamada en curso. De esta manera

sabemos que si la separación entre tonos es de un

tiempo mínimo, el abonado al que estamos llamando

se encuentra “Ocupado”, si los tonos tienen una

separación de mas de 2 segundos, sabemos que solo

nos queda esperar a que conteste el abonado destino.-

Cuando el usuario destino contesta la llamada, en

realidad, lo que esta haciendo es aplicar a la línea una

carga de 600Ω, la cual cierra el circuito de

comunicación indicando a la central que este usuario

esta listo para comenzar la comunicación. Cuando

esto sucede la tensión de la línea desciende hasta los

10V. De esta manera queda establecido el enlace

entre ambos abonados.-

1209

Hz

1336

Hz

1477

Hz

1633

Hz

697Hz 1 2 3 A

770Hz 4 5 6 B

852Hz 7 8 9 C

941Hz * 0 # D

Page 2: Control de Dispositivos Mediante DTMF

Segundo Congreso Virtual, Microcontroladores y sus Aplicaciones

pág. 2

3. Los Objetivos.-

• Principalmente, el proyecto se basa

en lograr una comunicación entre el usuario

y el equipo a desarrollar, para que el mismo

usuario pueda controlar equipos eléctricos y

electrónicos desde cualquier teléfono

comercial. Dado que el sistema de

marcación por tonos es un estándar mundial

y que, actualmente, desde cualquier parte del

mundo, se puede realizar una llamada a otro

teléfono que no necesariamente se encuentre

en la misma localidad, estamos en

condiciones de afirmar que este desarrollo

puede ser controlado desde cualquier parte

del globo.-

• Si consideramos que el sistema se

conecta a la red de telefonía pública,

cualquier persona que conozca el número de

línea al que este conectado dicho sistema

puede tener acceso al mismo, por lo que será

necesaria la implementación de un código

que restrinja el acceso solo al grupo de

usuarios que lo conozcan. Esta clave deberá

ser ingresada de manera secuencial al

sistema y no tendrá que dar lugar a llamadas

accidentales, ya que si se utiliza de modo

local (El teléfono desde el que se genera la

marcación esta conectado a la misma línea

que el sistema) los tonos generados por el

teléfono también se envían a la central que

provee el servicio.-

• Mediante funciones implementadas

por software realizar tanto las activaciones y

desactivaciones individuales de las salidas,

como así también en forma conjunta.

• No hay una manera precisa de saber

cuando el usuario termina la comunicación,

es decir, cuando “cuelga el tubo”, por esta

razón será necesario generar una función

que libere la línea pasado un cierto tiempo

desde que se recibió el último comando.

Este tiempo será de 10 segundos

aproximadamente.

• Si el equipo se instala sobre una

línea compartida, que se utiliza para voz y

datos, el sistema no deberá contestar

inmediatamente cuando detecte una llamada

entrante, sino que deberá esperar a que

alguien atienda y si después de tantos tonos

ninguna persona contesta, lo deberá hacer el

mismo sistema.-

4. El Sistema.-

El corazón del sistema es el microcontrolador

68HC908QB8, de este micro se utilizan los módulos

KBI (Keyboard Interrupt), TIM (Timer Interrupt Module) y ambos puertos de entrada/salida (PTA y PTB). La lógica de apoyo esta constituida por el

decodificador de tonos CM8870, el cual se encarga

de la interpretación de los tonos recibidos.

Como se vio en la sección 2, la tensión de línea

varía en un rango bastante amplio por lo que se debe

adaptar para que pueda ser ingresada al

microcontrolador sin causar ningún daño al

dispositivo. Para esto se implemento un enlace óptico

que permite separar las variaciones de tensión de la

línea con respecto a las del circuito impreso. Al

aplicar este opto-acoplador también se rectifica en

media onda la tensión de entrada.-

A continuación se describen los detalles más

importantes de cada etapa del sistema.-

4.1 Entrada de Línea.-

Esta etapa se caracteriza por adaptar los niveles de

tensión de la línea telefónica y llevarlos a niveles

TTL para su posterior ingreso a las otras etapas. Un

circuito integrado LM555 en configuración

monoestable se dispara con el primer flanco

descendente de cada pulso del tono de llamada y

mantiene su salida en alto durante el transcurso del

tono. Gracias a esto se puede utilizar el modulo de

interrupción por teclado (KBI) para detectar y contar

los tonos de una llamada entrante.

4.2 Decodificador.-

Se toma una derivación de la línea de entrada y se

envía al decodificador CM8870 mediante un

capacitor de 0.1µF para bloquear la componente de

corriente continua. El decodificador separa ambas

frecuencias, las decodifica, envía el valor a su salida

y lo indica activando dos bits de señalización

denominados ESt (Early Steering output) y StD

(Delayed Steering Output). Estos bits tienen conexión

física al exterior. El pin 15 (StD) se envía

directamente al microcontrolador. Indica que durante

un tiempo prudencial estuvo presente un tono

considerado como válido y que el valor ya esta

disponible en la salida.

4.3 Contestador.-

Para contestar una llamada basta con cargar la línea

telefónica con una impedancia de 600Ω. Para lograr

Page 3: Control de Dispositivos Mediante DTMF

Segundo Congreso Virtual, Microcontroladores y sus Aplicaciones

pág. 3

esto, se conectan a la línea un par de resistencias en

serie, de 270Ω y 330Ω, y los contactos “Normal

abierto” (NO) y “Común” (C) de un relé que va a

actuar como la horquilla del teléfono. Este relé es

controlado por el microcontrolador.

Por software se indica la cantidad de tonos de

llamada que el sistema debe recibir antes de

contestar. Un contador interno lleva esta cuenta y si

después de un lapso de 10 segundos no se reciben

más tonos (De llamada o DTMF), se resetea para

poder iniciar la cuenta nuevamente.-

4.4 Salidas Controladas.-

El sistema cuenta con 6 salidas TTL para controlar

6 cargas independientes. Para controlar cargas de

220Vca o 110Vca deberá aplicarse una interfaz de

potencia tal como puede ser un banco de relés. Estas

salidas se controlan mediante un protocolo propio.

Los pasos a seguir para realizar cualquier acción

sobre las mismas son los siguientes:

• Ingresar la contraseña de manera

secuencial.-

• Indicar la función que se desea realizar

(Teclas del teléfono):

(1): ACTIVAR una salida.-

(2): DESACTIVAR una salida.-

(7): ACTIVAR TODAS las salidas.-

(8): DESACTIVAR TODAS las salidas.-

(9): RESETEAR secuencia.-

Cualquier otra tecla: CORTAR COMUNICACIÓN.-

• Indicar la salida a la que ataca la función

indicada, en caso de ser (7) u (8), este paso se

omite ya que ataca a todas las salidas.-

Una vez que se ingresa al sistema mediante la

contraseña, hasta que éste corte la comunicación, no

es necesario reingresar dicha contraseña nuevamente.

Se procede desde el segundo paso.-

4.5 El Microcontrolador.-

Siendo el “cerebro” del sistema, controla,

administra y procesa todas las señales del mismo. El

microcontrolador utilizado para este proyecto es el

MC68HC908QB8 de la familia “Nitron”

perteneciente a la firma Freescale. Este micro se

considera idóneo para este tipo de procesamiento ya

que en su encapsulado DIP-16 posee 14 pines de

entrada/salida de propósito general (GPIO) que se

encuentran interconectadas internamente a los

diferentes módulos como son el Conversor A/D,

Interrupción por teclado, reloj interno, puertos A y B,

temporizadores, comunicación serie, etc. El entorno

de desarrollo integrado (IDE) utilizado es

CodeWarrior y se programó en lenguaje C.-

4.6 El Software.-

El software se basa fundamentalmente en el uso de

interrupciones y funciones. El programa principal lo

único que hace es refrescar los estados de las salidas

y chequear la ejecución de la secuencia de control. Se

setean dos interrupciones principales por KBI y una

por desborde del modulo temporizador TIM.

En el primer caso, se interrumpe el cauce normal

del programa ya sea porque, se ha detectado un tono

de llamada o porque el decodificador CM8870 acusa,

mediante la señal StD, que hay un tono válido

presente en la salida del mismo. Para averiguar que

evento fue el que causo la interrupción, se interrogan

las entradas del microcontrolador destinadas al

módulo KBI.-

Si el resultado de la interrogación es que hay un

tono de llamada válido, entonces se incrementa un

contador que registra la cantidad de tonos de

llamadas entrantes ocurridos hasta el momento y se

compara con un valor establecido por software que

determinará la cantidad de tonos que deben esperarse

antes de contestar automáticamente la llamada. Si la

llamada es contestada antes de que se alcance dicha

cantidad de tonos el sistema no actúa, caso contrario,

se activa el relé de la etapa del contestador

automático cargando la línea con 600Ω y se espera el

ingreso de una contraseña (por defecto es * 0 #) que

habilite el ingreso al sistema. Esta contraseña es de 3

dígitos y tiene una secuencia preestablecida la cual

debe ser respetada. De no ingresarse en la secuencia

correcta, el sistema identificará esta acción como una

intrusión, y provocara la apertura del relé que cortara

la comunicación.

Otro caso de interrupción del módulo KBI, como

se dijo anteriormente, es mediante la activación de la

señal StD del decodificador CM8870. En este caso se

revisa el valor entregado por el decodificador y se

envía a una función que se encargara de determinar

en que paso de la secuencia se encuentra el programa

y el significado del comando ingresado por el

usuario. De esta manera se saltea la cuenta de tonos

de llamada entrante y se puede acceder al sistema en

modo Local ingresando directamente la contraseña.

Page 4: Control de Dispositivos Mediante DTMF

Segundo Congreso Virtual, Microcontroladores y sus Aplicaciones

pág. 4

Una vez que se autoriza el ingreso, ya sea Local o

Remoto, el usuario puede proceder con el ingreso de

comandos indicados en el apartado 4.4. Secuencia de

ejemplo: *, 0, #, 1, 6, 0, 2. Donde:

* 0 #: Contraseña de acceso.-

1, 6: Activar Salida número 6.-

0, 2: Desactivar Salida número 2.-

Se pueden seguir ingresando más comandos.

Cuando pasen 10 segundos del último comando

recibido, el sistema cortara la comunicación como se

explica a continuación.-

La interrupción por el modulo TIM, se utiliza para

generar una base de tiempo de 10 segundos. El

temporizador se resetea cada vez que se ingresa un

tono DTMF, lo que nos permite generar el corte

automático por falta de comando, esto significa que si

no se ingresa un comando válido dentro de un

margen de 10 segundos, se libera la línea telefónica y

el sistema se prepara para iniciar una nueva secuencia

de control.-

5. Conclusiones.-

El sistema nos brinda la capacidad de controlar 6

cargas tanto de manera local como remota.

Dependiendo de las cargas que se deseen controlar el

usuario optará por la interfaz de salida que más se

ajuste a sus necesidades.

Con el acceso por contraseña, nos aseguramos que

solo los usuarios que la conozcan tengan acceso al

sistema, pero a la vez, si conectamos varios de estos

equipos a la línea telefónica y a cada uno le

asignamos contraseñas distintas, podríamos controlar

mas salidas de las 6 disponibles en un solo equipo

(posibilidad de expansión). Para esto solo hay que

tener en cuenta que la impedancia con la que

cargamos la línea no sea demasiado baja, lo que se

podría solucionar compartiendo el modulo del

contestador automático.-

Debido a que la plataforma de comunicación

utilizada es un estándar mundial, el sistema puede ser

controlado desde cualquier parte del mundo. Es

evidente que cualquier línea telefónica puede ser

contactada por medio de una llamada.-

El hecho de conectarse a la línea telefónica no

implica que el sistema deba estar al lado del teléfono,

solo con conectarlo a la línea y a la fuente de

alimentación, es suficiente para que éste pueda

operar. Esto significa que el sistema podría ser

instalado discretamente en un altillo, sótano, armario,

etc.-

Siendo más críticos, los “contra” que tiene este

sistema son, principalmente, que si operamos de

manera remota no tenemos ninguna clase de

confirmación de que el comando que enviamos ha

sido procesado con éxito. En modo local solo

tenemos confirmación visual mediante LED’s que

actúan como monitores que, al instalar el sistema de

manera discreta, se puede perder dicha

confirmación.-

Apéndice I.-

En el enlace siguiente se puede ver un video DEMO

del sistema en funcionamiento, esta instalado sobre

una línea residencial y muestra ambos modos de

trabajo, local y remoto.

Enlace: DTMF DEMO

Apéndice II.-

Plano eléctrico esquemático (En la pagina siguiente).-

Referencias:

[1] CM8870/70C Datasheet “CMOS Integrated DTMF Receiver” 9/28/2000.-

[2] MC68HC908QB8 Data Sheet, Rev. 1 6/3/2005.-

[3] Artículo “Marcación por tonos” 24 ago 2010

Wikipedia.org

“Copyright ©2010. Gaspar Daniel Gómez”: El autor delega a la Organización del Segundo Congreso Virtual de

Microcontroladores la licencia para reproducir este documento para los fines del Congreso ya sea que este

artículo se publique en el sitio web del congreso, en un CD o en un documento impreso de las ponencias del

Segundo Congreso Virtual de Microcontroladores.

Page 5: Control de Dispositivos Mediante DTMF

1

1

2

2

3

3

4

4

D D

C C

B B

A A

Title

Number RevisionSize

A4

Date: 08/10/2010 Sheet ofFile: D:\Proyectos Protel\..\DTMF1.SchDoc Drawn By:

12

P3

Header 2H

100K

R17

GND

3.3K

R14

61

2

4

5

3

U4

4N25

0.43uF x 200V

C5

0.1uF

C4

100K

R5

100K

R7

TRIG2

OUT3

RST4

CVOLT5

THR6

DIS7

+VCC8

GND1

U5

LM555CN

IN+1

IN-2

OSC17

OSC28

EST16

ST/GT17

GS3

VREF4

VDD18

VSS9

STD15

Q111

Q212

Q313

Q414

PDN6

INH5

TOE10

U2

MT88L70AE

VDD1

PTB72

PTB63

PTA54

PTA45

PTB56

PTB47

PTA38

PTA29

PTB310

PTB211

PTA112

PTA013

PTB114

PTB015

VSS16

HC908QB8U3

HC908QB8

Line_In

Line_In

12

3.579

Y1

GND

10K

R12

VCC

VCC

GND

0.1uF

C7

100uFC6

18K

R21

GND

VCC

VCC

GND

VCC

150KR8

150KR10

0.1uFC3

VCC

12

34

5

*

RELE

Q3BC548C

D10Diode

VCC

GND

1K

R23AT

Line_In

330

R16

270

R19

1

23

J1

GND

470uFC1

100nF

C2

IN OUT

GND

U1

LM7805

GNDGND GND

VCC

Q2BC548C4,7K

R22

GND

10K

R20

VCC

470

R13

470

R18

GND

VCC

D8LED0

D9LED0

D2

LED0

D1

LED0

D7

LED0

D3

LED0D4

LED0D5

LED0

D6LED0

470

R1

470

R2

470

R4

470

R6

470

R9

470

R11

GND

Out_1

Out_2

Out_3

Out_4

Out_5

Out_6

Estado

1KR3

GND

VCC

GND

TONO

TONO

AT

Q1Q2Q3Q4

StD

Q1

Q2

Q3Q4

StD

Out_1

Out_2

Out_3

Out_4Out_5

Out_6

123

P1

123

P2

12

P4

Estado

GND

Estado

470R24

D11

GND

StD