proyecto de - 148.206.53.84148.206.53.84/tesiuami/uam3786.pdf · multiplexado o en un comando de...

54
PROYECTO DE I INGENIERÍA I ELECTRONICA

Upload: leminh

Post on 28-Jul-2018

217 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: PROYECTO DE - 148.206.53.84148.206.53.84/tesiuami/UAM3786.pdf · multiplexado o en un comando de display. La entrada de datos del 8279 y su visualización son una parte importante

PROYECTO

DE

I

INGENIERÍA

I

ELECTRONICA

Page 2: PROYECTO DE - 148.206.53.84148.206.53.84/tesiuami/UAM3786.pdf · multiplexado o en un comando de display. La entrada de datos del 8279 y su visualización son una parte importante

UNIVERSIDAD AUTONOMA METROPOLITANA

Casa abierta al tiempo

IZTAPALAPA

Page 3: PROYECTO DE - 148.206.53.84148.206.53.84/tesiuami/UAM3786.pdf · multiplexado o en un comando de display. La entrada de datos del 8279 y su visualización son una parte importante

SISTEMA DE

VIGILANCIA CONTROLADO

POR LA

PC

2

Page 4: PROYECTO DE - 148.206.53.84148.206.53.84/tesiuami/UAM3786.pdf · multiplexado o en un comando de display. La entrada de datos del 8279 y su visualización son una parte importante

ASESOR:

Gonzalo lsacc Duchén Sánchez

AUTORES DEL PROYECTO:

Ricardo González Carrillo Y

Ricardo Alejandro Solís Ramírez

3

Page 5: PROYECTO DE - 148.206.53.84148.206.53.84/tesiuami/UAM3786.pdf · multiplexado o en un comando de display. La entrada de datos del 8279 y su visualización son una parte importante

DEDICATORIA

Dedico este trabajo a mis padres Luis y Carlota, así como a mis hermanos Octavio, Mary, Angélica, Yolanda y Carlos.

Hago un reconocimiento a mis padrinos Jorge y Juan por su solidaridad.

Ricardo Alejandro Solís Ramírez.

4

Page 6: PROYECTO DE - 148.206.53.84148.206.53.84/tesiuami/UAM3786.pdf · multiplexado o en un comando de display. La entrada de datos del 8279 y su visualización son una parte importante

AGRADECIMIENTO.

Gracias.

Ricardo González Carrillo.

5

Page 7: PROYECTO DE - 148.206.53.84148.206.53.84/tesiuami/UAM3786.pdf · multiplexado o en un comando de display. La entrada de datos del 8279 y su visualización son una parte importante

íNDlCE

INTRODUCCI~N .................................................... 8

CAPiTU LO 1 . HARDWARE ............................. 9

1.1 CONTROL DE PERIFÉRICOS DE LA PC ..... 9

1.2 TARJETA CONTROLADORA .................... 12

1.2.1

1.2.2

1.2.3

EL CIRCUITO INTEGRADO 8279 ................................. 12

EL CIRCUITO INTEGRADO 8255 ................................. 16

CIRCUITOS INTEGRADOS ANEXOS .......................... 17

1.3 SISTEMA DE COMUNICACIóN TELEF~NICA ............................................ 19

1.3.1

1.3.2

1.3.3

LA LíNEA TELEFóNICA ................................................. 19

DETECTOR DE CADENCIA .......................................... 22

CONTROL DEL TELÉFONO ......................................... 23

1.4 TECLADO. PUERTA. LUCES Y DETECTORES DE HUMO ................................................. 23

6

Page 8: PROYECTO DE - 148.206.53.84148.206.53.84/tesiuami/UAM3786.pdf · multiplexado o en un comando de display. La entrada de datos del 8279 y su visualización son una parte importante

2.1 ASPECTOS GENERALES DEL PROGRAMA .............................................. 25

2.2 MANEJO DE LA TARJETA ......................... 26

2.3 ALMACENAMIENTO DE INFORMACI~N ..... 29

CAPíTULO 3 . INSTALACIóN ........................ 45

3 .I

3.2

3.3

INSTALACIóN DE SOFTWARE Y TARJETA ................................................... 45

INSTALACIóN DE PERIFÉRICOS ................ 46

RECOMENDACIONES ................................. 48

BIBLIOGRAFíA .................................................... 49

7

Page 9: PROYECTO DE - 148.206.53.84148.206.53.84/tesiuami/UAM3786.pdf · multiplexado o en un comando de display. La entrada de datos del 8279 y su visualización son una parte importante

Debido a la necesidad de custodiar lugares donde se encuentran artículos de valor

y a la preocupación de poder obtener mayor provecho de la tecnología que está a nuestro

alcance ( como lo son las PC's, teléfonos, etc.), se ha desarrollado un proyecto que

contiene un sistema de vigilancia constante y un registro de personal de un lugar de interés.

Para poder llevar a cabo este proyecto, se ha utilizado a la PC como control

principal, de tal forma que dirija todo el sistema de seguridad. Dicho sistema tiene entre sus

principales funciones el de detectar si alguna persona está forzando las entradas al lugar

con vigilancia, realizando si esto sucede, llamadas con números telefónicos que han sido

escogidos previamente. Otra función que se tiene, es el almacenamiento de las claves

numéricas de los usuarios junto con la hora y fecha de acceso; esto se realiza cuando es

tecleada la clave correspondiente y tiene como fin un mejor control del personal que tiene

acceso al lugar protegido. Para complementar la seguridad se han colocado detectores de

' humo y un encendido automático de luces durante un tiempo específico en el transcurso de

la noche, que dará una mejor visibilidad de la región bajo vigilancia. Todas estas funciones

se explicarán mas ampliamente en los capítulos 1 y 2.

El proyecto es bastante completo, ya que abarca electrónica analógica , electrónica

digital y programación. La electrónica analógica se presenta al hacer uso de la línea

telefónica, la cual contiene una señal senoidal con la que podemos saber si hay línea, si se

esta llamando o si está ocupado. La electrónica digital la encontramos en la información

que tenemos de la señal digital obtenida a partir de la señal analógica, así como en el

manejo del teclado, en los detectores de humo y en el encendido de luces que se controlan

mediante la ranura de expansión de la computadora. Con respecto a la programación

podemos decir que controla todo el hardware y se hace presente en el funcionamiento del

sistema.

a

Page 10: PROYECTO DE - 148.206.53.84148.206.53.84/tesiuami/UAM3786.pdf · multiplexado o en un comando de display. La entrada de datos del 8279 y su visualización son una parte importante

CAPíTULO 1

HARDWARE

1.1 CONTROL DE PERIFÉRICOS DE LA PC

El control de periféricos mediante una PC se lleva a cabo con una tarjeta

controladora de condiciones específicas, la cual está comunicada directamente con el

microprocesador de la computadora usando una ranura de expansión la cual contiene 20

líneas de direccionamiento, un bus de datos de ocho bits que es bidireccional, seis

niveles de interrupción, tres canales de acceso directo a memoria con lineas de control

de ES, líneas de acceso a memoria de lectura o escritura, conexiones al reloj y a

circuitos de temporarización. Dentro de las líneas de control tenemos incluidos los

voltajes de +5 Vdc, +12Vdc, -12Vdc y tierra. Todas estas líneas hacen un total de 62 pins

en la ranura de expansión.

Para el desarrollo de nuestro proyecto se utilizan 32 líneas de conexión de las

62 existententes. A continuación daremos todas las lineas usadas y una explicación de

su funcionamiento.

A2 a A9 Estas lineas contienen los datos, los cuales se toman

bidereccionalmente para comunicar a la PC con la tarjeta. A2

corresponde a D7 que es el bit más significativo y A9

corresponde a DO que es el bit menos significativo.

9

Page 11: PROYECTO DE - 148.206.53.84148.206.53.84/tesiuami/UAM3786.pdf · multiplexado o en un comando de display. La entrada de datos del 8279 y su visualización son una parte importante

A20 a A31 Corresponden a 12 de las 20 líneas de dirreccionamiento.

Donde A31 es la linea de direccionamiento A0 y es el bit

menos significativo y A20, bit más significativo, es la línea de

direccionamiento A l l la cual se deja sin conectar. Aquí es

importante mencionar que los pins A31 (AO), A30 (AI) y A29

(A2), son utilizados para habilitar a los circuitos integrados 8279 y

8255. Las demás lineas son utilizadas para direccionar los puertos

libres que se asignan a la tarjeta. Estos puertos van de 300H al

305H.

A10 - E/S CH RDY Esta línea nos indica cuando esta en alto, que el canal de

E/S esta listo. Dicha terminal se encuentra normalmente en alto

y es puesta en bajo por la memoria o dispositivos de E/S para

poder conectar dispositivos mas lentos que el sistema. El

dispositivo debe llevar inmediatamente la línea a bajo cuando

exista una dirección válida y se haya detectado un comando

de lectura o escritura. La línea no debe permanecer en bajo

durante más de diez ciclos de reloj.

A I 1 - AEN Es la línea de dirreccionamiento que habilita el uso del canal de

E/S por el procesador y otros dispositivos, mientras el DMA

ocupa su lugar.

BI, B10, 831 - GND

82 - RESET

B5, B29 - (+5Vdc)

87 - (- 12Vdc)

B9 - (+ 12Vdc)

10

Page 12: PROYECTO DE - 148.206.53.84148.206.53.84/tesiuami/UAM3786.pdf · multiplexado o en un comando de display. La entrada de datos del 8279 y su visualización son una parte importante

B13 - IOW Es un comando de escritura que habilita a un dispositivo de E/S para que lea un dato del bus de datos. Se activa en Bajo. Puede

ser manejado por el procesador o el controlador DMA.

- B14 - IOR Es un comando de lectura para un dispositivo de E/S que

intenta transferir un dato al bus de datos. Se activa en bajo.

Puede ser manejado por el procesador o el controlador DMA.

B20 - CLK

La ranura de expansión y las lineas utilizadas se muestran en la figura l.

11

Page 13: PROYECTO DE - 148.206.53.84148.206.53.84/tesiuami/UAM3786.pdf · multiplexado o en un comando de display. La entrada de datos del 8279 y su visualización son una parte importante

o I u I m I 1 P

o I V I m I a

Page 14: PROYECTO DE - 148.206.53.84148.206.53.84/tesiuami/UAM3786.pdf · multiplexado o en un comando de display. La entrada de datos del 8279 y su visualización son una parte importante

1.2 TARJETA CONTROLADORA

Esta tarjeta es mostrada en la figura 2 que se encuentra al final de esta sección

y se explica en módulos de acuerdo a los circuitos integrados que intervienen en ella. Se

recomienda que al ir leyendo esta sección observe la figura.

1.2.1 EL CIRCUITO INTEGRADO 8279

Este es un dispositivo de 40 pins, los cuales se dividen de la siguiente manera:

Símbolo Pin Descripción

DBO-DB7 19-1 2 BUS DE DATOS BIDERECCIONAL: Todos

los datos y comandos entre el CPU y el

8279 se transmiten por este bus.

CLK 3

RESET 9

CLOCK: Señal del reloj del sistema usada

para la generación del timing interno.

RESET: Un nivel alto en este pin resetea

al 8279. Después de esto, el 8279 se

coloca en el modo siguiente:

1 ) 16 caracteres de display de 8 bits,

