ONIVERSIDAD
AUTONOMA
METROPOLITANA
UNiDAD
IZTAPALAPA
' I
/'c
\..>
'!PROYECTO
DE
INGENERIA
ELECTRONICA
I Y
2--
.-
ALUMNOS
,
'JORQE
TOLEDANO
E R A ~ M ~
ARTURO
-9
NO
VARQAS
Luff
ALEJANDRO
-
399-y
$-- ,7~
ASESOR:
I N D I C E :
<
-‘ I
I
r
..
A
I
JUSTlFlCAClON
6
1
INTRODUCCION
C
I
DETALLES IMPORTANTES ACERCA DEL PROYECTO
D
1
DlSTRl6UClON DEL PROYECTO
1
TARJETA DE ADQUISICION Y TRANSYISION SERIAL
1.1-Decripcidn del microprocesador C8031 de INTEL)
1.2-Conver ti dor A/D C AüC 0808)
1.3-Interrupciones,
Tinmrs
y Puerto s e r i a l del 80311.4-line drivers
1.5-Diagrama del circuito y programa para manejarlo
2
SISTEMA
PC
2.1-Programa para manejo del puerto s e r i e de l a PC Clenguaje C>
2.2-Programa para tratamiento de los datos Clenguaje C3
.
3
INTERFAZAMENTO ENTRE
1
Y
2
,.,_
El,
GUlA DEL USUARlO
f I
I.REQUERIMENTOS
G I
GUlA DE OPERAGION
ti
1
SUGERENCIAS, PROBLEMAS POSIBLES
Y SUS SOLUCIONES
I1
PERSPECTIVAS, U909
Y
APLICACIONES
..
. .
&
J U S i I FI CACIÓN:
Hay 2 razones importantes que nos han nrrtivado a realizar el
proyecto a q d presentado:
a3 E l deseo de plasmar algunos de los conocimientos adquiridos a
l o largo de nuestra carrera en
un
proyecto que nosotros mismosseamos capaces de plantear y resolver.
b3 Un osciloscopio y un Analizador de Espectros Cfrecuencia3, son
equipos muy &tiles cuando el Ingeniero Electrdnico trabaja en
el laboratorio. Pero sucede que &tos equipos son nuy caros y
por e l l o no cualquier persona que se encuentre iniciandose en
& t e dmbito puede tener acceso a un equipo para aprender a
usarlo y hacer mediciones adecuadas. En realidad e l proyecto
que a q d desarrollarenus presenta ciertas l i d t a c i o n e s , Ciaismas
que pueden ser superadas en un futuro por alguna persona que se
interese en e l l o y en realidad &to 110 es d i f i c i l ) pero apesar
de t a l e s limitaciones es
un
proyecto que puede aplicarse enmuchas dreas.
Es importante que se tenga en cuenta que el costo de e l
material utilizado en el proyecto es tan ecoruinrico que l o hace
bastante atractivo corn para hacerle nmjoras con el f i n de hacerlo
u t i l i z a b l e en una m a p r cantidad de aplicaciones.
1 .
I NTRODUCCI ó N :
Un osciloscopio es un aparato que nos permite
visualizar formas de onda y realizar mediciones acerca de l a s
variaciones de voltage Crespecto a l tiempo> que presenta
una
senal electr¿nica. C Siempre es importante cuando se trabaja en el
laboratorio conocer l a f o r m de onda presente en ciertos
puntos de los circuitos así corn su frecuencia. &to para
ver s i e l circuito tiene e l coiaporta~niento que s e espera>.
Un analizador de espectros permite visualizar senales en e l
dominio de l a frecuencia
,
para e l l o toma en SU entradauna
senalelectrica y en su pantalla hace un despliegue de l a s componentes
de frecuencia que componen tal senal y l a s amplitudes de tales
componentes de frecuencia. Esto es &ii porque
si
uno conoce l a scomponentes de frecuencia dximas de l a s senales tiene
una
estimacidn del ancho de banda inherente a t a l senal.
Para lograr u t i l i z a r una computadora tipo PC c o w un sistema de
despliegue de senales ya sea en e l dominio del tieapo
¿
en e ldominio de l a frecuencia Cosciloscopio
¿
analizador de espectrosrespectivamente>. es necesario contar con una tarjeta que nos
sirva para para adquirir l a senal en cuestidn y se l a presente a
l a PC en una forma digital, posteriornente l a PC debe entrar en
una
s e r i e de algoritmos u operaciones para lograr que l a senald i g i t a l que se l e ha proporcionado pueda ser desplegada en su
pantalla de modo que pueda representar a l a renal original
.I,
.,.
.
_.
.
introducida, pero caracterizando su amplitud y el tiempo de su
periodo Cpara el caso osciloscopio> o bien que pueda ser
desplegada de t a l forma que represente a l a amplitud de cada
componente de frecuencia que contenga l a senal original
introducida sujeta a nmdicidn.
E s decir, l a computadora PC nos va a servir funda-ntalniente
para l a s siguientes cosas:
a> graficar l a s senales por nrrdir en e l dominio del tiempo
d en
eldominio de l a frecuencia.
b> Dada
una
senal Cque ha sido muestreadapor
l a l a t a r j e t a antesniansionada y ha sido presentada a l a
PC>
hacer un a l g o r i t mpara poder caracterizar
sus
variaciones de aaplitud respocto a ltiempo Cosciloscopio> y presentar
los
resultados en pantalla,de l a misma manera desarrollar
un
algoritnm para podercaracterizar l a s variaciones en amplitud respecto a l a
frecuencia Canalizador de espectro> y tambidn presentar los
. >
.,.
.C
- DETALLES
IMPORTANTES
ACERCA DEL PROYECTOAntes de continuar con l a descripci¿n de nuestro proyecto, es
inportante observar
una
cuestidn:---En un osciloscopio convencional l a s senales que se quieren
medir s e observan en 'tienpo real', es decir l a parte de l a senal
que estamos viendo en ese mmento es l a que s e l e est& presentando
a1 osciloscopio en ese mísnio momento.
---En un analizador de espectro convencional el espectro de
frecuencias que se observa en l a pantalla es el de
una
senal queha sido almacenada en el interior del aparato y
luego
de aplicarlecierto algoritmo a t a l senal alnocenada, s e nos presenta l a
salida. podemos decir que &te proceso no es en tie- real C n o se
presenta l a salida deseada en el nism nio-nto que s e presenta l a
entrada sino que s e tiene que procesar antes>.
Para l a impienisntaci¿n en éste proyecto, nos vanos a inclinar
a
i aopción de presentacion de l a senal y presentaci¿n de su espectro
de mdo que no sea en tienpo real es decir, prineiro vams a
almacenar l a senal que nos proporcione l a tarjeta de adquisicidn
antes niencionada y l a almcenarenus en nemria de l a PC, luego l e
aplicaremos algunos algoritmos y posteriornente l a presentaremos
l a pantalla de l a PC.
E l hacer l a s cosas de esta manera conlleva a l o siguiente:
..
---Podems ver senales que en un osiloscopio convencional no (por
ejemplo podems ver l a salida de un nonostable3
---Podenos ver renales de baja frecuencia Cmenores de 60 h z 3 l o
cud1 en un osciloscopio convencional es iinposible.
---Podenos ver senales no periodicas <coir> voz limitada en banda a
2khz3 con calma l o que en un osciloscopio normal no es tan
adecuado.
Sur limitantes son:
---requerínios M bufferer de cierta capacidad para allrpcenar l a s
senales mientras son procesadas. E l t a u n o de este bicrfer es
proporcional a l a frecuencia
ndxima
que vayams a poder desplegaren l a PC. Experiniental-nte h e m s encontrado que para ver
una
senal con suficiente aproxiucidn a l a senal de entrada en
el monitor de una PC, requerinos de una frecuencia de muestre0
de unas 8 veces esa frecuencia
dxinm
p e r d t i d a CEsto s e debea
que s i tengo un wdninm de B puntos de una senal en el tiempo que
dura un periodo de l a misma y trazo segnantos de recta con el f i n
de
unir
todos esos 8 puntos, l a gráfica asi surgida serámuy
similar a l a grdfica de l a senal continua de entrada. C A s i para
poder ver senales de l k h z necesito muestrear a ésta senal a Bkhz,
s i quisiera ver 1 senal de 1Okhz debo muestrear a 8Okhz3. En
ralidad son dos cosas l a s que s e fectan: l a longitud del buffer y
c
, f.
- I
-..
.
- -
l a velocidad de muestre0 o adquisicidn: suponga los 2 ejenplos
siguientes:
a3 Para tener 1 segundo de informción de una sena1 de frecuencia
de 10Hz. necesito muestrearla a
una
frecuencia conm hemosdicho de
8Ohz
es decir debo hacerle 00 muestras en 1 segundo.requiriendo para e l l o un adquisidor a
una
frecuencia de 80 vecespor segundo y un buffer de 80 localidades.
b3 Para obtener 1 segundo de una sena1 cuya frecuencia es de 1OOhz
debo adquirirla
800
veces requiriendo un buffer de 8001 ocali dades.
Normalmente en l a práctica ambas cosas Ctainsno del buffer y
velocidad del adquisidor3 tienen un limite. De
l o s
dos e l que d slimita es l a velocidad del adquisidor, &to porque los
convertidores anaiogico-digital que f o r l r n parte de l a s unidades
adquisidoras tienen un tiempo de *conversión' el c d l puede
disminuir en forma l i n e a l pero su costo puede elevarse en forma
exponencial; un convertidor t i p i c o tarda 1Oops en convertir, es
decir puede lograr velocidades de muestrea de hasta 1Okhz
logrando con e l l o que se puedan desplegar renales deentrada de
hasta 1.25 khz Creruitado que se obtiene de aplicar 1 r e g l a
experimntal antes mncionada3. En &te proyecto utilizaremos un
..
.
entrada serin necesarianiente menores a
1.25khz
de frecuencia. Sise u t i l i z a un convertidor UD
d s
ripido C d s caro) se puedeaceptar senales de unas 10 o 1 0 0 veces
d s
frecuencia.E l hecho de u t i l i z a r un convertidor A A J en l a tarjeta de
adquisición impone que l a s renales de entrada fluctuen entre OV y
5V; e l ruido de cuantificación inherente a los convertidores A/D
de escala lineal Cque no realizan ni ponderación ni compresión 3
se distribuye uniforinsniente en todo el rango dindmico del
convertidor por
ello
renales de entrada p o q f f ~ ~ s e -ranm s
afectadas que l a s grandes, así s e restringir& que l a s senales de
entrada tengan una amplitud n r p r a 0.5Vpp.
Claro est& que dstas restricciones pueden superarse
si
se tuvieraun sistema de acondicionamiento de l a s renales, t a l sistema
debería detectar l a amplitud de l a fenal de entrada, s i es muy
ddbil deberiamr amplificar l a senal, si es muy grande debiams
atenuarla; todo con el f i n que l a
senal
de entrada a l convertidorsea sienpre constante de entre cero y 5 volts y con una amplitud
mayor a 0.Svpp. Este sistema debería informar a l a PC l a ganancia
que el amplificador ha dado a l a senal de entrada para que s e
incluyera en l o r cáiculos que dstn haga C ü n razonamiento similar
deberia seguirse s i l a sena1 de entrada tiene
OFF-SET
i , euna
&
DI
S R 1 BUCION
DEL
PROYECTOHay 3 partes importantes en que vams a d i v i d i r el proyector
a l t a r j e t a de adquiricidn de senales analdgicas y transmisidn
s e r i a l de
sus
correspondientes datos convertidor* .
* .
..
.blPrograma para l a recepcidn s e r i a l de
los
datos en l a PC yprograma de tratamiento y despliegue de
los
datos en l apantalla de l a PC para rnodos osciloscopio y analizador de
espectro.
A d
conm almacenamiento de senales adquiridas a discoy tambidn a d l i s i s de senales que ya han sido grabadas en
disco.
ClInterfaz de a y b.
Esta divisidn del proyecto responde a l echo de que debenus
tener una t a r j e t a que l e mande nueztras a l a PC;
la
FC de algunamanera va a r e c i b i r -tras C n o importa l a via en que se haga l y
l o que si importa es que l a s nuestras se van
a
i r -tiendo en unbuffer.
Entonces debernos de decidir e l -dio de conrniicacidn y l a manera
de comunicacidn entre l a t a r j e t a de adquisicidn y l a PC, y de
. .
*<
.
..
, . ,
. ..
*..
Hay bssicaniente 2 f o r m s de interfazarce con l a PC: P o r -dio
de un Slot de expancidn
d
por d i o del p u r t o serie.si
se analiza un pocoia
apiicacidn que querrlcrs no es en tiemporeal por l o tanto, hay un par da buenas
opciones
para solucionare l problenvr
i>
Unirnos
a1 bus de l a PC CSLot> y que e l convertidor A/D cadanmFnento que tenga una muestra interrunpa a l a PC para guardar
una nueva muestra en un buffer de l a PC. E l l o implica comprar
una tarjeta especial conpatible con el s l o t de l a PC y que sea
l a misma PC l a encargada de nvndar a l convertidor WD 01
protocolo que dste requiere para su funcionamiento.
i i > Tener una tarjeta externa a l a PC q w se c o d q u con A t a
via el puerto s e r i a l . Tal tarjeta debe tener un microprocesador
que mande a1 convertidor el protocolo necesario y a d r d s se
encargue de l a trasmisión s e r i a l de los datos
rumbo
a l a PC.La tarjeta debe tener
una
cantidad derriDria
RAM para que al a velocidad dxima del convertidor s e adquieran datos a esa
frecuencia dxima de aueotreo, una vez llena esa RAM de
muestras, es cuando se pueden transmitir via p u r t o s e r i a l Ca
l a velocidad inherente a l pusrto seria13 l a s nrPstras a l a PC.
---Debe notarse que en ambos casos s e ha arastreado a l a misma
velocidad Cla d x i m a permitida por e l convertidorl. En e l caso
primero l o s datos están en e l buffer en el numento de
adquirirlos; en el segrnsdo caso los datos están en otro buffer Cla
RAM del sistema descrito) en ese inisire> mnmnto de adquirirlos,
pero luego s e copiarán en el buffer de l a
E,
para e l l o se usa e lpuerto serial, el tiempo que se tarde el pu4rto s e r i a l para
transferir los datos de l a RAM antes mencionada a l a PC es l a
&ika
difwrmia:
dicha
tieatra
mmra
ambas
maneras
tandrdn
en
l a
PC finalmente el misno buffer pero e l primar0 se obtiene luegoluego, el segundo s e obtiene un poquito despds.
Nosotros aqui escogeremxs el segundo &todo
por
i n siguientesraz¿nesr
---Se usaria M circuito alalbrado en base a l microcontrolador
8031 de INTEL, mis- que ya tenems armado de cursos de
digitales y el cud1 requiere de auy poca lbgica para
i mpl enient ar 1 o que deseame.
---No se requiere destapar a l a PC CLa c d l no
es
nuestra)---No requiere gastar
en
una tarjeta compatible con el slot de l aPC
.
---Para esta apiicacirin no es necesario hacer l a r cosas en tiempo
real y eso es i o que escoger
una
u otra apiicaci¿n no aurentariael rendimiento.
La interfdz es M par de conectores DB-h) unidos por un cable de
9
hilos
.
Un conector se enchufa a l a PC, el otro a l a tarjeta deTARJ ETA
€E CIPa
UISICIóN TRANSMISIÓN
S E R I A LI,I
Daacrlpcldn da1 nicroproca~ador
803
da
latal
# Escojinvs el 8031 de i n t e l para &te pro)rMto dado que l o
dominanos perfectansnte y vems
en
di
un microprocesadormuy
versatil. completo Cincluso tiene
puerto
serie3 y l o f k i l deprogramar y conectar.
E l 8031 de Intel es un ‘Microcontrolador‘ l l ~ n o c N p que
está
configurado de l a 11ínera siguiente:
---CPU de 8 b i t s
---W interna para datos de 129 bytes
---4 puertos indeprndientes de Entrada/salidr de 8 b i t s c/u
---2 puertos para interrupciones externas
---1 puerto de E 6 s e r i a l
---2
contadoresfierporizadores
programables---0scilador integrado para generar sus propias renales de r e l o j .
Es importante observar que e1 8031 requiere de muy pocos
elenientos externos para trabajar y a d e d s tiene incorporados
puertos E 6 , puerto serial, tilors, y pusrtos de interrupciones
que nos serán de mucha utilidad.
#No se
hard
en dste trabajo un a d l i t i s detallado acerca de ele l l o se hace en materias relacionadas a sistemas digitales.
L o que podemos nencionar es que a1 armar un sistema dninm en
base a l 8031, queda un puerto C Pi de 8 bits
>
completanimte l i b r epara aplicaciones y l a s lineas dei puerto
P3
c q u s puedenser
configuradas para actuar conm lineas independientes c/u de
entradahalida o b i i n soportar alguna de ellas
d
todas una segundaopcidn que es l a de soportar
los
2 puertos de interrupcionesexternas del 8031,
los
2 tirprs, l a s 2liners
del puerto s e r i a l yl a s liners para alguna Ran externa.
1.2
CONVERTIDOR
A
/D
Aocoaoe
E l circuito convertidor
A0D
puedeser
conectado a l pusrto P i dee l 8031 el cud1 se ha dicho qus está normalmmte l i b r e . Corn s e
ha niancionado el convertidor es
del
tipo multiplexado pero sólousaremos un canal de
dl. Tiene
un tielpo de conversidn doloops.
E l protocolo que requiere &te convertidor se proporcionar& por
parte de 8031
.
1.3
T
NTERRW
c 1 o N E s . m
XE!mmSERTAL€?Ek8P3a
a>interrupcionesrEs bid, sabido que
el
uso de l a s interrupcionessirven para detener l a ejecución de un programa
hasta que ocurra un evento externo. También
permiten que un microprocesador ejecute
virtualmmte varias actividades a l 'nrism
tienpo'. CNosotros l a s usarenms para evitar hacer
un c i c l o de espera igual a lOO#ts q u a es l o que se
tarda el AüC en convertir, a d en e1 niolanto que
el
ADC
active l a renal f i n de conversi¿n, sepromqur una interrupción.
E l 8031 tiene ciertos registros para activar l a s
interrupciones con que cuenta en f o r m global y
a su vez cada una h a b i l i t a r l a y doshabilitarla en
forma particular, hay otros registros que
permiten que l a s interrupciones sean detectadas
por flanco o por nivel.
b3tiniers: E l 8031 cuenta con 2 tinsrs0counter
l o s
cuales tienenuna
interrupción dedicada a cadauno
do ellos y ofrecenl a posibilidad de presentar SU salida a l a s p a t i l l a s del
puerto 3 TO y T i .
Los
ti11mrs0counters pueden ser serconfigurados conm contadores de eventos externos o como
timers para generar terporizadores que tionen registros
que s e puMfen cargar con un valor y contar desde el
valor cargadohasta que ocurra un sobreflujo y en ese
.-
€xi rten varios modos para configurar 1 os
tin*rrs/counters,
pero
nosotros los usarenms enun
nmdoespecifico: E l de autocarga. el c d l a l terninar de
contar l a cuenta cargada, se -1- a cargar con l a
misma cuenta y así continda. Esto es h i 1 para lograr
establecer l a tenporizacidn que requiere el puerto
s e r i a l y de ésta manera generar diferentes baud-rates de
acuerdo con l a cuenta cargada.
c>puerto serie: Es del tipo F u l l duplex Cpuede transmitir y
recibir a l mis- tiempo). E l puerto s e r i a l tiene
una
interrupcidn dedicada adi.
Ocupa M par delineas del p w r t o 3: TX Ctransmisidn serie3 y
RX
Crscepcidn serie). Tiene registros para escoger
opciones conu longitud de l a palabra por mandar C7
u
8 bits), paridad Cno.si:par.irpar) y escojer elbaud-rate. E l baud rate es tanbidn controlado de
acuerdo con el valor cargado en el timrl en -do
autocarga. La interrupcidn de transrisidn se
activa cuando s e ha terminado de transmitir un
dato para así colocar otro en el registro de
transnisidn. La interrupcidn de recrpcidn se
activa cuando s e ha terminado de r e c i b i r un dato,
s e supone que su
rutina
de atenci¿n debe leer e l1.4
LINE
DRIVERS
Por
convensidn RS-232 e l puerto serial de l a PC considera comocero ldgico apartir de 3V hasta 1 4 volts, y el uno l&gico l o
considera desde -3V hasta -14V. Co- el 8031 considera O ldgico
como OV y 1 ldgico corn
S V
rucesitammun8
forma de pasar esosvalores ldgicos a l o s de l a FC y vicevrrsa. Eso es l o que hace
un
l i n e driver, a d e d s que l e s da cierta potencia a l a s senales que
convierte de nivel ldgico de amdo que p d r n tener potencia conm
para que no se atenuen l a s senales atravez del cable que
una
el transmisor con el reeeptor. Son bdsicamnte c o a p u r t r r inversorastipo DTL.
En seguida se muestra e l diagram
final
que muestra colo haquedado alambrada l a t a r j e t a adquisidora.
. .
.. .
. .
.. ,
.
1. .
....
I .
1 .
. .
I. ,
-. . L
...
.
... - .._
r L.. r-1.5
DIMRAUA
DEL CIRCUITO
Y
PROBRAMA PARA
USARLO
En seguida se n r t t r a una l i s t a que m t r a l a f o r m
en
que seutilizan l a s patas del puerto P3 del 8031:
PAT1 LLA
P3.0 CRX3
P3.1 CTX3
P3.2
c
INTO>P3.3 CINTl>
P3.4 CTO3
P3.5 C T l 3
P3.B
c m
P3.7
cm3
U T I L I U C I O N
WE
SE LE DARATRA)O(ISiON SERIE
INT EXTERNA DESDE PC
INT EXTERNA DESDE
A0ü
DAR START0ALE AL ADC
DAR OüTPüT ENEAüLE AL ADC
LEER DE RAM
ESCRIBIR EN RAM
A continuacion se nuestra el diagrama final que urrstr8 corn ha
quedado alambrada l a t a r j e t a adquisidora.
También s e presenta el program para 8031 encargado de controlar
l a adquisici¿n, d i g i t a l i u c í d n y transmisi¿n vía p u r t o s e r i a l de
UNIVERSIDAD AUTONOMA METROPOLISANAMA
-I
Nombre del programa : ANAOSCIL.ASM
Fecha de creacidn : 5 de abril de
iY94
A u t o r ( o s ) : Luis A Serrano Varqas y Eraomo A Jorge Toledano LenquaJe : Enoamblador del Intel 8031
c
c
:
P
E X P L I C A C I O N :
E S T E PROGRAMA ESTA REALIZADO EN ENSAMBLADOR PARA EL MICROCONTROLADOH
DE ADOUISICION DE SENALES QUE HA SIDO CONSTRUIDO EN BASE A UN MICROPROCECADOR COMO EL MENCIONADO.
EL. PHOCESADOA NORMALMENTE ESTA EN UN CICLO INACTIVO, PERO CUANDO LLEGA UNA INTERAUFCION EXTERNA (into) QUE VIENE DE LA FC, ENTONCES ACTIVAMOS
L A EXTERNA (INT1) QUE PROVIENE DE UN ADC, SE LEE EL ADC Y EL RESULTADO SE GUARDA EN
RAM8
E N SEGUIDA SE LE MANDA OTRO START AL ADC. E6TA LABOR SE REP1"I"E HACTA LLENAR LOS 4K DE RAM Y ENTONCES SE DESHABILITA LA IN'TEURUF'CION EXTERNA 1 (DEL ADC) Y YA NO MANDAMOS START AL CONVERTIDOR.L.0 OUE SE XACE ES HABILITAR LA INTERRUFCION DEL PUERTO SERIAL PARA TRANCM%"riF;: E L CONTENIDO DE LA RAM HACIA LA FC A 9600 BAUDS.
!xi51 DE INTEL TENIENDO COMO OBJETIVO EL PODER COORDINAR UN SISTEMA DE
L
I . _ . c . u ".
~ O f X * * L * * X ~ l t m X I $ I ~ * * * * * * * * $ * * * * * * * * * * * * * * * * * * * * $ ~ * $ * $ * * $ * * * * * * * * * ~ * * * * * * * * *
r L X X Y * S X X * * S * * X t $ t X * * * * * * * * * * * $ * * * * * * * * * * * * * * * * * * * * * * $ * * * * * * * * * ~ ~ * * * * * * * * * * *
INICIALiZACION DE INTERRUPCIONES, BAUD RATE, PILA ETC
ORG 40H
7\1
:I: C I A: MOV SP, XCiI3H ;INICIO DE PILA DE LA RAM INTERNA DEL 8Q31-_
MUVIE.#l,0000001H
;HABILITA INTERRUPCION INTOI S E T H TCON.2 ;INTl (DESDE ADC) FLANCO (BAJADA)
SE.IH TCON.
o
; INTO (DESDE PC) FLANCO (BAJADA)MLlV TMOD,#OO100000B ;MOüO 2 TIMER 1 Y FREC INTERNA (OSILAUUR)
IVIOV SCON #O iOO000OB ;MODO 1 SERIAL, TX SOLAMENTE
IMOV 'TH1 + #OFDH ;VALOR PARA LA AURTOCARGA (9600 BAUDIOS)
MOV 'Ti 1
,
TH1&jF'ERA: LJMF' ESPERH ~....
c
c
* X ~ X * ~ ~ * L L * * * * * X ~ ~ X ~ ~ * * * * $ * * $ * * * * * * * * $ * * * * $ * $ * * $ * * $ * * $ * $ * * * * * * * $ * * * ~ * * * * * X *
~ ~ * L $ * * * X I $ $ * ~ ~ X ~ ~ * $ $ * * * * * * * * * * $ * * * * * * * * * * * $ * $ * * ~ $ $ $ * * * * $ $ * * * * * * * * * $ * * * * * * * *
L
;CUHHRUTINA INTEXT PC, PERMITE HABILITAR INT EXT DEL ADC
ORG 12OH
'I+_RMADTJ: CLR PCW.5 ;PONE ALERTA A O PARA PODER ADQUIRIR
4K
DE RAMc I c L_ c L
MOV DPTR, #CiOOOH
MOV R i i I XBOH gINICIALIZf? REGISTROS PARA LOOP
MUV R1 XZOH
sE-rH I E . : ~ ;HABILITA INT ADC
SETB P3. :3 ;PIN5 ALTO FORSOZO SI INT E X T
$;E'IE< p3. 4 ;START AL ADC CLR p3.4
RE?.
DE 4096(LONG RAM)
;LEER ADC
;SALIR 51 ALERTA SE HA :START ADC
; ALERTA ! HA TERMINADO
PRODUCI DO
EL CONTEO
; P I N FORZOZAMENTE 1 PARA IíNT EX'TE:RNAS
MUV RC) #8OH 1 I N I C I A L :í AR REG I STI;:OS CUENTA
MOV R1
,
#2UHCE'TB I E . 4 ; H A B I L I T A R IN1 S E R I A L
S E T H 'TCUN. b ;PONER SENAL D E MANUAH
MUVX ñ , @ D P T R
RET
MUV GHUF,A ; W A N S M ~ T I R EL PRIMER DATO S E R I A L
OR& 17üH +TANDA: CLR S C O N . l
F
L
P
Zx.r
c
: B A J A L A BANDERA D E I N D I C A C í O N INT S E R I E INC DPTR
ü J N Z R 0 , T R E S DJNZ
R1,UOS
CLR I E . 4 ; S I F I N
Loor
DESHABIL INT SERIALCLR ' T O N . ó
GETB P3.2 ;POR S I LAS DUDAS PONER EL P I N YA QUE N E C E S S I INT
.
$ 0SET'R P3.3 9
R E T
MUV RCi, W F F H
MOVX A,BIDPTH
MOV SHUF,A
EN13 i R E T
4
X
- t i
a
r,
1
i
1'
cL
*a
U
i
...
Se realizd un progran de a l t o nivel en le-je C que
r e a l i z a i o siguiente C p o r l n L i o de í au&:
13 adquirir -tras de entrada via p u r t o s e r i a l
i i 3 adquirir -tras de un archivo desde disco
i i i 3 d a r
nnstrra
rdqrdridas
a discoiv3 rpdo oscilorcopio
v3 d o a n i l i u d o r de espoctro
vi3 s a l i r a1 Do6
*+*
Para e l rpdo oaciloscopiono
se roqulere hacer r r h o scalculoa, e l convertidor UD entrega l a
sonal
i M h g i C a de entradaen form de
-tras
discrotas C e n voltage y a l a velocidadd x i r i l de u r t r e o dada
por
el
convertidor), a d qw hay Mrelacidn d i r r c t r entre e l voltaje real y
el
cdaigo dadopor
e lconvertidor:
Wh
---ov
-8V
F m
...
Cualquier valor dado
por
el AüC guardar& u~ relrcidn l i n e a l con&tos valores. A d d s COIL) COIY>CIIDT l a f r r c u n c i a de m t r e o
conoce- e l t i e m quo hay ontre u r t r a y rurrtra y con e l l o
.
GESTIW DE LA INTERFAZ SERIE
Uno de los potenciales de
las
PCes la coiminicacibn serial con
otro tipo d e microprocesadores o con otra
PC.Un dispositivo para que esto pueda sucedrr tiene varios m b r e s a
puerto asimrbnico, adaptador asincrbnico,
puerto de comunicaciones
o
puerto
RS-232-C.RS-232
yRS-252-C son la
m i s m a
cosa:de
echo,el
nombre "oficial actualmente
es E l A232D.
RS-232 existe básicamente para que
di-rentes
provrcdores
puedan
ofruer
equipo que s e pueda comunicar entre si.
RS-2J2es
una
norma rrtablecida por
la asociacibn americana de qabricantes da
aparatos electr6nior
( E I A )para normalizar el material
ylos
procedimientos
d etranuniribn en serie entre
los
ordenador-
ylos
peri+6ricos mediante una r e d de transmisibn.
El CCITT (Cotnit4 Consultatif International
<kTélaqraphie et
d eléliphonie), que agrupa
afabricantes
y organismos d i c i a l e s íPTT>de
varis
paises,
relanzb esta nornali~acibn
anivel aundial
bajoel
nombre de
V . 2 41
Esta n o r m determina la conrxi6n entre
:-
UnDTE (Data Terminla Equipment): equipo peri+Crico,
o
sea,un
ordenador o u n terminal.
-
Un
DCE(Data Communication Equipment)8 el
modem.En la mayoría d e los
casos,la conexion de peri-rico
-
impresora
en
-Tie,tableta gráfica,
terminales,.
I-
via interfaz
serie
no
requimre un m o d e m ,
ya que un
m o c h msólo
es
necesario cuando
la
conexibn
se
extiende
a salla del propio ediíicio
o
si la distancia
sobrepasa cierto límite, oficialmente unos quince
metros,
y
en
la
practica
&a.Sin embargo. se e+ectira una conexi6n respetando la norma
RS-232construyendo un
modeaficticio
( o nullm-).
U n modem ficticio es
rencillamente un cruce
de
cables (excepto para el
casode empresas que
se
aprovechan del desconocimiento de
105
usuarios).
La
norma
RS-232determina
el
n ú m r o d e patillas de un conector,
así
como las características eléctricas (de tenai6n) de
las
seKa1es
que pasan por
ellas.
En la práctica solamente se utilizan un oubconjunto de !
&
&
a
l
e
%
,
que desaGortunadrmente w n c a
es
el mismo.
Además,la norma se ha
interpretado de! diferentes maneras, Por
lo tanto hay que ser de lomás
cauto frente al anuncio "estándar
RS-232".RS-232 es una interCaz d i g i t a l , planrrda para comunicar
a
no nisda 50
pie% (15.24 nits) y a 20.000 bps, (Todos l a usan para distanciasmayores y velocidades mayores, pero
50/20,ooO
es l a norma). Laconiunicrci6n
se
ei=ectúa mediante 25o
9 conductores independientes,cada uno con su propia tarea. RB-232 e8tá definida tanto para
c ~ u n i c a c i b n sincrbnica como asincbnica, así que hay muchas lineas de
l a s 25 qupr nunca se usan e n l a comunicacibn asincrbnica.
La
presenciade un voltaje superior a +3 volts
se
interpreta como O y un voltajeinferior a -3 volts se interpreta como
uno.
For cierto, en l atransmiribn de M a l e s con RS-232,
los
valores entre -3 y +3 seconsidera que no son O ni 1.
Hay diez lines arincrbnicas importantes en RS-232, como se
muestra
en
l a Tabla O. E s importante entender quecada
línea estacontrolada por uno de los dos equipos. Por ejemplo l a línea 2.
representa una entrada para
uo
de los lados y una salida para e l otro.Si ambos lados l a conrideraran entrada, entonces ambos estarían
tranenitiPndo información que nunca se r e c i b i r í a . A.ique cada línea
(excepto las t i e r r a s que son un punto de reqerencia eldctrico) están
controladas por
un
lado o por e l otro.taba1
O.Lineas
de
RS-ní!PATA # PATA# CONTRW ABREVIATURA
DESCRI PC I ON (25 PCITAS) ( 9 PCITAS) DESDE
Lineas de datos
Transmitir datos 2 3 DTE
4ec i bi r &tos 3 2 DCE
Liners
indicadoras
de ilinsntacionrncondida
Juego de &tos l i s t o 6 6 DCE
Terminal
d e
datos l i s t a 20 4 DTELineas
queanuncian
qum haocurrido un
-to
extornoD ~ t e c c i 6 n
de
señal 8 1 DCEportadora
de
datosIndicador
de
llamada 22 9DCE
Lirurs
de
listo
prrr e m i r r h e c i b i rsecuoncis
de enlaceBol i c i t u d p a r r enviar 4 7 DTE
L i b r e para enviar
s
8 DCEL í n e a s de t i e r r a
T i e r r a de señal 7 5
T i e r r a
de
proteccion 1TD RD
DSR
DTR DCD R I RTS CTS SG F6La p a r t e importante de esta interFase PS un c i r c u i t o llamado UCIRT
(Universal Asynchronous Receiver Transmitter). Este c i r c u i t o transmite
en una .Forma asincronr, l o c u a l s i g n i + i c a que l a velocidad de
transmisión es regulable.
Los bits que provienen
de
la
linea, uno cada vez, se guardantemporalmente en e1 registro
de
desplazamientode
recepcibn. Cuando seha terminado
el
carácter, se tramCiereal
rPpistro de recepción dedatos y e%tá iisto para ser tramritido a la PC cuando
lo
pida.Tambibn transmite en f O r M serial un bit por cada ciclo
de
reloj, y añade bits para reconocimiento
de
inicio yde
Fin dein+ormaci&n,
de
integridadde
trasmisión o bit de paridad.El iuncionamiento del W T re indrpendiente a las operaciones de
la computadora, cuenta con todo
lo
necesario para operar sininterrumpir
el
+uncionamiento de la computadora e incluso tirne unreloj independiente.
Dado
queel
puerto es un dispositivo bidirectional, podemosusar retroalimentación para que se pruebe a si mismo, Esto signiFica
que poner un conector
d e
algiin tipo en el puerto para permitir que“escuche
lo
que transmite; puede enviar un mensajede
prueba y luegocompararlo con l o que recibe.
PRoarulMcION
DEL
PüERTO SERIE.La progranuci6n del puerto de
€18para la trrnsmisi4n
Hiserie
asíncrona, que
el
w6reconoce con íos nombres
de
COIUy
Coirz,puede
realizarse de +armas di#erentes
:-
con las funciones
open,rcad.wrfte
y close
(del lenguaje
" C " ) I-
con las funciones de la interrupcfon ldgica 0x14,
-
por
la
programaci6n directa de
los
puertos.
La primera técnica
es
la
110ssencilla.
Consiste en abrir un
"archivo" asociado
a
un perif;lbrico, el
COmo
el
Co1(2, ye+ectuar
las
operciones read
o
write
e n 61. Sin embargo, e6tr método
adolece
de un
grave inconveniente:
nada indica a la
PCque dispone de un carácter
en
el
puerto serie.
Si
en el momento en
q u eel
que la
PCe + u t ú a un read hay un
carácter disponible, esta operaci6n no provoca ningún retraso puesto
que
se
e#ect6a inmediatamente.
Por el contrario, si no
hayningQn carácter disponible.
el
sistema contimía a la escuha de esta línea serie, excluyendo cualquier
otra actividad.
Si
la espera es sólo de algunas
decenas
de
milisegundos, al usuario
nose
dará cuenta de nada, pero si
laespera
se
prolonga, eternizándose si
no hay emisor o si el perifcrico sufre
una averia, al usuario le parecerá que el sistema se ha bloqueado.
.-
."I.
La gestión de una linea e n s e r i e mediante las funciones de
gesti6n de Cicheros de nivel 1 sólo es aplicable
en
e l caso deprotocolos muy estrictos
en
los que el peri-rico sólo emite por ordenexpresa del ordenador y siespre r i t e por l o manes un carácter, aunque
sea el de "no hay ningxín dato disponible", cada vez que l a PC eFPctúa
un rrrd.
e
inclusoen
este caso tampocoestá
axento de dsCectos en l alinea.
La
interrupción logica
la.
i n t 14
14
14
14
descr ipc i ó n
i n i c i a l i z a c i ó n del puerto de
conunicacion s e r i e
G u m
O
1
2
I 3
envio de un carácter
recepci6n de un
carácter; espera que haya un
carácter disponiblc
estada de l i n e a y
del
modem5
s i r v e para comprobar s ihay caracteres disponibles
~ ~~
reg i r t r o r
~
entrada :
AL: parámetros de i n i c i a l i z a c i d n
DX: número d e l puerto O o 1 devue 1 ve :
-ase l a funci6n 3
entrada :
I
Micarácter que
se
mandaDX: número del puerto
si e1
c a r i c t e r no se ha mandado,el b i t 7 de AH v a l e 1devuelve :
entrada :
devuelve t
DX: núnnro del puerto
CIL: carácter r e c i b i d o AH: O s i
se
ha r e c i b i d oc o r r e c t a r r n t e
entrada :
DX: &mero del puerto s e r i e
AH: estado de l a l i n e a
CIL: estado del modem s a l i d a I
I
PROBIUWACIOW DIRECTA DE PuELlTM
DE E/S
E l
W T
es
controlado por e s c r i t u r a o l e c t u r a de un conjunto de 7r e g i s t r o s
do
8 b i t s , Estos r e g i s t r o s son accesiblesa
e l programadorv i a puerto
de
direcciones. Las direcciones d m l puerto son asignadassecuencialrrnte a p a r t i r de l a primera d i r e c c i o n d e l puerto. Esta es
conocida comunniente como la d i r e c c i ó n base del puerto %0rie.
los
r e g i s t r o s se muestran en l a f i g u r a 1.
El puerto aerial en
la
PC puede ser programado para interrumpira1 CPU cuando ocurre alguna
de
la siguiente acciones (ver tabla1 )
.
El UaRT asigna una prioridad a cad. unode
estos eventos quese
describe en la misma tabla
.
Tabla 1 Interrupciones del puerto serie
Prioridad Interrupcion ID Descripcion
I
1 6 Recepción estado de linea
2 4 Dato disponible
3 2 Registro de f. vacio
4 O Estado del modem
Para que se permitan las interrupciones del puerto serial se debe
programar el B259cI. El 8259ñ
es
programado viadw
registroslocalizados en las direcciones de puertos 110 20H y 21H, El registro
en 21H es usado para mascarar interrupciones. para esto el bit
correspondiente a la IR0 tiene que ponerse a cero.
Cuando el manejador
dc
interrupciones cornpieta el proceso deinterrupcion tiene que inCormarle al 0259ñ, esto lo hace por la
escritura al puerto 2 W , conocido como fin
de
interrupcion ( E O I ) , elEl siguiente es el Cormato que se requiere para pasar los
parametros de cocnunicaci4n al inicializar el puerto serie, requerido
por la interrupcion 14H.
Baudrate Parity Stop Wordlength
b u d Parity Stop Word
lrng
t hBits
O00
loo
O0 NONE O 1 10 7O01 150 10 "E 1 2 11 8
O10 300 O1 ODD
011 600 11 EVEN
100 1200
101 2400
110 4800
111 9600
L o r pasos involucrador en la progranaci6n para e1 manejo del
puerto serie por medio
dm
interrupciones son I1. Traer 1s direcci6n base del puerto
de
cocrmnicaciones seleccionadodel área
de
&tor del bios (4OH:O para cOn1; 4OHi02 para M n 2 ) ;2. Traer la direccion
d e la
antigua rutinade
serviciod e
interrupcionpor el -ro de interrupcion correrpondiente (12 para COM11 11
para COPE).
3. Instalar la nueva rutina de arrvicio
de
interrupci4n.4. Inicializar ~l puerto serie
con
los parametros elegidos.5. Encender las d a l e s que
se
necesitan para el modem controlregister
(tlCR1
.
6Ibilitar todas la interrupciones d e
el
adaptador por puesta
adecuada de
O
o
1
al
interrupt enable register (IER).
Encender
el
bit
WT2e n
el
modemcontrol register para abilitar las
interrupciones del
puerto u r i a l .
Programar el
8259cIpara r6vcotKKer la interrupcion c o n el
IR0de
el
puerto serie por
la
puesta apropiada del bit a cero en el
interrupt mask register de interrupciones a travez de la direcci6n
del puerto
Z l H .En el punto cuando
el
usuario decida terminar la sesibn de
cominicacibn,
una rutina de reotauraci6n debe ser llamada.
Larestauraci6n involucra
los
siguiente pasos.
._
c
.-
,-
1.
CIpapar
lasinterrupciones
k l
puerto serial.
--
c 2.
Clpagrr los bits del
modemcontrol register.
.-
3.
Restaurar la antiguo rutina d e
servicio de interrupcibn.
4.
tlascarar
las
interrupciones del
IRO in el
825961.v-.
._
.-.
L
c
-
.-
.-
ACERCA DEL PROGRANA
Ya que conocemos distintos mtodos para utilizar el puerto serie
y viendo los inconvenientes de uno y otro, finalmente
nos
decidimosutilizar el tercer metodo en el cual la recepcion la realizamos por
medio de interrupciones, estos es, cada vez que al W T recibe un
caracter interrumpe al CPU el cual a su vez lo procesa,
Cabe mencionar que en el punto ,4.Inicializar el puerto serie, este
se
puede realizar utilizando la intarrupcion 14H hncion O si demeamos
utilizar lor parametros standar definidos anteriormente, pero en
nuestro caso inicializamos utilizando los registros del M T , la Corma
para inicializar con l a interrupici6n 14H se muastra en forma de
comentario en el listado del programa.
El programa esta desarrollado en el lenguaje "C"
,
las funcionespara el manejo del puarto sarie utilizando el metodo antes mencionado
se encuentran en la libroria llamada "p0rtser.h".
En lo que concierne a obtener el espectro en frecuencia
de
laseñal á@ entrada esto se hace utilizando el algoritmo
de
transformadarapidr
de
Fourier que se encuentra en la libreria llamada "fwrier.h".El programa al inicio da opcion
de
elegir entre las siguientesoption@% I
a) Adquirir b) Larr Archivo c ) Modo OICiloscopio
d) nodo Analizador e) Escribir Archivo f ) Salir a l
Dos
ñ
continuacion
se
explican en que consisten cada una
de
estas
opciones.
a) Inicia
el
proceso de adquirir datos
a
travez del p u a t o wrie,
aparece una ventana en la que
u
indica que
se
esta adquiriendo
mientras dura la adquisicion.
b)
Leer Archivo,lrrr un archivo previamente guardado por el programa.
c )
Hod0
üscilouopio
.
Eliga esta opcion para poder
ver
la
Cor-
de
onda de
la d a 1
que esta metiendo en
el
kit,
sa
drrpli-a
una
pantalla similar
a
la de un osciloscopio,
.ufumionamiento tambicln
es
similar al hncionaniento de este, la opciones expandir
Icmrimir
es
equivalente a girar la pcrilla del ouciloscopio
para cambiar la
glud e
.Frecuencia.
d)
Modo
Analizador. Eliga esta opcion para ver el espectro de la %&al
que esta metiendo en el k i t , u d.irply)rra el
vnuje:
Calculando
FFTcuando r a b a de adquirir
o de
leer
un nuevo archivo, drrpu6s
puede alternar entre el
modoosciloscopio
o
analizador
sin
tener
que esperar que
wcalcule la
FFT,harta que vuelva a adquirir
Oleer
unarchivo.
e) Escribir Clrchivo. Escribe
a
un archivo de texto
los datosobtenidos
de la señal westreach.
-I
-Para e l caso de e l analizador de espectro
so
tiene q u inplemntarun
a l g o r i t r r que calcule Ir t r a r a f o r u d a ripida do Fourier CFFT)ya q u o1 c i l c u l o de l a transform& discrota
do Fourior
es muytardado. La transformada ripida do fourier de un buffor da corn
salida
un
buffer del i f s - tamam qtm e l do entrrda.L8
arplitud de esa u r t r a sori l a calculadapor
l a FFT sdlo quo pondoradaen
l a mis- for= q u se
hizo on
o1 caso osciloscopio.La
f r e c u n c i ase p u d e c o m e r ya q u comeIIDIgI l a f r e c u n c i a do uinrtroo de l a
sena1 o r i g i i u l .
#include
(9raphirs.h)#intlu& (stdia.h)
#include
<anio.h)#include (Mth.h) #include (std1ib.h)
#include "1ogo.h'
#include "part%r.h' 4inCluh "fwrin.h'
#include 'm.~'
ini xi,yi:
it Variables d& t- 1s distinta valonr d~ 11 acrlr tl
void Wiriint stadd {
c qetchil; uitchíclí
wid Pantall#xillíwidl
(
int
i.aX,oY;
void Nmi:
deiayílwOl;
CierraVmtwwixi,yi,Uentent);
It Pone margen del taaaío de la pantalla
U
wid ndrgep iint colw,char tkdi {
/I Dibuja UM caja qu sinulr WI pYiloy9da tí I
,
Ivoid Inicializdvoidl
(
0 Iniciilitms
variables
It Inicializuis 1s rutiur grñicas t i
Y ICI II utilizar I
if lcmt ( 21(
printfl'lntraliwir el pwto w i i qw ki utilizar CQIl ill o üX2 (2) \@I!
wintf('E1 fwuto cwrato de I l r i l i
n
:\n\n'lt
printfí'oscill WuwButc&rie \ M I 1prinif
('Ejeqlo :\Vi ;printfi5i usted se ancuentn en 01 b i w
L
y &ea utilizar el puerto y10\ne);
printfi'AXmil1 I "i;exit (01;
)
PwtHrbw
=
atoilCad1-
1;if (!brtbter != O k& Porubibn I= lli
printfi'\n El puerto Cük m es val¡& ',Ml~ exit (0):
I
1
void uiniint arqc,chr
hrgvtl)
í
Vdliffarutoirpc,ugvill)i
Inicialiuii;Es de l o d s convrnciorulr
Un
cable do Q conduEtorr con unpar
d e conrctoros tipo -4:uno
para enchufar a l aPC
y otro para enchufar a ls i s t r u
dnino
dr adquisición basadoen
elmicroprocrrrdor I= 8031. E&
los
c o n r c t o r r üü4sólo
seu t i l i z a n 3 p a t i l l a s y son &tart Tx,
R x
y ünd C q u son l a s senalosbásicas para un protocolo serial tan
soncillo
COIDel
q u senecesita; r r c u r d r e q u las s e r l o s restantos preterxien realizar
d e Dunera completa rl protocolo
RS
232 q u fud ponsrdo para riodrns y nosotros tan d i o q u r o r o i r r i i u runa
transmisión serialsencilla
sisteaa dnino-Pc). Cono l a longitud del c r b l r ypor
tanto
la
scrprracidn entre aiborrdispositivos
os corta Crnliometro3