detectorderingypruebas1-12

7
DIAGRAMA EN BLOQUES Para explicar el funcionamiento a través del diagrama en bloques, supongamos que el usuario esta interesado en cometer una acción de encendido-apagado sobre las cargas controladas por medio de este mando, para ello se realiza una llamada telefónica al número de abonado al cual se conecto el control de cargas, el primer bloque, “Detector de ring”, se encarga de detectar la señal de 75v Ef. y 25Hz que introduce la central en la línea telefónica y la transforma en pulsos de nivel TTL que a su vez son enviados al “Microcontrolador PIC”, este luego de recibir una cantidad de pulsos preestablecido, por medio de uno de sus puertos coloca en nivel alto TTL a otro pin de un puerto con el fin de activar el “Simulador de horquilla descolgada”, quién se encarga de contestar la llamada cargando la línea con una impedancia de 560 ohms aproximadamente. Enseguida el PIC carga con un tono que se introduce en la línea a modo de confirmación para el usuario, este paso se repite también cada vez que el usuario realiza un cambio en el estado de las cargas. Ahora el control esta listo para recibir los códigos enviados por el usuario para cometer las diferentes acciones, estos códigos se transmiten a través de la línea telefónica como tonos de multifrecuencia DTMF. El bloque “Decodificador de DTMF” se encarga de detectar y convertir estos códigos de DTMF a binario para que el PIC los pueda identificar, luego este último cambia o no los niveles de los puertos que controlan las cargas según lo indiquen los códigos, teniendo en medio una etapa de “Interfase de potencia”, la cual se encarga de conectar o desconectar las cargas a sus fuentes de tensión y/o corriente correspondientes, dependiendo del nivel de los puertos de control. Luego que el usuario realiza los cambios convenientes debe transmitir el código de finalización, el cuál cumple el mismo proceso anterior desde el bloque “Decodificador de DTMF”, solo que el PIC ahora no cambia los niveles de los puertos de control de cargas, LINEA TELEFÓNICA DETECTOR DE RING DECODIFICADOR DE DTMF SIMULADOR DE HORQUILLA DESCOLGADA MICROCONTROLADOR PIC

Upload: leidy-diaz

Post on 03-Aug-2015

43 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: detectorderingypruebas1-12

DIAGRAMA EN BLOQUES

Para explicar el funcionamiento a través del diagrama en bloques, supongamos que el usuario esta interesado en cometer una acción de encendido-apagado sobre las cargas controladas por medio de este mando, para ello se realiza una llamada telefónica al número de abonado al cual se conecto el control de cargas, el primer bloque, “Detector de ring”, se encarga de detectar la señal de 75v Ef. y 25Hz que introduce la central en la línea telefónica y la transforma en pulsos de nivel TTL que a su vez son enviados al “Microcontrolador PIC”, este luego de recibir una cantidad de pulsos preestablecido, por medio de uno de sus puertos coloca en nivel alto TTL a otro pin de un puerto con el fin de activar el “Simulador de horquilla descolgada”, quién se encarga de contestar la llamada cargando la línea con una impedancia de 560 ohms aproximadamente. Enseguida el PIC carga con un tono que se introduce en la línea a modo de confirmación para el usuario, este paso se repite también cada vez que el usuario realiza un cambio en el estado de las cargas. Ahora el control esta listo para recibir los códigos enviados por el usuario para cometer las diferentes acciones, estos códigos se transmiten a través de la línea telefónica como tonos de multifrecuencia DTMF. El bloque “Decodificador de DTMF” se encarga de detectar y convertir estos códigos de DTMF a binario para que el PIC los pueda identificar, luego este último cambia o no los niveles de los puertos que controlan las cargas según lo indiquen los códigos, teniendo en medio una etapa de “Interfase de potencia”, la cual se encarga de conectar o desconectar las cargas a sus fuentes de tensión y/o corriente correspondientes, dependiendo del nivel de los puertos de control. Luego que el usuario realiza los cambios convenientes debe transmitir el código de finalización, el cuál cumple el mismo proceso anterior desde el bloque “Decodificador de DTMF”, solo que el PIC ahora no cambia los niveles de los puertos de control de cargas, sino que pasa a nivel bajo el puerto que controla el “Simulador de horquilla descolgada” cortando así la comunicación.

