Download c k3.Z
Transcript
U N I V E R S I D A D AUTONOMA METROPOLITANA UNIDAD I Z T A P A L A P A c k3.Z REPORTE F I N A L DE: PROYECTO DE I N G E N I E R I A E L E C T R O N I C A I i / CHECADOR DE T A R J E T A S 146498 ALUMNOS: W T A GASTELUM LUZ F R A N C I S C A . > n PULIDOBAñOSALEJANDRO. \ \I 1 ASESOR: S E R G I O P A E Z RODEA. MAYO D E rppo INDI CE 9 RELOJ MAESTRU ii TABLA DE ESTADOS 13 .yz.-, CONCLUSIONES A L L L3 APENUICE B: INFORMACION REGISTROS 8 2 0 5 0 :34 APENDICE E: DIAGRAMA DE Lfi INTEHFASE 36 APENDICE D: PROGRCSMCS DEL PROYECTO 38 2 P R O L O O O L a función principal de la s e c c i h p e r t e n e c i e n t e al sistema de t r a n p o r t e colectivo cual ha sido r e a i h a d o este proyecto, es la del las computadoras y equipo p e r i f e r i c o que existe las lineas del m e t r o . de Computadoras. METRO, y para la mantenimiento de p a r a cada una de Esas computadoras t i e n e n encargada L a tarea de regular el tránsito de t r e n e s , llevar el seguimiento de é s t o s a lo Largo de toda la línea, y +.P el despacho de t r e n e s e n las terminales. L a comunicación e n t r e la sección donde se maneja el trdtf ico de t r e n e s CTel&rBfico> y la c;omput.mima mrreqpml.fentse a cada línea se realiza a t r a v é s de una i n t e r f r i s e , la cual hace uso de d i f e r e n t e s t a r j e t a s para la transmisión y recepción de datos; ?nkn es%??m a de 1- m a s usadas es la kmjeta de entradas opto-acopladas de 16 b i t s RTP 7435/37!, cuya función es la de r e c i b i r las e n t r a d a s digitales del sistema de t e l e t r a f i c o procesarlas y pasarlos a la tarjeta RTP 7435/38 salida a relés d e 16 b i t s , p a r a que de ahí s e a n enviados a la computadora. digitales El propósito de este proyecto f u e el de elaborar un probador p a r a la tarjeta de e n t r a d a s digitales opto-acopladas p a r a que con e s t o la reparación de dicha tarjeta sea de una forma mas rápida, de forma tal que se p o w agilizar el sistema de mantenimiento y ademas que se ahorrará dinero reparando las tarjetas y no sustituyéndolas por nuevas. 8 3 U E N E R A L I D A D E S Pana la de redizacih nuestro proyecto, se requirib diseñar una i n t e r f a s e que comunicara la PC con la tarjeta a p r o b a y v i c e v e r s a ; a s í como de un programa que mandara y r e c i b i e r a d a t o s por el p u e r t o serie d e la PC utiiizando comunicación la norma RS-232 del p u e r t o serie e n la computadora. asíncrona y La tarea principal de La i n t e r f a s e es la d e r e c i b i r dos b y t e s de prueba que s o n mandados por la PC a traves del p u e r t o serie; una v e z recibidos mandarlos a las e n t r a d a s e n paralelo de la tarjeta a probar y g e n e r a r un r e t a r d o para posteriormente recibir también en paralelo los datos de saiida de la tarjeta; e s t o s s o n recibidos e n dos bytes, los cuales s o n mandados e n forma serie al p u e r t o de la PC. U n diagrama a bloques de la i n t e r f a s e se m u e s t r a e n la f i g u r a 1. ' P a r a lograr lo a n t e r i o r se diseñó una p a r t e de control, se requirib de unos circuitos especiales capaces de pero transmitir y recibir d e forma asíncrona, estos son los UARTS AY-5-lOl3A (información e n el apendice A>. COMUNICACION ASINCRONA: La transmisión de información digital a t r a v é s d e un par de alambres no es del todo dificil. D e hecho, un r e g i s t r o sencillo que convierta de serie a paralelo tal como el S N 74165 puede ser usado como un t r a n s m i s o r y un r e g i s t r o convertidor de serie a paralelo, tal como el S N 74164 que puede ser usado como r e c e p t o r . Pero todo este proceso solo contiene la c a r g a de datos e n paralelo d e n t r o del transmisor y de s u c a r g a e n el r e g i s t r o , un b i t a la vez. El r e c e p t o r puede mandar los d a t o s recibidos e n el registro uno a la vez hasta que sean todos recibidos. Desafortunadamente, este proceso no es una transmisión asíncrona, dado que las señales del r e l o j son comunes y m u c h a s s e a e s de control s o n requeridas e n t r e los dos r e g i s t r o s de c a r g a integrados e n los circuitos. Podría s i n embargo t r a b a j a r , pero no v a a ser compatible con el e s t a n d a r de las tecnicas de t r a n s f e r e n c i a en serie, de datos e n forma asíncrona. En una verdadera t r a n s f e r e n c i a de datos, solo la linea de transmisidn de datos se conecta al r e c e p t o r y al transmisor. .. ~ . .. . . . 4 _._-_ .. .. . - . . ..... .... . . .. 1 Obviamente, debe de haber algunos trucos que son usados p a r a c o n t r o l a r una verdadera t r a n s f e r e n c i a s de d a t o s e n serie, de forma asíncrona. comunicación asíncrona no existe un Dado que e n una reloj comfin conectado entre el transmisor y el r e c e p t o r , y tambien ninguna señal de c o n t r o l existe entre eiios, un BIT DE COMIENZO siempre precede a cualquier t r a n s f e r e n c i a de datos. E s t e b i t es siempre un cero lógico. E s t e es usado para indicar a el r e c e p t o r que una nueva serie de d a t o s ya ha sido bransmitida. C a d a transmisión termina con uno o dosBITS DE PARADA, los cuales s o n siempre uno lógicos. L a opción de uno o dos BiTS DE PARADA son de alguna manera arbitraria. En algunos c a s o s especiales la a p l i c a c i h de uno, dos b i t s o uno y m e d i o b i t s de parada pueden ser usados. Por s u p u e s t o que debe de haber un límite e n cuanto al niunero de b i t s de datos e n cada transmisión, por o t r o lado aigunos s i s t e m a s t r a n s m i t e n cinco b i t s de d a t o s despues de un b i t de comienzo, mientras o t r o s desearían transmitir c i e n t o s d e b i t s de datos. L a serie de b i t s de datos encontrados e n t r e el b i t de comienzo y el bit de parada esta limitada e n t r e cinco y ochobits. El BIT DE PARIDAD, p a r o no, es usado p a r a checar los e r r o r e s e n la transmisión de datos. E l BIT DE PARIDAD indica si el número d e unos lógicos e n la palabra d e datos es p a r o impar. L a figura 2 muestra los b i t s de control p a r a la comunicación asíncrona. PUERTO SERIE (NORMA R S 232) El corazón de el adaptador es un chip INS8250 o un equivalente. Algunas c a r a c t e r i s t i c a s s o n las siguientes: No h a y necesidad de una sincronización precisa; el reloj del r e c e p t o r es independiente; detección de un b i t de comienzo falso; generación de una linea de a b o r t o y detección. Todo el protocolo de comunicación es una función del s i s t e m a y debe d e ser cargada , a n t e s de que el adaptador esté e n operación. Todos los Status de las señales de control deben de ser manejados a t r a v é s del s i s t e m a de S o f t w a r e . La f i g u r a 3 es un diagrama a bloques del adaptador de comunicación asíncrona. . i a P O f aJ 4 ui e4 * a a I m . ' L o s diferentes m o d o s de operación son seleccionados programando los e l e m e n t o s de comunicación asíncrona del 8250. E s t o es hecho a t r a v é s de seleccionar las direcciones de e n t r a d a y sdda (primaria hex 3f8 a 3ff, y hex 2f8 a 2ff para la secundaria) escribiendo el dato de salida e n el conector. L o s b i t s de direccionamiento AO, Al, y A2 seleccionan los d i f e r e n t e s registros que definen los diferentes m o d o s de operación. T a m b i é n , el b i t de acceso del L a t c h d i v i s o r < b i t 7> del registro d e linea de control es usado p a r a seleccionar ciertos registros. En la tabla 1 se muestran las direcciones correspondientes a los registros utilizados para manejar el 8250. DIRECCION DE E/S --_--_---_-------ADAPTADOR PRIMARIO REQISTRO SELECCIONADO ................................................................. 3F8 3F8 3F8 3F9 3F9 3FA 3FB 3FC 3FD 3FE B u f f e r TX B u f f e r RX L a t c h Divisor LSB L a t c h Divisor MSB R e g i s t r o de Interrupt Enable R e g i s t r o de Identificación de Interrupción R e g i s t r o de C o n t r o l d e L i n e a R e g i s t r o d e C o n t r o l de Modem R e g i s t r o de Status de L i n e a R e g i s t r o - d e Status d e Modem TABLA 1 La tabla d e l apéndice B m u e s t r a el m a p a de registros donde se encuentra la descripción de los b i t s p a r a cada registro mencionado en la tabla 1. 146498 D E S A R R O L L O P a r a la utilización de los UARTS e n la i n t e r f a s e ; la p a r t e de control, recepción y transmisión que comprenden el modo de funcionamiento de este t i p o de circuitos, quedó de la siguiente manera: a p a r t e de c o n t r o l se programó el UART para que no En l t r a b a j a r a con paridad, t u v i e r a un b i t de parada y ocho b i t s de datos; quedando conectada esta p a r t e como se m u e s t r a e n la t a b l a 2a. P a r a la p a r t e de transmisión se recibían ocho b i t s en paralelo y se us6 un reloj 16 veces m a y o r al BAUD RATE generado por la PC; además de u t i l i z a r sus banderas p a r a conocer el e s t a d o del b u f f e r de transmisión, la c a r g a de d a t o s y el final de la transmisión, la cual por s u p u e s t o es e n forma serie. L a t a b l a 2b m u e s t r a como f u é utilizada esta p a r t e . En la p a r t e de recepción tenemos ocho paralelo, una e n t r a d a e n serie, o t r a vez un reloj 16 BAUD RATE generado por la PC y la p a r t e que programa de recepción de los datos. E s t e protocolo u t i l i z a las framing e r r o r y la de dato recibido disponible. En la encuentra la forma e n que esta parte f u e conectada. salidas en veces el el protocolo banderas del t a b l a 2c se Una v e z expuesto lo a n t e r i o r y dado que estamos utilizando una comunicación asíncrona es de suponer que la transmición y recepción e n la PC haya sido programada de la m i s m a forma. TABLA 2a I TABLA 2b NUM. DEL PIN 12 17 20 5 NOMBRE - RDI RD8 CLOCK 19 SI RDA 14 FE VALOR E n t r a d a s i de la tarjeta C o n t r o l de reloj Puerto serie de la PC C o n t r o l de la interfase C o n t r o l de la interfase RELOJ MAESTRO 153600 El r e l o j maestro genera frecuencias desde 2400 hasta Hz. con o b j e t o de poder r e c i b i r datos desde 150 hasta 9óOO baudes. E s t o se realizó por Hz. medio de un reloj oscilando a 153600 Como la transmisión es asíncrona, la frecuencia del reloj maestro no n e c e s i t a ser muy exacta, con que no v a r i e m a s del tres porciento de la frecuencia dada se asegura que se este ejecutando la recepcibn y la transmisión. Para la realizacidn del r e l o j se utiiízaron un temporizador LM555 c o m o generador de la frecuencia, y un 14040 c o m o divisor de frecuencias. En la f i g u r a 4 se muestra el circuito del r e l o j maestro. En la tabla 3 m o s t r a m o s las frecuencias con sus bauds. BAUDES FRECUENCIA 2400 4800 9600 19200 38400 76800 153600 i 150 300 600 1200 2400 4800 9600 TABLA 3 & I - P a Basandonos en los ec;t.ados en íos que deben de estar las banderas de los UARTS dependiendo de la función que este vaalizarido la interfase se propuso una tabla de estados la cual se muestra en la tabla 4: esta tabla de estados es la que nos sirvio para hacer la parte de control de la interfase. TABLA DE ESTCIDOS A B C D E F G H I J K L M N O P RDA 1 o # TMBT 1 EOC 1 CLKT 1 1 l 1 l 1 1 l 1 1 l 1 1 l 1 ' 1 1 1 l l 1 1 l 1 1 l 1 1 1 1 1 l 1 1 l 1 1 l 1 o l 1 o # 1 1 l 0 0 0 O 0 O O # O O O 0 CLOCKDETI CLK o O # 0 1 1 1 0 0 0 o # o # o o o # ci 1 1 l 1 1 o ci l ú 1 1 1 1 o 1 1 o # 1 l 1 1 o 1 1 o 1 CLOCKT2 # 0 O O 0 # 1 # 1 0 0 O O 1 0 # is 1 1 O 1 O O 1 1 # 1 CLOCKT2 1 1 1 O bandera CLKR 1 RDA2 TMBT2 EOC2 CLKTS CLkR2 A' MR VFiR 1 VFiR2 cíS2 o o 1 1 1 1 # # 0 o 1 1 o 0 ELK # o # o 1 1 1 1 1 0 o 0 # o 0 0 0 Q O O 0 O O # # # 0 0 0 0 o 1 l # o 0 o O O 1 0 o o # # 0 0 o # O 0 0 0 0 0 0 / M o o o / DS1 8' 1 1 / 1 1 1 1 o / / # o 1 O i # 1 3 # 0 o o / i J l 1 l 1 / o 1 1 0 O 1 # ú o 1 O o # # # o o / CI 0 o # O # l 1 O 0 1 1 # 0 o O l 1 ___-__----_----__------------------------------------------------Nota: El simbolo / en esta tabla viene representando un pulso rnegativo es decir un pulso que va de un nivel 1 a O y regresa a un nivel 1). TABLA 4 L a tabia 4 antes presentada ya conLiene *unos estados que resuitarón despues del manejo de las variables artificiales, las cuales s o n M, VARl, VAR2; de estas junto con las banderas desplegadas por los UARTS dependen las variables D S l , DS2, CLKTl, CLKT2, CLKRl, CLy el MR. Las ecuaciones siguiente manera. de la p a r t e de control quedaron de La CLKRl = CLOCK 8 RDAl‘ 8 MR’ CLKR2 = CLOCK 8 RDAl 8RDA2‘ CLKTl = CLOCK M CLKT2 = <CLOCK 8 M 9 8 RDA2 A, = (RDA2’ + TMBT2’> 8 EOC2 + EOC2’ DS2 VARl 8 Q2’ (74123) DSl V A R 2 8 Q2’ <74123> -- Los mapas para las variables CLKRl y CLKFU son los siguientes: J m O O O O 1 1 1 1 TMBTl TMBT2 O 0 o1 11 10 RDAl RDA2 \ O o !X x 1 X O 1 ! X x x X 1 1 ! O x o O 1 o !X x o X 1 o !X x x X 1 1 ! X x x X O 1 ! X x x X O o !X x o X W A S TMBT2 O 0 O 1 11 10 RDAl TMBTí O O 1 1 O l l O \ * I ! ! ! X X X X X O l X X X O X X X O O 146498 CLKRl=RDAl98MR’tCLK I Las v a r i a b l e s VARl, V A N , circuitos 7474 inbegrado. que son flip-flops M y MR se implementarón con D con dos e n cada tipo La forma e n que fueron conectados los flip-flops para la v a r l f u e de la s i g u i e n t e manera: CLEAR = RDA2, D = RDA2, CLK = Ql’ <74123>, PRESET = 1, SALIDA Q a la entrada de una and, cuya otra e n t r a d a esta conectada a TMBT2, y a la saiida t e n e m o s VARl. A q u i se d e j a pasar un uno e n el flip-flop ai darse un flanco p o s i t i v o en el reloj ei cual esta conectado al r e t a r d o generado por el 74123 <figura 5 ) . La f o r m a p a r a VAR2 es la siguiente: CLEAR = RDA2 ic TMBTl, D = 1, CLK = TMBT2, PRESET = 1, y e n la salida Q tenemos VAR2. El cambio de e s t a d o a la salida se debe a un flanco positivo generado por la señal TMBT2 la cual nos indica que el b u f f e r d e transmisión vuelve a estar l i s t o <fig. 6). L a forma p a r a M es la siguiente, pero e n esta ocasion se usaron los dos flip-flops del integrado: CLEAR1 = R D A 2 = CLEAR2, D i = f = D2, CLKl = BIT 1 de contador binario, PRESET1 = 1 mPRESET2, Q l = CLK2, Q2 es M y salida Q2’ es M’. En esta ocasibn el nivel de la salida cambiado debido a un flanco positivo generado por el b i t 2 de contador permitiendonos así manadar dos veces un byte a t r a v é s UART2 <fig. 7 ) . un la es un del P a r a Master R e s e t f u e necesario s e p a r a r l o e n dos debido a que necesitamos un reset p a r a la i n t e r f a s e para cuando esta empieza a t r a b a j a r , este c o n s i s t e e n un diodo, una resistencia y un capacitor, su configuracibn puede ser encontrada e n el d i a p a m a de la figura 8 . La segunda parte que compone al reset t i e n e como funcibn la de dar un reset cuando hemos terminado un ciclo de estados. La segunda p a r t e f u e implementada con un flip-flop debido a que este t i p o de c i r c u i t o s con un solo cambio de nivel detectado es posible hacerlo cambiar de e s t a d o a la salida. A s í la segunda p a r t e quedo impiementada de la siguiente manera: Tambien esta ocasión fueron utilizados los dos flip-flops contenidos e n el integrado. CLEAR1 = CLEAR2 = RDAS, D i = D2 , 1 ' CLKl =EOCl, PRESET1 =PRESET2 =I, QI =CLK2, y por iiltimo la salida Q 2 proporciona la señal p a r a el reset. El flanco positivo esta vez es generado por la señal EOCI la cual nos indica con ello que se ha dejado de transmitir a t r a v e s del UARTl y por lo t a n t o se han terminado de mandar b y t e s de la i n t e r f a s e a la PC L o s D a t a S t r o b e tanto del U a r t l como del Uart2 dependen de un pulso generado por la segunda p a r t e contenida e n el integrado 74123, este pulso es dejado p a s a r o no a la r e s p e c t i v a p a t a del UART por VARl o VAR2 s e g h corresponda. U n puis0 en la p a t a de D a t a S t r o b e del UART g e n e r a que se c a r g e un d a t o y se comienze s u transmisión. <Para m a s información s o b r e el funcionamiento de los pines del UART c o n s u l t a r el apendice A al final del r e p o r t e ) . Debido a que la i n t e r f a s e trabaja a velocidad m a s rapida a la de la r e s p u e s t a de la tarjeta, hubo la necesidad de g e n e r a r un r e t a r d o p a r a c o n t r o l a r el envío de los b y t e s de r e s p u e s t a a la PC, este f u e implementado con un c i r c u i t o 74123 el cual utiliza un c a p a c i t o r de 100 pF y una r e s i s t e n c i a de 35 K ohms lo cul nos da u n t w de I000 ns, las especificaciones sobre este integrado se pueden e n c o n t r a r e n el apendice C . E s t e c i r c u i t o de r e t a r d o puede ser encontrado e n la f i g u r a 9. I io P > O S m c E 4 o 1: c QD a L a .*e IL Q a L a e 2 \ ANALISIS DE RESULTADOS a la interfase I f u e necesario serie de la computadora y do PC ora lo mismo quo m e macibiei, funcionaba satisfactoriamente ai mandados, y con el mismo valor. los dos bytes que oran Para poder ileyar a las pruebas finales de la interfase se requiri6 algún tiempo, ya que la p a r t e de control t o m o tiempo ajustarla adecuadamente a n u e s t r a s necesidades, esto nos orillo a crear v a r i a b l e s artificiales, si así podemos llamarles; es d e c i r , . externas creadas y controladas por n o s o t r o s p a r a variables facilitar el paso de un e s t a d o a otro. La necesidad de estas variables se basa en que Las banderas de los UARTS que n o s o t r o s utilizamos p a r a el c o n t r o l y ,que creíamos se daban e n un determinado tiempo no era así, creandonos problemas g r a v e s de control. L a prueba principal, e n t r e muchas, que nos permitío estar securos del buen funcionamiento de la i n t e r f a s e ; f u é la que se reall26 p a r a comprobar que la i n t e r f a s e recibía dos bybes y estos eran llevadas e n paralelo a la tarjeta de forma correcta, comprobando a s í que les velocidades e n t r e la i n t e r f a s e y la computadora concuerdan; el siyuiente paso f u e vex- si la i n t e r f a s e mandaba e n serie los dos b y t e s que .La tarjeta r e g r e s a al ser a l i m e n t a d a con datos, pero p a r a e s t o f u é necesario colocar un ciclo e n la computadora p a r a que nunca saliera de transmitir los mismos datos y de esta forma t e n e r siempre los m i s m o s datos de salida p a r a poderlos v e r e n el osciloscopio; de esta manera pudimos comprobar que.& i n t e r f a s e mandaba dos b y t e s a la computadora y la velocidad era correcta. - I 1 Se realizarón unas pruebas juntando la i n t e r f a s e ; la tarjeta y un proc;rama muy simple, el cual solo mandaba dos ciatog y recibía los datos que mandaba la i n t e r f a s e ; este programa no tenía ventanas ni n i ~ t m t i p o de opciones que e¡ pro6rama final contiene. A l hacer estas pruebas se encontró que la computadora siempre recibía dos &tos como era requerido, p e r o el problema era que siempre f u e r o n los mismos, así que se procedí0 a r e v i s a r si la tarjeta e s t a b a respondiendo ya que estabamos s e g u r o s que la PC estaba enviando bien los datos de ‘prueba y la interfase recibiendoios correctamente; ya que los datos enviados por la PC eran encontrados a la e n t r a d a de la -jeta. A s í que el problema se enconbraba e n la r e s p u e s t a de la tarjeta, lo cual f u e comprobado. Los opto-acopladores que t i e n e la tarjeta e n cada una de sus e n t r a d a s no e r a n alcanzados a ser activados con el v o l t a j e que provenía de los buffers conect+os a ias salidas en paraielo de los UARTS; este v o l t a j e era de alrededor de 4 V o l t s , así que se tuvo que amplificar las saiidas e n paraielo de los UARTS p a r a poder hacer t r a b a j a r a la t-jeta. I Resuelto el problema de la tarjeta se procedió a v e r i f i c a r si los dos b y t e s recibidos por la PC e r a n c o r r e c t o s , y a s í fue. El siguiente paso consistio e n desarrollar m a s s o f t w a r e , p a r a t e n e r opcihn de checar la tarjeta por completo, o linea por iinea y t e n e r una ayuda p a r a a l g h error, además de indicarle al usuario a t r a v é s de ventanas los pasos a s e g u i r p a r a la utilización del proyecto; quedando a s í un proyrama largo y lleno de ventanas. Sin embargo al probar j u n t o s la i n t e r f a s e , la tarjeta y el nuevo programa se encontró que la computadora solo leia uno de los b y t e s perdiendo el o t r o . A l principio se pensó que se perdía el (iltimo b y t e que mandaba la i n t e r f a s e a La PC, as$ que se trató de agilizar el programa p a r a que e n cuanto l e y e r a el primer byte leyera el segundo, pero no se 1 0 ~ 1 ’ 6 n f ~ C i inmediatamente resultado positivo. Se continuaron las pruebas, esta vez se t r a t ó de v e r i f i c a r si era cierto que el byte que era perdido era el Segundo, así que se e s t u v o cambiando los b y t e s de entrada a la i n t e r f a s e p a r a v e r como cambiaba s u r e s p u e s t a el W c o b y t e que se recibía e n la i n t e r f a s e , llegando a la conclusión de que no era el segundo byte que la interfase manda a la PC, sino era el primero. E s t e problema t r a t ó de solucionarse a t r a v é s de s o f t w a r e , provocando retardos e n el programa a n t e s de que f u e r a a traer el primer da+o del p u e r t o &e entrada, este i n t e n t o no f u e f r u c t o s o a s í que d e c i d i m o s mandar dos v e c e s el primer dato que manda la i t . . . . . . - ... ...... .~ .. n i n t e r f a s e a la PC p a r a a s e g u r a r que lea ese d a t o la segunda v e z que es enviado, y dio resultado. P a r a lograr mandar dos veces se tuvo que m o d i f i c a r un poco la p a r t e de c o n t r o l de la i n t e r f a s e , aumentando un contador el cual nos da la p a u t a p a r a continuar al segundo byte-resultado. Consideramos que el provoca retardos al programa perdida del primer byte. de ventanas y letreros de error los cuales a s u vez provocarón la u80 Por ú l t i m o se procedió a probar de nuevo iiegando a la conclusión de que t a n t o el programa como la i n t e r f a s e t r a b a j a n correctamente juntos, lo cual algunas v e c e s parecía que no era a s í pero e s t o es debido a la tarjeta con la cual se hacen la pruebas no esta trabajando del todo bien y e n aipnas ocasiones no responde c o m o es debido a los b y t e s de prueba. I f I I C O N C L U S I O N E S A t r a v é s del desarrollo de este proyecto hemos podido concluir que el ultimar los d e t a l l e s es a h m a s pesado que el diseño mismo del proyecto, y que e n el caso de localizar un error grave en la base del proyecto, lo m a s sano es truncar s u desarrollo y r e g r e s a r a atacar el problema d e raíz, y a que continuar de esta forma así con una base erronea acarreara mas problemas y a la larga l l e v a r á m a s tiempo resolverlos. Tambien pudimos iiegar a la conclusion de que las velocidades e n una comunicación asíncrona son criticas, y a que estamos haciendo uso de relojes independientes y e s t o s deben de t e n e r una cierta exactitud p a r a poder a s e g u r a r la transmisión y recepción c o r r e c t a . A d e m a s de que t a n t o una parte como o t r a ; transmisor y r e c e p t o r ambos deben estar programados de la m i s m a forma p a r a poder t e n e r datos confiables. Es decir, que ambos manden o reciban d a t o s con la m i s m a paridad o s i n ella, así como con un b i t d e comienzo y uno o dos b i t s de parada segun como se requiera. Tambien pudimos concluir que a n t e s de comenzar el diseño un proyecto h a y que estar completamente s e g u r o s de lo que necesitamos y d e que e r r a m i e n t a s disponemos. p a r a atacar el problema, el cual debe de estar tambien completamente definido. D e no c o n t a r con objetivos d e t r a b a j o c l a r o s y con una idea precisa del problema se c o r r e el peligro de e n t r a r en un proyecto largo, canzado y e n aigunas ocasiones p a r e c e r a que s i n solución. de B I B L I O U R A F I A Notas sobre los UARTS. Manuales de INTEL. Manual de TTL. Manual de L i n e a r . Manual del usuario de la PC IBM. Manual de ECü. h APENDICE A UARTS : Receptor-Transmisor Universal A s h m o n o (UART). Los Receptores-Ti*ansmisores Universales Ashcrony,s o UART han Sido desarrollados de Loma t a l qué todos han sido incorporados a un circuito integrado standard de 4 0 pines pay algunas funciones eri el ship que son programadas por e l usuario de forma t a l que formatos de datos serialesasíncronos pueden ser acomodados. Los UARTS, son fabricados por d i f e r e n t e s casa, entre ellas la Texas Iristrunierit que fabrica a l TM56012; l a Western Diuital Corporation con el TRl602 y la Ceneral 1rtst.r-vmerit Corporation con e1 AY-3-1015, aiirque los nhner-os de pines y l a s d e s c r i p c i o n e s f u n c i o n a l e s serán l a s mismas para d i s p o s i t i v o s compatibles. Los UART se camponen 1sasicantent.e de 3 partes, una de cont.ro1, otra de receycion y una Ultima d e transmisi6n. Las sesales d e c o n t r o l del UART s o n . a q u e l l a s que son cornitties a ambas secciones, la de transmision y l a de recepcibn. Estas incluyen e l Master Reset, pin 2 f , y otras 6 señales de control que son d e s c r i t a s mas adelante. Estas 5 s+ñales controlan e l formato del dato que esta siendo transmitido y r e c i b i d o . E l formato para la sección d é Recepcion y de Transmisión para cada chip es el mismo, dada que l a s mismas 6 lineas son usadas para programarlas a ambas. TABLAS DE FUNCIONES DEL UART CONTROL Noarbre M R -> Master Reset CS -> Control Strobe NP -> No Parit-y PE -> P a r i t y . o r Parity Even S0 -> Stop Bits NB2-> Number of NBl-> Data bits SWE-> Status Words Enable Ruin. de Pin ~ 21 34 35 39 36 37 38 16 TRANSMISION N u . de Pin Nombre D B i - > Data DBZ-:. Data I)83-> Data DB4-3 Dat.a DB5-:> D a t a DB6-> Data 26 27 Bit. Bit Bit. Bit. Bit Bit DE!?-> Data Bit DB8-> Data Bit 28 29 30 31 32 33 1 2 3 4 5 5 7 8 * Clock 40 25 SO -> Serial Output TMST->Transmiter Biif f er Empty Flag. DS -> Data Strobe EOC-> End of miaracter Flag 22 23 24 c Hum, de Pin 12 li 10 9 8 7 6 5 17 20 4 18 19 13 14 15 - . . . . Nombre RDf-> Data Bit 1 Rp2-> Data Bit 2 RD3-> D a t a B i t 3 RD4-r D a t a B i t 4 RD5-> Data Bit 5 RD6-> Data B i t 6 R07-> Data Bit 7 RD8-> Data Bit 8 Giock Si -> Serial Input RDE-> Received Data Enable DRR->- D a t a Ready Reset. RDA-i. Received Data Available PE -> Parity Error FE -> Framing Error OR -> Overrun Error ,.. Y. CONTROL : Master Resert. p i n 21: Un í l.6yico en asta entrada d a un Reset al UART. Esta entrada debe de estar en un estado O l6iigico para operaciones normales. El UART debe de ser reseteado cada vez que un voltaje de encendido es aplicado a el. No Parity, pin 55: Un i l6gico e n esta entrada eliminara la p r e s e n c i a d e l bit d e paridad en los bits transmitidos. Por l o c u a l , a l receptor no esperará recibir un b i t de paridad entre IQS b i t s . Si este bit es un cero lógico, el bit de paridad, par 6 impar, ser&colocado en la transmisiin en serie de l o s bits entre el iIlt.imcz b i t del dato (MSB) y el bit de parada. Por l o t a n t o , e l receptor esperara recibir un b i t d e paridad S i el p i n 35 es ?in cero 16gico [en nuestra interfase su u t . i l i z a iin O lúgicú) Parity Select, p i n 39: Un i lbgico en e s t a entrada selecciona e l modo da paridad par y un cero l 6 g i c v selkciona el modo de paridad impar. El modo de seleccih no es ixsado por la lógica interna d e l UART si el p i n 35 (No parit.y input) está en el estado uno lógico. Number of Stop b i t s , pin 36: Ua cero lúgico en esta entrada seleccionara un B i t de parada. mientras que un uno lógico seleccionara dos b i t s de parada. Number of Data b i t s , p i n s 37 y 38: Est-os pines permiten l a selecci6n de cinco. seis, siete u ocho b i t s d e datos en serie, entre el b i t de conaienzo y el b i t - de parada. S i cinco b i t s son seleccionados, entonces habra cinco b i t s de datos en la información transmit.ida y l a secciún de recepción d e l UART esperará recibir cinco bits de datos. \ . . __._ .... ~. Estas dos entradas son programadas como s i g u e : NB-2lpin 37) NB-ifpin 381 Data B i t s o o 5 O 1 1 O 6 7 1 1 8 Control Strobe, pin 34: Un uno logic0 en e s t a entrada a i UART permitira la entrada de los cinco bits de control dentro de la círcuiteria de respectiva del UART. Esta entrada deberá r e c i b i r un pulso de un uno lógico, o debera estar permanentemente en un uno lOyico, corno usualmente se tiace en nuestra interf ase. p i n 4 0 : La s e c c i b n de trartsmision del UART acepta un set en paralelo mayor a 8 b i t s de datos, los cuales sori formateados por l o s B i t s de control, y despties los 'mandanda en forma serial. Para hacer estú, primero se requiere una sena1 de reloj. En la mayoria de las aplicaciones de los UART, la serial de reloj debe ser 16 v e c e s la de el data r a t e . Clock, Data Strobe, pin 23: La section de trarismisiún del UART tambien usa tres senales de control para manejar l a t.ransaisián actual d e información en serie. El Data Strobe GS una sesal que carga la palabra de 8 b i t s dentro del buffer d e transmisión. Un cero l6gico an el Data Strobe causa. que se realize e s t a accibn. S i e l transmisor esta todavia mandando e l dato, l a t r a n s p i i s i h es completada a n t e s de que ef nuevo dato sea transmitido d e s d e el b u f f e r de transmisibn a l registro d e l transmisor, desde e l cual es transmitido. Transmiter Buffer Eapty, pin 22: Una sena1 o bandera (fe que el buffer de transmision esta vacía fTMBT) esta p r o v i s t a como fina salida que indica que el b u f f e r de t r a n s m i s i h esta vacio (uno lógico) o que e s t e t-údavia contiene l a palabra que t i e n e que ser aun t r a n s m i t i d a (.-.-. -ro lOtjiC0). Cuando una palabra ha sido transferida desde ei buffer de t.ransmisi6n al registro d e t.ransmisi6n para ser mandada, , l a bandera del b u f f e r se va a un9 16giC9, indicando que la próxima palabra puede ser r e c i b i d a por l a secci&i del transmisor d e l UART. End of Character, pin 2'4: Una bandera adicional esta p r o v i s t a para indicar si esta o nu la transmisibn -011 proceso. La bandera de fin de caracter (EOC) tiene un uno lOgico cuando no se esta t r i d m i t i e n d o y UTI cero idgico cuando se esta transmitiendo. E l caracter esta compuesto d e l a palabra d e datos de 5 a 8 h i t s , y los bits de control. 146498 . . .. Dado que l a secciOn d e t r a n s r a i s i h esta compuesta de dos registras, est6 pueda estar transmitiendo un caracter mientras o t r o esta esperando. Serial Outqtit-D pin 25: La salida serial (Sü) b e l transmisor esta disponible en el pin 25. La s a l i d a serial es una representación de b i t compatible con el TTL. I RECEPCION : Clock, p i n 17: La sección de recepción del UART es de alguna wanera mas complicada que l a secci6n da transraision, dado que tenemos bits de comienzo. bits de parada, bits de paridad y l o s bits de los datos deben de ser recqnocidos y e j GGUtadOS. La seccih de recepcidn también r e q u i e r e iina señal d e clock que es 16 veces 1.a velocidad con la que se va ha recibir el bit.. La señal de clock es recihida y aplicada en el pin 17. Received Data Enable, pin 4: Una v e z que rtn paquete de b i t s en serie ha sido recibido, este es transferido cn paralelo desde el registro d e receycih hacia el buffer en la seccidn de recepcidn de UART. L a s acho salidas de esta sección pueden t e n e r tres estados; uno lsgicú, cero logic0 y tercer e s t a d o . Este Último es un estado de alta impedancia que desconecta las s a l i d a s d e l receptor del UART de l o s dispositivos a los cuales est.& conectado. E s t a entrada debe tener un cero luyico para permitir la recepcion de datos, si tiene un uno lágico los ocho datos de entxada estarán en estado de alta impedancia, desconectándolos d e l sistema. &+,a Ready Reset. g i n 18; y Recelved Data Available, p i n 19: La h a b i f i t a c i ó n de los datos r e c i b i d o s es indicada por el estado da la bandera d e l dato recibido y d i s p o n i b l e , pin 19. Un uno logic0 en esta salida indica que un set completo de h i t s de datos ha sido recibido y transferido al buffer receptor. Un cero logic0 indica que un set dé bits de datos no ha s i d o recibido aun. La bandera Data Ready. Reset tDRR) p i n 18. esta d i s p o n i b l e como tina entrada por lo tanto la bandera Received Dat.a Available debe ser reseteada despues de que l a bandera ha s i d o censada y que el dato ha sido usado por el sistema de recepcibn. Esta acci6n activa la bandera Received Data Available, por fo t a n t o debe ser usada para sensar y habilitar e1 prbximo s e t de hits de datos que s e r h e n v i a d o s seria1utent.e. a l a seccion üe recepci6n del U M T . Uri cero logic0 aplicado a l a entrada 13at.a Ready Reset.. reseteara la bandera Received h t . a Available. Parity Error,pin 13: Esta salida se va a uno 16gzco si la paridad de ].a palabra de datos recibida nu concuerda con la paridad que ha sido seleccionada para el UART en el pin 33. Parity Select. La s a l i d a de P a r i t y E r r o r no tiene significado si no se ha seleccionado un tipo de paridad en cuyo caso el pin 35 estarzi en uno lOgico. Framing Error. p i n 1 4 : Un uno logic0 en esta salida es wad0 vara indicar que el receptor no ha detectado un bit de parada, o dos b i t . s de parada, en el paquete de h i t s recibido, Overrun, pin 15: Un uno lógico en esta salida i n d i c a q.re l a bandera Received Dat.a Available no ha sido reseteada despues de que el caracter previo ha s i d o recibido. Por lu t a n t o , el c a r n c t e r que se acaba d e recibir ha sido escrito sobre su antecesor. Por 10 tant.0 fa c i ’ r c u i t e r i a e x t e r n a a l UART debe resetear l a bandera Received Data Available ciespués de que cada nueva palabra de datos es censada y utilizada en el UART. Enable, p i n 16: Parit.y Error, Cverruri Error y Framing Error, a s l como Transmitter Buffer Empty y Received Data Available. tienen tres estados de salida. Estas salidas son controladas simultaneamente por la entrada Status Word Enable, p i n 16. Cuando esta ent.rada est.& en ~ e r o l0gico. la salida de l a s 5 Banderas estar1 activas Curio o cero l6giccí). pero si Stat.us Word Enable esta en i.mo iOyico, las c i n c o barideras de salida e s t a n en a l t a impedancia o desconectadas, Status Word . APENDICE E .. . , .. . . ..:..: . .. ...:; ..... . .... . . O h Ir -.' (s P A 4 A L u- i O U .. . h D . s l It .. . IC'.' .' 3 APENDICE C 146498 I I . . oid ccmparar (void) I k(iNDOW * w n d L ; i* vEuitatia desplega resultado * f WINISOW *wmdD; v e n t a t 3 a despieg WZNDOW * e w n d ; ventana mensaje unsigrmd shark int elementrrcC3; /* /* ' int i , r e s i d u u ; int. buf I83: char s a l = '': char ret=": í j I 1 ' col ares-? ini=8; bander a=FALSE; wndC = e s t á & l i s h - w i n d set-tít.le(wndc, "Re set-colorstwndc, A di sp l a y - w i r r d c s w ( w n i f (cunta>=@) I < eie-mento = t i n t l c o l a r e f c r r ( i = @ ; i<8: i + + ) ' residuo = e l e r n e n t o X 2; i f (residuu==l) b u f l i l = 1; else lsufEil = 8 ; e 1emerita = E!1 ~rnent.o/2 : 3 if (buf [canta-61==U) < w p r i n t f 4wndC," EL wpr it-rtf ( wndci,"Xd" w r r i r i t f (nndC,'* f el bit, ' * I = 3 else < wpt-intf(wndl," La 5ienix3, el resultado del bit, ''1: wpt- ir1t.f CwndC, "Xd". corska) : w p r i n t f fwndC, " esta m a l " ) : 3 3 w p r in%f ( W C , " E l wpt-it-ltf bvrldl=,"ird" * w p r i rtt-f 4 wndC ,'' f tie ico para el &it "1; cumecto ! '' i ; 2 E?ilze ,I* Lo sientao, el result-aciu bel b i t "1: t 3,311; ELLOW, BRIGHT) para continuar"): ELLOW. BRIGHT2 : "1: r3ridX = e s t a b l i s h - H i r k b w C0,0,3,201 : s e t - t r a l o r s ( w n d X , ALL, BLUE. YELLOW' BRIGHT) : 5et-tit.le (wndX, "Eianderas"): d i sp I a y-w 1 r i do w f wrtdX 1 : wndG = e s t . a ~ l i s h - w i n d o w ( 1 8 , 3, 15, 501; c,at-bcrr&r (wndfi, 3 ) t set-crJ1ut-s I w n d A , A L L , BLUE, YELLOW, ErRIGHT) p k e t - t . i t l e I w n d A , D t C m - rierído Diagnust-icu"3 : d i s p l a y - w i n d o w iwr-idA) : curt t-adoY =Qr P ilont=1 : w p r o m p t (wndA,3, 1 , " E s t o y corriendo diagnostico para ' I ) : w p r i t - t t f (wndA, "bit. ==> *') : w p r int.f ( w n d G , "%d",conta1G wprompt(wndA,9,4, "Estoy Trarrunitxendú. cursor 1 0 , 2 5 1 : wndC = ~ 6 t a b l i s h _ n i n d o w < 2 5 . ~ ~ ~ , ~ ' ~ 1 : set-t-itle (wndC, "Mensaje") : I set-coiors(wndC, ALL, BLUE, WH display-windowfwnd~); i w p r i n t f ( w n d C , "Presiona dos ueces 't' para rnatsdar io5 dat-os a l a t a r - j e k a " ) . : ' sys-on ( ) P w t i i l e (cantador(2) i I i ! .r: DESENCOtA Icolares,&element.ci): f o r ( i = 0 ; i<8; i++) <i residuo = a1ernent.o X 2; i f (residuu==l) buflil = 1; €!15Ec bufEil = @; elernento = elerr~~~to/T-I: 3 w r r i n t f (wncJA, "%i",cont3: w p r - i n t f ( w n d A , ** -> * I ) : f a r ( i = 7 s i>.=0:i--2 w p r iritf I w n d A , '*%i",truf t i l 1: WPY > i n t f ( w n d A , ''h cortt++ : S Y S - o f f 11 j comparar O j conta++ : coiatran->ini=c~lar~s-~~~i=~~ cola~t-an->fi~=culare~->fí~=~: cuWlt=1 5 s > cuwit2-1; 3whi le (conta<lEi): mid r e s e t - i n ( v o i d ) unsigned short i n t eiemf-nto=Qi; i t i t cant-ador =a,cotit=1: char sal='*; i d proyecve ( 1 INDOW *wndB: f-&p '*"cp; nt 5 /* vet-kana d e l menu de opciones = 8; ys-off (1 : *delay(2@00) 5 */ lrscr O : *curc,or (0,251: n d A = establish-window(0, 1, 23, 85) F &-&order I w n d A , 4 ) ; yt_culor54wndfi, ALL, RED, YEUOl4+12@, BRIGkiT) i isplay-window(wndA): prompt CwndA, 22, 2, "UNIVERSXDAD AUTONOMA METROPOLITANA" 1 : prompt (wndCS, 3 1 , 3, "CiNIDAD I L T G P A L A P A " ) : */ i d checa-tarjeta (void) INDOW *wt-tdC, *swtid: rrsigned short irk. elemenLu=Q; n t i , residuo,currtador=@,cont=li n t bUf~S1: hár sal.='' 5 a< conbador=@; wndX = e s t a b l i s h w i d o n ( 0 , @,3,2@)i sid mairt0