entrada por la derecha.

2) Exploración codificada de teclado

con bloqueo por pulsación de dos teclas;

durante este proceso, el múltiplo de

división del clock se coloca a 31.

12

Page 15: PROYECTO DE - 148.206.53.84148.206.53.84/tesiuami/UAM3786.pdf · multiplexado o en un comando de display. La entrada de datos del 8279 y su visualización son una parte importante

Símbolo Pin

cs 22

A0 21

RDNVR

IRQ

10-1 1

4

vss, vcc 20,40

SLO-SL3 32-35

Descripción

SELECCIóN DE CHIP: Un nivel bajo en

esta entrada habilita al 8279 para

transmitir y recibir.

DIRECCIóN DE BUFFER: Un nivel alto en

esta línea indicará que las señales de

bus se interpretarán como comando o

como estatus. El nivel bajo indicara que son

datos.

ENTRADNSALIDA READ Y WRITE:

Estas señales habilitan al buffer de datos para

enviar o recibir datos por el bus externo.

PETICIóN DE INTERRUPCIóN: En el

modo teclado esta línea está a nivel alto

cuando hay datos en la memoria. Pasará

a nivel bajo con cada lectura y volverá a

nivel alto si quedan en ella. En el modo

sensor, pasa a nivel alto cuando se

detecta un cambio en el mismo.

PINS DE TIERRA Y ALIMENTACIóN.

LINEAS DE EXPLORACIóN: Estas se

usan para la exploración de teclas o

sensores de la matriz y de los dígitos del

display. Se pueden codificar ( 1 de 16 ) o

decodificar (1 a 4).

13

Page 16: PROYECTO DE - 148.206.53.84148.206.53.84/tesiuami/UAM3786.pdf · multiplexado o en un comando de display. La entrada de datos del 8279 y su visualización son una parte importante

Símbolo Pin

RLO-RL7 38,39,

1 2 5-8

SHIFT 36

CNTUSTB 37

OUT AO-OUT A3 27-24

OUT BO-OUT B3 31-28

Descripción

LíNEAS DE RETORNO: Estas entradas

se conectan a las líneas de exploración de

las teclas o los sensores de teclado.

Estan polarizadas con resistencias

internas de pull-up. También se pueden

utilizar como entradas en el modo de

entrada por impulso

SHIFT: Esta entrada se almacena junto

con la tecla que se haya pulsado en el

modo de exploración de teclado. Está

polarizada con resistencias internas de

pull-up.

CONTROUENTRADA DE IMPULSO:

Para los modos de teclado, se almacena

junto con la tecla pulsada (del mismo modo

que shift); esta línea se utiliza también como

la entrada de impulso ( flanco de bajada )

en el modo de entrada por impulso.

Está polarizada por resistencias internas

de pull-up.

SALIDAS: Estos dos puertos de salida son

para el refresco de los registros de

display. Los datos de estas salidas se

sincronizan con las líneas de exploración

para el multiplexado del display. Los dos

puerto se pueden apagar independientemente.

Se pueden utilizar como un puerto de 8 bits.

14

Page 17: PROYECTO DE - 148.206.53.84148.206.53.84/tesiuami/UAM3786.pdf · multiplexado o en un comando de display. La entrada de datos del 8279 y su visualización son una parte importante

Símbolo Pin Descripción

BD 23 APAGADO DE DISPLAY : Esta salida se

utiliza para apagar el display en el

multiplexado o en un comando de display.

La entrada de datos del 8279 y su visualización son una parte importante de los

sistemas basados en los microprocesadores. Este circuito provee las funciones de interface

con el CPU sin excesivas complicaciones.

El 8279 consta de dos partes: el teclado y el display. La parte del teclado se puede

conectar a cualquier tipo de teclado, interruptores o sensores, en nuestro caso se utilizan

estas características para controlar el teclado de la puerta y los interruptores de alarma de

forzamiento de puerta, alarma de ventanas y sensores de humo. La parte del display,

aunque disponible, no es utilizada en el sistema debido a que se deja para un posible

mejoramiento en la implementación de indicaciones por medio de leds o displays

alfanuméricos.

La parte de control de E/S usa las líneas CS/, AO, RD/ y WR/ para controlar el flujo

de datos, los registros internos y los buffers de datos. El flujo de datos se habilita por medio

de CS/. El tipo de información que genera o precisa el CPU, se identifica mediante AO, un

nivel alto significa que la información será de status o de comando, un nivel bajo indica que

son datos.

El modo de entrada es decodificación (4x8 teclas) de las líneas de exploración. La

pulsación de una tecla genera un código de posición de seis bits. La posición y el estado de

SHIFT o de CONTROL se almacena en la memoria FIFO. Los rebotes de las teclas se

suprimen automáticamente y se repiten por el mantenimiento de la pulsación o se bloquean

si se han pulsado dos telas a la vez.

15

Page 18: PROYECTO DE - 148.206.53.84148.206.53.84/tesiuami/UAM3786.pdf · multiplexado o en un comando de display. La entrada de datos del 8279 y su visualización son una parte importante