1 - Detector de Timbre

LINEA TELEFÓNICA

DETECTOR DE RING

DECODIFICADOR DE DTMF

SIMULADOR DE HORQUILLA DESCOLGADA

MICROCONTROLADOR PIC

Page 2: detectorderingypruebas1-12

U3

NE555

OUT3

RST4

VCC8

CV5

TRG2 THR

6

DSCHG7R1

2k2

12

R610K

12

R847k

12

C1

1uFx250V

1 2

VDD

D61n4148

R1212k

12

+ C710uF

GND

R13

2k2

1 2

VDD+ C5

100uFVDD

GND

R1410k

12

Q1BC327

VDD

GND

ISO16N139

C810nF

12

GND

GND

GND

U2

WS2418

RING1

TIP8

SRCC

3

OFQC

R4

Out5Vo

ltAdJ

6

RectCap7

C6100nF

12

GND

GND

entrada

linea telefonica

RB0

Este módulo es el responsable de acondicionar la señal de timbre presente en la línea telefónica, su función es la de mantener un nivel lógico TTL alto cuando esta señal se encuentra presente en la línea. Este proceso se basa en un circuito integrado WS2418 que detecta el timbre telefónico. Se ha optado por utilizar dicho componente debido a que posee un sistema de protección contra el ruido y variación de las señales telefónicas que pueden afectar el correcto funcionamiento del sistema. Además ya contiene un rectificador puente de diodo de onda completa de alta tensión y un diodo zener interno que lo protege contra la sobretensión. En la salida de dicho integrado se obtiene una señal bitono de frecuencias de 2300 y 1700 Hz. Esta señal bitonal se aplica a un optoacoplador 6N139 en configuración darlington que tiene la función principal de aislar eléctricamente el sistema de control digital de esta etapa. Esto es necesario ya que a la salida del WS2418 el nivel de tensión está en los 26V. La señal a la salida del optoacoplador varia en frecuencia con la señal bitonal con lo cual se produce un conteo de la cantidad de timbre mayor al esperado.

En un principio se optó por filtrar esta señal de manera de tener un pulso TTL estable pero no cumplió con el objetivo, con lo cual se procedió a colocar un circuito monoestable redisparable. Este genera en su salida un pulso de cierta duración en respuesta a un flanco de disparo aplicado a su entrada. La duración del pulso la determina un circuito RC formado por la resistencia R5 y C6. El transistor Q1 se encarga de resetear al monoestable para que sea redisparable. Es decir que ante cualquier señal de disparo se inicia un nuevo ciclo de temporización, incluso si la señal de disparo se aplica en medio de un ciclo existente.

2 - Simulador de horquilla descolgada.

El circuito básicamente cumple la función de emular que el aparato telefónico ha sido descolgado (horquilla descolgada); para que ocurra esto debe colocarse en paralelo con la línea telefónica un resistor de 470 ohm y así generar la impedancia adecuada que indicará que la horquilla ha sido descolgada.

El transistor Q2 excita la bobina del relé; el interruptor de este que es activado por el inductor controla la resistencia de 560 ohm haciendo así que la resistencia se conecte en paralelo a la línea. O sea, que cuando la entrada TTL IN tenga una tensión de 5V aproximadamente, la central interpretará que se ha descolgado la horquilla.

Los 5V ingresan a la resistencia de 10 Kohm limitando la corriente de polarización de base del transistor excitándolo para que el relé funcione de acuerdo a lo antes mencionado.

Le hemos colocado al circuito un diodo en paralelo con el inductor del relé para así proteger al transistor de los picos de la tensión inversa.

En modo inverso, si en la entrada TTL in hay un potencial de 0 V no se excitará al transistor y tampoco al relé haciendo así que el circuito permanezca en reposo sin afectar la impedancia que detecta la central.

Page 3: detectorderingypruebas1-12

RV1VARISTOR

D11n4148

K1

