PROYECTO DE - 148.206.53.84148.206.53.84/tesiuami/UAM3786.pdf · multiplexado o en un comando de...
Transcript of PROYECTO DE - 148.206.53.84148.206.53.84/tesiuami/UAM3786.pdf · multiplexado o en un comando de...
PROYECTO
DE
I
INGENIERÍA
I
ELECTRONICA
UNIVERSIDAD AUTONOMA METROPOLITANA
Casa abierta al tiempo
IZTAPALAPA
SISTEMA DE
VIGILANCIA CONTROLADO
POR LA
PC
2
ASESOR:
Gonzalo lsacc Duchén Sánchez
AUTORES DEL PROYECTO:
Ricardo González Carrillo Y
Ricardo Alejandro Solís Ramírez
3
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
AGRADECIMIENTO.
Gracias.
Ricardo González Carrillo.
5
í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
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
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
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
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
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
o I u I m I 1 P
o I V I m I a
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
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
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
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
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
é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
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
I
¡ir------
I i
i
Q ¿Y ZY
7 U P
J L
I
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
-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
-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
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
X N
X 4) I B
I"
91
4 N 3
4 t 'i;
t
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
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
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
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
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
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
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
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
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 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
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
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
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
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
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
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(<) ); 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
.............................................................. 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
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
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
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
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
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
...........................................................
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
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
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
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
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
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
-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