Diagrama a bloques del 8279.

1.2.2 EL CIRCUITO INTEGRADO 8255

Este es dispositivo de E/S programable de propósito general que se diseñó

para ser usado con microprocesadores. Tiene 24 pins de E/S los cuales pueden ser

programados individualmente en dos grupos de 12 y se usa en 3 diferentes modos de

operación. El modo O es el utilizado en la tarjeta controladora y en este modo tenemos dos

grupos de 12 pins de E/S que pueden ser programados en subgrupos de 4 ya sea de

entrada o salida. La programación usada corresponde a la palabra 5 de control, la cual es

el número 89H que llega a los pins DO a D7 del 8255, trayendo como resultado que el

puerto A (PA) y el puerto B (PB) del circuito sean de salida, mientras que el puerto C (PC)

sea de entrada. Como podemos obsetvar la activación de este circuito pone a nuestra

disposición el uso de los tres puertos ( PA, PB y PC), donde el pin PB4 va a un relevador

que al conmutar nos dará la línea telefónica; el pin PB5 también va a un relevador, pero

16

Page 19: PROYECTO DE - 148.206.53.84148.206.53.84/tesiuami/UAM3786.pdf · multiplexado o en un comando de display. La entrada de datos del 8279 y su visualización son una parte importante

éste, es el encargado de accionar la reproductora donde se encuentra un mensaje que será

enviado a través del teléfono; en el pin PB6, se mandará una señal l T L de 5 Vdc cuando

se desee abrir la puerta de acceso; la señal del pin PB7 será la encargada de encender las

luces; los pins PBO y PBI son donde se mandarán las señales de marcaje de los números

telefónicos; y por ultimo, en el pin PC0 llega la señal del detector de cadencia, que nos

indica si la línea telefónica esta desocupada, ocupada o se está haciendo una llamada.

La activación de 8255 se da cuando llega un nivel bajo de la lógica de circuitos

integrados 74LS00, los cuales son activados mediante el direccionamiento en la

computadora.

1.2.3 CIRCUITOS INTEGRADOS ANEXOS

Primeramente hablaremos del circuito integrado 74LS688, el cuál es un

comparador de dos palabras de 8 bits que sirve para asegurar que los puertos disponibles

en la PC sean los correctos. Estos puertos van del 300H al 31FH, de los cuales se usan

únicamente de 300H al 305H. Como podemos observar en la tabla l a los únicos bits que

se modifican son AO, A I y A2, por lo tanto la palabra de 8 bits que

Nimero binario

A1 1 A10 A9 A8 A7 AB A6 A4

o o 1 1 O 0 0 0

o o 1 1 O 0 0 0

o o 1 1 O 0 0 0

o o 1 1 0 ' 0 0 0

o o 1 1 O 0 0 0

o o 1 1 O 0 0 0

A3 A2 Al A0

O 0 0 0

O 0 0 1

0 0 1 0

O 0 1 1

O 1 0 0

O 1 0 1

TABLA l a

Número hexadecimal

300H

301H

3MH

303H

304H

305H

17

Page 20: PROYECTO DE - 148.206.53.84148.206.53.84/tesiuami/UAM3786.pdf · multiplexado o en un comando de display. La entrada de datos del 8279 y su visualización son una parte importante

A10 AS A8 A7 A6 A6 M A3

0 1 1 0 0 0 0 0

TABLA l b

se protege se muestra en la tabla 1 b. Esta palabra se encuentra permanente en las

entradas QO a Q7 del comparador y cuando se recibe una palabra idéntica en las entradas

PO a P7, entonces se manda una señal en bajo que pasa a través de la lógica TTL de Cl's

74LSOO la cual activará el 8279 o el 8255.

Otro CI anexo que se encuentra en la tarjeta controladora es el 7406, el cuál es un

TTL monolítico con seis inversores bufferddrivers que tiene como característica importante

que sus salidas son de voltaje-alto en colector-abierto, de tal forma que nos dan una

interface con circuitos de nivel-alto ( semejantes a los MOS ), o podemos tener cargas de

corriente-alta ( como lamparas o relevadores ), y son también utilizados como buffers

inversores para tener salidas T L . Prácticamente en la tarjeta son utilizados como

acopladores entre el CI 8255 y los periféricos, entre los que existen algunos relevadores y

optoaisladores.

También encontramos Cl's MOC3021, que son dispositivos optoaisladores y

consisten en un diodo infrarrojo que se acopla a un detector de silicio monolítico, de tal

manera que cuando se hace llegar un voltaje de 12Vdc al pin 1, el circuito funcionará como

un interruptor cerrado que permitirá que circule una corriente de más de 10 mA.

Complemetariamente a estos circuitos y formando parte de la lógica para la

generalización del uso de la tarjeta en cualquier PC desde una 8088 hasta una 80486 se

deben utilizar los Cl's 74LS393 y el 74121. El primero de estos circuitos es un doble

contador binario de 4 bits, el cual se utiliza para dividir la frecuencia del reloj del sistema,

esto por que la amplia gama de PC's también implica el manejo de un amplio rango de

frecuencias de reloj (4.4 Mhz a 66 Mhz). Esta gran diferencia en la velocidad de los

microprocesadores también se debe considerar en la variación que presenta en la velocidad

del bus externo para accesar a los puertos, por lo que el CI 74121 que es un circuito

multivibrador monoestable, lo utilizamos en la generación de una señal de retardo para

proporcionar a los circuitos de nuestra tarjeta el tiempo suficiente para operar

correctamente.

18

Page 21: PROYECTO DE - 148.206.53.84148.206.53.84/tesiuami/UAM3786.pdf · multiplexado o en un comando de display. La entrada de datos del 8279 y su visualización son una parte importante

I

¡ir------

I i

i

Q ¿Y ZY

7 U P

J L

I

Page 22: PROYECTO DE - 148.206.53.84148.206.53.84/tesiuami/UAM3786.pdf · multiplexado o en un comando de display. La entrada de datos del 8279 y su visualización son una parte importante

1.3 SISTEMA DE COMUNICACIóN TELEFóNICA

En esta parte se menciona todo lo referente a el control y funcionamiento de la

línea telefónica.

1.3.1 LA LíNEA TELEFóNICA

La línea telefónica que llega a nuestras casas es una señal senoidal, la cual

consta de diferentes tonos que explicaremos a continuación.

TONO DE MARCAR. Este tono se percibe casi instantáneamente después de

hacer el descolgado. El voltaje de la línea asciende a un nivel de 7 V, acompañado de un

tono de 450 Hz sobre el mismo nivel con una amplitud de 2 volts pico a pico. Este se

muestra en la figura 3.

Figura 3. Tono de marcar

19

Page 23: PROYECTO DE - 148.206.53.84148.206.53.84/tesiuami/UAM3786.pdf · multiplexado o en un comando de display. La entrada de datos del 8279 y su visualización son una parte importante

-TONO DE LLAMAR. Se oye en caso de que el abonado al que se llama esté

desocupado; esta señal se presenta como en el caso anterior, sólo que con intervalos

mudos de 4 segundos por 1 segundo de tono. La señal de este tono se muestra en la

siguiente figura.

Figura 4. Tono de llamar.

20

Page 24: PROYECTO DE - 148.206.53.84148.206.53.84/tesiuami/UAM3786.pdf · multiplexado o en un comando de display. La entrada de datos del 8279 y su visualización son una parte importante

-TONO DE OCUPADO. Sucede en el caso de que la línea del abonado al que

se llame esté ocupado y la señal permanecerá así aunque el abonado desocupe la línea.

Esta señal tiene las mismas características que la del tono de llamar, con la

salvedad de que los intervalos son diferentes ( 0.5 segundos de tono por 0.5 segundos

de silencio ) .

0.5

. ..

I pq;y&: - .. . ..

Figura 5. Tono de ocupado.

Para saber si se ha contestado en el otro lado de la línea, se ha tomado el

criterio de que si tenemos ausencia de los tonos existentes, entonces se ha contestado.

Se aplica este criterio, debido a que la línea no presente ningún cambio significativo en el

nivel de voltaje cuando al abonado al que se llama ha descolgado.

21