RELAY DPDT

34

5

68

712

R2470

12

T1

TRANSFORMER 600x600

1 5

4 8

C21uF

12

Q2BC337

D71n4148

GND

R9

10k

1 2

12v

J1

HEADER 4

1234

RB7

de ringdetector

Para que el sistema de control pueda manipular y traducir las señales provenientes de la línea telefónica requiere de un sistema de aislamiento eléctrico para evitar el contacto directo con ésta, ya que la diferencia de potencial, polaridad y sobrecargas pueden causar daños al sistema digital. Para esta función se empleó un transformador de impedancia de 600 ohms en el primario y secundario.

Protección por sobrecarga.

El sistema de control se encuentra permanentemente conectado a la línea telefónica. Esta condición hace necesario el desarrollo de una etapa que prevenga eventuales daños accidentales debidos, principalmente, a fenómenos meteorológicos, ya que estos son la causa de la mayor parte de los estragos en los sistemas que emplean la infraestructura telefónica instalada. Esta etapa es la de protección por sobrecarga.

J1

HEADER 2

12 RV1

VARISTOR

El uso de un varistor puede solucionar este requerimiento en gran medida ya que estos dispositivos reducen su resistencia conforme aumenta el voltaje de ruptura en sus terminales, operan en paralelo con la línea de entrada (figura) y su resistencia va de unos cientos de Kilo ohms hasta varios Mega ohms dependiendo del voltaje de bloqueo para el que estén diseñados; Se ha optado por un varistor que opera a una tensión de bloqueo de 150 voltios el cual dará protección al circuito de detección durante una descarga sostenida no mayor a 2 segundos, suficiente para las producidas por fenómenos meteorológicos que son las causas mas frecuentes de daños al equipo telefónico.

3 – Decodificador de dtmf.

El circuito presenta dos prestaciones básicas, la sencillez y el bajo costo debido a que casi todos los procesos lo realiza el circuito integrado que además utiliza componentes discretos.

El circuito decodifica las teclas del 0 al 9, # y * e incluso las teclas A B C y D que no serán utilizadas.

Las resistencias R3 y R4 junto con el capacitor C3 aíslan la tensión de línea. Para generar la base de tiempo para el integrado se utiliza un cristal de cuarzo de 3,579545MHz.

Page 4: detectorderingypruebas1-12

Una vez que un tono es recibido, decodificado y validado, su valor binario es colocado en los terminales Q1, Q2, Q3 y Q4 lo que hace que el terminal STD cambie a nivel alto indicando la presencia de un dato en la salida. Dicho terminal permanece en estado alto durante el tiempo que el tono DTMF esta presente en el sistema y esto se puede traducir también, como el

tiempo que esta pulsado el teléfono remoto.

R3100k

1 2

R4100k

1 2

R5 390k1 2

C3100nF

1 2

U1

CM8870

IN+1

IN-2

STD15

EST16

ST/GT17

Q111

Q212

Q313

Q414

GS3

VREF4

OSC17

OSC28

TOE10

Y13.57945MHz

PORTB[0..7]

RB0

VDD

C4

100nF

1 2VDD

RB7RB6

RB2RB1

RB3

PORTB[0..7]

RB5RB4

del filtro 600:600 ohm

3 – Pruebas realizada hasta el momento.

Mediante el circuito presentado y el firmware utilizado en el microcontrolador pic se ha realizado lo siguiente:

En primer lugar se realizó la comunicación a través de la línea telefónica y el circuito. Luego del cuarto ring se activó el relé para simular la horquilla descolgada. A continuación se procedió a presionar los números del teclado telefónico con lo cual se encendían 3 leds del puerto E del pic indicando en binario el numero pulsado en el teclado telefónico.

LIST P=PIC16F877A #INCLUDE <P16F877A.INC> ;definiciones del uC __CONFIG _CP_OFF & _WDT_OFF & _BODEN_ON & _PWRTE_ON & _XT_OSC & _WRT_HALF &

_LVP_OFF & _CPD_OFF

ERRORLEVEL -306, -302, -307 CBLOCK 0x020 memoria

delay cantrings

