Ríeardo Eonzález Carrillo Y Ricardo Alejandro Solís Ramírez

Anuncio
ASESOR:
Gonzalo lsacc Duchen Sanchez
AUTORES DEL PROYECTO:
Ríeardo Eonzález Carrillo
Y
Ricardo Alejandro Solís Ramírez
I
C-
3
UNIVERSIDAD AUTONOMA
METROPOLITANA
Casa
abierta
al
IZTAPALAPA
tiempo
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 Gorizález Carrillo.
5
íNDlCE
INTRODUCCIÓN
.....................................................
8
CAPíTULO 1. HARDWARE .............................
9
1.1
CONTROL DE PERIFÉRICOS DE LA PC ..... 9
1.2
TARJETA CONTROLADORA
1.2.1 EL CIRCUITO INTEGRADO 8279
..........
.................................
.................................
CIRCUITOS INTEGRADOS ANEXOS ..........................
12
12
1.2.2 EL CIRCUITO INTEGRADO 8255
16
1.2.3
17
I.3 SISTEMA DE COMUNICACI~N
TELEF~NICA
.............................................
1.3.1 LA LíNEA TELEFÓNICA
.................................................
1.3.2 DETECTOR DE CADENCIA
1.3.3 CONTROL DEL.TELÉFONO
..........................................
.........................................
19
19
22
23
1.4 TECLADO. PUERTA. LUCES Y DETECTORES
23
DE HUMO
.................................................
6
CAPíTULO 2.
SOFTWARE ............................
2.1 ASPECTOS GENERALES DEL
PROGRAMA
..............................................
2.2 MANEJO DE LA TARJETA
.........................
2.3 ALMACENAMIENTO DE INFORMACIÓN
CAPíTULO 3.
INSTALACIÓN ........................
3.1 INSTALACIÓN DE SOFTWARE Y
TARJETA
....................................................
3.2 INSTALACIÓN DE PERIFÉRICOS
25
26
.....29
45
45
................46
3.3 RECOMENDACIONES .................................
BIBLIOGRAFíA ....................................................
7
25
48
49
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 esta fotzando 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 honi 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 linea
telefónica, la cual contiene una señal senoidal con la que podemos saber si hay línea, si se
esta llamando o si esta 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.
8
CAP~TULO I
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
US,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
los datos, los cuales se toman
contienen
bidereccionalmente para comunicar a la PC con la tarjeta. A2
corresponde a D7 que es el bit mas 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 A 0
y es el bit
menos significativo y A.20, bit más significativo, es la línea de
direccionamiento A l l la cual se deja sin conectar.
Aquí es
importante mencionar clue los pins A31 (AO), A30 (Al) 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.
A l 0 - US CH RDY
Esta linea nos iindica cuando esta en alto, que el canal de
US 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 linea 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 mas de diez ciclos de reloj.
A l 1 - AEN
Es la línea de dirreccionamiento que habilita el uso del canal de
U S por el procesador y otros dispositivos, mientras el DMA
ocupa su lugar.
B1, BIOI 631 - GND
B2 - RESET
B5, 629 - (+SVdc)
67 - (-12VdC)
69 - (+ 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 pmcesador o el controlador DMA.
B14 - IOR
E/S que
intenta transferir un dato al bus de datos. Se activa en bajo.
Puede ser manejado por elprocesador o el controlador DMA.
Esun comando de lectura para un dispositivo de
B20 - CLK
La ranura de expansión y las lineas utilizadas se muestran en la figura 1
I
11
j
~-I t- mr
- l O C I D b ~ I n 9 W N - l O - l
N .
n.I 4 N
m
~ a
N a
M~ a
e in
~a
~ UI ta r aID am n aM aM~ aN aN ~ N
a N
a N
a N
a aN aN aN aN arl
m
4
UI
n
I
V
I
m
1
a
I
!
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-12
BUS DE DATOS BIDERECCIONAL: Todos
losdatos y comandos entre el CPU y el
8279 se transmiten por este bus.
CLK
3
CLOCK: Señal del reloj del sistema usada
para la generación del timing interno.
RESET
9
RESET: Un nivel alto en este pin resetea
al 8279. Después de esto, el 8279 se
c;oloca en el modo siguiente:
1)
16 caracteres de display de
8 bits,
entrada por la derecha.
:!)
Exploración
codificada
de
teclado
con bloqueo por pulsación de dos teclas;
durante este proceso,
el
división del clock se coloca a 31.
12
múltiplo de
Símbolo
Pin
Descripción
cs
22
SELECCIÓN DE CHIP: Un
esta entrada
nivel
al
habilita
bajo
8279
en
para
transmitir y recibir.
A0
21
DIRECCIÓN DE BUFFER: Un nivel alto en
esta línea indicará
bus
que
se interpretaran
las
señales
como
de
comando o
como estatus. El nivel bajo indicara que son
datos.
R D M
10-11
ENTRADNSALIDA
READ
WRITE:
Y
Estas señales habilitan al buffer de datos para
enviar o recibir datos por el bus externo.
IRQ
4
PETICIÓN DE INTERRUPCION:
En
modo teclado esta línea esta a nivel
cuando hay datos en la memoria.
a nivel
bajo
alto
Pasara
con cada lectura y volverá a
nivel atto si quedan en ella.
sensor,
el
pasa
a
nivel
alto
En el
modo
cuando
se
detecta un cambio en el mismo.
vss, vcc
20,40
F’INS DE TIERRA Y ALIMENTACIÓN.
SLO-SL3
32-35
LINEAS DE EXPLORACIÓN:
usan para
la
Estas
se
exploración de teclas o
los digitos del
display. Se pueden codificar ( 1 de 16 ) o
decodificar (1 a 4).
sensores de la matriz y
13
de
Símbolo
Pin
Descripción
RLO-RL7
38,39,
LIMAS DE RETORNO:
192
5-8
se conectan a las líneas de exploración de
las
teclas
o
los
Estas
entradas
sensores de
Estan polarizadas
con
teclado.
resistencias
internas de pull-up. También se
utilizar como entradas en
pueden
el modo de
entrada por impulso
SHIFT
36
SHIFT:
Esta entrada
se almacena junto
con la tecla que se haya pulsado en el
modo de exploración
polarizada
con
de
teclado.
resistencias
Está
internas
de
puIl-up.
CNTUSTB
37
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)
eri
el
modo
Está
de entrada
polarizada
por
impulso.
por resistencias internas
de pull-up.
OUT AO-OUT A3
27-24
SALIDAS:
Estos dos puertos desalida son
OUT BO-OUT 83
31-28
para
refresco
el
display.
de
los
registros de
Los datos de estas
sincronizan con
salidas se
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
23
APAGADO DE DISPLAY :
BD
utiliza para
apagar
el
Esta salida se
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 W 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 U S pmgramable de propósito general que se diseñó
para ser usado con microprocesadores. Tiene 24 pins de U 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
US 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 resuitado 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 obsewar la actwaciÓ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 linea 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 mandara 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 PB1 son donde se mandarán las señales de marcaje de los números
telefónicos; y por ultimo, en el pin PCO llega la señal del detector de cadencia, que nos
indica si la línea telefónica esta desocupada, ocupada o se esta 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 c;ircuito integrado 74LS688, el cual 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 l y A2, por lo tanto la palabra de 8 bits que
N h w o hexadecimal
N h e r o binario
All
Al0
AS
A8
0
0
1
1
Ai
0
A5 A2
AS
A6
U
Al
0
0
0
O
0
0
0
3OOH
0
O
0
0
1
30lH
A0
o
o
1
0
0
1
1
0
0
0
0
O
0
1
0
jDZH
0
0
1
1
0
0
0
0
O
0
1
1
303H
0
0
1
1
0
0
0
0
0
1
0
0
M4H
0
0
1
1
0
0
0
0
O
1
0
1
3OSH
1
O
0
0
TABU
la
17
AI0 A8 A t
0
1
1
A7
0
TABLA
A l Aó M A3
0
0
0
0
lb
se protege se muestra en la tabla I 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 traves de la lógica TTL de Cl's
74LSOO la cual activara el 8279 o el 8255.
Otro CI anexo que se encuentra en la tarjeta controladora es el 7406, el cual 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 relevadares ), y son también utilizados como buffers
inversores para tener salidas lTL. 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 mas de 10 mA.
Complemetanamente 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 741121. 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 Mhr.). 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 puertas, 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
7
I
!I
8t
E1
I.3 SISTEMA DE COMUNICACI~NTELEF~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 descolaado. El voltaje de la linea 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.
iP#rn
Figura 3. Bono de marcar
19
do::
-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 antenor, 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 al 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 )
.
$egmdg$
I
Figura 5. Tono de ocupado.
Para saber si se ha contestado eri 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 ai que se llama ha descolgado.
21
1.3.2 DETECTOR DE CADENCIA
El detector de cadencia es la parte mas importante que indica a la computadora en
que tono se encuentra la línea telefónica. La1 interpretación de los tonos a traves 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 tomara el criteric, 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 TTL. 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 telefono; aquí la señal una vez
preamplificada, se enviará a las etapas de amplifmción, para obtener a la salida de estas,
una mejor señal que llegara 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 serial, 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 esta 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 \/olts en adelante.
22
O
a
N
0)
O
J
I-
J
Y
m
N
I =
Y
H
V
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
hablara más ampliamente en la explicación del software, que es el que prácticamente
controla.
I.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 traves de sus salidas. De su control ya se habló en la descripción del CI
8279.
En la puerta es usada una contra electnca, 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 esta 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 electrica y en el encendido de luces
se utilizan triacs de compuerta sensitiia (2N6073), los cuales son dispositivos que se
diseñaron para aplicaciones de control en oiidas-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
CAPíTULO 2
SOFWARE
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 muestre0 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 muestre0 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 Wefine. Estos parametros 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 electrira de la puerta
- Descuelgue del telefono
- Entrada del detector de cadencia
- Reproductora de Mensaje de alerta
- Marcaje del telefono
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 obsewar 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 sera 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
o1o
26
=
OxD2
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 S U ,
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.
RL2
RL1
RLO
I
I
I
I
RL3
SLO
-
1
2
3
sw1 -
SL1
-
4
5
6
sW2
SL2
---
7
8
9
sw3 -
*
O
#
sw4
I
I
I
SL3
-
CTL
CHFT
SI,
RL
HEX
TECLA-1
1
1
000
o11
c3
TECLA-2
1
1
O00
o1o
c2
TECLA-3
1
1
O00
O01
c3
TECLA-4
1
1
001
o11
CB
TECLA-5
1
1
O 01
o1o
CA
TECLA-6
1
1
O 01
O01
c9
TECLA-7
1
1
O1o
o11
03
TECLA-8
1
1
0'1o
O10
D2
TECLA-9
1
O10
O01
D1
TECLA-O
1
1
1
o1 1
o1o
DA
TECLA-*
1
1
o1 1
o1 1
DB
TECLA-#
1
1
o11
O01
D9
SWl
1
1
O00
O00
co
SW2
1
1
OQ1
O00
C8
sw3
1
1
O10
O00
DO
sw4
1
1
o1 1
O00
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) = 100 Khz.
donde Fp = Frecuencia del microprmesador.
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 110s procesadores de uso mas reciente. Como
caso particular ( dado que la tarjeta se probó e instaló en una 80386 ) tomemos Fp = 33
Mhz nuestro valor de prescalar sera de O0001b = 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 posleriormente significativos para el usuario.
Una rutina representativa de este tipo es la función LeeTecla(), 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 wentajas 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 uni 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 nitinas 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 rio 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
UNIVERSIDAD AUTONOMA METROPOLITANA *I
UNIDAD IZTAPAIAPA
*I
*I
*I
r
*I
/* VlGlIA : Software para el sistema de control de acceso y *I
I*
vigilancia del laboratorio T-327.
*I
r
*/
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
I* lmplementado con Turbo C, versión 2.0
I*
*I
I*
*I
/*
*I
r
VIGILA Versión 1.0 -Junio de 1994*I
........................................................................ I
~*i********i*********r*********r**rr*4rr*************~b*****************
I*
I*
I*
I*
I*
#include <stdlib.h>
#include <stdio.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
#define
#define
#define
#define
#define
ESTABLE O
ACTIVO 1
TRUE
1
FALSE O
ON
1
OFF
O
31
/* Definición de puertos y dispositivos */
#define
#define
#define
#define
#define
#define
PUERTOA 0x0300
PUERTO6 0x0301
PUERTOC 0x0302
CTL8255 0x0303
DAT8279 0x0304
INS8279 0x0305
P Parámetros de inicialización para los puerlos */
#define IN18255 0x89 /* puertos A y B de salida, puerto C entrada */
#define MOD8279 0x11 /* 8 caracteres 8 bits, entrada por la derecha
exploración de teclado decodificada, bloqueo
*/
por pulsación de dos teclas.
#define DIVCLOCK Ox21 r" divide la frecuencia del reloj ( X Mhz/32 )
debe obtenerce aproximadamente 1O0 khz
001 O0001 para 4 Mhz se tienen 125 Khz. */
#define CLR8279 OxD6 P borra registros internos del 8279
*/
P Parámetros de control */
#define LEE8279 0x80 /* Instrucción de lectura del 8279 010xxxxx */
#define ESC8279 OxFO P Instrucción de escritura 1OOOPPPP
*/
P Definición de codigos del teclado externo */
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
Mefine
##define
TECL-1
TECL-2
TECL-3
TECL-4
TECL-5
TECL-6
TECL-7
TECL-8
TECL-9
TECL-O
TECL-A
TECL-G
SW1
SW2
SW3
SW4
OxC3
OxC2
OxCl
OxCB
OxCA
OxC9
OxD3
OxD2
OxDl
OxDA
OxDB
OxD9
OxCO
OxC8
OxDO
OxD8
32
P Define las salidas de control para el puerto B */
#define
#define
#define
#define
#define
#define
AMARILLO
Ox01
P Salidas para control el
*/
AZUL
0x02
P marcaje del número telefónico */
DESCOLGAR 0x1O
REPRODUCTORA Ox20
ABRIR-PUERTA 0x40
LUCES
0x80
#define NUMUSUARIOS 30
#define NUMACCESOS 30
#define MENSAJE
25
P Tiempo del mensaje */
P Estados de la línea telefónica */
#define
#define
#define
#define
#define
OCUPADO
1
LLAMANDO
2
LINEA
3
NOLINEA
4
CONTESTADO 5
#define NUMTEL
"4813"
r" Este es el número telefónico */
typedef struct
{
int ClaveUsuario;
int indice;
char *FechaHora[NUMACCESOS];
} DATOS;
DATOS Usuario[NUMUSUARIOS];
int oportunidad=O ;
P arreglo global */
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(v0id);
33
r****---**-**-
*******rm*
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.
-*-*mr*cHcc*****cic
I
void Inicializar(void)
1
int i, j;
outportb( CTL8255 , IN18255 );
outportb( INS8279 , MOD8279 );
outportb( INS8279 , DIVCLOCK );
outportb( INS8279 , CLR8279 );
P inicialización de variables globales *I
for (¡=O; ic30; i++)
{
Usuario[il.ClaveUsuario = -1 ;
Usuario[TJ.indice= O ;
for (j=O; j<30;j++)
Usuario[TJ.FechaHora[j][O]= ";
1
P inicializa algunas claves *I
Usuario[l].ClaveUsuario = 1324 ;
Usuario[2].ClaveUsuario = 1492 ;
Usuario[3].ClaveUsuario = 7424 ;
Usuario[4].ClaveUsuario = 8324 ;
Usuario[5].ClaveUsuario = 8932 ;
Usuario[G].ClaveUsuario = 7293 ;
Usuario[7l.ClaveUsuario = 9510 ;
Usuario[8].ClaveUsuario = 8451 ;
Usuario[9].ClaveUsuario = 5924 ;
Usuario[l O].ClaveUsuario = 4545 ;
return;
1
34
Función : Control
Paramétros: &Estado, *clave.
Regresa : nada.
Esta función monitorea constantemente el estado del sistema
actualizando los parametros de tiempo transcurrido.
Tambien maneja el muestre0 de los puertos del teclado de la
puerta y teclado de la PC.
*******ccc*m***********mcc*m**hmht*****m*****
I
void Control (int *Estado, char *clave )
{
struct time t l , t2;
gettime(&t1);
while( *Estado == ESTABLE )
{
gettime(&t2);
if ( t l .tjmin+2 42.tjmin )
oportunidad= O;; r' inicializa oportunidades *I
if ( t l .tjmin+5 c t2.ti-min )
strcpy( clave,
/* limpia buffer de teclas *I
if ( bioskey(1) != O )
Consulta(); r' se desactiva temporalmente el sistema *I
'I");
gotoxy(32, 22);
printf("%s", clave);
*Estado = GetEstadoO;
................................
Función : ActualizaEstado
Parametros: *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.
I
*************H*CCmm-*--***--
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
case
:{ *Estado = ESTABLE ;
/* tecla sin proceso */
return;
1
case '*' :{ strcpy( clave , "*" );
/*inicio de clave */
*Estado = ESTABLE ;
return;
1
case '1' : ;
case '2' : ;
case '3': ;
case '4' : ;
case '5' : ;
case '6': ;
case '7' : ;
case '8' : ;
case '9' : ;
case 'O' :{ if ( *clave == )
I#
{
stmcat( clave, &Tecla, 1); /* aumenta clave */
if ( strien(c1ave) >= 5 )
{ /* Si la clave esta clompleta verificala */
Verificaclave( clave*l );
strcpy( clave, "" );
1
gotoXy(1 22);
printf("
'7;
gotoXy(1, 22);
printf("1ntroduzca la clave de acceso
*Estado = ESTABLE ;
return;
I
1
else *Estado=ESTABLE;
default : {*Estado= ESTABLE;
retum;
1
3
1
. . . . . . . . . . . . . . . . . . . . . . . .
**m*m**
Función : VerificaClave
Parametros: clave, es una cadena de cuatro digitos.
Regresa : nada.
36
:'I);
Esta función verifica la clave y monitorea e1 número
de intentos, si la clave es valida permite el acceso.
P*******c*mccHn*********m
++-
I
void Ve rificaClave(char "clave)
int NumClave, i, Index;
time-t It ;
char *temp;
NumClave = atoi(c1ave);
for (¡=O; ic30; i++)
{
if ( Usuario[il.ClaveUsuario == NumClave )
{
It = time(NULL);
Index = Usuario[il.indice ;
temp = malloc(40);
strcpy ( temp, ctime(&it) );
Usuario[il.FechaHora[lndex]= temp;
Usuario[il.indice++;
outportb( PUERTOB, ABRIR-PUERTA);
gotoXy(1, 22);
printf(" PUERTA ABIERTA DURANTE 5 SEGUNDOS
sleep@);
gotoXy(1 22);
printf("1ntroduzca la clave de acceso
outportb( PUERTOB, O ); /* cerrar puerta *I
oportunidad = O;
return;
");
I
:I1);
1
1
gotoXy(1, 22);
printf('lt\t ii CLAVE INVALIDA
sleep(1);
oportunidad++;
if ( oportunidad== 3 )
{
gotoXy(1, 22);
printf("it\t ii PUERTA BLOQUEADA !!");
sleep(300);
/* bloquea la puerta 5 minutos *I
outportb( INS8279 CLR8279 ); /*limpia el buffer del teclado *I
oportunidad = O;
!!I1);
I
return;
1
37
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Función : Consulta
Esta función interrumpe la vigilancia para proporcionar
la interface al sewicio de consulta de accesos.
I
*.H*******-**m***CWC***C***********
void Consulta(void)
{
char Op;
clrscr();
printf('ln\nolbs\n\n\n\n\n%s\n%s\n%s\nolbs\n%s\n0lbs\n%s",
SISTEMA TEMPORALMENTE SUSPENDIDO
II
11
I
11
11
1
CONSULTA DE ACCESOS
11
11
11
,
11
1
<1> Accesos de un usuario. " ,
<2> Salir",
11
11
11
II
I
Introduzca su opción o");
II
do {
Op = toupper(getch());
} while (!( (Op=='l')ll(Op=='2*)));
if ( o p == Ill)
Accesos();
clrscr();
printf('W\n\n\n\n\n\n\n\n\n\t\t SISTEMA DE CONTROL Y ACCESO ACTIVADO');
gotoxy(1 22);
printf("1ntroduzca la clave de acceso :");
return ;
I
/******m********cccmCLC**CCCCCC*cm**r*cm****
Función : Accesos
Esta función proporciona el sewicio de consulta de accesos
de un usuario.
***P**m-*mmmn**m**w*++*****m*
I
void Accesos(void)
{
char Clave[200];
int NumClave, i=O,j=O, Index ;
printf('7n\n\ Teclee la clave del usuario
scanf("%s", Clave );
NumClave = ato¡( Clave );
if ( NumClave != O )
:'I);
for (¡=O; ic30; i++)
if ( Usuario[il.ClaveUsuario == NumClave )
{
Index = Usuario[il.indice;
if ( Index==O) printf('7nSin accesos\n\n");
else printf('7nSus accesos fueron \n\n");
for (j=O; j Index ; j++)
printf (,,%s", Usuario[il.FechaHora[jl );
printf('7nohs\n",
oprima cualquier tecla para continuar ");
II
getch0 ;
return;
1
printf('7nClave no encontrada.");
printf('7noprima cualquier tecla para continuar.");
9etch();
return;
1
printf('7nENTRADA INVALIDA oprima cualquier tecla para continuar.");
getch0;
return;
/*****H***C*H*******H***~*H***H**
***H****H*
Función : LeeTecla
Parametros: 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.
**c*Hm*m**m**
++****
I
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( );
case TECL-G : return( Y );
case SW1 : return( 'A' );
case SW2 : return( 'B' );
case S w 3 : return( 'C' );
case SW4 : return( 'D ):
'*I
default
: return(
"
);
1
i*******H1*cn**m*******P
L***H**Hw
Función : GetEstado
Parametros: nada.
Regresa : El estado actual del 8279.
1 (ACTIVO) si se han oprimido teclas,
O (ESTABLE) en otro caso.
m ++***cHc**H
-*****--*
I
int GetEstado(void)
{
unsigned char Status;
Status = inportb( INS8279 ); i* lee estatus del 8279 *I
Status = ( Status & Ox07 ) ; r" existen carácteres en la FIFO *I
if ( Status )
return( ACTIVO ) ;
P se pulso alguna tecla
*I
else
return( ESTABLE );
P no hay teclas
*I
1
i***********H********H**HwH**H****
Función : Reactivar
Parametros: nada.
Regresa : nada.
Esta función debe dar instrucciones para reactivación del
40
sistema dependiendo del lugar de instalación.
. . . . . . . . . . . . . . . . . . . . . . .
++-
I
void Reactivar(void)
{
clrscr();
printf('7nEs necesario reactivar el sistema");
printf("in\n%s",
oprima cualquier tecla para terminar");
getch0;
return;
II
I
p*******************c*m****m***+cm*****n
Función : Cadencia
Parametros: 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.
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ++-*
I
int Cadencia(void)
{
struct time t l , t2;
long int Centesimas;
int tgno, ocupado=O, contestado=O, Ilamando=O;
while(1)
{
gettime(&tl);
tono = ( inport(PUERT0C) & Ox01 ); r" lee bit PCO */
while( tono == (inport(PUERTOC)&Ox01) )
{
gettime(&t2);
if (tl .tjsec+65 < t2.tjsec+60 )
if (tono == 1 ) return(LINEA) ;
else
retum(N0LINEA);
I
Centesimas = t2.tjsec*l O0 + t2.tjhund - ( t l .ti-sec*l O0 + t l .ti-hund);
if ( Centesimas < 2 ) continue; i* posible ruido parametro 2 *I
else if (Centesimas 200) {contestado++ ;
if ( contestado > 10 )
return (CONTESTADO);
1
else if (Centesimas < 400) {ocupado++ ;
if ( ocupado > 8 )
return (OCUPADO):
41
1
else if (Centesimas c 1500) { llamando++ ;
if ( llamando > 5 )
return (LLAMANDO);
1
1
1
Función : Alarma.
Parametros: char Tecla.
Regresa : nada.
Esta función toma la acción requerida segun los siguientes
codigos:
A .- (SWI) Forzamiento de la puerta.
B .- ( S W )Alarma ventana 1.
C .- ( S W ) 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 dbscolgado\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 )
/* Marcaje del número telefónico */
Digito = *Telefono ;
Numero = ato¡( &Digit0 );
if ( Numero==O ) Numero=lO;
printf('7nMarcando el digito %do',NumeroohlO);
outportb(PUERTOB, DESCOLGAR+AMARILLO); /* se cierran los
amarillos */
delay(500);
for (¡=O; ¡<Numero ; i++)
{
outportb(PUERTOB, DESCOLGAR+AMARILLO+AZUL);/* abrir azul */
delay(50);
outportb(PUERTOB, DESCOLGAR+AMARILLO); /* cerrar azules */
delay(50); '
1
outportb(PUERTOB, DESCOLGAR);
delay(1000);
Telefono++;
1
delay(6000) ; P 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;
1
break;
}while( continuar == FALSE );
P el telefono se contesto */
outportb( PUERTOB, DESCOLGARIREPRODUCTORA );
printf('7ntelefono contestado");
sleep(MENSAJE);
outportb( PUERTOB, DESCOLGAR ); 1' apaga la reproductora */
sleep(1);
/* espera un segundo */
outportb( PUERTOB, OFF );
r" cuelga el teléfono */
return;
1
43
FUNCION PRINCIPAL
****CH*****-H********H*****-*****-****
I
***
P***-*-*-**Función : main (Principal).
Parametros: Nada.
Regresa : Codigo de terminación.
- - *
int main(void)
{
++-
I
int Estado = ESTABLE ;
char Tecla, clave[6]="" ;
Inicializar();
clrscr() ;
printf('ln\n\n\n\n\n\n\n\n\n\t\t SISTEMA DE CONTROL Y ACCESO ACTIVADO");
gotoxy(1, 22);
printf("1ntroduzca la clave de acceso :");
do
{
Control( &Estado, clave ) ;
Tecla = LeeTecla() ;
ActualizaEstado( &Estado, Tecla, clave );
} while ( Estado == ESTABLE ) ;
if ( Estado == ACTIVO )
Alarma( Tecla ) ;
Reactivar();
return (O);
1
o
44
CAPíTULO 3
I NSTALACIÓN
3.1 INSTALACIÓN DE SOFTWARE Y TARJETA
Para instalar el sofware es necesario verificar el parametro 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 tarjeta la podemos hacer con los siguientes pasos:
1.- Se estacionan las cabezas magnéticas de escnturdlectura 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
Par de
terminales
que
van
directamente con la línea telefónica.
cx-2
Conexión 2
Par de terminales quese conectan
con la contra eléctrica.
cx-3
Conexión 3
Par de
Tipo de Conexión
terminales
que
van al
interruptor de las luces.
cx-4
PB-1
Conexión 4
Par de terminalesque se encargan
Push Boton 1
de alimentar a la reproductora.
Par de terminales donde se instala lo
equivalente a un circuito abierto que
al
cerrarse
indica
que se
esta
forzando la puerta vigilada.
PB-2
Push Boton 2
lo equivalente a un circuito abierto
Y
PB3
En cada par de terminales se instala
Push Boton 3
de tal forma que cuandosecierre
nos indique que hay algún cristal
roto.
PB-4
Push Boton 4
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 parteqpara que se accione
la alarma.
RV-1
Relevador 1
Control telefónico.
RV-2
Relevador 2
Control telefónico.
RV-3
Relevador 3
Relevador que al cerrarse da línea.
RV-4
Relevador 4
Relevador
que
reproductora.
47
acciona
la
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 esta bien, haga una observación
en los relevadores RV-7, 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 PCTOCILS.
-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 C:l MOS que pueden ser dañados con una
carga estática que provenga de su mano. Puede usar una pulsera que este 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 comente en el lugar, instalar un NO BREAK a la computadora.
48
BIBLIOGRAFíA
- APUNTES DE COMUNICACIONES.
Yudiel Perez Espejo.
UAM-I . México 1994.
- TECHNICAL
REFERENCE IBM.
PERSONAL COMPUTER HARDWARE REFERENCE LIBRARY.
USA 1984.
- TTL LOGIC.
STANDARD TTL SCHOTTKY, LOW POWER SCHOTTKY.
TEXAS INSTRUMENTS.
USA 1988.
- PERIPHERALS.
INTEL.
U.S.A. 1989.
-MICROPROCESSORS.
INTEL.
U.S.A. 1989.
49
-1486
PROCESSOR PROGRAMMER'S REFERENCE MANUAL.
INTEL.
U.S.A. 1990.
-THYRISTOR DATA.
MOTOROLA.
U.S.A. 1991.
-INTEGRATED ELECTRONICS.
Jacob Millman * Chnstos C. Halkias.
Ed. Mc Graw Hill.
-TURBO C /C++. MANUAL DE REFERENCIA.
Herbert Schildt.
Ed. Mc Graw Hill.
Mexico 1992.
50
Descargar