Page 25: PROYECTO DE - 148.206.53.84148.206.53.84/tesiuami/UAM3786.pdf · multiplexado o en un comando de display. La entrada de datos del 8279 y su visualización son una parte importante

1.3.2 DETECTOR DE CADENCIA

El detector de cadencia es la parte más importante que indica a la computadora en

que tono se encuentra la linea telefónica. La interpretación de los tonos a través de la PC

es mediante el reconocimiento de ausencia o no ausencia de la señal senoidal de la línea,

y se lleva a cabo de la siguiente manera: cuando tenemos el tono de marcar a la salida del

detector de cadencia encontraremos un 1 lógico, para el tono de llamar habrá un 1 lógico

durante 1 segundo y un O lógico durante 4 segundos; en el tono de ocupado se

encontrará durante 0.5 segundos un 1 lógico y un O en los siguientes 0.5 segundos; por

último para el contestado se tomará el criterio descrito al final de la sección anterior.

En la parte alta de la figura 6 tenemos el detector de cadencia y como podemos

observar consta de una etapa preamplificadora, de dos etapas amplificadoras, de un

detector de envolvente y de una etapa de conversión a lógica l T L . En la etapa

preamplificadora tenemos que en su entrada va una bobina captadora, de la cual

obtenemos la señal de la línea al aderirse con la bocina del teléfono; aquí la señal una vez

preamplificada, se enviará a las etapas de amplificación, para obtener a la salida de estas,

una mejor señal que llegará al detector de envolvente. Las etapas de amplificación se

realizaron con el CI TL082, el cual contiene dos amplificadores operacionales. En el

detector de envolvente tendremos en la salida una señal que es la envolvente de la señal

que entra y cuando no entra ninguna señal, entonces habrá O Volts a la salida del

detector.

Para la conversión a la lógica TTL, es utilizado el circuito integrado LM311 que

es un comparador de voltaje de alta velocidad, el cual está configurado como un

comparador diferencial, que nos entrega 5 Volts cuando existe señal en el detector de

envolvente y O Volts en su ausencia. Es importante mencionar que el O lógico se puede

tomar hasta 2.4 Volts y el 1 lógico de 2.5 Volts en adelante.

22

Page 26: PROYECTO DE - 148.206.53.84148.206.53.84/tesiuami/UAM3786.pdf · multiplexado o en un comando de display. La entrada de datos del 8279 y su visualización son una parte importante

X N

X 4) I B

I"

91

4 N 3

4 t 'i;

t

Page 27: PROYECTO DE - 148.206.53.84148.206.53.84/tesiuami/UAM3786.pdf · multiplexado o en un comando de display. La entrada de datos del 8279 y su visualización son una parte importante

1.3.3 CONTROL DEL TELÉFONO

El control del teléfono se lleva cabo mediante tres relevadores, los cuales son

activados de acuerdo con una algoritmo que sigue la computadora; de los tres relevadores

uno sirve para descolgar y poder obtener el tono de marcar, y los otros dos para marcar los números del teléfono a donde se desea llamar. De como se hacen las llamadas se

hablará más ampliamente en la explicación del software, que es el que prácticamente

controla.

1.4 TECLADO, PUERTA, LUCES Y DETECTORES DE HUMO

El teclado utilizado es un teclado matricial común que al pulsar cualquier tecla

envía una señal a través de sus salidas. De su control ya se habló en la descripción del CI

8279.

En la puerta es usada una contra eléctrica, la cual es accionada por la PC

mediante un optoaislador MOC3021, el cual se encuentra en uno de los alambres que

unen la corriente con un transformador que antecede a la contra eléctrica, de tal forma que

cuando se cierra dicho circuito es accionada y nosotros nos enteramos porque dicha contra

eléctrica emite un sonido grave avisando que está lista. En cuanto al funcionamiento de la

contra eléctrica, podemos decir que cuando es accionada, un pasador que detiene a la

puerta queda movible, dejando a la puerta con libertad para que pueda ser abierta; cuando

no es accionada el pasador está rígido impidiendo que se pueda abrir la puerta.

Las luces también son acciondas con un CI MOC3021, que al cerrarse provoca que

las luces se enciendan y al permanecer abierto las luces estén apagadas. El control de

encendido y apagado se encuentra ya programado.

23

Page 28: PROYECTO DE - 148.206.53.84148.206.53.84/tesiuami/UAM3786.pdf · multiplexado o en un comando de display. La entrada de datos del 8279 y su visualización son una parte importante

Para tener la corriente suficiente en la contra eléctrica y en el encendido de luces

se utilizan triacs de compuerta sensitiva (2N6073), los cuales son dispositivos que se

diseñaron para aplicaciones de control en ondas-completas de ac, tales como las luces de

alumbrado público, control de motores, control de calentadores y suplementos de potencia.

Los detectores de humo son circuitos que al haber humo en un lugar cerrado

mandan un 1 lógico y en ausencia de humo mantienen un O lógico.

24

Page 29: PROYECTO DE - 148.206.53.84148.206.53.84/tesiuami/UAM3786.pdf · multiplexado o en un comando de display. La entrada de datos del 8279 y su visualización son una parte importante

CAPiTU LO 2

2.1 ASPECTOS GENERALES DEL PROGRAMA

El software de este proyecto se puede considerar como un "driver" para la

tarjeta del sistema. El programa se puede dividir conceptualmente en dos partes, la primera

es la que es altamente dependiente del hardware y la segunda la que no lo es. También

podemos realizar una división funcional del programa que nos presenta dos bloques

principales el de control de acceso y el de alarma.

El programa se implanta utilizando el lenguaje de programación C, lo cual nos

permite utilizar algunas de las ventajas de este lenguaje, como por ejemplo utilizar la

directiva de compilación ##define para indicar los valores determinados por el hardware

como lo son las direcciones de los puertos y los códigos de las teclas. En el

programa se utiliza el método de muestreo para realizar el monitoreo, aunque unas

pequeñas modificaciones al hardware permitirían implantar vía software rutinas que

respondieran a una interrupción con lo que se podría tener un driver residente.

El utilizar un método de muestreo para el monitoreo nos lleva a crear una

rutina en la que se permanece en un ciclo infinito , del cual solo se sale debido a alguna

condición externa.

El procedimiento de acceso es de naturaleza secuencial, por lo que el control

mediante la PC es ideal en este caso.

25

Page 30: PROYECTO DE - 148.206.53.84148.206.53.84/tesiuami/UAM3786.pdf · multiplexado o en un comando de display. La entrada de datos del 8279 y su visualización son una parte importante

2.2 MANEJO DE LA TARJETA

Como se indico anteriormente los valores determinados por el hardware se

distinguen mediante la directiva de compilación ##define. Estos parámetros incluyen la

dirección de los puertos y los códigos de :

- Teclas de la puerta

- Alarmas

- Encendido automático de luces

- Activación de la contra eléctrica de la puerta

- Descuelgue del teléfono

- Entrada del detector de cadencia

- Reproductora de Mensaje de alerta

- Marcaje del teléfono

Todos estos códigos están asociados con las terminales de los puertos

implantados con el 8255, por lo que sus códigos se determinan por la posición en su

puerto asignado. Para observar como se determinan estos valores, pongamos por ejemplo

a la REPRODUCTORA, que se encuentra asociada con la terminal PB5 del 8255 es decir

su valor será de 2exp5 = 32 y este valor solo se asociara al puerto B. Los valores de los

puertos a su vez están determinados por el mapeo Hardware que se les asigno a los

dispositivos 8255 y 8279.

Para el caso de los códigos del teclado de la puerta, sus valores están

asignados por su posición en la matriz que determina el 8279 mediante sus terminales SL y

RL (renglón y columna respectivamente). Por ejemplo para determinar el código de la tecla

8 (Tecla-8) se tiene

CTL SHFT SL RL

1 1 o1 o o1 o = OxD2

26

Page 31: PROYECTO DE - 148.206.53.84148.206.53.84/tesiuami/UAM3786.pdf · multiplexado o en un comando de display. La entrada de datos del 8279 y su visualización son una parte importante

Los valores de CTL Y SHFT es de 1 por estar así determinados en el

hardware ( CTL y SHFT, sin conexión presentan nivel alto pues internamente tienen

resistencias de carga ). SL=OlO indica que la tecla esta conectada a la terminal SL2,

