c43148.206.53.84/tesiuami/uam7427.pdf · t.t.l. para encontrar la falla. ... ya que hoy en dia la...
TRANSCRIPT
---
UNIVERSIDAD AUTONOMA METROPOLITANA
UNIDAD IZTAPCILAPA c--
C 4 3 . L
PROYECTO DE INGENIERIA ELECTRONIC& I1 \ PHCIEADOR DE CIRCUITOS INTEGRADOS T.T.L. UTILIZANDO UNA PC
DAVID JAIME&CIA ZUWIGA
!
I /FEBRERO/ 1990
UNIVERSIDAD AUTONQMA METROPOLITANA
UNIDAD IZTAPALAPA
CIENCIAS BASICAS E INGENIERIA
i
INGENIERIA ELECTRONICA EN COMPUTACIQN
PROBADOR DE CIRCUITOS INTEGRFIDQS T.T.L. UTILIZANDO UNA PC
NOMBRE DEL PROYECTO: Probador d e c i r c u i t o s i n t e g r ados T.T.L. u t i l i z a n d o una PC.
OEJET XVO : Automatizar el p roceso d e prueba para c i r c u i t . o s i n t e g r ados T. T L. . Con sólo poner el c i r c u i t o i n t e g r a d o T.T.L. en una base o protaboard ( t a b l i l l a d e experimenta- c i b n ) y e j e c u t a r un programa en l a PC, debera d e p roporc i onar informacibn s u f i c i e n t e , por panta- l l a , para s abe r e l estada en el que se encuen-- t r a e l c i r c u i t o i n t e g r ado T.T.L. b a j o prueba.
PARTICIPANTE: Dav id Jaime Ga r c i a ZúíYiga
ASESOR : ING. Gonzalo Isaac Duchen Sanchez
EQUIPO UTILIZADO: Cantidad Nombre Desr r i pc i ó n
1 PC Computadora Persona l
MC1TERIAL UTILIZADO: Cantidad Nombre
8255 .T 3 1 TPC b 74125 T 4 7430 .> - ' 7404 1 7432 1 I26 1 C26
Desc r i pc i ón P.P. I. T a r j e t a d e expansián para PC BUFFER TREE - STATE NAND d e €3 en t radas NOT OR d e 2 en t r adas I n t e r f a z para 26 l í n e a s Conec tor para 26 h i los
I
INDICE FAG I
Antecedentes .............................................. 1 - Introducc ión .............................................. s
I . HARDWARE
c 1. E l microprocesador ................................ cf
2. Manejo d e d i s p o s i t i v o s ex ternos (En trada/Sal i d a 1 . . €3 \
5. I n t e r f a c e s (P.P.I. 8255) .......................... i2
4. DisePlo y funcionamiento d e l a t a r j e t a ............. 20
5. Direcc ionamiento d e puer tos ....................... 26
6. Monta je y operac ibn d e l a t a r j e t a e n una FC ....... 29
11. COFTWhRE
1. E s p e c i f i c a c i b n d e l s o f t w a r e ....................... 31
2. DisePro d e l s o f t w a r e ............................... 32
'7 .J. Di5ePrn de a r c h i v o s ................................ 4. DisePro d e programas ............................... 37
5. I n s t a l a c i ó n d e l SOFTWARE .......................... 40
6. Manual d e operacit in ............................... 41
Conclus iones .............................................. 42
B i b l i o g r a f í a .............................................. 43
Apendice A Diagramas d e 105 c i r c u i t o s disef iados.
Apendice B Diagramas d e l a d i s t r i b u c i ó n d e los componentes.
Apendice C L i s t a d a s d e los programas r e a l i z a d o s .
Apendice D Manual d e operac ión para el probador d e circuitos i n t e g r ados T.T.L..
Apendice E Manual d e operacit in para l a a c t u a l i z a c i ó n d e a r c h i v o s 1
ANTECEDENTES
Durante los tiltimos anos l a c i e n c i a de l a computación ha t e n i d o un gran augue, o r i g i n a d o por los grandes avances r e a l i z a d o s por l a t e c n o l o g í a e l c e c t r ó n i c a . Es tos avances han permi t ido que se d e s a r r o l l e más HARDWARE, de aquí q u e l a s neces idades e n cuanto a l manej o d e c i r c u i t o s i n t eqrados T. T L. sea mayor o
Debido a l gran manejo d e c i r c u i t o s in t eg rados T.T.L. e n l a actua- l i d ad , h e v i s t o l a neces idad d e automat izar el procedimiento d e prueba para c i r c u i t o s in t eg rados T,ToL., disehando una t a r j e t a y un programa por medio d e los c u a l e s pueda probar c i r c u i t o s inte- grados T.T.L..
Este p r o y e c t o tiene su o r i g e n a l v i v i r los problemas cuando se empieza armar cua l qu i e r c i r c u i t o e l e c t r b n i c o l ó g i c o , ya que se deben probar los c i r c u i t o s in t eg rados T.T.L. u n o por uno, an t es d e ensamblar los. Estos c i r c u i t o s in t eg rados T.T.L. deberán ser probados correctamente , para que e l c i r c u i t o e l e c t r 6 n i c o l b q i c o armado funcione optimamente.
A l probar los c i r c u i t o s in t eg rados T.T.L. ha que a p l i c a r (manual- mente) v o l t a j e s , hacer conex iones d e alambres y observar los encendidos o apagados de los l eds , para d e esta forma a l consul- t a r e l manual ,de circuitos in t eg rados T.T.L. se determine e l es tado d e l c i r c u i t o i n t e g r a d o T.T.L. b a j o prueba. Esta prueba se v u e l v e bas t an t e l abo r i o sa , problemat ica y p r o p i c i a a cometer errores. Po r lo que se producen f a l l a s a l probar los c i r c u i t o s in t eg rados T.T.L. , y a l probar el ci .rc;uito e l e c t r c jn i co l 0 q i c o armado n o funciona corn se esperaba, ademas q u e se r e q u i e r e demasiado t iempo para v o l v e r a probar los c i r c u i t o s in t eg rados T.T.L. para encont rar l a f a l l a .
Debido a toda e s t a problemat ica v i v i d a e n m i preparacibn pro fe - s i o n a l , comense a buscar so luc iones . Una solución fue l a d e implantar l a prueba de estos c i r c u i t o in t eg rados T.T.L. e n una PC, ya que hoy e n d i a l a PC es una herramienta d e t r a b a j o que esta a l a l c ance d e l a mayoría y además es eficiente, c o n f i a b l e y ráp ida.
Una ve z e l e j i d a l a ~ i o l u c i 6 n d e u t i l i z a r una PC para probar las c i r c u i t o s in t eg rados T.T.L. empece a documentarme y v e r como poder implantar l a prueba d e circuitos in t eg rados T.T.L. e n una PC. P o r l o que empece anA1izar el p royec to desde dos puntos de v i s t a , una p a r t e como el HARDWARE y o t r a como el SOFTWARE.
Desde e l punto de v i s t a d e l MCIRDWARE v i l a neces idad de d i se f i a r una t a r j e t a probadora para c i r c u i t o s in t eg rados TIT.L., l a cual debe r i a de hacer l a s s i g u i e n t e s funciones: mandar 105 n i v e l e s l ó g i c o s n e c e s a r i o s y a l imentac ibn a l c i r c u i t o in t eg rado T.T.L. ba jo prueba, t odo psto a t r a v é s de un conec to r , el cual se pudie- rh conec tar e n una base a protabaard a s f como la forma de poder leer l a s se f ra l es de respuesta d e l c ircuito i n t e g r a d o T.T.L. ba jo prueba y además e s t a t a r j e t a se d e b e r í a de poder i n s e r t a r e n un slot d e expansión e n l a PC.
1
Por otra parte, desde el punto d e v ista del SOFTWARE v i l a nece- sidad de manejar l a (<tarjeta>*> probadora de circuitos integrados T . T . L . por medio de un (<:programa>> probador de circuitos inte- grados T.T.L.. Este programa de4ería de leer o e l e j i r e l c i rcui to integrado T.T.L. bajo prueba, para poder hacer que l a tar jeta aplique los niveles lbgicos necesarios y alimentacibn, asf como poder leer la respuesta del c i rcui to integrado T.T.L. bajo prue- ba, para posteriormente ser procesadas ttiidks l as señales d e respuesta del c i rcui to integrado T.T.L. bajo prueba, por progra- ma. Y de esta forma e l programa de un diagnostico del estado en e l que se encuentra el c i rcui to integrado T.T.L. bajo prueba.
2
. . .-
INTRODUCCION
Con los conocimientos adquiridos durante l a estancia dentro d e l a Universidad, es conveniente ap l icar los en l a vida d iar ia , con e l f i n de sat is facer necesidades actuales, una de e l l a s es contem- plada en este proyecto,
En este proyecto se manejan l as dos partes fundamentales que componen l a ciencia de l a computacibn, que son e l HARDWCSWE y e l SOFTWARE.
Por parte del SOFTWARE se disef’fb un programa probador de c ircui - tos integrados T.T.L. para PC de tal forma que e l i j iendo e l nctmero de l c i rcui to integrado T.T.L. bajo prueba, de un diagnos- t i co del estado en e l que se encuentra e l c ircuito integrado T.T.L. bajo prueba. Para que funcione e l programa es necesario tener otra parte fundamental que es el c i rcuito electrónico, capaz de apl icar los niveles lbgicos necesarios así como l a alimentacibn a l c i rcui to integrado T.T.L. bajo prueba, para poder probar correctamente e l c i rcui to integrado T.T.L. bajo prueba. Esta parte fundamental corresponde a l HARDWARE.
E l HARDWARE esta formado por un c i rcuito electrbnico ( t a r j e t a ) , que puede ser colocada en un s l o t de expansibn de l a PC, esta tar jeta u t i l i z a las direcciones de los puertos 3 W H - 3QAH de l a PC, ya que estas direcciones d e puertos estan d i spon i b l e s para manejar tar jetas adicionales en una PC, Por l o que a l u t i l i z a r las direcciones de los puertos antes mencionadas podemos mandar los niveles lógicos necesarios y alimentación, que se aplicaran a1 c i rcuito integrado T.T.L. bajo prueba, a s í como poder leer l a respuesta del c i rcui to integrado T.T.L. bajp prueba. €1 que l leva e l control de aplicacibn de niveles lbgicos y alimentacidn es el programa probador de circuitos integrados T.T.L. (SOFTWARE). La tar jeta probadora de c ircuitos integrados T.T.L, (HAHDWFIRE) s6 lo .ap l i ca niveles lógicos y alimentación.
El SOFTWARE l e dice a1 HARDWARE los niveles iógicos, alimentación a apl icar y que direcciones u t i l i z a r ; para poder mandar los
>patrones d e prueba así como leer l a respuesta del c ircuito inte- grado T.T.L. bajo prueba, para de esta forma poder diagnosticar e l estado en e l que se encuentra e l c i rcui to integrado T.T.L, bajo prueba. Todo esto se hace en menos de un segundo.
3
E l SOFTWARE e s t a formado por un programa e n turbo pasca l ; el cual muestra un men6, e n forma d e c o l a c i r c u l a r , los circuitos inte- grados T.T.L. que puede probar. Una vez e l e j i d o el c i r c u i t o in t eg rado T.T.L. a probar, el programa buscara den t ro d e sus a r c h i v o s el c i rcui to in t eg rado T.T.L. s e l e c c i onado y mandará por los pue r t o s d e l a PC los n i v e l e s 1 6 g i c o s adecuados para l a prue- ba. Después de a p l i c a r estos n i v e l e s l ó g i c o s se leen los n i v e l e s l ó g i c o s esperados, los c u a l e s son l a respuesta d e l a entrada d e l c i r c u i t o in t eg rado T.T.L. bajo prueba. Una ve z r e a l i z a d o l o a n t e r i o r , el programa checará l a respuesta d e l circuito i n t e g r a d o T.T.1, con un patron prueba esperado, el cua l 5e encuentra cargado e n un a r c h i v o , para poder d i a g n o s t i c a r inmediatamente el e s t ado d e l c i r c u i t o in t eg rado T.T.L. b a j o prueba.
COMO ESTA ORGANIZADO ESTE INFORME
Este informe e s t a o rgan i zado e n dos p a r t e s fundamentales.
La primera p a r t e corresponde a l HARDWARE l a cual contempla el d i s eho y funcionamiento d e l a t a r j e t a probadora de c i r c u i t o s in t eg rados T.T.L., l a cual se i n s e r t a e n un slot d e expansión de l a PC.
La segunda p a r t e corresponde a l SOFTWARE, e s t a d e s c r i b e e l d i s eho y funcionamiento d e l programa probador d e c i r c u i t o s i n t e - grados T.T.L. para l a t a r j e t a probadora d e c i r c u i t o s in t eg rados T.T.L..
Además se i n c l u y e una serie de apendices , los c u a l e s c o n t i e n e n diagramas y l i s t a d o s d e programas asi como el manual de a p r a c i b n d e l probador d e c i r c u i t o s in t eg rados T.T.L..
D IR IGIDO A ALUMNOS DE LA LICENCIATURA E INGENIERIA EN COMPUTACION
Este p r oy e c t o f u é disef iado pensando e n todo alumno que l l e v e mater ias de c i r c u i t o s l ó g i c o s , para que armen circuitos l@icos c o n f i a b l e s y reduscan s u s horas d e l a b o r a t o r i o ( t r a b a j o ) .
FALABRClS DEL AUTOR
Este proyec to f u é r e a l i z a d o g r a c i a s a l a gran ayuda y co labara- c i 6n d e l P r o f e s o r Ing. Gonzalo rluchen Sanchez. Espero que este proyec to sea d e gran u t i l i d a d para todas los alumnos, t a n t o d e l a l i c e n c i a t u r a como d e i n g e n i e r i a en computación.
I 1
4
EL MICROPHOCESADM;;
La revoluci6n hoy en d ía es l a del microprocesador, o e l computa- dor- en un c i rcuito integrado, una f ina pas t i l l a d e s i l i c i o que es e l corazbn aritmetico y lbgico de l computador.
Hoy en d ía e l cpmputador en una pas t i l l a está rebajando el costo de l a intel igencia electrdnica que está convirtiendo los más pequePros productos en maquinas inteligentes. Y está acelerando l a automatizacián, uniendo maquinas inteligentes, sensores y otros instrumentos dentro de sistemas de control y adquisición de datos distribuidos.
Pronto los microprocesadores estarán en todas partes. El punto m á s importante es l a de entender l a técnica de l a s interfaces o interconexidn entre estos sistemas, para poder aprovechar venta- josamente l a potencia del microprocesador. El tema de interfaces será tratada posteriormente.
La arquitectura básica de un computador es l a mostrada en l a f igura 1 . 1 .
-
f PU
-
BUS PE PIRECCIONES
MUNDO EXTERHO MENOR IR E A
I
~~ -- __ -- ~~- ~- - ~~ - - - .~
Figura 1 . 1 . Arquitectura básica de un computador.
UNIDAD CENTRCIL DE PROCESO (CPU)
Unidad central d e proceso Cmicroprocesador) . Es un 5610 c i r c u i t o i n t e g r ado que r e a l i z a l a s operac iones d e t r a n s f e r e n c i a d e da tos , control, a r i t m e t i c a , 16g i c a y t r a t am i en t o dE las i n t e r rupc i ones mediante l a e j e c u c i ó n d e i n s t r u c c i o n e s ob t en i das d e l a memoria.
E s t e tema es muy ampl io , sólo abarcaremos t odos a q u e l l o s elemen- tos y e s t r u c t u r a s que se encuentran e n t r e el microprocesador 8086 (microprocesador d e 16 b i t s , ya que t r a t a n l a informaci6n e n m u l t i p l o s d e 16 b i t s ) y los p e r i f é r i c o s o el mundo externo, Entrada/Sal ida (E/S).
E l microprocesador 8086 tiene un mayor control d e d i s p o s i t i v o s p e r i f é r i c o s d e E/S con muy poco hardware a d i c i o n a l . E l €3086 tiene una e s t ruc tu ra d e i n t e r r u p c i o n e s muy potente . E l 8086 r e a l i z a ope ra c i ones d e E/S en un e s p a c i o fisicamente separado d e memoria l lamado e s p a c i o de E/S de hasta 64K puertos.
Acontinuacibn se d e s c r i b e l a func ión d e cada p a t i l l a d e s a l i d a d e un microprocesador, se d e s c r i b e 5610 l a s más importantes que s i r v e n para l a r e a l i z a c i ó n d e este proyec to .
La func ión d e cada p a t i l l a es l a s i g u i e n t e :
(A0 - A151
(DO - D7)
Bus d e d i r e c c i one s . S a l i d a d e tres es tados , a c t i v a a n i v e l a l t o . A0 - A l 5 cons t i t uy en un bus d e d i r e c c i o n e s d e 16 b i t s . E l bus d e d i r e c c i o n e s proporc iona l a d i r e c c i ó n corres- pond iente a intercambio d e da t o s d e memoria (hasta 64 K b y t e s ) y a los in te rcambios d e d a t o s d e d i s p o s i t i v o s d e E/S. E l d i r e c c i ona - m i e n t o d e los d i s p o s i t i v o s d e E/S u t i l i z a los 8 b i t s menos s i g n i f i c a t i v o s y permiten a 1 usuar io se 1 ecc i o n a r d i rec tamen t e n hasta 256 puer tos d e ent radas o 2% puer tos d e s a l i d a . FiO e5 e l b i t d e d i r e c c i & n menos s i g - n i f i c a t i v o .
BUS d e datos . Entrada/Sal ida d e tres e s t ados , a c t i v a a n i v e l a l t o , DO - 07 const i tuyen un , bus d e d a t o s b i d i r e c c i o n a l de 8 b i t s . E l bus d e d a t o s 5e u t i l i z a para el in te rcambio d e d a t o s con l a memoria y los d i s p o s i t i v o s d e E/S.
Lectura . S a l i d a d e tres es tados , a c t i v a a nivel ba jo . RD i n d i c a que l a CPlJ desea leer d a t o s desde l a memoria o d e un d i s p o s i t i v o d e E/S. E l d i s p o s i t i v o de E/S d i r e c c i onado o l a memoria debe d e u t i l i z a r e s t a sePral para d i r i g i r 105 d a t o s a l bus d e da t o s d e l a CFU.
6
Escr i tu ra . S a l i d a d e tres es tados , a c t i v a a n i v e l ba jo . WR i n d i c a que el bus d e d a t o s de l a CPU mantiene un da to v á l i d o para ser almacenado en l a memoria d i r e c c i onada o e n e l d i s p o s i t i v o de E/S.
L Además tomaremos l a seha l que nos en t r ega el c onec t o r d e l s lo t d e expansibn d e l a PC. La cual se d e s c r i b e a cont inuacibn.
H a b i l i t a c i b n de l a d i r e c c i h . S a l i d a de tres es tados3 a c t i v a a n i v e l ba jo . La s a l i d a de AEN prove una seRal d e control para mantener la direccP6n d e l bus d e d i r e c c i o n e s mientras el bus d e d a t o s es usado para t r a n s f e r i r . da tos ,
Antes d e s e g u i r ade l an t e es importante d e f i n i r l o que es un bus.
Bus. Es un camino por medio d e l cual se t r a n s f i e r e l a información d i g i t a l , desde una o v a r i a s f u e n t e s a cua l qu i e r a d e v a r i o s d e s t i - nos. En un t i empo determinado solamente puede tener lugar una d e e s t á s t r a n s f e r e n c i a s d e informacibn. Mient ras que se e s t á prsdu- c i endo una d e estas t r a n s f e r e n c i a s d e informacibn, todas l a s demás f u e n t e s que es tán unidas a este bus deben quedar bloquea- das.
7
2
MANEJO DE DISWSITIVOS EXTERNOS (ENTRADfiíSALIDA)
La s unidades d e entrada y s a l i d a ( E S ) permiten a l computador comunicarse con el exterior.
Las func iones d e E/S son importantes. Para que l a computadora p r e s en t e v isualmente in formación d e u t i l i d a d , debe e s t a r i n t e r c o - nectada con p e r i f & r i c o s .
L o s d a t o s d e entrada pueden proceder d e t e c l a d o s , d e almacenamiento d e c a s e t e d e audio o d e i n t e r f a c e s e s p e c i a l e s d e adqu i s i c i ón de datos . D e manera s i m i l a r , los d a t o s d e s a l i d a f l u y e n deride l a computadora a periférico5 ( p o r e jemplo: p a n t a l l a s d e v i d eo , s a l i d a d e l e c t u r a s nCtmericas, impresoras e i n t e r f a c e s e x t e r n a s d e control). La funcibn y el formato d e l a comunicación d e da t o s entre el procesador c e n t r a l y los p e r i f é r i c o s podr ía v a r i a r cons iderablemente , p e r o e l encaminamiento interno d e los da t o s fundamentalmente es el mismo.
A s í 9 pues, l a s unidades d e entrada no son más que mult ip lexa- d o r e s debidamente d i r e c c i onadas por el bus d e d i r e c c i o n e s , con entrada normalmente d e n i v e l T.T.L. y s a l i d a d e tres e s t ados hac ia el bu5 d e datos . Las unidades d e E/S n o son más que r e g i s t r o s d i r e c c i o n a b l e s por e l bus d e d i r e c c i o n e s con entrada procedente d e l bus d e d a t o s c on t r o l ado t o d o por el bus d e c o n t r o l .
L a t r a n s f e r e n c i a de d a t o s e n t r e e l procesador c e n t r a l y e l dispo- s i t i v o d e E/S es d e 8 b i t s en p a r a l e l o - E s t a s ent radas y s a l i d a s son e n p a r a l e l o , o s ea l a in formación que entra o sale e s t a agrupada e n pa labras d e l t i p o usado e n el computador correspon- d i e n t e , 4, €3, 16, 32 b i t s/pa labra . En este p r oy e c t o es d e 8 b i t s í p a l a b r a .
En g e n e r a l , e n t odos los sistemas d i g i t a l e s sean c3 n o computa- dores hay unas unidades de intercambio d e in formación con e l exterior d e c a r a c t e r í s t i c a s e s p e c i a l e s . En los s is temas modernos estas unidades van l i g a d a s por un lado a l exterior y por e l otro a l bur; d e datos .
También normalmente l a s s a l i d a s acostumbran ser r e g i s t r o s e n los que se carga a p a r t i r d e l bus d e d a t o s l a información que el computador q u i e r e s a ca r por l a d i r e c c i ó n adecuada y l a s ent radas son sencillos mu l t i p l e xado r e s con los que se hace aparecer e n e l bus d e d a t o s l a in formación procedente d e l a entrada d e d i r e c c i ó n adecuada.
I
I
I
i
E l microprocesador, como todo computador, posee un sistema de entrada/salida. For medio del l a s instrucciones de entrada cmse- guirnos t ransfer i r la informaci4n procedente d e l exterior a l inte- r i o r del computador. Con esta operaci6n convertimos las cjePrales existentes en un momento dado, en variables que serán almacena- das en l a memoria del microprocesador para ser tratadas poste- riormente. Los resultados de este tratamiento se convertirán posteriormente en sePla3es hacia el exter ior por medio de las instrucciones de sa l ida ,
Tanto l a s seeales de entrada como las de sa l ida están agrupadas en un n h e r o f i j o de b i t s . Grupos de 8 b i t s para e s t e ' proyecto. Cada uno de estos grupos esta individualirado fksica y lógicamen- te de forma que una instruccibn de E/S rea l i za la transferencia simultanea de todos los b i t s del puerto seleccionado a l acumula- dor que es d e 8 b i t s también.
El proceso d e entrada puede detal larse así:
Con esta secuencia de operaciones hemos guardado e la var iable I (es decir en una posicibn de memoria que identificamos con el nombre simbálico I ) la configuracibn de ceros y unos que existan en e l puerto seleccionado.
Un hecho a tener e n cuenta es que a pesar de estar todas la5 seflales exteriores presentes en las puertos de entrada, el micro- procesador "ve" una entrada solamente en e l momento de rea l i za r una operacibn d e INPUT. Sólo a través d e repetidas operaciones de entrada podrá enterarse d e las variaciones que se vayan produciendo en e l puerto en cuestión.
9
!
E l proceso d e sa l ida de una variable I hacia e l exterior será l a s igu iente :
W
31cc = I
I
~ ~ - - - - -~ -.
En e l caso de 105 puertos de sa l ida una vez realizada una opera- ción d e OUTPU, e1 valor enviado a l puerta permanece hasta que se rea l i za una nueva sa l ida par el mismo puerto.
ENTRADA: La transferencia de datos desde un dispositivo externo a l microprocesador.
SALIDA: La transferencia de datos desde un microprocesador a un dispasit ivo externo.
E l f l u j o d e datos entre e l CPU y dispositivos de E/S puede verse en l a f igura 2.1..
La transferencia de datos entre l a CPU y el disposit ivo externo se produce en e l bus de datos. El BUS d e DATOS está formado por 8 b i t s y en bidireccional, l o cual s i gn i f i ca que l a información se intercambia mediante ocho vias parale las que transportan b i t s a y desde l a CPU. E l d isposit ivo concreto que está implicado en l a transferencia d e datos es seleccionado mediante e l BUS de DIREC- CIONES. La CPU u t i l i z a los ocho b i t s menos s igni f icat ivos de los 16 b i t s d e que consta e l bus d e direcciones para direccionar solamente un disposit ivo externo de 110, y todos los d iec i se i s b i t s del bus d e direcciones para direccianar l as posiciones de memoria E l BUS de CONTROL transporta l as sePrales que sincroni- zan l a colocaci6n de l a informaci6n en lac buses d e direcciones y datos, con l a s actividades de l a GPU y d e los dispositivos exter- nos. A s í durante e l intercambio de informacibn entre l a CF'U y los dispositivos externos participan t res buses. Los buses de DATOS, d e DIRECCIONES y de CONTROL. Estos buses son mostradas en la f igura 1 . 1 . .
10
D I SPOS I T I U0 DE
ENTRAPA 8 BITS CPU
PI S P l i l T I U0
8 BITS SAL I DA
Figura 2.1. Diagrama de f l u j o de da tos entre el CPU y d i s p o s i t i - vos de E/S.
i l
I). PJ.
INTERFACES (P.P. I . 8255)
<( Inter faz>>*. Es un término que se usa bas tante y que i n d i c a una capac idad d e comunicación con d i s p o s i t i v o s e x t e rnos , t a l e s como t e c l a d o s , v i d e o o v i s u a l i z a d o r e s d e , l e d s . La comunicación puede ser- a l a ent rada o a l a s a l i d a d e datos .
Un d i s p o s i t i v o d e E/S nunca se conec ta d i rec tamente a l bus pr in- c i p a l d e l a computadora, s i n o que a través d e una e s p e c i e d e c a b l e b se conec ta a 5u p r o p i o c o n t r o l a d o r d e l d i s p o s i t i v o , que es el que a su v e z se conec t a a1 bus p r i n c i p a l . L o s c o n t r o l a d o r e s d e d i s p o s i t i v o acttlian d e i n t e r f a z entre los d i s p o s i t i v o s y l a compu- tadora.
Hay d a s formas t f p i c a s d e d i r e c c i o n a r los d i s p o s i t i v o s d e entra- da s y s a l i d a s d e los microcomputadores. Una d e e l l a s es a t r a v é s d e i n s t r u c c i o n e s de ent radas y s a l i d a s con l o cua l e l microproce- sador- puede d i r e c c i o n a r 256 puer tos d e ent rada y 256 puer tos d e s a l i d a . Otro método adoptada po r motoro la en e l 68(30 y o p t a t i v o en el I n t e l 8086, el 808& se u t i l i z a en este proyec to , consiste e n d i r e c c i o n a r los d i s p o s i t i v o s d e entrada y s a l i d a como pos i - ciones d e memoria en l as que se puede leer o escribir informa- c ibn.
Una i n t e r f a c e d e un computador es l a c i n c r o n i z a r i ó n d e l a trans- misi4n d i g i t a l d e d a t o s entre un computadar y d i s p o s i t i v o s exter- nos, inc luyendo l a memoria y los d i s p o s i t i v o s d e E/S IEntrada/Sa- l i d a ) .
L a s c u a t r o t a r e a s p r i n c i p a l e s d e las i n t e r f a c e s 5m: ENTRADA, SALIDA, GENEHACION DE LOS IMPULSOS DE SINCRONIZACION y tratamien-' t o d e l a s INTERRUPCIONES. Es t a s se resumen a cont inuacibn:
ENTRADA: La t r a n s f e r e n c i a d e d a t o s desde un d i s p o s i t i v o e x t e r n o a l microprocecador.
SALIDA: La t r a n s f e r e n c i a d e d a t o s desde un microprocesador a un d i s p o s i t i v o externo.
CREACION DE IMPULSOS DE SINCRONEZACION: Generar los impulsos d e s i n c r o n i z a c i b n apropiados para l as ent radas y s a l i d a s en l a t r a n s f e r e n c i a d e da tos , l lamados impulsos d e s e l e c c i ó n d e l d i s p o s i t i v o , para coor- d i n a r l a s a c c i o n e s d e l d i s p o s i t i v o e x t e r n o y e l microprocesador.
MANEJO DE LAS INTEHUPGIONES: De t e c t a r y a tender l a s s e h a l e s d e i n t e r rupc i ón que 1 legan a l microprocesador desde los d i s p o s i t i v o c e x t e rnos .
12
PROGRAMMABLE PERIPHERICXL INTERFACE 8255
INTRODUCCION
E l 8255 es un per i fér ico interfaz programable < P.P.I. ), dispo- s i t i v o disehado para ut i l i za rse en sistemas con microprocesadores INTEL. Su funcibn es de proposito general para dispositivos de E/S ya qcie s i r ve de interface entre equipo per i fér ico y e l s iste- ma d e bus d e una microcomputadora. La configuración funcional del 8255 e5 programada por e l software del sistema, as í que normalmente no necesita muchos componentes lbgicos externas para hacer interfaces con dispositivos peri fér icos o estructuras.
Este disposit ivo sipve d e gran ayuda en l a coneeibn entre l a computadora y dispositivos de E/S que envian palabras de datos de €3 b i t s ( incluso palabras de 12, 16 o 24 b i t s ) . La transmisibn paralelo es htil en todas aquellas aplicaciones qcie requieran unas transmisiones a gran velocidad, y ut i l icen dispositivos no demasiado alejados del campittador central . No hay ninguna sincro- nizacibn especial en l as transmisiones en paralelo. Las palabras se envían tan rápidamente, o tan lentamente, como permita e l software. Si l a transmisión debe ser lenta, se introducen retar- dos por software. La velocidad máxima de transmisión viene l i m i - tada por l a rapidez con que e l sistema pueda sacar los datos.
El 8255 viene en una p a s t i l l a de 40 terminales ( igual que io5 procesadores Inte l ) . Tiene 24 l íneas de entrada o de sa l ida , para l a s cuales el usuario puede de f in i r una gran cantidad de configu- raciones. Hay tres modos d e transmisibn bdsicos,: E l Modo O (En- trada/Salida basica) ; E l Modo 1 (EntradaíSalida habi l i tada) , y e l Modo 2 (RUS b idireccional ) . Las 24 l íneas se agrupan en dos grupos d e 8 b i t s y dos grupos de 4 b i ts . En Modo O, hay 16 maneras de de f in i r las direcciones d e E/S de los 4 grupos de b i ts . Los datos sencillamente 5e envían o se reciben por e l l a s . En Modo 1 , l os dos grupos de 4 b i t s sirven de control y estado, y los grupos de 8 b i t s forman datos cada uno. Cada grupo de €3 b i t s se puede de f in i r como de entrada o sa l ida . En este Modo, e l usuario mira un c ierto b i t del octeto de estado para saber si e l disposit ivo externo está preparado. S i lo está, el octeto d e datos se puede transmitir.
Las órdenes se transmiten a l P .P. I . 8255 por medio de una palabra de control. Siempre l a primera instrucción a ejecutar debe de ser l a de sa l ida , ya que esta instrucción debe de sacar l a palabra de control, para que d e esta forma se program6 el P.P.1 8255. Estas órdenes afectan a caracter íst icas como e l agrupamiento, l a direc- ción de io5 puertos,' y l a s asignaciones de control y estado. La f igura 3.1 muestra cómo se debe formar l a palabra de control.
PALABRi
L J RTO ir I INFER IORI
I
PUERTO E 9 1:EMTRADA
W A L I DA SELECCION DE MODO O=MiDDOi O I=MODIIi I I
v
.
Figura 3.1, Estructura de la palabra ;de control para programar el P.P.I. 8255.
14
BUFFER DE RUS DE DATOS
Este buffer es de ocho b i t s bidireccional de tres estados es usado para ser interface entre e l 8255 y e l sistema de bus d e datos. Los datos son transmitidos o recividos por e l buffer a l executarse l a instrucci6n de entrada o sa l ida por e l CPU. La palabra de control y l a información del estatus son también transferidas a travks del buffer de bus de datos.
LECTUHA/ESCHITUHQ Y LOGICA DE CONTROL
La funci6n de este bloque e5 l a de manegar todas las transferen- c ias externas e internas tanto de datos y palabras d e control o estatus. Este acepta entradas de l 105 buses de dirección y con- t ro l , cambia los comandos de sa l ida a ambos grupos d e control.
(CS) Selección de l a pas t i l l a . Activa a nivel bajo, en este pin de entrada hab i l i ta l a comunicaci6n entre el 8255 y e l CPU.
c
(A0 y A l )
Lectura. Activa a nivel bajo, en este pin de entrada habi l i ta a l 8255 a mandar e l dato o l a informacih de estatus a l a CPU, en, e1 bus de datos. En esencia, este permite a l a CPU leer del 8255.
Escritura. Activa a nivel bajo, en este p i n de entrada hab i l i ta a l a CFU para escr ib i r datos a palabras de control en e l 8255.
Puerto de seleccián cero y puerto d e selección uno. Estas semlesde entrada, en conjunción con l as entradas RD y WR, controlan l a seleccián de uno de los tres puertos o 10% registros de l a palabra de controf. Estos son normalmente conectados a los b i t s menos s igni f icantes del bus de direcciones ( A 0 y A l ) . A continuación en l a tabla 3.1 se muestran l as operaciones básicas del P.P.I. 8255.
1
I
I
o o o 1 CI Puerto A --- > BUS de datos o 1 C) 1 o Puerto B ---> Bus d e datos 1 o o 1 o Puerto C --- >. BU5 d e datos
I
I
1
Tabla 3.1. Operacibnes básicas del P .P . I . 8255.
(RESET 1 Activo a n i v e l a l to , en esta entrada limpia 3 0 s regis- tras de control y todos los puertos (A,B,C) son configurados de entrada.
GRUPOS DE CONTROL GRUPO A Y muro E La configuración funcional de cada puerto es programada por e l software de l sistema. En esencia, l a CPU manda una palabra de control a l 8255. La palabra de control contiene informaci6n ta les como e l "Modo" " H i t set" , " B i t reset" , etc I ,esta in ic ia l i za l a configuración funcional del 8255.
Cada bloque d e control (Grupo A y Grupo Ni aceptan "comandos" del control 16gico de Lectura/Escritura, recive "palabras de control" del bu5 interno de datos y manda los comandos adecuados a los puertos asociados.
Grupo d e Control A - Puerto A y parte superior del puerto C {C7-C4 1 Grupa de Control E - Puerto E y parte in fer ior del puerta C (C3-CO 1
Ver f igura 3.1.
Sólo se puede escr ib i r l a palabra de control. No se permite l a operacibn de lectura sobre l a palabra de control.
PUERTOS A , E) Y C
El 8255 contiene tres puertos de 8 b i t s ( A , B y C ) . Todos pueden ser configurados en una ampiia variedad d e caracter íst icas fun- cionales por el software d e l sistema pero cada uno d e e l l o s tiene sus propias caracter ist icas especiales para aumentar más e l poder y l a f l ex ib i l idad d e l 8255.
Puerto A . Escribe un dato d e 8 b i t s en el latchibuffer y lee un dato d e 8 b i t s del latch.
Puerto 3. Lee/escribe un data en e l latch/buffer y lee un dato de €3 b i t s del buf fer .
Puerto C. Escribe un dato d e 8 b i t s en e l latch/buffer y lee un dato de 8 b i t s del buffer (no se latched para entrada). Este puerto puede ser dividido en dos puertos de cuatro b i t s bajo un modo de control. Cada puerto d e cuatro b i t s contiene cuatro latch y estos pueden ser usados para las sa l ida d e las seflales de control y entradas de sePiales de estatus en conjunción con los puertos A y B.
MODOS DE SELECCION
Existen tres modos básicos de operacitin que pueden ser seleccio- nados por e l software del sistema:
Modo O - Entrada/Salida básico Modo 1 - Entrada/Salida por habil itacibn Modo 2 - BUS bidireccional
Cuando l a entrada d e reset esta en "a lto" todos los puertos 5e f i j a rán como modo d e entrada ( l a s 24 l ineas estarán en a l to , estado de a l t a impedancia). Despues d e r e t i r a r l a h a b i l i t a c i h del reset, e l 8255 puede quedar en mudo de entrada s i no e s requerida una in ic ia l i rac ibn adiciunal. Durante l a ejec-ucihn del programa del sistema cualquiera de los otros modos pueden ser seleccionados usando una simple instrucción de sa l ida . Esto per- mite que e l 8255 s i rva a una variedad de dispositivos peri fér icos c m una simple rutina de mantenimiento d e software.
Los modos para e l Puerto A y Puerto E pueden ser definidos sepa- radamente, mientras e l Puerto C es dividido en dos porciones como sea requerido por la5 definiciones del Puerto A y Puerto E . Todos los reg ist ros de sa l ida , incluyendo e l estado de los f l ip - f lops , serAn reseteados s i se cambia el modo. Los modos pueden ser combinados hasta que su def inicitin funcional pueda ser cortada para cualquier estructura d e E/S. Por instancia; e l Grupo B puede ser programado en modo O para monitorear simples cerrados de switch o desplegar resultados computacionales, e l Grupo F1 puede ser programado en Mado 1 para manitorear un teclado o cinta lectora.
E l disePro del 8255 a tomado en cuenta cosas ta les como tar jetas e f ic ientes para PC, definicián de sehales de control para manejar ta r j e tas para PC, y completa f l ex ib i l idad funcional para soportar casi cualquier disposit ivo per i fér ico s i n lógica externa. Tal diseño representa e l máximo uso d e 105 pines disponibles.
17
! 1
MODOS DE OPERACION
MODO c ibn para da t o do.
Hod o - - - I
MODO
t:) (Operac iones b á s i c a s d e Entrada/Sal ida ) . Esta r en f i gu ra - func iona l provee s imp l e s ope ra c i ones d e entrada y s a l i d a
cada uno d e los tres puertos . No maneja "handshaking", e l simplemente se e s c r i b e o se lee desde el puerto e s p e c í f i c a -
O Def i n i c i b n d e func iones bAsicas: Dos puer tos d e 8 b i t s . Cua lqu ie r puer to puede ser d e entrada o s a l i d a . Las s a l i d a s son latcheadas. La s ent radas n o son latcheadas. 16 Conf i gurac iones d i f e r e n t e s de Entrada/Sal ida son p o s i b l e s e n este Modo.
I
1 IEntrada/Sal ida por h a b i l i t a c i ó n ) . Esta c on f i gu ra c i bn func iona l p r o v e e un medio para t r a n s f e r i r d a t o s d e E/S a o desde un puer to e s p e c í f i c o en conjuncibn con h a b i l i t a c i o n e s o s e h a l e s d e "handshaking". En Modo 1 , el Pue r t o A y P u e r t o B usan l í n e a s d e l Puerto C para generar o a c ep t a r e s t a s se f fa l es d e "handsha- king".
Modo 1 D e f i n i c i ó n d e func iones bás icas : - Dos Grupos (Grupo A y Grupo E). - Cada Grupo c o n t i e n e un puer to d e d a t o s d e 8 b i t s y un puerta
para control/dato d e 4 b i t s . - E l pue r t o d e d a t o s d e €3 b i t s puede ser d e entrada o s a l i d a , ambas ent radas y s a l i d a s son latcheadas. E l pue r t o d e 4 b i t s es usado para control y e s t a t u s d e l pue r t o d e d a t o s d e 8 b i t s .
MODO 2 ( H a b i l i t a c i ó n d e l Bus B i d i r e c c i o n a l d e Entrada/Sal ida) . Es ta conf i gu ra c i án f unc i ona l provee un medio para comunicarse can un d i s p o s i t i v o p e r i f é r i c o o e s t r u c t u r a e n un s i m p l e bu5 d e 8 b i t s para t r a n s m i t i r o r e c i v i r d a t o s (Bus B i d i r e c c i o n a l d e EntradaíSa- l i d a ) . Las siet'fales d e "handshaking" son p r o v i s t a s para mantener un p r o p i o bus para el f lu j o , d i s c i p l i n a d e manera s i m i l a r a l MODO 1. La generac ibn d e f unc i ones d e i n t e r rupc i ón y hab i l i tac ibn/de- s a b i l i t a c i b n es tán también d i s p o n i b l e s .
2 D e f i n i c i b n de func iones bás icas : Usado en Grupo A solamente. Un bus para el puer to b i d i r e c c i o n a l d e 8 b i t s ( Pue r t o A ) y un pue r t o d e control de 5 b i t s ( Pue r t o C). Ambas ent radas y s a l i d a s 5on latcheadas. E l puer to d e c o n t r o l d e 5 b i t s ( P u e r t o C) es u t i l i z a d o para e l control y e s t a t u s d e l bus d e l puer to b i d i r e c c i o n a l d e 8 b i t s ( P u e r t o A ) .
I i
18 I
Para este proyecto emplearemos el <.:Modo O::.:r. ya que 5410 BE?
realizarán operaciones básicas de E/C. Las datos sencillamente 5e envían o se reciben.
'I
19
o 9
O
DISENO Y FUNCIONAMIENTO DE L A TARJETA
Para e l diseno d e esta tar jeta se ut i l izarbn tres P . P . I . 8255.
E l primer P . P . I . 8255 fué ut i l izado para mandar e l patron prueba, este patron prueba l l eva los niveles lógicos necesarios para probar e l c i rcui to integrado T . 7 . L - bajo prueba. Por l o que los datos de prueba f lu i rán desde e l bus de datos del microprocesadar a l bus de datos del P . P . I . 8255, y este a l a vez las saca por los puertos A o H o C, segQn el puerto seleccionado por las lineas A0 y A l . Por l o que para este P.P . I . 8255 utilizamos la5 direc- ciones de los puertos 300H - 302W. Al direccionar e l puerto 3OOH e l patron de prueba sa l e por e l puerto A del P.P.I. 8255. A l direcciopar e l puerto 301H e1 patron prueba sa l e por e l puerto E del P.P.I. 8255. Al direccionar el puerto 302H e l patron prueba sa le por e l puerto C del P . P . I . 8255. De esta forma se obtienen 24 l íneas de prueba, por l o que se pueden probar c ircuitos inte- grados T.T .L . hasta de 24 pat i l l a s . La decodificación de estas direcciones de los puertos se encuentra en el siguiente capitulo.
Este P . P . I . es só lo de sa l ida , por l o que se programó de acuer- do a l a palabra control que se muestra en l a f igura 4 . 1 .
El segundo F . P . I . 8255 fué ut i l izado para habi l i tar 5610 l as linea5 que llevan los niveles 16gicos de prueba necesarios para probar el c i rcui to integrado T . T . L . bajo prueba. Par lo que los datos de activacibn de líneas fluyen desde e l b is de datos del microprocesador a l bus de datos de l P . P . I . €3255, y este a l a vez los saca par los puertos A o 8 o C, seg6n el puerto seleccio- nado por l a s l ineas A0 y A l . Por l o que para este P . P . I . 8255 utilizamos l as direcciones de los puertos 304H - 306X. A1 direc- cionar e l puerto 304H; l a habilitaci6n de las l íneas salen por e l puerto A del P . P . I . 8255. A l direccionar e l puerto 505H, l a habil itación de l a s lfneas salen por e l puerto E del P.P.I. 8255. A1 direccionar el puerto 306H, l a habil itacibn de l ineas salen por e l puerto C del P . P . I . 8255. De esta manera se pueden habi l i - tar o deshabi l i tar 24 l fneas de prueba, por l o que se pueden probar c i rcui tos integrados T . T . L . hasta de 24 pa t i l l a s . La decodificaci6n de estas direcciones d e l os puertos se encuentra en e l siguiente capitulo.
Este P.P .1 , también es de sa l ida , por l o que se programó de acuerdo a l a palabra control que se muestra en l a f igura 4.2.
El tercer P . P . I . 8255 es ut i l izado para leer l a respuesta del c i rcui to integrado T .T .L . bajo prueba, una vez que fué aplicado el patron prueba. Esta respuesta de l c i rcui to integrado T .T .L bajo prueba f luye desde l o s puertos A o E Q C, 5 e g h e l puerto seleccionado por las l íneas Ai50 y A l . a través del bus d e datos d e l P . P . I . 8255 y d e l bus d e datos del micropracesador, para después ser tratada por medio de.software l a respuesta. Por l o que para este P.P.I. 8255 se uti l izarún l as direcciones de los puertos 308H - 30BH. Por e l puerto 30SH es le ida l a respuesta del c i rcui to integrado T . T . L . bajo prueba que esta presente e n e l puerto A del P . P . I . 8255. Por e l puerto 3Q9H es leida l a respues-
2 o
t a de l c i r c u i t o integrado T.T.L, ba jo prueba que está presente en e l puerto B de l P.P.I. 8255. Por e l puer to 30AH es l e i d a l a respuesta d e l c i r c u i t o in tegrado T.T.L. ba jo prueba que esta presente en e l puerto C de l P.P.I. 8255. De esta forma se pueden lee r 24 l í neas de respuesta y pudiendo así probar c i r c u i t o s integrados T.T.L. hasta de 24 p a t i l l a s . La decodi f icac ión de estas d i recc iones de l o s puertos se encuentra en e l s igu ien te c a p i t u 1 o.
Este P.P.X. es só lo de entrada, por l o que se programb de acuerdo a l a palabra con t ro l que se muestra en l a f i g u r a 4.3,
Por l o que cada s a l i d a d e l l o s puertos A, E y C de l primer P.F.I. 8255 pasan, cada entrada, por cada ampl i f icador de t r e s estados con entrada de h a b i l i t a c i ó n a c t i v a a n i v e l a l t o (74125). Cada s a l i d a de l o s puertos A, Ei y C de l segundo P.P.I. 8255 se conectan a l a s p a t i l l a s correspondientes a l a h a b i l i t a c i b n delos ampl i f icadores de t r e s estados (74125). Por a l t imo l o s puertos A, E y C de l t e rce r P.P.I. 8255 son conectados a l a s sa l i das de l o s ampl i f icadores de t r e s estados, 105 cuales a l a vez van a un conector montado en l a t a r j e t a ,
’ E l diseea de es ta t a r j e t a se encuentra en l a f i g u r a 4.4.
Para t r a n s f e r i r l a información que es ta presente en e l bus de datos de l microprocesador, se conectn l i n e a a l i nea e l bus de datos (DO - D7) d e l micropracesador con l a s l fneas de datos (DO - D7) de l P.P.I. 8255.
Además se conectan l a s l i neas de contra1 de l ec tu ra IHDS o e s c r i t u ra el m i c r o p r o c e s a d ~ con l a s 1 íneas cmrrespondien- tes de l ec tu ra (RD) o e s c r i t u r a (WH) de l P.F.I. 8255. Para que de esta forma l a comunicación en t re e l microprocesador y e l P.P.I. €3255, cuando se esta escr ib iendo o le iendo hacia o desde e l P.P.I. 8255, sea l a correcta.
-
!
lJna v e i que son conectados, e l bus de datos, ciefiales de con t ro l . en t re e l microprocesador y e l P.P.I. 8255, y puertos d e l P.P.1. 8255, l o s cuales l levan l o s n i ve les lóg icos a ap l i ca r , h a b i l i t a - c iones/desabi l i tac iones y lecturas, a l c i r c u i t o integrado T.T.L. *
ba jo prueba.Sólo nos queda disefiar l a cod i f i cac ibn de l a s d i rec- ciones de l o s puertos.
21
e
, I
I
.. .- . -
I I
I
I
Figura 4.1. Palabra de control para programar al primer P.P.I. 8255
22
I
RTO I: i[ INFERIOR)
I
PUERTO E g I=ENTRADA
#II=MOPO O pMODO I r
2=HL I PA I
-5ELECCION bE MOP6
# r
0 INDICADOR DE MODO I =fiC;T 1 U# f
Figura 4.2. Falabra de control para programar al segunda P.P.I. 8255
23
1 9 E I = 9BH
PUERT6 A
SCLECCION DE MOP9 qDO=MODO P
tll=MIIDI) I
0 I=ENTRADA ?=SAL I DA
[IX=MO¡IO 2 u’
8
0 INDICADOR DE MODO I =BCT I U0
Figura 4.3. Palabra de contra1 para programar al tercer F.P.I. 8255
1
- -~ ~ __ ~~ -__ - ~- __ ~~~
I
Figura 4.4. Diseffo de la tarjeta probadara de c i r c u i t o s integrados T.T.L..
5
DIRECCIONAMIENTO DE PUERTOS
Clntes d e que podamos usar d i s p o s i t i v o s d e E/S debemos aprender cómo actha el d i recc ionamiento a d i s p o s i t i v o s externos. Recuerde que una d i r e c c i b n e n hexadecimal (HI podr fa referirse a l a memo- r i a o a un puer to de entrada o de s a l i d a . La computadora debe tener l a capacidad d e d i f e r e n c i a r entre los tres p o s i b l e s s i q n i - f i cados
Las s a l i d a s de control d e l microprocesador t i e n e n l a in f c t rmac ib necesa r i a para s e l e c c i o n a r e n forma adecuada el p u e r t o a utili- zar . Para operac lones d e E / S bás icas , l a s tres sePrales d e espe- c i a l interes son AEN, RD y WR. Sus d e f i n i c i o n e s son l a s s i gu i en - tes :
( AEN 1 H a b i l i t a c i ó n de d i r e c c i ó n . Siempre que suceda una tran- sacc idn entre el procesador c e n t r a l y un p u e r t o d e entrada o de s a l i d a , l a l i n e a AEN pasa a un n i v e l l o g i c 0 ba j o HO>.:2..
CRD) P e t i c i b n d e l e c t u r a . Siempre que el procesador c e n t r a l l e a d a t o s d e e n t r a d a d e l a memoria o de un puer to de entrada, l a l i n e a RD pasa a un n i v e l l b g i c o b a j o *:<O>.:>.
(WR) P e t i c i ó n de e s c r i t u r a . Siempre q u e el procesador c e n t r a l esté e s c r i b i e n d o d a Q s e n memoria o para un puer to de s a l i d a , l a l í n e a WR pasa a un n i v e l 16g i co b a j o (<O>>.
DECODIFIC~!ICION DE E/S
Para este proyec to se n e c e s i t a más d e un puerto. Los puertos d e l 300H - 302H son u t i l i z a d o s para mandar un patron prueba, este patron prueba l l e v a los niveles l o g i c a s d e prueba n e c e s a r i o s para probar e l c i r c u i t o in t eg rado T.T.L. ba jo prueba. Los puertos d e l 304H - 3ObH son u t i l i z a d o s para h a b i l i t a r sólo l a s l í n e a s que l l e v a n los n i v e l e s l b g i c o s de prueba. Por Q l t ima u t i l i z a m o s los puer tos 3Q8H - 30AH para leer l a respuesta d e l c i r c u i t o in tegrada T.T.L. ba j o prueba. Po r l a que u t i l i z amo5 seis puertos d e s a l i d a y tres puer tos d e entrada respect ivamente .
Para d i f e r e n c i a r entre puer tos de entrada y s a l i d a durante l a s instrucciones d e E/S. Hé tomado los puer tos 3OGH - 302H (En hexadecimal ) y 304X - 306H como puer tos d e s a l i d a , y los puertos 308H - 30AH como puer tos d e entrada. Hi- conc iderado e s t a s direc- ciones d e puer tos por que estan d i s p o n i b l e s como d i r e c c i o n e s d e puertos d e E/S e n cua lqu i e r PC que maneje microprocesador Intel 8086.
Durante una p e t i c i ó n d e E/S (Entrada o S a l i d a ) , l a d i r e c c i b n b i n a r i a de 10 b i t s d e l bus d e d i r e c c i o n e s aparece e n l a s l í n e a s d e A0 a A 9 , d e l bus d e direcciones. Una e x p l i c a c i ó n d e l a c o d i f i - cac ibn d e d i r e c c i o n e s se muestra e n l a f i g u r a 9.1..
26
Una vez diseí’lado l a seleccibn de l a dirflcciein d e los puertos. Esta seftal resultante e5 aplicada a l CS de l P . P . I . 8255 para que sea habi l i tada l a comunicación entre e l microprocesador y el P.F .I . 8255.
Ver f igura 5.1.
a) lúgica de decodificaci6n de l a direccibn de 105 puertos 300H - 302H,
I
U “It b ) Lógica de decodificacibn de la direccibn de 105 puertos 304H
- . - - 30w. .. I
-
- . ._ - __ --__ - ~ _ _ _ -__-_ _ - - -
c) Lbgica de decadificación d s la dirección de los puertos 308H ‘ - 30AH. )<
Figura 5.1. Decodificación de direcciones de puertos de entrada y salida que decodifican las lineas de dirección AO - A 9 , Para los puertos que se utilizan en esté proyec- ta.
28
C 6
MONTAJE Y OPERACION DE L A TARJETA EN UNA PC
Esté c a p í t u l o l e i n t r o d u c i r á a l montaje y coneccibn c m e l mundo externo de esta t a r j e t a probadora de c i r c u i t o s integrados T.T,L., para poder probar c i r c u i t o s integrados T.T.L. . Pasos a seguir :
A b r i r l a CPU de l a P C de acuerdo a l manual de l a misma.
I n s e r t a r en un s l o t de expansion d ispon ib le l a t a r j e t a probadora de c i r c u i t o s integrados T.T.L.. Quedando e l peine de l a t a r j e t a empotrado en e l conector que corresponda a La t a r j e t a , e l conec- t o r d e l puerto pa ra le lo debe apuntar hacia e l e x t e r i o r . Vease l a f i g u r a 6.1. .
Cerrar l a CPU de l a PC.
Conectar un conector i n t e r f a z , uno a uno, a l puerto pa ra le lo de l a t a r j e t a y e l o t r o extremo de l conector, conectar la a l a base o protoboard donde se i n s e r t a r á e l c i r c u i t o integrado T.T.L. a probar.
Una vez montada l a t a r j e t a en l a FC, se podrá operar esta t a r j e t a con 5410 e jecu tar e l programa probador de c i r c u i t o s integrados T.T.L.. Las inst rucc iones para operar este programa se encuentran descr i tas en e l manual de operacibn de l programa probador de c i r c u i t o s integrados T.T,L.2 e l cual se encuentra en l a s igu ien te par te de este reporte.
i
29
tTARTETA PROBADORA ¡ 5E CIRCUITOS.
I NT6Rh005 T.T.L..
Figura 6.1. Montaje de la tarjeta probadora de c ircuitos integrados T.T.L..
30
T 1
T
!
ESPECIFICACION DEL SQFTWARE.
La e s p e c i f i c a c i ó n es dada a un ((programador>+>- que e s c r i b e un programa a p a r t i r de e l l a .
En e s t a e tapa se e s p e c i f i c a e n t&rminos g l o b a l e s lo que el conjunto d e programas (SOFTWARE) debe d e hacer.
A n t e s d e cont inuar , es importante tomar en cuenta un r e q u i s i t o fundamental e n cuanto a l l engua j e de programación a u t i l i z a r . E l requisito es e l s i g u i e n t e . E l l engua je d e programación a u t i l i z a r deberá tener l a capacidad d e poder d i r e c c i o n a r puer tos para d i s p o s i t i v o s d e E/S d e l microprocesador (CPU) 8086/88, para que de alguna u o t r a forma se pueda leer o e s c r i b i r informaci6n e n los puertos d i recc ionados .
E l s o f t w a r e ( con junto de programas) o paquete deberá de hacer l o s i q u i e n te :
- A c t u a l i z a r l a e x i s t e n c i a de c i r c u i t o s in t eg rados T.T.L. que se pueden probar.
- Lee r o s e l e c c i o n a r el c i r c u i t o in t eg rado T.T.L b a j o prueba (I
- Mostrar por p a n t a l l a e l e s tado e n e l que se encuentra el c ircuito in t eg rado T.T.L. b a j o prueba.
T 2
.
I
DISENO DEL SOFTWARE
En esta parte se determina l a relaciein entre todas l as partes del programa.
Se construye un diagrama de proceso de datos para mostrar lac, necesidades de procemamiento d e l a informacibn.
Acontinuación, en l a siguientes hojas, se muestra e l diagrama de ejecuciijn de los programas realizados para probar c ircuitos inte- grados T . T . L . en l a PC.
32
ARCHIVOS
TIPOS
DISPOS I T IVOS EXISTENCIAS DE
I ALTAS
FUNC ION PATRON PATRON 1
CLONES DE A F I N P INES PRUEBA VERIFICAR
EXISTENCIAS L__1
PATRON A
VERIFICAR
I ALTAS I
I I 1 I 1
F I N
F I N
T1ioS D DISPOS I T IVOS
[CIiONBS/*lplpI PRUEBA VERIFICAR
I BAJAS I 1 I
CAMBIOS 7 --- I FUNC ION
DE PINES PRUEBA
33
I PROBADOR DE 1 CIRCUITOS INTEGRADOS T . T. L.
ARCHIVOS
I
PRESENTACIO MUESTRA IVO CARACTERISTICAS
pii-ps- ARC IVO EXISTENCIA
C I F I PRODUCTOS FUNCION
MAf3DA / * I F / RESPUESTA RESPUESTA
34
DISENO DE ARCHIVOS
Esta p a r t e c o n s i s t e e n l a construcc i6n d e los r e g i s t r o s que se ucarón comu r e f e r e n c i a para acumular d a t o s y ob tener in formación. Despui-s d e e s t a b l e c e r l a e s t ruc tu ra del a r c h i v o y antqs d e i n i - c i a r l a e x p l o t a c i 6 n , se efectuó una aE tua l i z a c i ón .
Para a c t u a l i z a r los a r c h i v o s se construyó un programa, e1 cua l se encuentran e n e l apendice C.
La e s t r u c t u r a d e los a r c h i v o s y r e g i s t r o s u t i l i z a d o s en este p roy e c t o se encuentran e n l a s i g u i e n t e boja.
35 .. * .J? "i
REGISTRO DEL ARCHIVO EXISTENCIA. DAT
STRING C51
ENTERO
REGISTRO DEL ARCHIVO TIPOS. DAT
T IPO INUMERO’DE P I N S I P I N GN I P I N VCCl ENTERO ENTERO ENTERO
SERIE
STRING C51
REGISTRO DEL ARCHIVO CLONE.DAT
DESCRIPCION NOM3RE COMPUERTAS COMPONE 84 ES
T IPO NUMERO DE
ENTERO STRING C241 STRING C241 STRING C301 STRING I101
REGISTRO DEL ARCHIVO PRUEBA. DAT
SERIE PATRON
REGISTRO DEL ARCHIVO VERIFICA. DAT
Estructura de los archivos y reg ist ros ut i l izados en este proyecto. La estructura de l reg i s t ro muestra e l nombre de l campo y l a estructura de dato de cada campo. I
36
T 9
DISENO DE PROGRAMAS
Partiendo del capitulo de l a especificaci6n del software, c re í conveniente rea l i za r l o s programas en e l lenguaje d e programación PfiSCAt, util izando e l compilador d e TURBO PASCAL para PC/MS-DOS, debido a que soporta e l direccionamiento de puertos para disposit ivos de E/S can gran faci l idad, además que es un lenguaje poderoso que puede ser compilado y ejecutado en cualquier PC, debido a l a s caracter íst icas dadas por e l sistema operativo MS- DCIS. Adernas debido a que es un lenguaje estructurado y a s u gran similitud con el e s t i l o de programación a l de psedudocbdigo.
Las técnicas modernas de desarrol lo de programas son esencialmente versiones formales del mhtodo tradicional de programaci6n.
E l desarrol lo más importante a l a fecha en l a construcción de programas ha sido l a introducci6n de lenguajes de programación de a l t o nivel y compiladores para e l l o s .
Un programa es l a expresión de l a solución a un problema en un lenguaje aceptable para e l computador, y l a programación es e l proceso d e traducir l a solución a tal lenguaje.
Un programa de computador es jerárquico. La estructura jerárquica es obtenida mediante e l uso de procedimientos,
La primera decisión importante que debemos hacer cuando diseflamos un nuevo programa e s si empezamos en l a parte m á s a l t a de l a jerarquía ( e l nivel más abstracto) , Q s i empezamos en l a parte más baja (nivel m á s detal lado) y trabajamos hacia arr iba.
En este proyecto nos abocamos por e l primer método: desarrol lo de programas de arr iba hacia abajo. La escritura del programa consiste en proponer una solución m u y abstracta y entonces ((refinarla>->- sucesivamente hasta que esté enteramente expresada en e l lenguaje de programación escogido.
Durante l a programaci6n l a descripción de los procesos e s dada a los programadores. El primer paso d e esta etapa consiste en analizar dicha descripción y preparar un pseudocbdigo que indique detalladamente l a forma en que se su procedimiento se ejecutará en l a computadora, Este pseudoc6digo se usa para codi f icar en un lenguaje de programación.
Los procedimientos por si mismus no refinan l a solución, e l l o s meramente nos capacitan para expresar los refinamientos que hemos hecho en una natacibn conveniente. E x i s t e n tres técnicas principales de refinamiento; las nemotécnicas apropiadas para e l l a s son <<divide y conquistaras>>, <<hacer progresos finitos>:>. y <Xanál is is de casos>*>-. Aplicamos l a primera de é5ta5 dividiendo e1 problema en partes separadas, y entonces conquistamos cada parte en turno. Utilizamos la palabra (<separadas>> para decir que las partes de los subproblemas son independientes una de l a otra. Por ejemplo, muchos problemas en el procesamiento d e datos
37
pueden ser inmediatamente divididos en tres pasos: Leer los datos; Realizar los calcCtlos; imprimir los rescil tados;
Si hay mas datos de los que pueden ser almacenados de una sbla ver, entonces este esquema es inadecuado. Si éste es el caso!, el siguiente esquema es más apropiado:
REP I TE Leer algunos datos; Realizar los calcililos; Imprimir las resultados
HASTA no m á s datos;
Esta es la segunda tecnica de refinamiento; Hacer progresos finitos. El razonamiento es que si nosotros tenemos una manera de hacer progresas finitos hacia la sriilucicin, y lo aplicamos repetidamente, eventualmente llegaremos a la solucibn completa.
La tercera técnica de refinamiento es el análisis de casos. Esto sucede cuando los datos pueden ser divididos en varias clases. Entonces es natural utilizar un procedimiento diferente para cada clase:
REP I TE . Leer un datos;
CASO clase DE clase 1 : Procedimiento 1 ; clase 2 : Procedimiento 2; clase 3 : Procedimiento 3; clase 4 : Procedimiento 4; OTRO
TERM I NA ; Imprime resultados
Procedimiento error
HASTA no mas datos;
Las técnicas de refinamiento son aplicadas en cada nivel hasta que no hay nada más por- ser refinado.
El resultado de dividir y conquistar es una secuencia de propasiciones a un compuesta. El método iterativo (hacer progresos finitos) es modelado por una proposicibn FOR, WHILE o REPEAT, y el análisis de casos puede ser modelado por una proposici6n CASE, o por proposiciones de EOQLE, por una proposicibn IF o una proposicibn I F compuecta.
El desarrollo de arriba hacia abajo no siempre da soluciones eficientes.
Hay varias mt-todos para documetar e1 diciePfo de una aplicación. El pseudocódigo es una alternativa flexible por que no tiene una sintaxis estricta o requerimientos de formato,
Los programas fueron realizados en turbo pascal estos se encuentran en el apendice C. Los programas son copia f i e l del pseudocbdigo ut i l izado en e1 disePro de 105 programas.
.
39
\
T
INSTALACION DEL SOFTWARE
Todos los programas fuerón realizados en turbo pascal, los programas fuente se encuentran en un dicquette cuya etiqueta es PROLOG (PHObador LOGico de c ircuitos integrados T .T .L . 1. Para insta lar los programas p' archivos en una PC, se deben seguir los ciguien tes pasos :
- Insertar e l diskette PROLOG en l a unidad de diskette A
- Hacer una copia del diskette PROLOG, ejecutando e l siguiente comando desde e l sistema operativo de l a PG,
copy a:#.# b:
Para bajar l a informaciún del diskette PROLOG a disco duro a que ejecutar e l s i gu iente comando:
- Insertar e l diskette PROLOG en l a unidad de diskette A
copy a:$.# c :
40
MANUAL DE OPEHCSCION
Una vez instalado l o anterior, a que ejecutar e l programa:
load-files Para actualizar los archivos. prolog Para probar c ircuitos integrados T,T.L.
E l manual para el programa prolog se encuentra en el apendice D.
El manual para e l programa load-files se encuentra en( el apendice E .
41
CONCLUSIONES
Con este proyecto cualquier persona que disehé circuitos elec- trbnicos lbgicos y maneje circuitos integrados T . T . L . podrá probar los c ircuitos integrados T . T . L . que necesite, ya que con insertar e l c i rcu i to integrado T . T . L . bajo prueba sobre una base o protoboard, conectar e l canector interfaz en l a s pa t i l l a s correspondientes y executar el programa probador de circuitos integrados T . T . L . ; en menos de un segundo sabe e l estado en e l que se encuentra e l c i rcui to integrado T . T . L . bajo prueba.
Con l a realizacibn d e este proyecto se loqrb automatizar y min i - mizar e l tiempo requerido para poder probar un circuito integrado T . T . L . as i como también dar mayor confiabi l idad y minimizar e l tiempo en e l armado de cualquier c i rcui to ltigico.
42
e
BIBLIOGRAFIA
Borland,
Ciarcia,
Ciarcia,
Grsgono , Nicho1 , Mommpin
Morgan ,
Eorland International, INC. (1985). Turbo Pascal (Reference Manual, Versibn 3.0). Steve ( 1984). Construya una microcomputadora basado en e l 2-80, By te Books, Mc. Graw - H i l l . Steve (1987). Build the c i rcu i t ce l l a r IC tester , BYTE (Revista Mensual), Uoviembre y Diciembre d e 1987, Pags. 303-313 y Pags. 283-289 respectivamente. Peter (1984). Programación en Pascal, Fondo Educativo Interamericano. Joseph C. (1984). Microprocesador Z-80 (Programació e inter faces ) , Publicaciones Marcambo.
microcomputadores, Serie: Mundo electrónico, Publica- ciones Marcombo. Christopher L. (1984). Introduccibn a l microprocesador 8086/88 (16 B i t s ) , Byte Books, Mc. Graw - H i l l .
Po b 1 et José (1984). Micropr~esadores Y
Signetics, Signetics (197811 Mánual Data Logic T . T . L . .
!! m
"I m
N m a
I *-I
!J 'L . I L 3
i
I
I
I
m N1. I i- t-
L s ea O r h
3 Ii U
* , I
a r
-- . _ - -- - -- - ----
h
I-
,
f
!
I
t
0
T
T.T.L..
.
' 1
- 7 - 1 - --- --
ROGRAM Proyecto < INPUT, OUTPUT f;
YPE DISPOSITIVO = STRING C 5 3; ARREGLO = STRING C 24 1; FUNCION = RECORD
s e r i e : DISPOSITIVO; t i p o : INTEGER; num-compuertas : INTEGER; funcion : ARREGLO; num-comp : CSRREGLO j descr ipcian : STRING C 30 1; nombre : STRING C 1 0 3
END; PRODUCTOS = RECORD
t i p o : INTEGER; num-pins. : INTEGER; pin-gnd : INTEGER; pin-vcc : INTEGER
END ; CLONE = RECORD
s e r i e : DISPOSITIVO; equivalente : DISPOSITIVO '
END ; PRUEBA = RECORD
s e r i e : DISPOSITIVO; patron : ARREGLO;
END ; VERIFICA = RECORD
s e r i e : DISPOSITIVO; checa : ARREGLO;
END ;
'AH ncim-max , con tador : INTEGER j exis tenc ia : ARRAY CO..9997 o f STRING CSI; arch-existencia : FILE o f DISPOSITIVO; dev : DISPOSITIVO; Arch-productos : FILE o f FUNCION; producto : FUNCION; Arch-tipos : FILE o f PRODUCTOS; t i p d e v : PRODUCTOS; Archc lones : FILE o f CLONE; devc lone : CLONE; Arch-pruebas : FILE of PRUEBA; pruebadev : PRUEBA; Arch-ver i f icacion : FILE o f VERIFICA; v e r i f i c a d e v t VERIFICA; fcincion-bk : STRING C 4 O J ; nctm-pin : ARRAY C 1 . .4C)J o f INTEGER;
ROCEDURE Abrearchivos;
EGIN ASSIGN f Archex is tenc ia , 'EXISTENC.DAT'1; ASSIGN Arch-productos, 'FUNCION.DAT' > ; ASSIGN Arch-tipos 'TIPOS.DAT' ) ; ASSIGN Arch-clones , 'CLONE.DAT' 1; ASSIGN Arch-pruebas 'PRUEEA.DAT' ) ; ASSIGN ( Arch-ver i f icacian 'VERIFICA.DAT'
ND;
ROCEDURE Carga-existencia;
i : INTEGER;
EGIN FOR i := O TO 999 DO
RESET A r c h e x i s t e n c i a 1; i := - 1 ; I F EOF ( A r c h e x i s t e n c i a )
ex is tenc ia C i 3 := ' ' ;
THEN
ELSE WRITELN ( 'No hay componentes e lec t ron icoc . ' 1
REPEAT READ I A r c h e x i s t e n c i a , dev 1; i := i + 1 ; ex i s tenc ia C i l := dev
UNTIL EOF Arch-existencia 1; nummax := i
NO;
HOCEDURE I n i c i a l i z a ;
EG IN Abre-archivos; Carga-ex i s tenc i a
ND;
ROCEDURE Presentacion;
EGIN ClrScrr; Tex tMode ; Window (20,1,60,29) ; TextColor ( White ) ; TextBackground I B lue ) j C l r S c r ;
WRITELN ( 'PROBADOR DE CIRCUITOS LOGICOS'); GataXY (6,101; WRITELN < 'B I E N V E N I D Cl'1; GotoXY (19,12) j WRITELN ( ' f i ' l ; GotoXY (12,141; WRITELN ( ' P R O L O E¡');
WRITELN ( ' D i g i t a cualquier t e c l a para continuar ' 1 ;
GotoXY (5,251 ;
GatoXY (3,191;
GOtOXY 13,23);
GotoXY (20,24) ; WRITELN ' @ GAZUDAJA & DUSAGO U.A.M.-I. F I G A R T ' ) ;
REFEAT UNTIL Keypressed
N D ;
UNCTION Opciones : BOOLEAN;
'AR ch 2 CHAR; e x i t o : BOOLEAN;
iEGIN ClrScr; Tex tMode j Window (25,1,55,25); Textcolor < B l u e ) ; TextBackground White 1; /_I - -_"_ - _ _ I ._----I -
I .,~-.-,-'1- r - w r _ r r 9- >: T - F ~ ~ . I 7 - IF EOF Arc?-!-tipos
'SHEN
ELSE WRITELN 'No hay t ipos de productos electronicos. ' 1
BEG I N REPEAT
REAU í Arch--tipos, tip-dev 1; IF producto. t i po = tip-dev. t ipo
'THEN ex i t0 := TRUE
UNTIL EOF ( Arch-tipos 1 OR exi to ; IF ex i to = FALSE
THEN WRITELN ('No existe t ipo de d i spos i t i vo . ' ) END
ND;
ROCEDURE Lee-productos ;
iAR exi to : BOOLEAN;
:EG I N exi to := FALSE; RESET ( Arch-productos 1 IF €OF Arch-productos 1
THEN
ELSE WRITELN ( 'No hay productos electronicos. ' 1
BEG IN REPEAT
READ ( Arch-praduc tos, producto 1 j IF producto.serie = dev
THEN BEGIN
Lee-t i po j ex i to := TRUE
ENID UNTIL EQF ( Arch-productos 1 OR ex i to ; IF ex i to = FALSE
THEN WRITELN ('No existe d i spos i t i vo . ' ) END
:ND ;
'ROCEDURE Procesa-f un-pin ;
'AH i, j, max, posicion, lac : INTEGER; x : STRING E l l ; funcionec;, compuertas : ARREGLO;
iEG I N j .- .- o; funcion-bk := FOR i := 1 TO 40 DO
num-pin t i l := O ; funciones := producto. f uncion 3 compuertas := praducta.numcomp; max := praducto.num-campuertas; FOR i:=l TO mas DO BEGIN STH í i, x ) ; posicion := 0; WHILE POS (x,compuertas> e:? O DO BEGIN
lac := POS Ix.comouertas):
THEN BEG I l\i
posicion := l a c ; cimptiertas Clocl := ' '
END
BEG IN ELSE
j := j i- 1 ; funcion-bk C j 7 := funciones Elocl; num-pin C j l := l o c ; compuertas Cloc l := '
END END;
IF pasicion *:> O THEN
BEG I N j := j + 1 ; funcion-bk i j l := funciones iposicion3; num-pin C j l := posicion; compuertas Cloc l := ' ' 0 7
j := j i- 1 ; funcion-bk C j l := ' # ' ; numain Cjl := -1
END END
ND ;
ROCEDURE Procesadispos i t ivo ;
NEGIN dev := existencia C contador I ; Lee-productos; Procesa-fun-pin
ND;
ROCEDURE Muas t r a c arac ter i s t i c a s ;
'AH i, desplazamiento, mov : INTEGER;
:EG IN C l rScr ; Tex tMode ; Window ( 1 1,80,23) ; ClrScr ; GotaXY < 1 , 1 ) ; WRITELN 'DISPOSITIVO : ' ,dev:9, ' ' ,producto.descripcion:30 1 ; WHITELN ( 'NUMERO DE PINES', ' ' , ' P I N GND' , ' ' , ' P I N VCL'); WRITELN ' ',tip-dev.num-pins:2,' ' ,tip-dev.pin-gnd:2, ' desplazamiento := POS ('S',funcion-bk) f 3; mov := 3 ; FOR i := 1 TO producto.num-compuertas DO
BEG IN GOTOXY (mov,4);
mov := mov + desplazamiento WRITE ( producto.nombre,i, ' ' ) ;
END ; WR I TELN ;
REPEAT '
i 1i- I - 1;
IF funcion-bk C i l <> ' $ ' THEN WRITE ( funcion-bk Ci3:3 1 ELSE WHITE < ' ' ) ;
i : = i + 1 UNTIL funcion bk i i 3 = ' ' r
.s := 1 ; FIEFEA'T'
I F num-pin C i l > O THEN WRITE num-pin Ci l :3 1 E L S E WRITE ( ' ' I ;
i : = j - i 1 UNTIL num-pin C i l = O; WR T TELN
NI> ;
'ROCEDURE Muestra-respuesta;
'AR i : INTEGER; m i t o : BOOLEAN;
:EGIN exito := F A L S E ; REPEQT
i := 1; REPEAT
IF num-pin t i 3 >* O THEN WRITE 4 prueba-dev.patran C i l : 3 1 ELSE WRITE 4 ' 1;
i : = i + 1 UNTIL num-pin f i l = 0; WRITELN; i := 1 ; REPEAT
I F num-pin t i l (3 THEN WRITE ver i f i ca-dev .checa Ci7:3 E L S E WRITE ( ' '1;
i : = i + 1 UNTIL num-pin E i l = O; WRITELN;
0 . v e r i f i c a d e v . s e r i e := ' 3
v e r i f i c a d e v . c h e c a := ' b . RECSD 4 Arch-pruebas, prueba-dev 1 ; IF p r u e b a d e v . s e r i e = dev
THEN REAü ( Arch-ve r i f i cac i an , v e r i f i c a d e v ELSE exito := TRUE
UNTIL EOF { Arch-pruebas 1 OR e x i t o ; GotoXY (3,20>; WRITELN ( ' D i g i t a cua l qu i e r t e c l a para cont inuar . ' ) ; REPEAT UNTIL Keypressed
:ND ;
'ROCEDURE Lee-respuesta;
'AH exito : BOOLEAN;
fEGIN / exito := F A L S E ; KESET ( Arch-ver i f i c a c i on 1 ; I F EOF ( Arch-ver i f i cac iun
THEN
ELSE WRITELN { 'No hay patrones de v e r i f i c a c i o n . '
BEGIN REPEAT
RECID ( Arch-veri f i c a c i on v e r i f i c a d e v 1 ; I F v e r i f i c a - d e v . s e r i e = dev
THEN
i"iciest ra-respuesta ; @Xi to := TRUE
END UNTIL ECiF C Arch-ver i f icac ion 1 OH ex i to ; I F ex i tc ! = FALSE
THEN WRITELN ( 'No e x i s t e patron de v e r i f i c a c i o n para el d ispos i t i vo si END
ND;
ROCEDURE Lee-prueba j
AR e x i t o : BOOLEAN;
EGIN ' I v e r i f i c a d e v . s e r i e := ' 5
ve r i f i cadev .checa := ' e x i t o := FALSE; RESET ( Arch-pruebas > ; I F EOF ( Arch-pruebas 1
THEN
ELSE WRITELN ( 'No hay patrones de prueba.'
BEG I N REPEAT
READ ( Arch-pruebas I prueba-óev 1 ; IF prueba-dev.serie = dev
THEN BEG I N
Lee-respuesta ; e x i t o := TRUE
END UNTIL EOF firch-pruebas 1 OH ex i to ; I F e x i t o = FALSE
' . b
THEN WRITELN ( 'No e x i s t e patron prueba para e l d i s p o s i t i v o selecciona4 END
.ND ;
ROCEDURE Manda-prueba 5
I !
:EG I N 1 ; i :=
PORT C3001 := 128; I
PORT C3041 := 128; {Programacion de l P.P.I. 8255 3 I
PORT C3081 := 155; I REPEAT PORT C3041 := hab i l i t a -pue r toA ;
PORT C3Ctál := hab i l i t a -pue r toC; PORT CSOQI := prueba-puert0-A;
PORT C3081 := prueba-puertoC; respuesta-puerto-A T i , 11 := PORT C3081;
respuesta-puertoC Ci,37 := PORT C3Wl; Cdel c i r c u i t o in tegrado bajo prueba3 i .- .- i c 1
UNTIL f in-prueba
PORT C3053 := habi l i ta-puerto-B; CHabi l i tac ion de l i neas . de prueba ?.
PORT C3041 := prueba-puerto-B; C Sal ida del patron de prueba s
respuesta-puerto-B Ci,21 := PORT t3091; {Lectura de l a respuesta 3
I
:ND; I
'ROCEDURE Muestra-prueba j
iEGIN Lee-prueba ; Mandagrueba ; Lee-respues ta;
ND j
ROCEDURE Ad ius ;
EGIN C l r S c r ; T 'extMode; Window (20 i ,60 23 1 ; T e x t c o l o r I White 1; T e x t E a c k g r o u n d í Blue j ; C l r S c r ; G o t o X Y ( 5 , 3 ) ; WRITELN < 'PROBADOR DE CIRCUITOS LOGXCOS'); G o t o X Y (6,101 j WRITELN < ' A D I o S'); G o t o X Y (19,121; WHITELN I ' A ' ) ; G o t o X Y (12,141; WRITELN 'P R O L 0 G'1; G o t o X Y (3,191; WR1TEL-N < ' D i g i t a cualqu ier tecla para terminar ' 1 ; GotoXY (3,231; WRSTELN I ' E a GAZUDAJA & DUSAGO U.FI.M.-I. F I C A R T ' ) ; Go toXY (20 24 ; REPEAT U N T I L K e y p r e s s e d
:NU ;
'ROCEDURE C i e r r a - a r c h i v o s ;
IEGIN CLOSE ( A r c h e x i s t e n c i a 1; CLOSE ( firth-productos 1 ; CLOSE < A r c h - t i p o s 1; CLOSE ( A r c h - c l o n e s 1; CLOSE Orch-pruebas 1; CLOSE < A r c h - v e r i f i cac ion 1
'ND ;
iEGIN Presentacion; i n i c i a 1 i z a j WHILE NOT O p c i o n e s DO
BEGIN Procesa-dispositivo ; M u e s t r a - c a r a c t e r i s t i c a s j Mciest ra-prueba
END ; A d i o s ; C i e r r a a r c hivos
:ND.
I
__I-
PROGRAM Load-files ( INPUT, OUTPUT 1;
AR apcion : CHAR; f i n : EOOLECIN;
ROCEDURE Existencias;
'Y PE DISPOSITIVO = STRING C 5 1 ;
' AR exito : BOOLEAN; 4rchexistencia : FILE of DISPOSITIVO; serie : DISPOSITIVO;
iEGIN CLRSCR ; exits := FALSE; ASSIGN Archexistencia 'EXISTENCIA.DAT' > ; REWRITE ( Archexistencia 1 j GClTQXY ( 1 , L s ) ; WHITELN ( 'DIGITA DISPOSITIVOS')? REPEAT GQTOXY ( l 9 I O ) ; serie := ' ' O I
WHITE 4 'DIGITA SERIE ( ' , s e r i e : 5 , ' ) ' ) ; GOTOXY (15s10); READLN ( serie 1; IF serie = '
THEN exita := TRUE ELSE WRITE ( Archexistencia, serie 1
UNTIL exita; CLOSE ( Archexistencia )
:ND ;
'ROCEDURE Tipocdispos i t ivas ;
'Y PE PRODUCTO = RECORD
t i p s : INTEGER; num-pins : INTEGER; pin-gnd : INTEGER; pin-vcc : INTEGER
END ;
' AR exito : BOOLEAN; Arch-tipos : FILE of PRODUCTO; tip-dev : PRODUCTO;
rEGIN CLRSCR ; exito := FALSE; ASSIGN Arch-tipas 'TIPOS.DAT' 1; REWRITE ( Arch-tipos 1; GOTOXY ( 1 $5) ; WRITELN ( 'DIGITA TIPOS DEL DISPOSITIVOS'); REPEAT WITH t i p d e v DO
BEG IN GOTOXY ( 1 1 0 ) ; t ipo := O; num-pins := O; pin-gnd := O; pin-vcc := O;
~ - I -- I _ WRITE _ _ I ( -. 'DIGITA TIPO ( ' , t i p o : 1 5 ' l ' ) : ~
Rwm..rd I t^ipcs ; I F t i p o = O
THEN exito := TRUE ELSE
BEGIN WRITE t 'DIGITA NUMERO DE PINS ( ' , nurn_p ins :2 , ' ) ' ) ; GOTOXY <24911); READLN I: num-pins ) ; WHITE ( 'DIGITA PIN GND ( ' , p i n _ g n d : 2 , ' ) ' ) ; GOTOXY <17512); READLN < pin-gnd ) ; WRITE ( 'DIGITA PiN VCC ( ' , p in - vcc :2 , ' ) ' ) ; GOTOXY (17913); READLN pin-vcc 1 ; WRITE ( kch- t ipos , t i p d e v )
END END
UNTIL exito; CLOSE ( Arch-tipos 1
:ND ;
'ROCEDURE Clones;
'Y FE DISPOSITIVO = STRING C53; CLONE = RECORD
serie : DISPOSITIVO; equiva lente : DISPOSITIVO
END ;
'Añ exito : BOOLEAN; Arch-clones : FILE of CLONE; dev-clone : CLONE;
{EG I N CLRSCR ; e x i t o := FBLSE; ASSIGN ( Arch-clones I 'CLONE-DAT' ) ; REWRITE ( Arch-clones 1; GOTOXY ( i F 51 ; WRITELN ( 'DIGITA DISPOSITIVOS CLONES'); REPEAT WITH dev-clone DO BEGIN GOTOXY (1 I 101 ; serie := ' ' ; equiva lente := ' ' = WRITE ( 'DIGITA SERIE ( ' , s e r i e : 5 , ' ) ' 1 ; GQTOXY ~159101; READLN ( serie 1; IF serie = ' '
THEN exit0 := TRUE ELSE BEG 1 N WRITE < 'DIGITA EQUIVALENTE ( ' , e qu iva l en te :5 , ' 1 ' ) ; GOTOXY (21,ll); READLN equiva lente 1 ; WHITE ( Arch-clones, dev-clone 1
END END
UNTIL exito; CLOSE < AFCh-ClOn€?S )
:ND ;
----c-4.*ci -4
'Y PE DISPOSITIVO = STRING C 5 3; ARREGLO = STRING C 24 1 ; FUNCION = RECORD 1
I
ser ie : DISPOSITIVO; t i p o : INTEGER; num-compuertas : INTEGER; funcion : ARREGLO; numcomp : ARREGLO;
nombre : STRING f 10 1 d e s c r i p c i o n : STRING C 30 3 ; *I
END ; I
,AR e e i t o : ROOLEAN; A r c h - f u n c i o n e s : F I L E o f FUNCION; f u n c i o n d e v : FUNCION;
4EGIN CLRSGR ; e x i t o := F A L S E ; ASSIGN ( A r c h - f u n c i o n e s , 'FUNCION.DAT' 1 ; REWRITE ( A r c h-f unc iones 1 ; GOTOXY ( 1.5) :
x
WRITELN ( . S D Í G I T A LA FUNCION DEL DISPOSITIVO' 1 ; REPEFIT
WITH f u n c i o n d e v DO BEGIN
GOTOXY (1,101 ; j t i p o := 8 ; num-compuertas := O; funcion := ' ' O ser ie := ' '
num-comp := ' ' ; descripcion := ' ' ; nombre := ' ' WRITE < ' D I G I T A S E R I E < ' 3 s e r i e : 5 , ' l ' ) ; GOTOXY ( 15 , lO ) ; READLN ( ser ie ) j I F ser ie = ' '
9
?
THEN e x i t 0 := TRUE ELSE
BEGIN WHITE ( ' D I G I T A TIPO < ' , t i p u : 1 5 ' ) ' ) ; GOTOXY (14,111 ; RECIDLN ( t i p o 1: WRITE t 'DISITA~NUMERO DE COMPUERTAS < 8 ,num_cmpuertas:2, 1 ) ; GOTOXY (30,12) ; READLN ( num-compuertas ) ; WRITELN 'DIGITA FUNCION ( ' , f u n c i o n : 2 4 , ' 1 ' 1 ; WRITE < ' 123456789012345678901254'); GOTOXY (17,131; RECIDLN funcion 1:
i
WRITELN ( 'DIGITA NUMERO DE LA COMPUERTA ( , n u m _ c m p : 2 4 , * 1 ; I
WRITE ( ' 123456789012345678901234') GOTOXY ( 3 2 , 1 4 1 ; HEADLN ( num-comp 1 ; WRITE < ' D I G I T A DESCRIPCION (',descripcion':30,')'1; GOTOXY (21.13); READLN ( descr ipcidn l: WRITE ( 'DIGITA' NOMBREcI)E L A COMPUERTA < ' ,nombre: 10, ' 1 ' ) ; GOTOXY (32.16); HE(SDLN ( nÓmbrk ) ; WRITE ( A r c h - f u n c i o n e s , f u n c i o n d e v )
END END
UNTIL e x i t o ; CLOSE í A r c h - f u n c i o n e s . 1
ND;
.ypE DISPOSITIVO = STRING f 5 1; ARREGLO = STRING 1: 24 1 ; PRUEBA x= RECURD
s e r i e :: DIWOSITIVO; patrcrri :: ARREGLO;
END j
'AH e x i t o : BOQLEAN; Arch-pruebas : FILE af PRUEBA; p r u e b a d e v : PRUEBA;
{EGIN CLRSCR ; e x i t o := FALSE; ASSIGN ( Arch-pruebas 'PRUERA.DAT' > ; REWRITE ( Arch-pruebas 1; GOTOXY ( 1,5) ; WRITELN < 'DIGITA LA PRUEBA DEL DISPOSITIVO'); REPEAT WITH p r u e b a d e v DO
GOTOXY (i31C))j s e r i e := * ' ; pat ron := '
WRIT€ 'DIGITA SERIE ( ' 3 s e r i e : 5 3 ' ) ' ) ; GOTOXY < 15,101 j READLN serie 1; IF s e r i e = ' '
BEGIN
THEN e x i t o := TRUE ELSE BEG IN WRITELN ( 'DIGITA PRliEBFI < ' , p a t r o n : 2 4 , ' ) ' > ; WRITE ' i 2 3 4 5 6 7 8 W l"L34S67890 1234 ' ; GOTOXY <16,11); READLN I pat ron 1 ; WRITE < Arch-pruebas, prueba-dev 1
END END
UNTIL exi to ; CLOSE ( Arch-pruebas 1
:ND j
'ROCEDURE P a t r o n - v e r i f i c a r ,
-Y PE DISPOSITIVO = STRING C 5 3; ARREGLO = STRING [: 24 1; VERIFICA = RECORD
serie : DISPOSITIVO; checa : ARREGLO;
END ;
jAR e x i t o : BOOLEAN; A r c h v e r i f i c a c i o n : FILE o f VERIFICA; v e r i f i c a - d e v : VERIFICA;
I
EGIN ,
e x i t o := FALSE; I
MSIGN < Arch-ver i f icac ian , 'VER1FICA.DAT' 1; REWRITE ( Arch-ver i f icac ion > ; GOTOXY < i ,5) =
CLRSCR j I
1
, 1
I _ l _ _ _ _ l _ _ ~ , " __-_- - - - -- - -- -- -i I_ I_ _ _ - - .__ - _- ?- - _- -- -
1- E F:f $, 3- WITH verif .lr-a-c!ev DO BEGIN GOTOXY C 1 1 0 ) ; ser ie E = ' ' j ct1ic:a := * 5
WRITE t .DIGIT4 SERIE ( ' 3 s e r i e : 5 F ' ) ' j ; GOTOXY I 1 5 , I O ) ; RECIDLN I serie ) j IF serie = ' '
' .
THEN exit0 := TRUE ELSE BEG IN WHITELN I 'DIGITA VERIFICACION ( ' , checa :24 , ' ) ' ) ; WHITE ( ' 12345~789012345678901~~4' ) ; GOTOXY (22 !F l l ) : RECIDLN ( checa ; WRITE I Wchve r i f i c ac ion , v e r i f i c a d e v 1
END END
UNTIL exita ; CLOSE ( Arch-verificacion
fND ;
'ROCEDURE Altas:
mR exito : BOOLEAN;
3EGIN exito := f a l s e ; REPEAT
opcion := ' ' = 5
WR I TELN ; WRITELN; WRITELN ( ' ALTAS DE ARCHIVOS'); WH I TELN ; WR ITELN ; WRITELN ( ' E EXISTENCIAS'); WRITELN I ' T TIPOS DE DISPOSITIVOS');
WRITELN I F PINES FUNCION'); WRITELN ( ' P POTRON PRUEBA'); WRITELN ( ' V PATRON VERIFICAR'); WRITELN S TERMINAR' 1; WR I TELN ; WRITE ( ' DIGIT4 UFCION GQTQXY I 49, 18 ) ; READLN (opcion 1 ; CASE opcion O F
CLRSCR ;
GOTOXY ( 1 $5) ;
WRITELN - ( ' c CLONES');
>- ' opc ion : 1 , ' 1 ' ) ; ---
' E ' , ' @ ' : Existencias; 'T','t' : Tiposdispos i t ivos ;
'F' , ' f ' : Pines-funcion; ' P ' , ' p ' : Patron-prueba; ' V ' 'v' : Patran-verificar; 'S'3'5' : exita := TRUE
' c ' , ' C ' : ClOncl5;
END UNTIL e x i t o
:ND ;
'ROCEDURE Ea j as ;
x
'ROCEDURE Cambios
IEG I N f i n := f a l s e g REPEAT CLRSCR ; upcion := ' ' = 3
WRITELN ; WR I TELN ; WRETELN ( ' WR I TELN ; WRITELN; WRITELN { ' WRITELN I ' WRITELN WRITELN I ' WR I TELN ; WRITE ( ' GOTOXY 61, 15 ) ; READLN ( o pc i on ) ; CASE opcion OF
GOTOXY ( 1 , 5 ) ;
> A t 3 # a * : Altas; ' B ' , ' b ' : Bajas; ' C ' , ' c ' : Cambios; 'S','s' : f i n := TRUE
END UNTIL fin
LND.
ACTUALIZACION DE ARCHIVOS');
A ALTAS'); E BAJAS'); c CArtRIOS'); s SALIR');
DIGITA OPCION --- I. ( ' , o p c i s n : l ,
u
PROEADOR DE CIRCUITOS LOGICOS
B I E N V E N . 1 D O
A
P R O L O G
Digita cualquier tecla para continuar
@ GAZUDAJA & DUSAC30 ü . A . M . - I . FICCSRT
PARA ELEJIR EL DISPOSITIVO A PROBA. BASTARA CON PRESIONAR. L A
LA
TECLA (FLECHA ARRIBA). : PARA PASQR AL DISPOSITIVO SIGUIENTE DISPONIBLE. TECLA *:FLECHA ABAJO>* c PARA PASCIR AL DISPOSITIVO ANTERIOR DISPONIBLE.
PRESIONA LA TECLA (END) PCIRCS TERMINAR SESION.
- _ -
PROBCIDOR DE CIRCUITOS LOOICOS
CI I) I o CI
P R O L O G
S
Dig i ta cualquier tecla para terminar a WZUDISJCI Ik WScIcKl UmCImMm-Im FfChRf
\
E
C S C T U A L I Z ~ I O N DE EIRCHIVOB
A CILTCIS E W A S C CeSMBIOS 8 -IR
DIUITCI OPCION ---> ( )
i I ! ! I i 1 I
, I
I
1
r
I
ALTCIS DE WCHIVOB
E EXISTENCIAS T TIPOS DE DISPOSItIV08 c CLONES F PINE$FUNCIWI( P PCITRON PRUEBCI V PATRoN VERIFICCSR 8 TERMINCIR
DIQITa OPCION ---> (E)