Document

Anuncio
PROYECTO
DE
I
INGENIERÍA
I
ELECTRONICA
UNIVERSIDAD AUTONOMA
METROPOLITANA
Casa
abierta
tiempoal
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 estetrabajoamispadresLuis
y Carlota, así
como a mis hermanos Octavio, Mary, Angélica, Yolanda y Carlos.
Hago un reconocimiento a mis padrinos Jorge
por su solidaridad.
Ricardo Alejandro Solís Ramírez.
4
y Juan
AGRADECIMIENTO.
Gracias.
Ricardo González Carrillo.
5
íNDlCE
INTRODUCCI~N....................................................
8
CAPiTU LO 1. HARDWARE .............................
1.1 CONTROL
9
DE PERIFÉRICOS DE LA PC ..... 9
1.2TARJETACONTROLADORA
....................
12
1.2.1 EL CIRCUITO INTEGRADO 8279.................................
12
1.2.2 EL CIRCUITO INTEGRADO 8255.................................
16
..........................
17
1.2.3 CIRCUITOS INTEGRADOS ANEXOS
1.3SISTEMADE COMUNICACIóN
TELEF~NICA............................................
1.3.1 LA LíNEA TELEFóNICA .................................................
..........................................
CONTROL DEL TELÉFONO.........................................
19
19
1.3.2 DETECTOR DE CADENCIA
22
1.3.3
23
1.4 TECLADO. PUERTA. LUCES Y DETECTORES
DE HUMO .................................................
23
6
2.1ASPECTOSGENERALESDEL
PROGRAMA ..............................................
2.2 MANEJO DE LA TARJETA .........................
25
26
2.3 ALMACENAMIENTO DE INFORMACI~N..... 29
CAPíTULO 3.
INSTALACIóN ........................
45
3.I INSTALACIóN DE SOFTWARE Y
TARJETA ...................................................
3.2 INSTALACIóN DE PERIFÉRICOS
................ 46
3.3 RECOMENDACIONES .................................
BIBLIOGRAFíA ....................................................
7
45
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.),seha
desarrollado unproyectoque
contiene un sistema de vigilancia constante y un registro de personal de un lugarde interés.
Para poderllevar
a cabo esteproyecto,
seha
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
con vigilancia, realizando si esto
persona está forzando las entradas al lugar
sucede, llamadas con números telefónicos que han sido
escogidos previamente.Otrafunciónque
se tiene, es elalmacenamientodelasclaves
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ónicaanalógica
se presenta alhacer
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ónicadigitallaencontramosenlainformación
quetenemosdela
señal digitalobtenida a partirde
la señal analógica, así
como enel
manejo del teclado, en los detectores de humo y en el encendido de luces que se controlan
mediante la ranuradeexpansiónde
la computadora. Con respectoa
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
PC sellevaacaboconunatarjeta
El controldeperiféricosmedianteuna
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íneasdedireccionamiento,
un busdedatosdeochobitsqueesbidireccional,seis
niveles de interrupción, tres canales de acceso directo a memoria con lineas de control
o escritura,conexionesalrelojya
de E S , líneas de accesoamemoriadelectura
circuitosdetemporarización.Dentrodelaslíneasdecontroltenemosincluidos
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.
los datos, los cualessetoman
A2
a
A9
Estas
lineas
contienen
bidereccionalmente para comunicar ala PC con la tarjeta. A2
correspondea
D7 queeselbitmássignificativoyA9
correspondea
DO queeselbitmenossignificativo.
9
A20aA31Correspondena12delas
20 líneasdedirreccionamiento.
y es
el
DondeA31eslalineadedireccionamientoA0
bit
menossignificativoyA20,bitmássignificativo,eslalíneade
direccionamiento A l l lacualsedejasinconectar.Aquíes
importantemencionarque
los pinsA31 (AO), A30 (AI) yA29
(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
dispositivodebellevarinmediatamentelalíneaabajocuando
existaunadirecciónválidaysehayadetectadouncomando
delectura
o escritura.Lalíneanodebepermanecerenbajo
durante más de diez ciclos de reloj.
A I 1 - AENEslalíneadedirreccionamientoquehabilitaelusodelcanalde
E/Sporelprocesadoryotrosdispositivos,mientrasel
ocupa su lugar.
BI, B10, 831 - GND
82 - RESET
B5, B29 - (+5Vdc)
87 - (- 12Vdc)
B9 - (+12Vdc)
10
DMA
B13 - IOW Es un comando de escritura que habilita
para que lea un dato del bus
a un dispositivo de E/S
de datos. Se activa en Bajo. Puede
ser manejado porel procesador o el controlador DMA.
B14 - IOR
Es uncomandodelecturaparaundispositivode
intentatransferirundato
Puedesermanejadopor
E/S que
al busdedatos.Seactivaenbajo.
el procesador o el controlador DMA.
B20 - CLK
La ranura de expansióny las lineas utilizadasse muestran en la figural.
11
o
o
I
I
u
V
I
I
m
I
m
I
1
P
a
1.2 TARJETACONTROLADORA
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. S e
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:
los datos y comandos entreel
Todos
C P U y el
8279 se transmiten por este bus.
CLK
3
CLOCK: Señal del reloj delsistema
usada
para la generación del timing interno.
RESET
9
RESET: Un nivel
alto
en
este
pin
8279.
al
resetea
Después de esto, 8279
el
se
coloca en el modo siguiente:
1)
16 caracteres
de
display
de
8
bits,
entrada por la derecha.
2) Exploración
codificada
teclado
de
con
bloqueo
por
pulsación
de
dos
durante
este
proceso, múltiplo
elde
división del clock se coloca a 31.
12
teclas;
Símbolo
Pin
Descripción
cs
22
SELECCIóN
DE
CHIP:
Un
nivel
entrada
esta
habilita
al
bajo
en
para
8279
transmitiryrecibir.
A0
21
DIRECCIóN DE
BUFFER:
Un
nivel alto en
esta línea
indicará
que
señales
las de
interpretarán
bus
se
como
comando
comoestatus.
o
El nivel bajo indicaraqueson
datos.
RDNVR
10-11
Y
ENTRADNSALIDA
READ
WRITE:
Estas señales habilitan al buffer de datos para
enviar o recibir datos por el busexterno.
IRQ
4
PETICIóN INTERRUPCIóN:
DE
En
el
modo
teclado
esta
línea
está
a
nivel
cuando
hay
datos
en
a
nivel
alto
la memoria.
Pasará
bajo
con
cada
lectura
volverá
y
a
nivel alto si quedan
en
ella.
En
sensor,
nivel
pasa
a
el
alto
modo
cuando
se
detecta un cambio enel mismo.
vss, vcc
32-35
SLO-SL3
20,40
PINS DE TIERRAY ALIMENTACIóN.
LINEAS
EXPLORACIóN:
DE
Estas
se
usan
para
sensores
de
la
la matriz
de
y
display.Sepuedencodificar
decodificar (1 a 4).
13
o
exploración
teclas
de
los dígitos
del
( 1 de16
) o
Símbolo
Pin
Descripción
RLO-RL7
38,39,
LíNEAS
DE
RETORNO:
1 2
se conectanalaslíneasdeexploración
5-8
teclas
las
Estas
los
o
entradas
de
sensores teclado.
de
Estan polarizadas
con
internas
pull-up.
de
resistencias
También se
utilizar como
pueden
entradas
modo
elde
en
entrada por impulso
SHIFT
36
SHIFT:
Esta
entrada
con la
tecla
que
almacena
se
se
haya
junto
pulsado en
el
modo
exploración
de teclado.
de
Está
polarizada
resistencias
con internas
de
pull-up.
CNTUSTB
37
CONTROUENTRADA
DE
Para
los modos
de
teclado,
se
almacena
junto con latecla
queshift);
IMPULSO:
pulsada (delmismomodo
estalínease
la entradadeimpulso
utilizatambién
como
( flancodebajada
)
modo
entrada
de
elen
impulso.
por
Está
polarizada
resistencias
por
internas
de pull-up.
OUT AO-OUT A3
27-24
SALIDAS:Estos
OUT BO-OUT B3
31-28
para
el
display.
dospuertosdesalidason
refresco
registros
los
de de
Los datos
estas
de salidas
sincronizan
con
se
las
líneas
de
exploración
para
el
multiplexado
del
display.
Los dos
puerto se pueden apagar independientemente.
S e pueden utilizar como un puerto de 8 bits.
14
Símbolo
Pin
Descripción
BD
23
APAGADO
utiliza para
DE
DISPLAY :
apagar display
el
Esta salida se
en
el
multiplexado o en un comando de display.
La entrada de datos del 8279 y
su visualización son una parteimportante 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 dehumo.
aunque disponible,no es utilizadaenelsistemadebido
La partedeldisplay,
a que se deja para unposible
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 rebotesdelasteclas
se
suprimen automáticamente yse 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
para ser usadocon
microprocesadores. Tiene24
programadosindividualmenteendosgruposde12y
pinsde
E/S
se diseñó
los cuales pueden ser
se usa en 3 diferentesmodosde
operación. El modo O es el utilizado en la tarjeta controladora y en este modo tenemos dos
gruposde12pinsde
E/S que pueden serprogramadosensubgruposde4
ya sea de
entrada o salida. La programación usada corresponde a la palabra 5 de control, la cual es
elnúmero
89H que llega a los pins DO a D7 del 8255, trayendo como resultadoqueel
puerto A (PA) y el puerto B (PB) del circuito sean de salida, mientras que el puerto
sea deentrada.
Como podemos obsetvar la activacióndeestecircuito
disposición el uso de los tres puertos ( PA, PB y PC), donde el pin
que al conmutar nos dará la línea telefónica; el pin
C (PC)
pone anuestra
PB4 va a un relevador
PB5 también va a un relevador, pero
16
éste, es el encargado de accionarla 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
los cuales
son
activados
mediante
integrados
74LS00,
la lógica de circuitos
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 palabrade 8 bits que
Nimero binario
Número hexadecimal
A1 1
A10
A9
A8
A7
AB
A6
A4
o
o
1
1
O
0
0
o
o
1
1
O
0
o
o
1
1
O
0
o
o
'
0
o
o
1
1
O
0
0
o
o
1
1
O
0
0
1
1
0
Al
A0
A3
A2
0
O
0
0
0
300H
0
0
O
0
0
1
301H
0
0
0
0
1
0
3MH
O
0
1
1
303H
0
O
1
0
0
304H
0
O
1
0
1
305H
0
0
TABLA
la
17
A10
AS
0
1
A8 A6
A7
1
0
TABLA
A6
0
0
M A3
0
0
lb
se protegesemuestraenlatabla
1b.Estapalabraseencuentrapermanenteenlas
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 pasaa 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 esel 7406, el cuál es un
TTL monolítico con seis inversoresbufferddrivers que tiene como característica importante
quesussalidassondevoltaje-altoencolector-abierto,de
tal formaquenosdanuna
interface con circuitos de nivel-alto ( semejantes a los MOS ), o podemos tener cargas de
corriente-alta ( comolamparas o relevadores ), y sontambiénutilizadoscomobuffers
inversoresparatenersalidas
T L . Prácticamenteen
la tarjeta sonutilizadoscomo
acopladores entre el CI 8255 y los periféricos, entre los que existen algunos relevadores y
optoaisladores.
Tambiénencontramos
Cl's MOC3021,quesondispositivosoptoaisladores
consisten en un diodo infrarrojo que
y
se acopla a un detector de silicio monolítico, de tal
manera que cuando se hace llegar un voltaje de12Vdc al pin 1, el circuito funcionará como
un interruptor cerrado que permitirá
que circule una corriente de más de 10mA.
Complemetariamente a estoscircuitos
y formandopartede
la lógicaparala
generalización del uso de la tarjeta en cualquier PC desde una 8088 hasta una 80486
debenutilizar los Cl's 74LS393 y el 74121.Elprimero
se
de estoscircuitos esundoble
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
frecuenciasde
reloj (4.4 Mhz a 66 Mhz).Estagrandiferenciaenlavelocidad
de los
microprocesadores tambiénse debe considerar en la variación que presenta en la velocidad
delbusexternoparaaccesar
a los puertos,por
lo que el CI74121queesuncircuito
multivibradormonoestable, lo utilizamosenlageneración
proporcionar a los circuitos de nuestra
tarjeta
correctamente.
18
de unaseñal deretardopara
el tiempo
suficiente
para
operar
i
¡ir------
Q
¿Y
ZY
UP
7
J
L
I
I
i
I
1.3 SISTEMA DE COMUNICACIóN TELEFóNICA
lo referente a el control y funcionamiento de la
En esta parte se menciona todo
línea telefónica.
1.3.1 LA LíNEATELEFóNICA
La líneatelefónicaquellega
a nuestrascasasesunaseñalsenoidal,lacual
consta de diferentes tonos que explicaremosa continuación.
TONO DE MARCAR.
Estetono se percibecasiinstantáneamentedespué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
muestra enla figura 3.
Figura 3. Tono de marcar
19
de 2 volts pico a pico. Este se
-TONO DE LLAMAR. Se
oye en caso de que el
desocupado; esta señal se presenta como en el
mudos de 4 segundos por
abonado al que se llama esté
caso anterior, sólo que con intervalos
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é ocupadoy la señal permanecerá así aunque el abonado desocupe la línea.
Estaseñaltienelasmismascaracterísticasqueladeltonodellamar,conla
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 DETECTORDECADENCIA
El detector de cadencia es la parte más importante que indica a la computadora en
que tono se encuentra la linea telefónica. L a 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 segundo
durante
y
un O lógico
durante
4 segundos; eneltonode
1 lógico
ocupadose
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 dela sección anterior.
E n la parte alta de la figura 6 tenemos el detector de cadencia y como podemos
observar consta de una etapapreamplificadora,dedosetapasamplificadoras,deun
detector
de
envolvente
y de una etapa de
conversión
lógica
a
preamplificadora tenemos que
en
su
entrada
vauna
l T L . En la
etapa
bobina captadora, de lacual
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
una mejor señal quellegará
al detectordeenvolvente.
Las etapasdeamplificación
realizaron con el CI TL082, el cual contienedosamplificadores
detector de envolvente tendremos
queentra
estas,
se
operacionales. En el
en la salida una señal que es la envolvente de la señal
y cuando noentraninguna
señal, entonceshabrá
O Voltsalasalidadel
detector.
Para la conversióna
la lógica TTL, es utilizadoelcircuitointegrado
es un comparador de
voltaje
de
alta
comparador diferencial,quenosentrega
velocidad, elcual
LM311 que
está configurado como un
5 Volts cuando existe señal en el detectorde
envolvente y O Voltsen su ausencia. Es importantemencionarqueel
tomar hasta 2.4 Volts y el 1 lógico de 2.5 Volts en adelante.
22
O lógico se puede
I
"
t
91
4
3
N
4
t
X
N
4)
I
X
B
'i;
1.3.3 CONTROL DEL TELÉFONO
El controldel teléfono se llevacabomediantetresrelevadores,
los cualesson
activados de acuerdo con una algoritmo que sigue la computadora; de los tres relevadores
uno sirve para descolgary poder obtener el tono de marcar, y los otros dos para marcar los
númerosdel teléfono a donde se deseallamar.
Decomosehacenlasllamadas
hablarámásampliamenteenlaexplicacióndelsoftware,quees
se
el queprácticamente
controla.
1.4 TECLADO, PUERTA, LUCES Y DETECTORES
DE HUMO
El teclado utilizado esuntecladomatricialcomúnque
al pulsarcualquiertecla
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 lapuerta
esusadaunacontraeléctrica,
medianteunoptoaislador
la cual esaccionadaporla
MOC3021, el cual se encuentraenunode
PC
los alambresque
unen la corriente con un transformador que antecedea 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, dejandoa la puerta con libertad paraque 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 provocaque
las luces se enciendan
y al permanecer abierto las luces estén apagadas.
encendido y apagado se encuentra ya programado.
23
El control de
Para tener la corriente suficiente en la contra eléctricay en el encendido de luces
se utilizantriacs decompuertasensitiva
(2N6073), los cualessondispositivosque
se
diseñaron para aplicaciones de control en ondas-completas de ac, tales como las luces de
alumbrado público, controlde motores, control de calentadoresy suplementos de potencia.
Los detectoresdehumosoncircuitosque
al haberhumoenunlugarcerrado
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
podemosrealizarunadivisiónfuncional
del programaquenospresentadosbloques
principales el de control de acceso yel de alarma.
El programa se implanta utilizandoel lenguaje de programación C, lo cual nos
permiteutilizaralgunas
delasventajasdeestelenguaje,comoporejemploutilizar
la
directivadecompilación
##define paraindicar los valoresdeterminadospor
el hardware
como lo son
las
direcciones
de
programase
los puertos
y los códigos
de
las
teclas.
En
utiliza el métododemuestreopararealizar
pequeñasmodificaciones
el
el monitoreo,aunqueunas
al hardwarepermitiríanimplantarvíasoftwarerutinasque
respondieran a una interrupción con
lo que se podría tener un driver residente.
El utilizar un método de muestreo para
rutina en la que se permanece en un ciclo
el monitoreo nos lleva a crear una
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 indicoanteriormente los valores determinados por el hardware
la directivadecompilación##define.
distinguenmediante
se
Estos parámetrosincluyenla
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 estoscódigosestán
implantados con el 8255,
asociadoscon
por lo quesuscódigos
lasterminalesde
los puertos
se determinanporlaposiciónensu
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
puertosa
suvez
solo se asociara al puerto B. Los valores de los
estándeterminadosporel
mapeo Hardwareque
se lesasignoa
los
dispositivos 8255 y 8279.
Para el caso de los códigosdeltecladodelapuerta,susvaloresestá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
SHFT
CTL
1
1
SL
RL
o1o
o1 o
26
=
OxD2
Y SHFTesde
LosvaloresdeCTL
hardware
1 porestarasídeterminadosen
el
( CTL y SHFT, sinconexiónpresentannivelaltopuesinternamentetienen
resistenciasdecarga
). SL=OlOindicaquelateclaestaconectadaalaterminalSL2,
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
detector de humo. La siguiente tabla muestra la asignación de códigos.
RL3
SLO
SL1
SL2
"
"
---"
"
SL3 ----
RL2
RL1
RLO
I
I
I
1
2
3
I
sw1
4
5
6
sw2
7
8
9
sw3
*
O
#
sw4
I
I
I
"
"
"
"
"
"
"
"
CTL
CHFT
SL
RL
HEX
TECLA-1
1
1
O00
o11
c3
TECLA-2
1
1
O00
o1o
c2
TECLA-3
1
1
O00
O01
c3
TECLA-4
1
1
O01
o11
CB
TECLA-5
1
1
O01
o1o
CA
TECLA-6
1
1
O01
O01
c9
TECLA-7
1
1
o1o
o1 1
D3
TECLA-8
1
1
o1o
o1o
D2
TECLA-9
1
1
O10
O0 1
Dl
TECLA-O
1
1
o1 1
O10
DA
TECLA-*
1
1
o1 1
o11
DB
TECLA-#
1
1
o1 1
O01
D9
sw1
1
1
O00
O00
co
sw2
1
1
O0 1
O00
C8
sw3
1
1
O10
O00
DO
sw4
1
1
o11
O00
D8
27
y
Los códigos mencionados anteriormente están asociados con el hardware de
la tarjeta del sistema, por lo quelasrutinasqueutilizanestosvaloreslaspodríamos
clasificar como altamente dependientes del hardware y de uso exclusivo para este sistema
en particular.
La primerapartedelprogramarealiza
una inicializaciónde
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óndel8279
se deben haceralgunas consideraciones, como
primer paso se debeprogramar 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
microprocesadores8088hasta
ultimo
valor
66Mhz en
puede variar desde 4.25 Mhz en los
los procesadoresde uso másreciente. 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 dosteclas.
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 lecturaala
FIFO del8279obteniendouncódigoydecodificandoloparaobtenerel
carácter correspondiente a la teclao alarma activada.
Los códigosasignados
a cada unode
los dispositivosacontrolar,nos
permiten de una manerapractica utilizar las ventajas de la aritmética de bits para combinar
28
los diferentes estados que son necesarios parael control de dispositivos como el teléfono.
El control del teléfono es un modulo de un
proyecto , además de que nuestro control
telefónico) , el cual tiene una amplia gama
alto grado de elaboración dentro de nuestro
es altamente dependiente de otro sistema
(el
deestados y condiciones que complican su
control.
En el software lo anterior se reflejaenrutinascomo
la deldetector
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óricamentede patrones fijos, comúnmente presentan un
amplio rango de variación, como en
gran cantidad de ruido etc., .Como
el cruce de líneas, interrupción de la comunicación,
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 realde la presencia o no presencia del tono, con
lo quesegún
la duración de estostonos
se puededeterminar
ocupado,llamando e incluso el estadodecontestadomediante
los
estados de línea,
la determinacióndeun
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 softwarequenoesdependientedelhardware
y queestaorientado
al
control de acceso, fue implementado para cumplir las siguientes especificaciones:
- Una clavede acceso siempre comienza con un asterisco.
- Todas las claves tienen4 dígitos (sin incluiral asterisco)
- Si se teclean dosclavesdeaccesoincorrectasconsecutivamente
el
sistema se debe bloquear durante cinco minutos.
-
AI teclearunaclavevalida
almacenarán la hora
se activara el control de lapuerta,
y fecha en un registro de accesos
contendra sus últimos 30 accesos.
29
se
de usuarioque
Estas
especificaciones
debido
a su
independencia
del
hardware
son
susceptibles a mantenimiento.
Pararealizar
el almacenamiento de información se usaunarreglode
apuntadores para realizar una asignación dinámica de los nuevos registros, con los datos
de fecha y hora de entrada de cada unode los usuarios.
A continuación se muestra el código fuente completo del programa para
manejo del sistema.
30
el
......................................................................
I
I*
*I
I*
UNIVERSIDAD
AUTONOMA
METROPOLITANA
*I
I* IZTAPALAPAUNIDAD
*I
I*
*I
I*
*I
I*
*I
I* VIGILA : Software para el sistema de control de acceso y *I
I*
laboratorio
T-327.del
vigilancia
*I
I*
*I
I*
*I
*I
I* Realizado por:
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
I*
I*
VIGILA Versión 1.0
1994de
-Junio
*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
#define
#define
#define
#define
#define
ESTABLE O
ACTIVO 1
TRUE
1
FALSE O
ON
1
OFF
O
31
P Definición de puertosy dispositivos */
#define
#define
#define
#define
#define
#define
PUERTOA
0x0300
PUERTOB
0x0301
PUERTOC
0x0302
CTL8255
0x0303
DAT8279
0x0304
INS8279 0x0305
P Parámetros de inicialización paralos 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
dos
de
teclas.
*/
#define DIVCLOCK O x 2 1 P divide la frecuencia del reloj ( X Mhzl32 )
debe obtenerce aproximadamente 1O0 khz
O01O0001 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 */
de
escritura
1OOOPPPP
*I
#define
ESC8279
OxFO P Instrucción
/* Definición de codigos del teclado externo
*/
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
TECL-1
OxC3
TECL-2
OxC2
TECL-3
OxCl
TECL-4
OxCB
TECL-5
OxCA
TECL-6
OxC9
TECL-7
OxD3
TECL-8
OxD2
TECL-9 OxDl
TECL-O
OxDA
TECL-A
OxDB
TECL-G
OxD9
SW1
OxCO
SW2
OxC8
SW3
OxDO
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
0x1O
#defineREPRODUCTORA
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
#define
#define
#define
#define
OCUPADO
1
2
LLAMANDO
LINEA
3
NOLINEA
4
CONTESTADO 5
#defineNUMTEL
"4813"
P Este
es el númerotelefónico */
typedef struct
int
ClaveUsuario;
int
indice;
char*FechaHora[NUMACCESOS];
} DATOS;
DATOSUsuario[NUMUSUARIOS];
int oportunidad=O ;
P arregloglobal */
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 inicializaal 8255 y 8279. Además se inicializa
el arreglo global y se dan dealta algunas claves.
...............................................................
I
void Inicializar(void)
{
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
/* inicializEI algunas claves*I
Usuario[1 .ClaveUsuario = 1324 ;
Usuario[2 .ClaveUsuario = 1492 ;
Usuario[3 .ClaveUsuario = 7424 ;
Usuario[4 .ClaveUsuario = 8324 ;
Usuario[S .ClaveUsuario = 8932 ;
Usuario[G .ClaveUsuario = 7293 ;
Usuario[7 .ClaveUsuario = 9510 ;
Usuario[8 .ClaveUsuario = 8451 ;
Usuario[9 .ClaveUsuario = 5924 ;
Usuario[ 1 l].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 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 timet l , t2;
gettime(&tl);
while( *Estado== ESTABLE )
{
gettime(&t2);
if ( t l .ti_min+2 42.tjmin )
oportunidad= O;; r" inicializa oportunidades */
if ( t l .t¡-min+5 c t2.ti-min )
strcpy( clave,""); /* limpia buffer de teclas */
if ( bioskey(1) != O )
Consulta(); /* se desactiva temporalmenteel 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 realizala 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 return;
'A':
/* estados
alarma
de
*/
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 I*' :{ strcpy( clave , "*" );
/*iniciode 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*' )
{
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);
printf("
'I) ;
gotoxy(l1 22);
printf("1ntroduzcala 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 verificala clave y monitoreael número
de intentos,si la clave es valida permiteel acceso.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
I
void VerificaClave(char *clave)
{
int NumClave, i, Index;
time-t It ;
char *temp;
NumClave = atoi(c1ave);
for (¡=O;ie30; i++)
if ( Usuario[i].ClaveUsuario == NumClave )
{
It = time(NULL);
Index = Usuario[i].indice ;
temp = malloc(40);
strcpy ( temp, ctime(&lt));
Usuario[i].FechaHora[lndex]= temp;
Usuario[q.indice++;
outportb( PUERTOB, ABRIR-PUERTA);
gotoxy(l, 22);
printf("PUERTAABIERTADURANTE 5 SEGUNDOS
sleep(5);
gotoxy(1 22);
printf("1ntroduzca la clave de acceso
outportb( PUERTOB, O ); I* cerrar puerta */
oportunidad = O;
return;
'I);
I
:'I);
1
gotoxy(1 22) ;
printf('lt\t ii CLAVEINVALIDA
sleep(1);
oportunidad++;
if ( oportunidad== 3 )
{
gotoxy(~ 22);
printf('lt\t ii PUERTABLOQUEADA
sleep(300);
P bloquea la puerta 5 minutos *I
outportb( INS8279 , CLR8279 ); Plimpia el buffer del teclado */
oportunidad = O;
I
!!'I);
I
!!'I);
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'',
SISTEMA TEMPORALMENTE SUSPENDIDO
11
II
11
11
1
11
II
CONSULTA DE ACCESOS
11
II
II
< I > Accesosdeunusuario.
<2> Salir" ,
II
,
II
II
II
,
Introduzca su opcióne>'');
do {
Op = toupper(getch());
} while (!( (Op==ll')ll(Op==121)
));
if ( o p ==
Accesos();
clrscr();
Ill)
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
return ;
I
:'I);
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('7nSinaccesos\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",
oprima cualquier tecla para continuar");
getch0;
return:
II
1
printf('7nClave no encontrada.");
printf('7noprima cualquier teclapara 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 codigoy regresa suvalor 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( );
case TECL-G : return( ' # );
case SW1 : return('A' );
case SW2 : return('B' );
case SW3 : return( 'C' );
case SW4 : return( ' D );
'*I
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 enla FIFO */
if ( Status )
return(
ACTIVO ) ;
/* se pulso
alguna
tecla
*/
else
return(
ESTABLE
);
/*hay
teclas
no
*/
1
..............................................................
Función : Reactivar
Paramétros: nada.
Regresa : nada.
I
Esta función debe dar instrucciones para reactivación del
40
sistema dependiendodel lugar de instalación.
................................................................
/
void Reactivar(void)
{
clrscr();
printf('7nEs necesario reactivarel sistema");
printf('7n\n%s",
oprima cualquier tecla para terminar");
getch0;
return;
I1
1
..............................................................
Función : Cadencia
Paramétros: nada.
Regresa : La cadencia obtenida del puertoC.
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) ;
return(N0LINEA);
else
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 : L a 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
amarillos */
delay(500);
for (¡=O; ¡<Numero ; i++)
{
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)
{
intEstado = ESTABLE ;
char Tecla, clave[6]="" ;
Inicializar();
clrscr() ;
printf("h\n\n\n\n\n\n\n\n\n\t\t
SISTEMA DE CONTROLY ACCESO ACTIVADO);
gotoxY(l,22);
printf("1ntroduzca la clave de acceso
do
{
Control( &Estado, clave) ;
Tecla = LeeTecla() ;
ActualizaEstado( &Estado, Tecla, clave
);
:'I);
1 while ( Estado == ESTABLE ) ;
if ( Estado == ACTIVO )
Alarma( Tecla ) ;
>
Reactivar();
return (O);
o
44
CAPíTULO 3
3.1 INSTALACI~NDE SOFTWARE Y TARJETA
Para instalar el sofwareesnecesarioverificar
procesador y actualizarloen el códigofuente,tambien
telefónico al que se realizará
el parámetro de la velocidaddel
sedebeespecificar
el número
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 dela tarieta la podemos hacer conlos siguientes pasos:
1.- Se estacionan las cabezas magnéticas deescriiurdlectura 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.- Unavez
abiertoel
C P U , buscamos lasranurasdeexpansióncomo
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.- S e coloca todo como al inicio.
3.2 INSTALACIóN DE PERIFÉRICOS
Aquí es necesariotener a la mano la tabla de alambrado y la tarjeta controladora
para poder hacerlas conexiones indicadas.
Para conectar la tarjeta controladora y la tabla de alambrado,
que es físicamenteuncableplanode
40 alambres.Dichobuscuentaconconectores
hembras en los extremos, y cada conector tiene unaparteen
coincidiralahoradeconectarsela
se tiene un bus
blanco, lacual se hace
tarjeta y latabla con otraparteenblancoque
encuentra en los conectores respectivos.
46
se
Las otras partes que se necesitan instalar se muestran en la siguiente tabla:
Símbolo
Tipo de Conexión
Significado
Conexión 1
cx-1
terminales
de
Par
van
que
directamente con la línea telefónica.
Conexión 2
cx-2
Pardeterminalesqueseconectan
con la contra eléctrica.
cx-3
3
Conexión
Par
terminales
de
que
van
al
interruptor de las luces.
cx-4
4 Conexión
Pardeterminalesqueseencargan
de alimentar a la reproductora.
Boton
Push
PB-1
1
Par de terminales donde se instalalo
equivalente a un circuito abierto que
cerrarse
al indica
que
se
está
forrando la puerta vigilada.
PB-2
Push Boton 2
En cada par de terminales se instala
Y
PB3
lo equivalenteauncircuitoabierto
Push Boton3
detalformaquecuandosecierre
nos
indique
que
hay
algún
cristal
roto.
PB-4
Push Boton 4
En
este
par
terminales
de
se
conectan los detectores de humo. De
talmaneraquevastaunode
los
detectores,queseencuentranen
diferentes partes,para 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
acciona
que
la
reproductora.
47
Para conectar el teclado a
más distancia, basta con desalambrar
cada uno de
los pinsdel teclado, agregar más alambrehasta donde se desee y volveraalambrar
cada pin.
3.3 RECOMENDACIONES
S e incluyó esta sección para tener un mejor funcionamiento y mantenimiento del
sistema de vigilancia.
-Si alinstalarelsistema
las llamadastelefónicasno
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 teniendocomoobjetivoquepor
lo menos cada
uno debe accionarse una vez.
-Para hacer elestacionamiento
de las cabezas magnéticasdela
PC, puede
utilizarse la instrucción de Parking del PCTOOLS.
-Debe tenerse cuidado de no tocar la circuiteria de la tarjeta o del C P U al hacer
lainstalación de la tarjeta,ya que existen CI MOS que pueden ser dañados con una
carga estática que provenga de
para que lo anteriorno
su mano. Puede usar una pulsera que esté aterrizada
suceda y se tengamayorseguridadalahoradehacer
las
instalaciones.
-Cheque lasinstruccionesquevienenenelprogramaparalainstalacióndel
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, LOWPOWER 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
Descargar