análogamente RL=010 indica la terminal RL2 , de esta manera se pueden determinar todas

y cada uno de los códigos de las teclas, así como de las alarmas de la puerta, ventanas y

detector de humo. La siguiente tabla muestra la asignación de códigos.

SLO ""

SL1 ---- SL2 ""

SL3 ----

TECLA-1

TECLA-2

TECLA-3

TECLA-4

TECLA-5

TECLA-6

TECLA-7

TECLA-8

TECLA-9

TECLA-O

TECLA-*

TECLA-#

sw1 s w 2

sw3 s w 4

RL3

I 1

4

7 *

I

CTL

1

1

1

1 1

1

1

1

1

1

1

1

1

1 1 1

CHFT

1

1

1

1

1

1

1

1

1 1

1

1

1

1 1

1

RL2

I 2

5

8

O

I

SL

O00

O00

O00

O01

O01

O01

o1 o o1 o O10

o1 1

o1 1

o1 1

O00

O0 1

O10

o1 1

RL1 RLO

I I 3 sw1 ""

6 s w 2 ""

9 s w 3 ""

# s w 4 ""

I

RL

o1 1

o1 o O01

o1 1

o1 o O01

o1 1

o1 o O0 1

O10

o1 1

O01

O00

O00

O00

O00

HEX

c 3

c 2

c 3

CB

CA

c 9

D3

D2

D l

DA

DB

D9

co C8 DO

D8

27

Page 32: PROYECTO DE - 148.206.53.84148.206.53.84/tesiuami/UAM3786.pdf · multiplexado o en un comando de display. La entrada de datos del 8279 y su visualización son una parte importante

Los códigos mencionados anteriormente están asociados con el hardware de

la tarjeta del sistema, por lo que las rutinas que utilizan estos valores las podríamos

clasificar como altamente dependientes del hardware y de uso exclusivo para este sistema

en particular.

La primera parte del programa realiza una inicialización de los dispositivos

8279 y 8255, programando al 8255 en el modo O, puertos A y B de salida y el puerto C de

entrada. Para la programación del 8279 se deben hacer algunas consideraciones, como

primer paso se debe programar el preescalar del reloj. Este prescalar debe ser tal que

(Fp) / ( 16 x Prescalar) M 100 Khz.

donde Fp = Frecuencia del microprocesador.

El prescalar se considera cuando se desea instalar la tarjeta en un sistema

de diferente Fp ya que este ultimo valor puede variar desde 4.25 Mhz en los

microprocesadores 8088 hasta 66Mhz en los procesadores de uso más reciente. Como

caso particular ( dado que la tarjeta se probó e instaló en una 80386 ) tomemos Fp = 33

Mhz nuestro valor de prescalar será de O0001 b = 1 . Como siguiente paso se programa al

8279 en el modo decodificado de bloqueo por pulsación de dos teclas.

Después de establecer los códigos correspondientes a los diferentes

eventos del sistema, como paso lógico se necesitan rutinas de decodificación para obtener

valores significativos para el programa y posteriormente significativos para el usuario.

Una rutina representativa de este tipo es la función LeeTeclaO, la cual realiza

una lectura a la FIFO del 8279 obteniendo un código y decodificandolo para obtener el

carácter correspondiente a la tecla o alarma activada.

Los códigos asignados a cada uno de los dispositivos a controlar, nos

permiten de una manera practica utilizar las ventajas de la aritmética de bits para combinar

28

Page 33: PROYECTO DE - 148.206.53.84148.206.53.84/tesiuami/UAM3786.pdf · multiplexado o en un comando de display. La entrada de datos del 8279 y su visualización son una parte importante

los diferentes estados que son necesarios para el control de dispositivos como el teléfono.

El control del teléfono es un modulo de un alto grado de elaboración dentro de nuestro

proyecto , además de que nuestro control es altamente dependiente de otro sistema (el

telefónico) , el cual tiene una amplia gama de estados y condiciones que complican su

control.

En el software lo anterior se refleja en rutinas como la del detector de

cadencia , que se crearon de una manera un tanto empírica basándose en las condiciones

de la línea telefónica que aunque teóricamente de patrones fijos, comúnmente presentan un

amplio rango de variación, como en el cruce de líneas, interrupción de la comunicación,

gran cantidad de ruido etc., .Como se busca la sencillez en el diseño, en el detector de

cadencia se implementaron unas simples rutinas de presencia y no presencia de tonos,

mediante la lectura a un puerto en tiempo real de la presencia o no presencia del tono, con

lo que según la duración de estos tonos se puede determinar los estados de línea,

ocupado, llamando e incluso el estado de contestado mediante la determinación de un

patrón irregular en los tonos. Este método no es 100 % seguro , pero un sistema que si lo

fuera requeriría una interacción más profunda con el sistema telefónico, que incluso nos

podría conducir hasta interaccionar con circuitos de la central telefónica.

2.3 ALMACENAMIENTO DE INFORMACI~N

El software que no es dependiente del hardware y que esta orientado al

control de acceso, fue implementado para cumplir las siguientes especificaciones:

- Una clave de acceso siempre comienza con un asterisco.

- Todas las claves tienen 4 dígitos (sin incluir al asterisco)

- Si se teclean dos claves de acceso incorrectas consecutivamente el

sistema se debe bloquear durante cinco minutos.

- AI teclear una clave valida se activara el control de la puerta, se

almacenarán la hora y fecha en un registro de accesos de usuario que contendra sus últimos 30 accesos.

29

Page 34: PROYECTO DE - 148.206.53.84148.206.53.84/tesiuami/UAM3786.pdf · multiplexado o en un comando de display. La entrada de datos del 8279 y su visualización son una parte importante

Estas especificaciones debido a su independencia del hardware son

susceptibles a mantenimiento.

Para realizar el almacenamiento de información se usa un arreglo de

apuntadores para realizar una asignación dinámica de los nuevos registros, con los datos

de fecha y hora de entrada de cada uno de los usuarios.

A continuación se muestra el código fuente completo del programa para el

manejo del sistema.

30

Page 35: PROYECTO DE - 148.206.53.84148.206.53.84/tesiuami/UAM3786.pdf · multiplexado o en un comando de display. La entrada de datos del 8279 y su visualización son una parte importante

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . I I* *I I* UNIVERSIDAD AUTONOMA METROPOLITANA *I I* UNIDAD IZTAPALAPA *I I* *I I* *I I* *I I* VIGILA : Software para el sistema de control de acceso y *I I* vigilancia del laboratorio T-327. *I I* *I I* *I I* Realizado por: *I I* - González Carrillo Ricardo 89327293 *I I* - Solís Ramírez Ricardo Alejandro 88226933 *I I* *I I* *I I* lmplementado con Turbo C, versión 2.0 *I I* *I I* *I I* *I I* VIGILA Versión 1.0 -Junio de 1994- *I . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . I

#include <stdlib. h> #include cstdio.h> #include <alloc.h> #include <conio.h> #include <ctype.h> #include <time.h> #include <math. h> #include <bios.h> #include <dos.h> #include <string.h>

#define ESTABLE O #define ACTIVO 1 #define TRUE 1 #define FALSE O #define ON 1 #define OFF O

31

Page 36: PROYECTO DE - 148.206.53.84148.206.53.84/tesiuami/UAM3786.pdf · multiplexado o en un comando de display. La entrada de datos del 8279 y su visualización son una parte importante

P Definición de puertos y dispositivos */

#define PUERTOA 0x0300 #define PUERTOB 0x0301 #define PUERTOC 0x0302 #define CTL8255 0x0303 #define DAT8279 0x0304 #define INS8279 0x0305

P Parámetros de inicialización para los puertos */

#define IN18255 0x89 P puertos A y B de salida, puerto C entrada */ #define MOD8279 0x1 1 P 8 carácteres 8 bits, entrada por la derecha

exploración de teclado decodificada, bloqueo por pulsación de dos teclas. */

#define DIVCLOCK O x 2 1 P divide la frecuencia del reloj ( X Mhzl32 ) debe obtenerce aproximadamente 1 O0 khz O01 O0001 para 4 Mhz se tienen 125 Khz. */

