Universidad Autonoma Metropolitana
P l a n t e l Ittapalapa
IJn digitalirador de video compuesta de 512 x 512 puntos, a 24 bits, con un anfitrion dedicado basado en el 80C186 a 20 MHz.
C
"
-3
\
Proyecto Terminal, que para obtener el titulo de Ingeniero Electronic0
I, 'I
i ' i
~ , I 2
P r e s e n t a
i /I F
Jose de Jesus Rodriguez Lopez
Asesor: Alejandro Martinez Gonralez
Tndice
1
2
2 . 1
2.2
'3
4 4 . I
4 . 2
5
5 . 0
5 . 1 5 . 1 . 1
4 . t . ?
5 . 1 . ?
5 . 1 . 4
Descripcion del proyecto
Descripcion
de
una sena1de
videoEn
l a frecuenciaEn el tiempo
Requisitos de captura
Consideraciones de diseno Diseno de l a Memoria
Consideraciones qenerales
Diseno del circuito Ob5ervaciones generales
Anfitrion N80C186XL20 y conecciones basicas Arquitectura del 186
Desempeno del 186
Perifericos Integrados del 186 Desacople de senales de control
B u s de datos y direcciones del anfitrion Arbitracion del bus de datos, anfitrion Datos y direcciones del anfitrion
Tnterfase anfitrion
,'
diqitalizadorT . ? . 1
B
TOS EPROM4 . . 3 . ? Memoria le trabajo RAM
5.4 Displ3.* Y teclado
5.5 Tnterfases serial y paralela
9.5.1 Comunicacion 5erial R 5 2 3 2
5 . 5 . 3 Tnterfase paralela
5.6 Bus de datos
5 . 7 Memoria le captura
ej.
1 Operacion de la memoria dinarnica5 . - . í ! Fleccion de la memoria de captura
T " . 3 Direcciones de c a p t u r a
T . ' . 4 Direccionamiento de la memoria de captura
5 . 8 Control de la memoria de captura
7 . Q Procesamiento analogico de video
9 . o . t Terrninacion de video y fijacion del nivel de referencia
T.l?.=, ADC, conversion analoqico digital
= i , l t l Automata de captura
9 . 1 1 A l imentacion
6 Proqr amac i on
4 . 0 Observaciones generales sobre la proqramacion
6. 1 Archivos de definiciones 4 . 2 Archivos de inicialitacion
6.3 Archivos de utilerias
6.4 Putinas de integracion del an+itrion 6.5 Utileria para la PC
Diaqramas de los circuitos
Anfitrion NSOCl86XL20 y conecciones basicas
Bus de datos y direcciones del anfitrion Memoria del anfitrion, ROM y
PAM
Display y teclado
Interf 3se.s serial Y paralela Bus de datos del diqitalitador Memoria de captura
Control de la memoria de captura Procesamiento analoqico
Automata de captura Fuente de aliwentacion
Codiqo fuente
Codiqo de los Archivos de definiciones Codigo de l o s Archivos de Inicializacion Codiqo de los Archivos de utilerias
Codigo de los Archivos de inteqracion del anfitrion Codiqo de l a Utileria para l a PC
Codigo de utilerias para dibujar la imagen diqitalizada
Observaciones finales
1 Descripcion del proyecto
E z t e p r o y e r t ~ c o n s i s t e en csptur3r en forma digita.1 una imagen de video 9
511 m 3 u i m a t-esoll.tcion, Se b u s c 3 c r e a r c ~ n a herramienta p a r a l a invectiqacion s o b r e e l p r o c e s o diqitsl de imaqenes que permita u s a r a l t a definicion.
P o r u l t i r q o , IP b u c c a t3mbicn e l e s t a b l e c e r un precedente en l a UAM, p a r a
qlvp f l l t u t - g c i n : . ~ ~ ~ t i ~ ~ s c i o t ~ ( ~ ~ e n d i q j t a l i z a c i o n obtengan u n m a y o r alcance,
t . 3 1 romo e s t e p r o : : c c t o =,E. beneficia del trabajo hecho hasta a h o r 3 sobre
2 Dcscripcion de una sena1 de video
F l f a r m s t o p 3 r a t r a n s m i t i r s e n a l e s de video en Mexico ec e1 5 2 5 / h 0 NTSC
m i : r n g ~ I I P %e 1 ~ 3 3 en videoqr3bsdcrasr cmar2.4 de video y principalmente, en
1 3 d i f u s i o r c d e z e n 3 l e c de t e l e v i s i o n . SUE c a r a c t e r j s t i c a s sort las
3 Rcquisi tos d e c a p t u r a
3 r l l e r r J m c o n 1 3 5 c a r a c t e r i s t i c z ~ s de la sena1 de video, = e tienen 525
1 i n e a E por im3qen y 30 imaqenec por sequndo, l o que da 157Sr) I ineac: por I ”
2 ~ c . g ~ ~ ~ d o . Pllrr o t r o 1 3 d 0 , ;I por el teorems del mueftreo, I 3 f r e c u e n c i a
m i n i m s de c a p t u r s e c d~ R MHz ( S millones de muestras por segundo) esto 7 1 . 1 i e r e d e c i r 405 r n u ~ s t . r . a ~ por l i n e a ( p o r l o menos),
P s r a c 3 p t ~ r 3 r 3 e r t a f r e c u e n c i 3 , es necesario usar u n automata dedicado y a q1re I I microprocesador ~ accesible en Costo) no t i e n e e s t e ancho cle banda.
4 Consideraciones de diseno
L 2 csntidad d c d 3 t c 5 s. c 2 p t u r s r e 5 de 512 x 517 Y 3 b y t e s , e 5 d e c i r 768
4 1 ? b - : : t o s = - 4 R K b y t e s . Debido P que l a fr e c u e n c i a de captura e s mucho
m 3 : ’ o r de l o que 1 9 s d a t o s pueden ser procesados, e s t o s deben 2lmacenarse
F r irnero y procesarse d e s p u e s , . Por l o que se requieren los mismoc 768
FR.. ..te3 de rnemoris PSM p 2 r 3 gu.ardarlos. IJn a r r e q l o d e memoria de e s t e t a r n 3 n g 5 . 0 1 ~ p 1 . 1 c d e r e s 1 i z a r s e c o r l m P r c D r i a dinarnica, y a que h a c e r l o con
olemor i2 c s t s t i r s ser i s prohibit-ivztmente costoso ( l a r e l x i o n d e c 0 5 t o s
o ~ r i l . 3 a l ~ - ~ d ~ d c ( r - d~ 4 3 1 por- u n i d 3 d de memoria e s t a t i c a c o n t r a d i n a r n i c a ) .
F 3 t 3 s reduccione3 en costo, e g p a c i o y c o r r i e n t e no son g r a t u i t a s y se
4hot-3 k i e r I 3 como est.3 es una qran ca.ntidad de datoC, ez- conveniente que l a
m e r n o r i s p 1 1 . e d s sccessda s l e a t o r i a m e n t e ,
;'
no en forma s e c u e n c i a l , derncldcr que 3e t - e q u j e r e impl-ementar u n sistema de acceso doble a l a memoria.
Par 11n 1 3 4 0 , e 1 d i a i t a l i z s d ~ r n e c e s i t a a c c e s a r t r e s bj'tPs e n paralelo para slmacensr los dato% 5' por cltro l a d o , conviene presentar l a memoria como u n
3rre,z31~ de b.;.tes d i r e c t a m e n t e d i r e c c i o n a b l c y de p r e f e r e n c i 3 no paginado,
~ 3 t - 3 maxjmizar 1 2 velocidad de 3cceso.
4 . 2 Consideraciones qenerales
nehirfo 3 1 3 complejidad en e l manejo de l a memoria d i n a m i c a . y a l tamano
1 ~ 1pro.,:ecfc! en .:ener3l, z e h i z o deseable contar con un esquema modulsr
f 3 c i l m c n t e m o d i f i c 3 b l e . Por o t r m l a d o , para manejar l a qran cantidad de
T(=ttp,z o b t r . r : i + - : ; -5.1 ~ 3 p + . ! . 1 ; . 3 r . . ~ f u p rlece-,3r i o contar c o n u n a p l 3 t a f o r m a con
q r a n c p a c I 4 s r J d e computo. Por I o a n t e r i o r , s e d e c i d i c l l o s i g u i e n t e :
c 11 E S ~ ~e l e c c i o n e s , E e1 c o s t o t o t a l d e l c i r c u i t o s e incrementa
,rr1rt~i4erablernente :.I 1 3 tr3nsmision d e d a t o s e s t a limitada al puerto ceri3.1 r j p s r ~ l e l o d e l a computador3 en que 5e despliegen los d a t o s , pero por o t r o
1 3 4 0 , el d e z 2 r r ~ l l c del c i r c u i t o en general se f a c i l i t s en forma
~ ? ~ i r n i n s n d o los elementos que 5e u s a r o n p a r a el d e s a r r o l l o del c i r c u i t o ,
'3 Diseno del circuito
?F. p r c T e n t 3 3 cantinuscion el diseno del hardware en el orden en que fue armado, de acuerdo
a
la numeracion en los diaqramac.5.0 Observaciones generales
D e b i r l n 3 1 3 f r e c u e n c i 3 IC operncion y
al
consumo de corriente de algunoscIrcujtos, se tiene m u c h o ruido en el sistema en general, por lo que fue neces3rio c~z:-?r c3pacit.ore5 de desacople de todos tipos en muchos de los c i t - c ~ . t I t ~ ~ : . P o r la m i c m a razon, se usar.on circuitos HC en donde fue
p o z i b l c , , ~ 3 que producen paco ruido y aceptan niveles grandes de este. Sin
~ m h 3 1 - 7 0 , en c I e r t 3 c partes el retardo en
las
senales es critico y ser e q l ? i r i o 1 ~ . f 3 r c i r c 1 ~ i t ~ 3 ~ F G 5 T + n estos casos. P o r ultimo, las circuitos HC tienen 3 ~ l - 1 ve7 1 9 desvent3ja de manejar poca corriente j' d e introducir 1 r 1 1 1 r h 3 capacit.anci3, 3zi que h a y secciones en q u e =e usaron circuitoe LS. Fn rnl-~chmz t a ~ n s , se p m d r i a n cambiar las circuitos d e una f a m i l i a por los l e n f r 3 , pern hs.:: = P C C ~ C I ~ P F , e n 135 que es critico usar los circuit.os
4 r p e c i f i r 3 d @ s .
5 . 1 A n f i t r i o n N80C186XL20 y conecciones basicas
5 . 1 . 1 Arquitectura de1 186
F l prncesarlor ScIClSb de S n t e l , tiene basicamente la miama aquitectura Q U E
el 1?0!74, r o m o = e describe a continuacion:
- PI.IZ de direcciones ds 20 bits, con
lo
que puede direccionar 1 rncq;,t!.::t P d i r c c t .sment E .-
i 3 1 . 1 ~ d e d a t o s externo d e 16 bit.5, con lo que puede adquirir 2-
C o l 3 de preadquisicion de instrucciones d s 6 bytes. L a combinscjon d e l a n c h o d e bus de 16 bits, las separacion de tareasf B T U
yEll1 :..' l a c m 1 3 34' instrucciones permiten que casi siempre 5e tengan
inztruccjonec que ejecutar, disminuyendo grandemente e l impacto de 105
e ~ t 3 d ~ s de espers y del DM4 usado para refrescar l a memoris dinmnica y
-I
- C'ontroladar de Eelecciot-1 de c i r r l r i t - o s ( c h i p s e l e c t ) , E a t - a unidad j w p l e m e n t a l a s e l e r c i o n de c i r c u i t o = p a r a los diversos elementos en u n
z i s k t m s I P r n r r l p l ! t o , c o m o s o n : memoria de a r r a n q u e , m e m o r i a de codi30,
-
Controlsdor d o estados de espera. E s t 3 unidad p e r m i t e c o n e c t ~ r p e r i f c r iccla con u n ancho d e banda de bus menor a l del 1 8 6 , y a q u e generae z t 3 d 0 ~ internos de eEper3 :j los combina con 1 3 s l i n e a s e x t e r n a s d e
e r p c t - a , a s j ncrbn3 rinct-ona.
-
Cnnt7ro13dor de P e f r e s c o . E s t 3 unidsd permite r e a l i z a r e lr e f t - c z c a de m e m o r i a = dinamicas en forma e f i c i e n t e y f a c i l ( u s a u n acceso por refrclzco, e n luqsr d e los dss 3 c c e s o s requeridos por el D M A ) .
Por o t r a 1 2 d 0 , l a = senales del d i g i t a l i z a , d o r p a r a e l 186 ( I n k E O C , i n t p r r u p c i n n de f i n d e captt.rr.3 .,: '?.:;S Drq', p e t i c i o n de D N A ) ';e obt-ieneri
it-I,\.ei-ti.ias del d i g i t a l i z a d o r p a r a permitir el funcionamiento del a . n f i t r i o n
; i n 9 1 d i y i t g l i z a d a r . LDE i n . . ; e r z o r e s 11áados t i e n e n re s i s t e n c i 3 s d e ' p u l 1 I I F ' do í I ? 1~ p a r a c o n t r 3 r r e s t 3 r 105 e + e c t o s del r u i d o .
5 . 2 . 1 A r b i t r a c i o n d e l bus de datos,
anfitrion
rl
186. tiene u n bus externo de 16 bits, de modo que con cada acceso puede 1eer rl) eacribir dos bytes a1 mismo tiempo. E s % o es independiente de 1 3c l a s . ~ de stceso de que se trate, b y t e o palabra (doc bytes por palabra).
Fnt- otro I s d o , l a memoria del digitalizador esta distribuida como u n s t - I - e q l n de b).tes (vista desde e1 3 n f itrion) es decir, que solo puede ser
3 r c e z 3 4 3 ¡ I n t’.,:te 3 I s ‘ ; o z I F3r3. que 1 3 memoria de c s ~ t u r a se comporte como I I ~31-req1[11 n m paginedo, e= necesario convertir los bytea de esta a las
p q j 3 b r 3 r -le\ s n f i t r i g n .
Fr-I b s z c 3 1 9 3nterior, el espscio d e direcciones se divide en l a s
z i ~ a u j e n t e z reqiones:
F \ rntrltiplexor. 151-T! r e a . l i t s la d i v i s i o n y presenta el r e s u l t a d o 3 135
cnmp!.tertaa ??-I) A y 3?-D,B, los que la. combinan c o n DEN’ (Data Enable) del
1 9 5 p 3 r 3 d e c i d i r c ~ t a n d o a c t i v a r el bus de d a t o s correspondiente. E \ :32-D, A p r e s e n t 3 rtjrectamente su sena1 a los t r a o s r e c e p t o r e s 245-HH y 2 4 5 - H L , rnipntr3.z qlle e1 ‘ 3 2 - 1 ? , F present? S U r e s u l t a d o a l 3 2 - D , D 32-D,C, lor; q u e
I I E ~ I I Am y & e ’ respectivamente para decidir
si
e 1 a c c e s o e c a una d i r e c c i o np 3 r 3 n o n . Estar r a m p u e r t . ~ z a c t i , ~ a n 3. l o s c i r c u i t o s 245-SL y 245-SH
respecti*,;smente. E o neces3.r io que las compuertac 32-I1 sean rapidac para ~ I I P q u e los d 3 . t ~ ~ puedan propagarse por e l c i r c u i t o .
5 . 7 . 2 natos y direcciones del anfitrion
P a d n ~ L I C e1 186 tiene u n bus de d i r e c c i o n e s de 2 0 b i t s , mismas q u e se u s a n
4 t . l =!.I t.Qt-z?l i d 3 d , m u I t i p l e x 3 d o c n n 1.1t-i bu= d e d3tos d e 16 b i t s ’J 1 i n e a s de
escrjtura a la memoria de captura 3ddress latch ensblc
i n i c i a l i z a . c i o n d e l d i q i t a l i z a d o r
direction de f l u j o d e l l s t o ~ h a b i l i t a c i o n de d a t o s
i n i c i o de captura
interrupcion de f i n d e captura p c t i c i o n d e r e f r e s c o de memoria r e l o j del 186, a 20 MHz
reconocimiento de la interrupcion
P S I - S z c I e r c i ~ n 3 1 - ezta memoria, 5e tiene la sena1 U C S ’ , proporcionada por
2 1 196, E 3 t 2 g e n a l debe programarse de acuerdo con e1 t m a n o de 1 3 memoria 1.1 5 sri 3 ~
1 € 1 !F16 prezent-3 13s d i r e c c i o n ~ s del siguiente acceso, miamas que tienen tiempo p a r a p r a p s q a r s e 3 todos los circuitos correspondientes ( 3 7 3
; t 5 ” \ , 1 - 3 3 3irecciones se considcrsn a psrtir de A l por que Ao =irve p a r a d e c j d i t - entre Ins dos bytes d c 1 3 memorI3.
7 1 - 0 5 multiplexores 15’ 3 p u n t a n inicialmente a I ? parte menos
~ i q n i f i c ~ t t : ...a d e las direcciones IAJ:AA). Se u s a n circuitos 7 4 L S l i s ’ por q ~ t e e 1 r e t a r 4 0 q1.r~ proporc i0na.n e s e1 adeccrado.
3 L a s ~13n3lez R D ’ y WR’ actIvan en ca.da ciclo de bus a la a r : o m p ~ ~ e r t a O O - M , A , 13. 41-1.p a su \;et genera PAS’ y lo. presenta a
la
m e m o r i a .1
-I
G n s e ( ~ 5 3 p a r 3 decidir si s e d e s e a accesar el byte par de la rnemor 13. : Z P spl i c a 3 O O - t l , D , 1 3 que qenera C A S L ’ . E s - t n sena1 activa 1 3
: I refre.sco z e realiza programando u n canal de DMA p a r a e f e c t u a r una t1.317~4cll-encis de p a l a b r a en modo contjnuo, incrementando la dir-eccion d e Flrente, L . 3 d i r e c c i a n d e s t i n o no se incrementa es u n 3 d i r e c c i o n de puerto in 1.1zar :y c i n estadoz de espera. Las p e t i c i o n e s de
DMA
l a s genera un t.emporiz3dnr prnqrarnsdn p 3 r 3 e + e c t u a r l a s a l rnenos c 3 d 3 . 15.625 us.5 . 4 D i s p l a y y teclado
P 3 r 3 F 2 r i l i t s r e 1 l e s a r r o l l o del %istema, se implementaron un d i s p l n y
:Y’
u n t e c l s d c r , l o que permitio l a depuracion interactiva tanto del hardware como+el s c f t w 3 r e . L 3 rcmbinscion de ambos p r p c e n t s una b u e n a i n t e r + a z a l
5.5 Interfases a e r i a l y p a r a l e l a
~ 3 ir-!ter f s z e Z P i m p l e m e n t o ?le acuerdo con la norma RS 232, con u n
D B 9
m s c h c , r ~ I ~ , ~ ~ e l e s d e v o l t a j e de 12 'J :J u n c a b l e de modem nulo con c i n c o
i + n I P u e s p a r a d e c i d i r a quien 3 8 le asigna el bus de direcciones: i n n = O, € 1 bus e s del a n f i t r i o n
i s 0 = 1 , ? 1 b u s e s d e 1 digitalizador
I P ~ F Z loc F F ’ s mencionados a n t e r i o r m e n t e s o n i n i c i a l i z a d o s ademas d i r e c t a
I-
>F t P . 5 z p 1 . t ~ ~ d c hsber a i s l a d o e 1 b u s del a n f i t r i o n y s a t i s f a c e r
las r e q v j z i t o s d e precsrga d e l a memoria, el buá es preparado para
4 . 1 1 A l imentacion
F c t e siztems t-iene bssirrarnente ).ras requisitos de alirnentacion: +5?, tl2V
5
Pr
oqr amac ion5 .
o
Observaciones generales sobrela
proqramacion3 3 r 3 simplifjc3r l a tarea de programar, aprovechando a l mismo tiempo l a
r 3 p s c i d s d de computo del t 8 6 , ~e decidio programar en C, rlbteniendo de
l s t s rn3net-3 I J I ~ buen control s o b r e la qeneracion de codiqo y a l mismo I
t i e r n p 9 t o d 3 ~ 1 3 z :.?entajas de programar e n u n lenguaje de a l t o nivel.
4.1 Archivos de d e f inicioncs
E = t 2 z 3rchi:.c1)s ronformsn e\ primer ni.:iel, y presentan las direcciones de Ins p t l e r t o s , l a s direcciones de memoria y l a s palabras
de
control como ncntbrez zimbolicoz. Los 3rchivos d e esta capa son los siguientes:Pefiniciones pars manejar 6 1 controlador dol
-
IJAPT : H Definiciones para manejar el 8250 del anfitrion oel P I - I P I - ~ ~ p s r s l e l o de la PC.
-
PFTE H @efiniciones globales del proyecto para el s~~iitt-ion. Easicamente consiste en l a aaiqnacion de recursos del sistema yesn I s 5 p 3 1 s b r a . e de control 3 los perifericos integrados del 186.
- z t o z s r c h i v o ~ conforman el sequndo nivel. Realizan la inicializacion y
teri4ic3cion del sistema, convirtiendo e s t a en una tzarea t r ~ n s p a r e n t e
sl
Jrngramador. Consisten en:
-
!331to, 3srn E a t e ztrchivo realiza el arrsnque del 186.'1-09rsrns la linea de seleccion de circujto para la R O t l y salta al inicio
IC 1 r ~i can. d
-
cos.
c
L'erificae
inicializa perifcricos internos (en el196: Cmntrolsdnres d e Interrupciones, de
DMA,
de Perifericos ;J Timers),Icrifericoz ext.erurnc_ (8259. S ? - Q , Digitalizador) y la memoria de trabajo, i n s t a l ~ n d o 1 0 5 manejadores de dispositivos (los vectores de interrupcion)
. c n p i s l n d o l n s d s t o s de I3 PC)M 3 la R A M , Despues, llama 31 programa
PI- i I:C j p 3 1
.
Seris1.c rutjnas de manejo d e l puerto serial.
I C I t ~ c l 3 r l o , e1 p~lert.c serial y el puerto paralelo, ademas de un cargador
I F p t - ~ ~ q t - s m a ~ por el puet-to serial. Consisten en los siguientes:
-
'IncFi 1 c s . H rontiene las nombres de los archivos dei e f i r i c i a n e s usadon en el sirtema.
Sirve
para compilar archivos.-
P i c . C A r c h i v o principal de l a parte del proyecto paraI s
o r ,
3 l m i n i z t r 3 el menu, I ? memoria e \ manejo del sistema qrafico.-
PC-Ser, C: M a n e j o del puet-to serial en la P C .Manejo del pusrko paralelo en la P C .
4n i m 3 3srn Rutinas para desplegar l a imaqen. Optimizadas
1
M I
b
M
v u x n
I-
O-rNb-J*UIUlb
nnnnnnnn
a a a a a a a a
I
J
O
I c
4
;i
d m d 4”
Y
m
4
P N O
I ., I
mmmmmmmm
Z
a a a a a a a a -INM*mIPr-a1
-INMbKIrPlcOD
m mmmmmmmm
N a a a a a a a a -INMbmIOlca)
I
:
dNMOmIOlcWP
I I
m a
I I I I
o00 m a an
am
aa
[Loo
av
I
I
000 L9p
auo
00 av
am m
aa a
I
I
I
000 om0 ao av a m aa-
1
"..
a a a a a a ann [LIZO!
...
= o m lnrnulv v v
a a a
04NMUWIOFQI
a a a a a a a a a a a a a a a a a a
4 M m
M 10 4 4
; f i p U I
O
L
4-
N M N 4 t >I
m
B
I l m ,
I I
7
8
18
19
1 1 10
' ~ * * * * Y * w * * + x * * * * * * * ~ * * * * * * * * * * * * * * * * * * * * * * * * * * * * ~ * * * * * * * * * * * * * * * * * * * * * * * * * * * ~
I r r t1 i ..;o 82'0. H
c,znt.iene 1 3 5 d e + i n i c i o n p c n e c e s a r i a s p a r a usar el 82?Q
rl
I - I ~ D ee el s i g u i e n t e : Se toma u n a palabra y se suma ( + o or) c o n laso p c i o n e s r e u e r í d a s , que son 13s que aparecen a b a j o . E j e m p l o :
{Jor d 7 9 = R b d D i s p M o d e S r t e D i s p 8 - 8 L e f
4
tKbdEncodedNKeyPI-oyccto 3 3 P - P F T F
S d I s le 8 b i t , l e f t e n t r . , ; , encoded scan nkey:
YY********w~Y*****~*~****************~******************~*******************-
T l e f i n e V b d D j c p M o d e S e t 0*32 e-1S.f i ne Il'i 3 p 8 L . e f t O*B
f d e f jne D i s p l 6 L e f t 1
*a
P l c t i n c D i s p S R i q h t - 2*8
f d e f j n e D i ~ p l 6 P i g h t 3*8
€ d e f i n e KbdEncodcd2Key 0
€ 3 e f j I-IE V b d D e c o d c d Z K e y 1
f d e + i ne F ' b d E n c o d e d N K e y 2
T d e f i n e t f b d D e c o d e d N K e y 3
Crlct i ne t c b d E n c o d c d M 3 t 4
KbdStrobedEnc KbdStrobedDec
Pr
09r 3 m C lock ReadF i f a ReadDizpPPM WriteDjspRAMAIltbTnC
Di
spur i teTnhB1TWI?
TWE I 14
El
3tlkc/:e
13nbfBF1
a n kClcs.rPispFifo € n a b 1 eC 1
e?r
Clear0r
1 e a r AE2Qh t l.esr 1 ClearFifo C 1 e 3 r C I IEndTt3tModeSet Spec i a t E r rMade
6 7
1 *32 2*32 3*32 4*32 16 5332 S 4
TWA c
I W B
21
BlankA
+
B l a n k B6+92 16 0*4 2*4 3*4 2 1 7*32 'r~*~~U********++*~**~**+*+**++*********************~************************~
AI- ch i \;m ClART
H
Oefinirion de constsntes pa.rzt proqr3rnar el puerto serial 1 s ~ - ~ t ? i c s c i o n de los registros es relativa. a UART y a JncDir
Ezt2\s ronsf3nte.: deben definirse externamente y 5 u uso es e1 siguiente:
1 - 1 4 ~ ~ : T n d 1 c s 1 3 loc2lidad inicial en que se encuentra
el
uerto serial t ' n c D i r : T n d i r 3 el incremento cn direccion d e 1 UAPT( E n el
1a
6==
2 )*Y*YYx***~#Y****************~********#**************************~************- F ~ - n . : : p ~ t @ TIR-PFTF
0 x 3 f S
1
IJAPT
+
TncDir 3c OCIART
+
TncDir 3O
IJAPT TncDir
*
r?UAPT
+
IncDir+
O
IJAPT + IncDir (?
ClART + IncDi r
*
1 IJAPT + T n c D i r Y IClART + IncDir
*
1c \ c definicion p o r default * I
/ Y para el 186
*/
:+
receiver b u f f e r register*,'
/ *
iqual queR B R
*/
:*
transmit-ter holding reg+:
/ * igual que THR
*.,
/*
divisor latch low (least) Y:/ *
divisor latch high*:
!+
iqual queDLH
( d 1 most) interruot enable reqister-
*/
OwO9 : Y deshabilitar intei.rupciones
*:
O X O 1
/ *
i n t por Received Data Available*/
(?st02 int por Trans Holding Peg E m p t y
*:
0x08
:*
int p o r Modem S t a t u s*:
+
YncDir # 2 / +int
identification reg i ?? Y no
i n t p e n d i n
Y.'/+
interru t en i n*:
: Y CTS
Dsi,
El rl)D?D,
l o ~ e 5 t , f o u r t h Y:I + THRk, t h i r d
*:
: Y PDA, second
*:
/ +
PLS, h i g h e r t , f i r a t priorit:;.+;
I * datos de 5 bits
*:
:*
datos de 6 b i t e*/
/+
datos de 7 bits*/
/ Y datos
de
8 bits*:
I * u n bit de stop
*/
/ Y do5 bits de stopti 1:2 para 5 B i t ) * /
/ *
Parity
Enable:*
even Darit.y. select3
t IncDir
*
3:*
line control register Y :/ *
odd parity- select: Y bit para agragar paridad
f d c f i n e FtetFreslr 0 x 4 0
/+
enviar u n breakE d e t i ne O L A 8 0x80 / Y Divisor latch access bit Cde4 i n e P r o g E a u d oxe0
/ *
igual que DLABt I n c D i r
S
:+
data ready/ Y overrun error
I * parity error
: Y framing error
!+
break interrupt: Y transmitter holding r e g e m p t y / Y transmitter shift register e m p t y t T n c D i r 5
/ + delta clear to send
!*
delta d a t a set ready/ +
trailing edge r / n g lnclicator.'+
delta data carr ler detect/SF clear to send
.'*
data set ready/ *
r i n g indicator/ Y data carrier detect
para groqramsr el baud, con u n reloj
de
1.8432MHz
3S 12 16 a4 3 2 48 56 A 4 '36
*/
* /*/
*:
*/
*:
*/
* /*/
*/
* /n /
*/
*/
*:
* /
*I*/
*.'
*/
* I*!
* /
Y /*/
*/
*:
* /
*!
**Y************************************************************************* Arrl-rivo PFJE.H
I y ,- 7eqinento= Y Pila ( P A M )
+:
rdef j na RarnDataSz Or4000
/ *
u n bloque p a r adatos
y codigoen
RAMf d e f irvc W m r d T m r t T n t 0x6001
/ +
= e u n d a prioridad*:
F d s f j ne LJcrrdMCATl 50000t'*
in? cada 10 ms * Ic l e f i ne GJnrdT imer 1 Oxe00l : Y i n t ~ , N o M C , N o R t q , N o P , N o E x t , l ' 4 o A l t , C o n t ~
y./
*/
*!
* I*./
*:
*/
*:
*:
*/
rdarine WordMCkT2 7'5 !.Kgenera l?MA cada 15 us ' T m a x
=
15.625)*/€ d e f inc WordTimer2 O x c 0 0 1 ./Y no i n t , continuo, start-, no i n h
*,'
fde4ine RamCadeTnt FirstAvailInt programa en Ram
*/
C d e f i rlg IJar dDMAChO O Y 1 3 - T
.'*
refresco de memoria. u/' Y T)=ia NoChq, S=Mem 3 n c 3 NoTC NoTnt SurcSyn P r H i q h T d r q Chq Start,word
*/
f d e f i n e W a r d d ~ ~ t P t r Y O
o
Y ? e t i ve UordDcstPt.rLO Puerto4 I * un puerto libre con No ready, No wait*./
f d c 4 i ne WordSvrcPtrHO
n
E d e f i n e IJmrdSurcPtrl..(?
i
:*
localidad n o n , refresco byte * /C d e f j n e Wor d D M A C h l O x 1446
/ +
refresco del digitalizador*/
I
3.2 Codigo de los Archivos
de
Inicialiracion~YY**Y********************************~*****~********************************- Ct- ch j
...
;m C O S ,T n i c i ~ l i z s c i o n del sistema 156 par3 POM y PAM
**Y*********************************~*****~**~********************************-
f d e f j ne CQ5-F-i 1 e C 0 S . C /)c Permite que tcc!tasm sepan que archivo es*/ EirlcIu4e " l n c f i \ o z . H t '
Proyecto 1 T R - P F 3 E
- . . m i d Tnicisliz3(s.;oid)
. ' Y F~~.ncion Principal del sistema. De a c u e r d o con el ambiente a n que se
cncucnfre (Roll o P A M ) Hac4 10 siguiente:
POM: C h e c s e inicisliza reqir;tros, memoria y perifericos y llama 3. main
P4M: T n j c i a l i z a memoria y reqistros y llama a main
*/
‘ Y
‘ W
‘ Y
‘ Y
‘ Y
‘ Y
‘ Y
‘ y .
Q x O a ,
0x40,
0x00,
O X O ? ,
0x00,
0x09,
0 x 2 4 ,
0x01,
0x00,
O r 0 0 ,
0 x 2 0 ,
' 5 ' '6'
0x33, 0x03,
' 7 '
0x40, 0x08,
0 x 7 1 ,
0x36, I
0 x c 8 ,
0 r 7 9 ,
0x36,
O x 3 e ,
0xOf y
0 x 5 8 ,
O x d 4 ,
O X I C ,
0 x 8 0 ,
' 3 ' * /
0x39, O r O f ,
'(3'
* /
0 x 7 0 , 3 s r n
3 ?d 0x38,
0x01,
0 x 0 0 ,
? f
' Y ' Y ' ' N '
O x f 3, Oxecj, 'O'
*;
0x30,I
1
? C
' Y I - . ' 5
' T '
0x08, 0x09, ' I J ' ' V ' 0 x 3 9 , ' W '
* /
0x20,0xf 1 ,
0xd4,
0 x 1 0 ,
0x01,
'
7 '' " '
O x f c ,
I ? Y !
0xd8, Oxde,
' e ' 'f'
O r l e , 0x00 y
d C
/ Y 'm' ' n '
O X 5 C t , 0 x c 0 ,
t c
' Y ' 1 1 ' ' \ j '
0x48, 0x40, ' w '
*/
3 s m'7 ic
? 0
'*Y***********~**************************************************************~
A r c h i . L / o SerI31 . C
Put i n 3 z de m a n e j o d e l p u e r t o s e r i a l
F I - o : : ! F C ~ ~ 7 l R - P F I E
~**********Y*******************************~*******~************~************~ r d e f i n E S e r i a l F i l e Serial.?
i IS t
' Y
r
~*I*YY*Y~***W*Y********Y****Y************************************************
A t - c h j m P a r a l e 1 o . C
R l r t i n e ~ de rn3nejo d e 1 p u e r t o p a r a l e l o
P r c y e c t n 3 1 R - P F I E
Y Y w Y * * * * * Y Y * * * * * * ~ * * * * * * ~ * * * * * ~ * * * * * ~ * * * ~ * * * * * * * * ~ * * * * * * * * * * * * * * * ~ * * * * * * * * * * * C i r s r l t t r t F " T t 7 c F j l ( 1 5 ~ H "
~***********YW*+**************~*****~**~*************************************~
A r r h i I n = F i 1 P E . H
C o n t i e n e 15s nombrer d e 1 0 5 3 r f l ' : : .;OB de definiciones necesarios p a r a r r o m p i l a r el z i s k ~ m s
Pr ~ ~ , . . ~ F T t Q T 7P - P F TE
rY*Y~U*YYY~*W*Y~**#**~*************~*************************************~***-
31macena datos en l a memoria del SM
*,'
regresa. datoa de la memoris del SM 4+:
I - P ~ ~ C S ~ u n a imagen
+.'
r4.3re53. u n s irnaqen * I
5 1 - 1 ' ~ i a 4 bjts por b y t e 2 , l + /
envia 4 bita p o r byte 1 , 2 * /
e n v i a 4 bits por byte 1,2 uno a l a v e z
*;
cspt.c!rn I J . ~ Z ~ imagen
*.,'
else
L S e n d B y t e ( D a t 0 A u x ) ;
c
Terminar = L e e I m a g e n P 3 r ( O , E u f f e r s C O l ) ;
T e r m i n a r = L e e I m a g e n P a r ( 1 , B u f f e r s l l l ) ; Tsrminat-. = L e e I m a q e n P a r (2, B u f fersC21) ; T e r m i n a r = L e e I m a g e n P a r ( 3 , B u f f e r s l S l ) ;
'*Y*Y****~*Y*Y*Y*****~~~*********************************~*******************~
brck, j '.-;g F'C-Ser C
! . ! t i I c r i3.s p a r 2 (11 rfi3.riej~) d e l p u c r t.o s e r i a l , p a r a l a PC PrO.;tqttq l l R - P F T E
Y*Y*~***YY*~*Y*W***Y~*Y****YY~***********************************************~
f i 1 1 1 1 ~ *1_14kT, Y ' #
f i n r l r l l p ( 1 ? 0 S . H \
.'~*******************************~******************~+****~******~***********~
Al- c h i vo PC-PAR. C
Ilti1FzriJz
psr3 e 1 manejo de puerto paraleloP r o y e c t o J T R - P F T E
y****************y******************************~**************~*******~****.
r i n t l f r d c 'do:. Is?
E i r ? c l l t . d e !bins;.hb
;""""""""~"""""""""""""""""""--"--"--- Gr ch j vu 4N J M A . ASM
I I l t . i l c r i 3 E p a r 3 . manejar el controlador UGA de l a P C
9 Pro.:;ecto JYR-PFIE
~""~~"""""""""""""""""""""--""---
-
T E Y l E e 3 m e n t b y t e p u b l j c ' C O D E '3 3 ~ ~ r n e cz:-TEYT
p u b I 1 c -An i ma
Procedimiento Anima.asm
c 4n i m 3 p r o c near
9 O i b u j s uns imagen en vqa de 256 x 256
1 E s t a optimizado para obtener la. maxima velocidad.
? 1.. 1 smarla
r
:I i n k Snimacint XTni, int YIni, char f a r +Imagen);
'i deo€tu f f el- Se? e IJ OaCIOOh ; inicio de la memoria de v i d e o en \IGA
r T n 1 cqu 192
:
coordenada x inicial'Y
.""~""""""--""""""""""""""""""""""""""""-
T n i cqu 112 ; coordenada y inicialp11zh b p ; pro'] 090
puzh 5 1
p1-1 c h d i
mc:; 3 x , '.IideoBlJf farSe
mov C X , word p t r C b p t 1 0 3
mo:l e s
,
C Y ; es = seqmento de la imageninicializa el reqistro de modo del controlador grafico
mo'.~: d ~ 3 c e h ,
:
3punta a 1 reqistro de direccionll-lo.~.: b p , 3p : salva el ambiente de1 que llama ( C I
p l l a h 4 5
1 n o . i :j I
,
3 Y ; 7 3 = seqmento de 1 3 memoriade
videoMO..,: 3 x , 205h ; a l
=
numero del registro de modof 3 I J . t . d u , 3 x ; sh = m a d c de escritura 2 (bits O,ll I modo de lectura O (bit 3)
7 ~ ~ E t s b l e c e el re7istro de seleccion de funcion/rotacion de dato5
Y 0 I- 3 !7 9 3 I; ; a h
=
funcion reemplazarno': 3 1
,
'3 1 3 1 = r e i5;tr.o de seleccion d e @CIt I ? 3 k ro?acionl+uncion de datos; c s t 3 b l e r e el numero dol reqistro de mascara de bit
m@\; 3 1
,
S ; al=
numero del registro de mascara de b i tnclt ?I:<, 3 1
mn\' ri v
,
' 3 ~ f hm o'..; 3 h I ;
! P
3 1 = constante de mascarar e p a r a par3 c 1 0 l o c ~ 1 - al imaqen
; p s r s Linea = LineaInicial haz...
; b x = u
; b x = x 3t '256 ; b x = x
*
2'56+
y; c 1 = S r e : 7
; cl
=
numerode
bits por desplazar a la izq; a l = mascara de bit 5 i n desplazar
I prepars el reqistro de mascara de bit del controlador
zhl
a l , cl ; ah=
mascara de bit enel
luyar correctoO u t d Y q 3 1 ; escoge l z ~ mascara correspondlente
! proqrarna el valor del p i x e l
VIO\; 3 . 1 , d s : Ib:-l ; asegura un byte de cada plano de bit
Mc?'l. dE: r b u l , C h ; actualiza los planos
i n 2 : repite hasta Punto
==
o
; ( s j == (3)
i n c d i ; ljnea + t
cmp r! i ,256 ; repite mientras linea
<
256.j I 8 6 3
mo;; d ~ , 03ceh
rno:., 3 \ * , O f f QSh ; mascara de b i t default p44:
1 restaura el controlador 3. su5 valores oriqinales
Q l J t d Y , 3 Y
; regizt-ro de modo default
; selercion d e f u n r i o n default
FI.I~. 1 j c SetFjyc]
- %?e+ P I Y P I pr c c iie3.r
7 F'rgcedjmjento SetPIxel;
* C o l ~ c s I J n p i x e l em modo? 'IGA nal.iuo5
1 I I srnad3: C .;cid 5rst-Pi.icl ( i n t Y , i n t
:J.
i n t n ) ;"""""-""""""""""""""""~""""""""""""""""
lisa P I rando ? d e l c o n t r o l a d o r d e 'JGG
d~t-~dc '*';:I 5st-1 1 3 5 cbDt-denadas y n es el '~alat- d e l pixel
At- a X
41- =rY cqu eqcr b ~ o r r j r.lor d ptr Ibp t p t r Cbp t 4 1 63 ; direccionamiento
de
parametros9 t-
qr.1
eq1.1 b y t e p t r Cbp+
81P t l L I ~ i t 5 equ c? ; seleccion de funcion (reemplazar)
;"""""""""""""""""""-"""""""""""""~"""""
1 progrema el registro de modo
del
controladorma:. a y , 205h ; al
=
numero del re istro de modo; 3h = modo de cscri?ura 2 (bita 0.1) I modo de lectura O ( b i t 3)
C l c . r t d r ,
mot: a h , R M W B i
7
c i ah = bits a leer y modificar y escribir: p r o q r 3 l n a cl ve i a t r o de seleccion de rotacion/funcion de datos
nov a 1
,
3 ; a l=
registro de seleccion deo u t d x , ax ; rotacion/funcion de
datos
9 pr ogr3tns P I valnr del
mov 3 1
,
es: I bx 3 ieivel
oma un bytede
cada planor m v a l , A r N ; 3 1 = valor del pixel
m@;; ec: IbyJ, al i actu.aliza los planos de b i t
m o v a x , 0ffr3Sh ; mascara
de b i t
default olrt- d x , a xr e s t t u r 3 1 ~ s registros del controlador grafito
: registro de modo default
: sieleccion de funcion default
.-II+'. I i 7 P i . f + l c d - l r 10
ct; . . , G I & A d ) - t r. p r c r n e s r
:
- - - " - - - " " - " " " " - " " " " ~ " " " " ~ ~ " " " " " " " ~
C r i m r j o v F j v s ! 4 - J ! r ! f 1
Ltnri.7,r ~ ? t ~ r1 3 ~ direccion de i ~ 3 la memoria grafica en modos EG& ..:; '.ic;A
* ?'?!ov?QO 1.4 c o I or e s
4 4 0 ~ 2 0 0 16 col ores
* 54:3u'350 t 4 c o 1 or es
1 5 4 0 ~ 3 5 0 m o n o c h o m ~ t i c o ( 4 colores)
.
4 4 0 ~ 4 5 0 2 colores1 540x450 10 colores
:
.
I I 3r1-1343 3~ = coordenada y0.:. = coordenada x
.
v e q r e z 38t-I = mascara de bit-
s s : b x
=
direccion en la memoriade
video3 c l = numero d e bits a desplazar EI la izq
F..;t esFer L i ne equ 80 ; bytes en una linea horizontal
''i d e c R u f f erSegment e qu (3aOcIO h
:
---""-"""""----~"""""""""""""""""""""""~"
rnQ.c cl b l i cl = parte baja de x p u s h d Y i reserva d x
mov d x , BytesPerEine
rn1.t. 1 ri Y ; zxx = :J
*
b.;~te5 p o r 1 ineaz h r b y , t
3 h r b u , 1
g d d b r , ax
rno'.; 3.v Vi deoBuf fer Seqment
m o v e ~ , a x
p o p d u
E J l r b y , 1
; bx = x 1 8
i b x
=
y*
Bytes Por linea+
x 1 8i c l = x & 7
9 Observaciones finales
&jeti\tos de este p r o y e c t o se complieron satisfactoriamente h a s t a la
~ d q u j z j c j o n de imaqenec de video tomando 512 v 5 1 2 muestras a 8 b i t s de rezolt!.cian, es decir, e n blanco y neqro.
I 3 descornposicion en los tres colores b a s i c o s ( r o j o verde y a z u l ) no se
enrnpl~trl, p n r f 3 l t a de tiempo, sin embargo, 5 0 1 0 este paso es necesario
p s t - 3 a b t e n c r video en c ~ l o r , y a que el resto de1 diseno se armo y probo -Jcl objeti\;o final de 2 4 b i t a .
lado, pars desplegar la imaqen
3 d 3 . T P r e q u i e r e fanto de u n monitor
capturada especializ
a l a resolucion
10 Bibliograf
ia
-
'Fast and L S T T L Data', Motorola, Quinta cdicion, Primerai mpr es i o n , EL14 y 1992
-
'Memory', Intel Corporation, E U A , 1990-
'Embedded ? l i c r ~ p r ~ c e s s ~ r s ' , Intel Corporation, EUA, 1994-
'16-!32-Bit Embedded Processors', Intel Corporation, EUA, 1990-
'Embedded Controller Applications Handbook', Intel Corporation,-
'iAPX 5 6 , 8 8 , 186 and 188 U s e r ' s Manual, Programiminq Reference'713tel C o r p o r z l j g n , E U A , 1986
-
'Lenguaje Ensamblador Para MicrocornputadorasIBM,
Para Principiantes y A v a n t a d o s m s 3 Terry G o d f r e y , Prentice Hall, Mexico, 1992-
' T e o r i a d e Conmutacion y Diseno Logico., Frederick .I Hill,5 e r s l . l P P e t - e r s o n , Lirnuza Primera Edicion, Decirna Impresion, Mexico, 1992
-
mTurbo C , Reference Ilanual,
( V e r s i o n 2.0) Bor 1 andTntern3tional Tnc, FIJ4, 1988