auxiliar fin ENDC org 0x00 goto INICIO org 0x04 bcf STATUS,RP0 ;banco 0 bcf STATUS,RP1

btfss INTCON,RBIF ;verifica si hubo cambio en RB4-7goto TEMPORIZADOR ;entonces se desbordo el timer1bcf T1CON,TMR1ON ;apago el timer1movf PORTB,W ;muevo el portb al registro W movwf auxiliar ;De W a una variable auxiliarrrf auxiliar,f ;rotamos un lugar hacia la derechamovf auxiliar,W ;volvemos a ubicarlo en Wandlw B'00001111' ;Borramos el primer nibble

movwf PORTE ;Lo pasamos al PORTERESET_PORT

btfsc PORTB,5 ;esperamos que el pin STD del CM8870goto $-1 ;caiga a cero

RBIF_0 movlw B'01001000' ;volvemos a configurar movwf INTCON ;las interrupciones y flagsbtfsc INTCON,RBIF ;si RBIF no se borro entoncesgoto RBIF_0 ;volvemos a configurar las interrupciones y flagsbsf T1CON,TMR1ON ;volvemos a iniciar el timer1

Page 5: detectorderingypruebas1-12

bsf INTCON,GIE ;activamos la interrupcion global return ;salimos de la interrupcion

TEMPORIZADOR decfsz delay,f ;decrementa una vez y sigoto RESET_TEMP ;delay es cero entonces bsf fin,0 ;activamos el flag para desconectarnos de la lineabcf T1CON,TMR1ON ;apagamos el timer1clrf INTCON ;desconectamos las interrupcionesreturn ;salimos de la interrupcion

RESET_TEMPbcf PIR1,TMR1IF ;borramos el flag del timer1 por desbordamientobtfsc PIR1,TMR1IF ;si el flag sigue a 1 entoncesgoto RESET_TEMP ;volvemos a borrarlo nuevamentebsf INTCON,GIE ;activamos la interrupcion global

return ;salimos de la interrupcion

INICIO bcf STATUS,RP0 ;banco 0

bcf STATUS,RP1clrf PORTE ;latch porte=0movlw 0x04 ;cantidad de ringsmovwf cantrings ;antes de atender el telefonomovlw 0x3Fmovwf delaymovlw B'00000000' ;latch portB=0movwf PORTBclrf finclrf PIR1 ;todos los flags a 0bsf STATUS,RP0 ;banco 1movlw B'00000110' ;configuro PORTE Y PORTA comomovwf ADCON1 ;I/O digitalmovlw 0x00 ;movwf TRISA ;configuro PORTA como salidamovwf TRISC ;IDEM PORTCmovwf TRISD ;IDEM PORTDmovwf TRISE ;IDEM PORTEmovlw B'00111111' ;RB6 Y RB7 como salidamovwf TRISB ;y RB0-5 como entradamovlw 0x01 ;permiso de interrupcion paramovwf PIE1 ;el timer1 por overflowbcf STATUS,RP0 ;banco 0

bcf STATUS,RP1clrf TMR1H ;valores iniciales del timer1 TMR1Hclrf TMR1L ;IDEM TMR1L

movlw B'00110100' ;predivisor 1:8, clock interno. movwf T1CON

movlw B'11001000' ;permiso global de interrupciones y permiso de perifericosmovwf INTCON ;que no se controlan por INTCON y permiso por cambio en RB4-

7VERIF1 btfss PORTB,0 ;verifico si esta a 1

goto $-1 ;debido a un ringbsf PORTE,0 ;enciende led0

VERIF2 btfsc PORTB,0 ;verifica si desaparecio ringgoto $-1bcf PORTE,0 ;se apaga el led0

decfsz cantrings,f ;decrementa la cantidad de ringgoto VERIF1 ;si no es cero salta a VERIFI1bsf T1CON,0 ;inicio el conteo del timer1bsf PORTB,7 ;RELE DE SALIDA ACTIVADO para contestar

VERIF3 btfss fin,0goto $-1bcf PORTB,7 ;Desactiva el rele y salimos.

SALIR nopEND