Mefine CLR8279 OxD6 /* borra registros internos del 8279 */

P Parámetros de control */

#define LEE8279 0x80 P Instrucción de lectura del 8279 OlOxxxxx */ #define ESC8279 OxFO P Instrucción de escritura 1OOOPPPP *I

/* Definición de codigos del teclado externo */

#define TECL-1 OxC3 #define TECL-2 OxC2 #define TECL-3 OxCl #define TECL-4 OxCB #define TECL-5 OxCA #define TECL-6 OxC9 #define TECL-7 OxD3 #define TECL-8 OxD2 #define TECL-9 OxDl #define TECL-O OxDA #define TECL-A OxDB #define TECL-G OxD9 #define SW1 OxCO #define SW2 OxC8 #define SW3 OxDO #define SW4 OxD8

32

Page 37: PROYECTO DE - 148.206.53.84148.206.53.84/tesiuami/UAM3786.pdf · multiplexado o en un comando de display. La entrada de datos del 8279 y su visualización son una parte importante

P Define las salidas de control para el puerto B */

#define AMARILLO Ox01 P Salidas para control el */ #define AZUL Ox02 P marcaje del número telefónico */ #define DESCOLGAR 0x1 O #define REPRODUCTORA Ox20 #define ABRIR-PUERTA 0x40 #define LUCES 0x80

#define NUMUSUARIOS 30 #define NUMACCESOS 30 #define MENSAJE 25 P Tiempo del mensaje */

/* Estados de la línea telefónica */

#define OCUPADO 1 #define LLAMANDO 2 #define LINEA 3 #define NOLINEA 4 #define CONTESTADO 5

#define NUMTEL "4813" P Este es el número telefónico */

typedef struct

int ClaveUsuario; int indice; char *FechaHora[NUMACCESOS];

} DATOS;

DATOS Usuario[NUMUSUARIOS]; P arreglo global */ int oportunidad=O ;

void Control (int *Estado, char *clave ); void ActualizaEstado( int *Estado, char Tecla, char *clave ); void VerificaClave(char *clave); void Consulta(void); void Accesos(void); char LeeTecla(void); int Cadencia(void); void Alarma(char Tecla); int GetEstado(void); void Reactivar(void);

33

Page 38: PROYECTO DE - 148.206.53.84148.206.53.84/tesiuami/UAM3786.pdf · multiplexado o en un comando de display. La entrada de datos del 8279 y su visualización son una parte importante

Función : Inicializar

Esta función inicializa al 8255 y 8279. Además se inicializa el arreglo global y se dan de alta algunas claves.

void Inicializar(void)

............................................................... I

{ int i, j;

outportb( CTL8255 , IN18255 ); outportb( INS8279 , MOD8279 ); outportb( INS8279 , DIVCLOCK ); outportb( INS8279 , CLR8279 );

/* inicialización de variables globales */ for (¡=O; ic30; i++) {

Usuario[i].ClaveUsuario = -1 ; Usuario[il.indice = O ; for (j=O; jc30; j++)

Usuario[¡]. FechaHorab][O] = 'I; 1 /* inicializ Usuario[ 1 Usuario[2 Usuario[3 Usuario[4 Usuario[S Usuario[G Usuario[7 Usuario[8 Usuario[9 Usuario[ 1

return; 1

E I algunas claves *I .ClaveUsuario = 1324 ; .ClaveUsuario = 1492 ; .ClaveUsuario = 7424 ; .ClaveUsuario = 8324 ; .ClaveUsuario = 8932 ; .ClaveUsuario = 7293 ; .ClaveUsuario = 9510 ; .ClaveUsuario = 8451 ; .ClaveUsuario = 5924 ; l].ClaveUsuario = 4545 ;

..............................................................

34

Page 39: PROYECTO DE - 148.206.53.84148.206.53.84/tesiuami/UAM3786.pdf · multiplexado o en un comando de display. La entrada de datos del 8279 y su visualización son una parte importante

Función : Control Paramétros: &Estado, *clave. Regresa : nada.

Esta función monitorea constantemente el estado del sistema actualizando los párametros de tiempo transcurrido. Tambien maneja el muestre0 de los puertos del teclado de la puerta y teclado de la PC.

void Control (int *Estado, char *clave )

............................................................... /

{ struct time t l , t2;

gettime(&tl);

while( *Estado == ESTABLE ) {

gettime(&t2); if ( t l .ti_min+2 42.tjmin )

if ( t l .t¡-min+5 c t2.ti-min )

if ( bioskey(1) != O )

oportunidad= O;; r" inicializa oportunidades */

strcpy( clave, ""); /* limpia buffer de teclas */

Consulta(); /* se desactiva temporalmente el sistema */

gotoxy(32, 22); printf("%s", clave); *Estado = GetEstadoO;

1 return;

.............................................................. Función : ActualizaEstado Paramétros: *Estado, char Tecla, char *clave. Regresa : nada.

Esta función realiza la actualizan del estado del sistema despues de identificar que evento provoco su llamada. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

/

void ActualizaEstado( int *Estado, char Tecla, char *clave ) {

35

Page 40: PROYECTO DE - 148.206.53.84148.206.53.84/tesiuami/UAM3786.pdf · multiplexado o en un comando de display. La entrada de datos del 8279 y su visualización son una parte importante

switch (Tecla) { case 'A': return; /* estados de alarma */ case 'B': return; case IC': return; case ID': {*Estado = ESTABLE ;

/* Aqui se incluye la rutina de alarma de fuego */ return; 1

return; 1

*Estado = ESTABLE ; return; 1

case '# :{*Estado = ESTABLE ; /* tecla sin proceso */

case I*' :{ strcpy( clave , "*" ); /*inicio de clave */

case '1' : ; case '2' : ; case '3' : ; case '4' : ; case '5' : ; case '6' : ; case '7' : ; case '8' : ; case '9' : ; case 'O' :{ if ( *clave == I*' )

{ strncat( clave, &Tecla, 1) ; /* aumenta clave */ if ( strlen(c1ave) >= 5 ) { /* Si la clave esta clompleta verificala */

Verificaclave( clave+l ); strcpy( clave, "" );

1 gOtoXy(1~ 22);

gotoxy(l1 22); printf(" 'I) ;

printf("1ntroduzca la clave de acceso :"); *Estado = ESTABLE ; return;

1 else *Estado=ESTABLE;

1 default : { *Estado= ESTABLE;

return;

.............................................................. Función : VerificaClave Paramétros: clave, es una cadena de cuatro digitos. Regresa : nada.

36

Page 41: PROYECTO DE - 148.206.53.84148.206.53.84/tesiuami/UAM3786.pdf · multiplexado o en un comando de display. La entrada de datos del 8279 y su visualización son una parte importante

Esta función verifica la clave y monitorea el número de intentos, si la clave es valida permite el acceso. ............................................................. I void VerificaClave(char *clave) {

int NumClave, i, Index; time-t It ; char *temp;

NumClave = atoi(c1ave); for (¡=O; ie30; i++)

if ( Usuario[i].ClaveUsuario == NumClave ) {

It = time(NULL); Index = Usuario[i].indice ; temp = malloc(40); strcpy ( temp, ctime(&lt) ); Usuario[i].FechaHora[lndex] = temp; Usuario[q.indice++; outportb( PUERTOB, ABRIR-PUERTA);

printf(" PUERTA ABIERTA DURANTE 5 SEGUNDOS 'I);

sleep(5);

printf("1ntroduzca la clave de acceso :'I); outportb( PUERTOB, O ); I* cerrar puerta */ oportunidad = O; return;

gotoxy(l, 22);

gotoxy(1 I 22);

1 gotoxy( 1 I 22) ; printf('lt\t ii CLAVE INVALIDA !!'I);

sleep(1); oportunidad++; if ( oportunidad== 3 ) {

gotoxy(~ I 22); printf('lt\t ii PUERTA BLOQUEADA !!'I);

sleep(300); P bloquea la puerta 5 minutos *I outportb( INS8279 , CLR8279 ); Plimpia el buffer del teclado */ oportunidad = O;

1 return;

1

37

Page 42: PROYECTO DE - 148.206.53.84148.206.53.84/tesiuami/UAM3786.pdf · multiplexado o en un comando de display. La entrada de datos del 8279 y su visualización son una parte importante

.............................................................. Función : Consulta

Esta función interrumpe la vigilancia para proporcionar la interface al servicio de consulta de accesos. ............................................................... I void Consulta(void) {

char Op;

clrscr(); printf('~n\n%s\n\n\n\n\n%s\n%s\n%s\n%s\n%s\n%s\n%s\n~Os'',

11 SISTEMA TEMPORALMENTE SUSPENDIDO II

11 11

1

11 CONSULTA DE ACCESOS II

II 11

II <I> Accesos de un usuario. , <2> Salir" , II

II II , II Introduzca su opción e>'');

do { Op = toupper(getch());

} while (!( (Op==ll')ll(Op==121) ));

if ( o p == Ill) Accesos();

clrscr(); printf('ln\n\n\n\n\n\n\n\n\n\t\t SISTEMA DE CONTROL Y ACCESO ACTIVADO");

printf("1ntroduzca la clave de acceso :'I); return ;

gotoXy(1 I 22);

1 4

.............................................................. Función : Accesos

Esta función proporciona el setvicio de consulta de accesos de un usuario. ............................................................... I

void Accesos(void) {

char Clave[200]; int NumClave, i=O,j=O, Index ;

38

Page 43: PROYECTO DE - 148.206.53.84148.206.53.84/tesiuami/UAM3786.pdf · multiplexado o en un comando de display. La entrada de datos del 8279 y su visualización son una parte importante

printf('ln\n\ Teclee la clave del usuario :'I); scanf("%s", Clave ); NumClave = ato¡( Clave ); if ( NumClave !=O ) {

for (¡=O; ic30; i++) if ( Usuario[i].ClaveUsuario == NumClave ) {

Index = Usuario[i].indice; if ( Index==O) printf('7nSin accesos\n\n"); else printf('7nSus accesos fueron \n\n"); for (j=O; j c Index ; j++)

printf ("%S", Usuario[i].FechaHora[j] );

printf('7n0hs\n",

getch0; return:

II oprima cualquier tecla para continuar ");

1 printf('7nClave no encontrada."); printf('7noprima cualquier tecla para continuar."); getch0; return;

1 printf('7nENTRADA INVALIDA oprima cualquier tecla para continuar."); getch0; return;

1

.............................................................. Función : LeeTecla Paramétros: nada. Regresa : un unsigned char con la tecla oprimida.

Esta función obtiene el codigo de la tecla oprimida, compara su codigo y regresa su valor de tecla decodificada. ............................................................... 1

char LeeTecla(void) {

unsigned char Codigo;

outportb( INS8279, LEE8279); Codigo = inportb( DAT8279 ); switch (Codigo) {

39

Page 44: PROYECTO DE - 148.206.53.84148.206.53.84/tesiuami/UAM3786.pdf · multiplexado o en un comando de display. La entrada de datos del 8279 y su visualización son una parte importante

case TECL-1 : return( '1' ); case TECL-2 : return( '2' ); case TECL-3 : return( '3' ); case TECL-4 : return( '4' ); case TECL-5 : return( '5' ); case TECL-6 : return( '6 ); case TECL-7 : return( '7' ); case TECL-8 : return( '8' ); case TECL-9 : return( '9' ); case TECL-O : return( 'O' ); case TECL-A : return( '*I ); case TECL-G : return( '# ); case SW1 : return( 'A' ); case SW2 : return( 'B' ); case SW3 : return( 'C' ); case SW4 : return( ' D );

default : return( " ); 1

1

.............................................................. Función : GetEstado Paramétros: nada. Regresa : El estado actual del 8279 .

1 (ACTIVO) si se han oprimido teclas, O (ESTABLE) en otro caso.

............................................................... / int GetEstado(void) 1

unsigned char Status;

Status = inportb( INS8279 ); /* lee estatus del 8279 */ Status = ( Status &Ox07 ) ; /* existen carácteres en la FIFO */ if ( Status )

return( ACTIVO ) ; /* se pulso alguna tecla */ else

return( ESTABLE ); /* no hay teclas */ 1

.............................................................. Función : Reactivar I

Paramétros: nada. Regresa : nada.

Esta función debe dar instrucciones para reactivación del

40

Page 45: PROYECTO DE - 148.206.53.84148.206.53.84/tesiuami/UAM3786.pdf · multiplexado o en un comando de display. La entrada de datos del 8279 y su visualización son una parte importante

sistema dependiendo del lugar de instalación. ................................................................ / void Reactivar(void) {

clrscr(); printf('7nEs necesario reactivar el sistema"); printf('7n\n%s",

I 1 oprima cualquier tecla para terminar"); getch0; return;

1

.............................................................. Función : Cadencia Paramétros: nada. Regresa : La cadencia obtenida del puerto C.

Esta función realiza de una detección de la cadencia precente en la línea telefónica. ............................................................... / int Cadencia(void) {

struct time t l , t2; long int Centesimas; int tono, ocupado=O, contestado=O, Ilamando=O;

while(1) {

gettime(&tl); tono = ( inport(PUERT0C) &Ox01 ); P lee bit PC0 */ while( tono == (inport(PUERTOC)&OxOl) ) {

gettime(&t2); if ( t l .ti_sec+65 t2.ti-sec+60 )

if (tono == 1 ) return(LINEA) ; else return(N0LINEA);

1 Centesimas = t2.ti-sec*100 + t2.tjhund - (tl.ti-sec*lOO + tl.tjhund); if ( Centesimas e 2 ) continue; P posible ruido parametro 2 *I else if (Centesimas e 200) { contestado++ ;

if ( contestado > 10 ) return (CONTESTADO);

1 else if (Centesimas c 400) {ocupado++ ;

if ( ocupado > 8 ) return (OCUPADO);

41

Page 46: PROYECTO DE - 148.206.53.84148.206.53.84/tesiuami/UAM3786.pdf · multiplexado o en un comando de display. La entrada de datos del 8279 y su visualización son una parte importante

1 else if (Centesimas c 1500) { llamando++ ;

if ( llamando > 5 ) return (LLAMANDO);

.............................................................. Función : Alarma. Paramétros: char Tecla. Regresa : nada.

Esta función toma la acción requerida segun los siguientes codigos:

A .- (SWI) Forzamiento de la puerta. B .- (SW2) Alarma ventana 1. C .- (SW3) Alarma ventana 2. D .- (SW4) Detector de humo.

Las salidas AZULES y AMARRILLOS se refieren a los contactos que tienen el teléfono en el disco rotatorio para el marcaje. Nota : La condicion D no esta implementada. ............................................................... I void Alarma(char Tecla) {

char *Telefono, Digito; int continuar=TRUE , Tono, i, Numero ;

do {

do

{ outportb( PUERTOB, DESCOLGAR ); printf('7ntelefono descolgado\n"); Tono= Cadencia(); delay(5000); if ( Tono != LINEA ) {

continuar= FALSE; outportb( PUERTOB, O );

1

42

Page 47: PROYECTO DE - 148.206.53.84148.206.53.84/tesiuami/UAM3786.pdf · multiplexado o en un comando de display. La entrada de datos del 8279 y su visualización son una parte importante

else continuar = TRUE; } while ( continuar == FALSE ); Telefono = NUMTEL ;

while ( *Telefono != NULL ) P Marcaje del número telefónico */ {

Digito = *Telefono ; Numero = ato¡( &Digit0 ); if ( Numero==O ) Numero=lO; printf('7nMarcando el digito %d", Numero%lO); outportb(PUERTOB, DESCOLGAR+AMARILLO); P se cierran los

delay(500); for (¡=O; ¡<Numero ; i++)

amarillos */

{ outportb(PUERTOB, DESCOLGAR+AMARILLO+AZUL); P abrir azul */ delay(50); outportb(PUERTOB, DESCOLGAR+AMARILLO); P cerrar azules */ delay(50); .

1 outportb(PUERTOB, DESCOLGAR); delay( 1000); Telefono++;

1 delay(6000) ; /* espera que reaccione la linea */ Tono = Cadencia(); while( Tono == LLAMANDO )

printf('7nLlamando ..."); Tono = Cadencia();

{

1 if ( Tono == CONTESTADO ) break; else if ( Tono == OCUPADO ) { continuar = FALSE;

break; 1 }while( continuar == FALSE );

P el telefono se contesto */ outportb( PUERTOB, DESCOLGAR+REPRODUCTORA ); printf('7ntelefono contestado"); sleep(MENSAJE); outportb( PUERTOB, DESCOLGAR ); P apaga la reproductora */ sleep(1); /* espera un segundo */ outportb( PUERTOB, OFF ); P cuelga el teléfono */ return;

1

43

Page 48: PROYECTO DE - 148.206.53.84148.206.53.84/tesiuami/UAM3786.pdf · multiplexado o en un comando de display. La entrada de datos del 8279 y su visualización son una parte importante

...........................................................

FUNCION PRINCIPAL """""~"""""""""""""""""

......................................................... I

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Función : main (Principal). Paramétros: Nada. Regresa : Codigo de terminación. ................................................. ++*********** l int main(void) {

int Estado = ESTABLE ; char Tecla, clave[6]="" ;

Inicializar(); clrscr() ; printf("h\n\n\n\n\n\n\n\n\n\t\t SISTEMA DE CONTROL Y ACCESO ACTIVADO); gotoxY(l,22); printf("1ntroduzca la clave de acceso :'I);

do {

Control( &Estado, clave ) ; Tecla = LeeTecla() ; ActualizaEstado( &Estado, Tecla, clave );

1 while ( Estado == ESTABLE ) ;

if ( Estado == ACTIVO ) Alarma( Tecla ) ;

Reactivar(); return (O);

> o

44

Page 49: PROYECTO DE - 148.206.53.84148.206.53.84/tesiuami/UAM3786.pdf · multiplexado o en un comando de display. La entrada de datos del 8279 y su visualización son una parte importante

CAPíTULO 3

3.1 INSTALACI~N DE SOFTWARE Y TARJETA

Para instalar el sofware es necesario verificar el parámetro de la velocidad del

procesador y actualizarlo en el código fuente, tambien se debe especificar el número

telefónico al que se realizará la llamada en caso de activarse la alarma, tambien deben

declararse las claves de acceso validas y finalmente recompilar el programa, teniendo listo

el pograma executable para correrse una vez instalada la tarjeta.

La instalación de la tarieta la podemos hacer con los siguientes pasos:

1 .- Se estacionan las cabezas magnéticas de escriiurdlectura del disco duro. Esto

se hace con el fin de proteger la información del disco duro.

2.- Se apaga la computadora.

3.- Procedemos a abrir el CPU de la PC.

45

Page 50: PROYECTO DE - 148.206.53.84148.206.53.84/tesiuami/UAM3786.pdf · multiplexado o en un comando de display. La entrada de datos del 8279 y su visualización son una parte importante

4.- Una vez abierto el CPU, buscamos las ranuras de expansión como se

muestra en la imagen y procedemos a instalar la tarjeta teniendo cuidado que los pins

sean los correspondientes. La tarjeta entra a presión.

5.- Se coloca todo como al inicio.

3.2 INSTALACIóN DE PERIFÉRICOS

Aquí es necesario tener a la mano la tabla de alambrado y la tarjeta controladora

para poder hacer las conexiones indicadas.

Para conectar la tarjeta controladora y la tabla de alambrado, se tiene un bus

que es físicamente un cable plano de 40 alambres. Dicho bus cuenta con conectores

hembras en los extremos, y cada conector tiene una parte en blanco, la cual se hace

coincidir a la hora de conectarse la tarjeta y la tabla con otra parte en blanco que se

encuentra en los conectores respectivos.

46

Page 51: PROYECTO DE - 148.206.53.84148.206.53.84/tesiuami/UAM3786.pdf · multiplexado o en un comando de display. La entrada de datos del 8279 y su visualización son una parte importante

Las otras partes que se necesitan instalar se muestran en la siguiente tabla:

Símbolo Significado cx- 1 Conexión 1

cx-2 Conexión 2

cx-3 Conexión 3

cx-4 Conexión 4

PB-1 Push Boton 1

PB-2

Y PB3

PB-4

Push Boton 2

Push Boton 3

Push Boton 4

RV- 1

RV-2

RV-3

RV-4

Relevador 1

Relevador 2 Relevador 3

Relevador 4

Tipo de Conexión

Par de terminales que van

directamente con la línea telefónica.

Par de terminales que se conectan

con la contra eléctrica.

Par de terminales que van al

interruptor de las luces.

Par de terminales que se encargan

de alimentar a la reproductora.

Par de terminales donde se instala lo equivalente a un circuito abierto que

al cerrarse indica que se está

forrando la puerta vigilada.

En cada par de terminales se instala

lo equivalente a un circuito abierto

de tal forma que cuando se cierre

nos indique que hay algún cristal

roto.

En este par de terminales se

conectan los detectores de humo. De

tal manera que vasta uno de los detectores, que se encuentran en

diferentes partes,para que se accione

la alarma.

Control telefónico.

Control telefónico.

Relevador que al cerrarse da línea.

Relevador que acciona la

reproductora.

47

Page 52: PROYECTO DE - 148.206.53.84148.206.53.84/tesiuami/UAM3786.pdf · multiplexado o en un comando de display. La entrada de datos del 8279 y su visualización son una parte importante

Para conectar el teclado a más distancia, basta con desalambrar cada uno de

los pins del teclado, agregar más alambre hasta donde se desee y volver a alambrar

cada pin.

3.3 RECOMENDACIONES

Se incluyó esta sección para tener un mejor funcionamiento y mantenimiento del

sistema de vigilancia.

-Si al instalar el sistema las llamadas telefónicas no se realizan, cheque

primeramente el buen funcionamiento de la línea, y si está bien, haga una observación

en los relevadores RV-1, RV-2 y RV-3 teniendo como objetivo que por lo menos cada

uno debe accionarse una vez.

-Para hacer el estacionamiento de las cabezas magnéticas de la PC, puede

utilizarse la instrucción de Parking del PCTOOLS.

-Debe tenerse cuidado de no tocar la circuiteria de la tarjeta o del CPU al hacer

la instalación de la tarjeta, ya que existen CI MOS que pueden ser dañados con una

carga estática que provenga de su mano. Puede usar una pulsera que esté aterrizada

para que lo anterior no suceda y se tenga mayor seguridad a la hora de hacer las

instalaciones.

-Cheque las instrucciones que vienen en el programa para la instalación del

sistema de vigilancia.

-Revisar los manuales de la bibliografía en caso de alguna duda con un circuito

integrado.

-Para asegurar que el sistema de vigilancia permanesca activado a pesar de la

falta de corriente en el lugar, instalar un NO BREAK a la computadora.

48

Page 53: PROYECTO DE - 148.206.53.84148.206.53.84/tesiuami/UAM3786.pdf · multiplexado o en un comando de display. La entrada de datos del 8279 y su visualización son una parte importante

BIBLIOGRAFíA

-APUNTES DE COMUNICACIONES.

Yudiel Pérez Espejo.

UAM-I . México 1994.

- TECHNICAL REFERENCE IBM.

PERSONAL COMPUTER HARDWARE REFERENCE LIBRARY

USA 1984.

- TTL LOGIC.

STANDARD TTL SCHOlTKY, LOW POWER SCHOTTKY.

TEXAS INSTRUMENTS.

USA 1988.

- PERIPHERALS.

INTEL.

U.S.A. 1989.

-MICROPROCESSORS.

INTEL.

U.S.A. 1989.

49

Page 54: PROYECTO DE - 148.206.53.84148.206.53.84/tesiuami/UAM3786.pdf · multiplexado o en un comando de display. La entrada de datos del 8279 y su visualización son una parte importante

-i486 PROCESSOR PROGRAMMER’S REFERENCE MANUAL.

INTEL.

U.S.A. 1990.

-THYRISTOR DATA.

MOTOROLA.

U.S.A. 1991.

-INTEGRATED ELECTRONICS.

Jacob Millman * Christos C. Halkias.

Ed. Mc Graw Hill.

-TURBO C /C++. MANUAL DE REFERENCIA.

Herbert Schildt.

Ed. Mc Graw Hill.

México 1992.

50