Maestría en Cibertrónica Guía de Ingreso: Área Electrónica I. Arquitectura de Computadoras INSTRUCCIONES: Resuelve en equipo las siguientes preguntas. Las respuestas se entregan individualmente al final de la clase. El objetivo del ejercicio es que discutas los elementos que deben integrar la respuesta correcta. 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. ¿Qué es el BIOS? En donde se encuentra el BIOS? ¿Qué dispositivos se controlan con el BIOS? ¿Qué es el ROM BIOS? ¿Para que sirve la parte no residente del BIOS? ¿Para que sirve el archivo IO.SYS? ¿Qué es el kernel del SO? ¿Cómo se accede a las funciones del sistema? ¿Qué funciones provee el kernel? Menciona cinco servicios del BIOS ¿Cómo se invocan los servicios del BIOS? ¿Como se solucionan los conflictos entre interrupciones del BIOS? ¿En que lenguaje se programan las rutinas de interfase? ¿Qué interrupción corresponde al servicio de comunicaciones seriales? Lista los subservicios del BIOS RS-232 Describe brevemente cada uno de los subservicios ¿Qué información se requiere para inicializar al puerto serial? Muestra la tabla para configurar el BAUD RATE Muestra la tabla para configurar la paridad Muestra la tabla para configurar los bits de paro Muestra la tabla para configurar el tamaño de los datos ¿para que sirve el servicio 80H y 81H? Definición del SO. Escribe 3 funciones del sistema operativo. ¿Qué es un compilador? 1. ¿Qué es la Arquitectura de una computadora? Elementos a considerar: a. Hardware y Software. b. Encapsulamiento. c. Organización. 2. ¿Cuáles son los objetivos de la Arquitectura de las computadoras? Elementos a considerar: a. Computadoras de propósito general o específico. b. Velocidad y Costo. c. Aplicaciones. 3. ¿Por qué es importante conocer la arquitectura de un procesador? Elementos a considerar: a. Funcionamiento interno del µP b. Ejecución de programas. c. Relación con el BIOS y el SO. 4. Para una compuerta AND: a. Dibuja el diagrama esquemático b. Dibuja el diagrama de simulación c. Dibuja el layout. 5. Escribe un programa en ensamblador que escriba en el centro de la pantalla “Hola Mundo”. El programa debe de tener las siguientes características: a. Utilizar subrutinas. b. Comentar cada línea c. Decir el valor final de los registro AX, BX, CX, y DX. 6. Define de la forma mas completa los siguientes términos: a. Registro. b. Bus bidireccional c. Directiva de ensamblador d. Interrupción e. DMA f. Dirección física g. Encapsulamiento h. Banderas i. Segmentación 7. Describe para que se utilizan los siguientes registros o banderas: a. ZF b. CS c. SS d. IP e. SF f. DF g. OF h. BS i. DS 8. Observa la figura y contesta: a. Título de la figura b. Para que se utiliza este esquema de funcionamiento c. En que factor se incrementa la velocidad Maestría en Cibertrónica 9. Para el siguiente esquema define la función de cada uno de los Buses y el por que son unidireccionales o bidireccionales. 10. Explica de la forma mas completa cada uno de los siguientes esquema Maestría en Cibertrónica . 11. Observa los diagrama de tiempos de la siguiente figura y contesta las preguntas para cada uno de ellos Maestría en Cibertrónica a) b) c) d) ¿De que instrucción se trata? ¿Qué indica la señal ALE? ¿En que ciclo de reloj los datos son válidos? ¿Cuántas direcciones se pueden trabajar con 16 bits? e) ¿Cuándo se utilizan los ciclos TW? II. Diseño Lógico 1. Observa el siguiente diagrama de bloques y responde las siguientes preguntas. a) ¿Cuál es el nombre técnico del circuito que reciben las señales T1? b) Dibuja la forma de onda para cada una de las seis señales de tiempo. c) Describe brevemente la operación del circuito. d) ¿Para que sirve la señal M del ALU? Entrada de datos Registros del CPU Entradas A Salidas Registro A T4 T1 RA Entradas B Registro B ALU T2 RB T3 Controlador del CPU T1 T2 T3 T4 S3 S2 S1 S0 B A CO M 0 1 1 0 1 Unidad Aritmética CN RA RB Generador de tiempo Lógica 2. Muestre el circuito lógico diseñado para implementar la función T=f(A,B,C,D,E,F), que se indica abajo, usando un solo MUX de 8X3 y las compuertas AND, OR y NOT que se requieran. T=(1,5,6,7,8,9,11,13,15,16,17,18,20,21,24,27,29,30,32,33,34,35,36,40,42,46, 49,50,51,52,53,54,55,59,63) a) Mostrar el mapa de Karnaugh para la función T. b) Mostrar las simplificaciones por mapas de Karnough de la función T(A,B,C,D,E,F). c) Mostrar el circuito lógico usando el multiplexor (ver el ejemplo resuelto). ABCDEF D T EF 00 00 00 0 00 00 01 1 00 00 10 0 00 00 11 0 00 01 00 0 00 01 01 1 00 01 10 1 00 01 11 1 D 00 0 01 11 10 E F 1 E 1 1 1 DE + EF 1 MUX T(A,B,C,D,E,F) Maestría en Cibertrónica 3. El gobierno de la ciudad quiere diseñar un circuito que permita encriptar información vía hardware para evitar el espionaje y que así se filtre información. En el extremo transmisor se deberá utilizarse un circuito combinacional que transforme los datos de entrada de acuerdo con la siguiente tabla: Entrada Salida 0 0 0 1 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 1 1 0 0 0 1 1 0 0 1 0 1 0 1 0 1 0 1 0 1 1 1 0 1 0 1 1 1 1 1 1 1 1 1 Por supuesto, en el extremo receptor se debe instalar un circuito que desencripte la información regresándola a su forma original. Diseña ambos circuitos. 4. Observa el diagrama y determina: X1A A B 1 X3A 3 1 A 3 2 2 X5A 7432N 7400N 1 2 X2A C 1 X4A 2 1 2 7404N D B 3 C 7432N 3 D 7400N Si tomamos en cuenta que las señales de entrada son las que se muestran arriba determina la forma de onda para X1A, X2A, X3A, X4A y X5A. 5. Diseña un circuito multiplexor de 32 entradas de datos utilizando multiplexores de 8 entradas de datos, 3 entradas de selección y 2 entradas de habilitación o selección de chip. 6. Observa el siguiente diagrama y contesta las siguientes preguntas. Maestría en Cibertrónica a) ¿Cuál es el núcleo del diagrama mostrado? b) ¿Qué función tiene el bloque AE? Observa la tabla de abajo y contesta. c) Muestra la tabla de verdad con M, S1, S0, bi como entrada y yi como salida. d) Muestra la simplificación mediante un mapa de Karnaugh. e) Muestra el circuito. Para la tabla que se muestra determina: f) La representación en mapa de Karnaugh. g) La función simplificada. e) El circuito lógico. III. Microprocesadores 3. Determina si las siguientes afirmaciones sobre los PIC’s son falsas o verdaderas. ( ) ( ) Tienen una arquitectura Harvard. La memoria de datos es de tipo DRAM. ( ) La memoria RAM del PIC consta de 64 registros de 8 bits. ( ) Un procesador segmentado ejecuta varias instrucciones al mismo tiempo. ( ) La memoria de instrucciones es de 1024 registros de 8 bits. ( ) ( ) Un microcontrolador es un sistema cerrado ya que se programa para tareas específicas. Los registros especiales están organizados en dos bancos de memoria. ( ) La terminal MCLR se activa en alto. Maestría en Cibertrónica ( ) ( ) Los puertos son bidireccionales, es decir pueden ser entrada o salida al mismo tiempo. El registro Program Counter (PC) se almacena en la memoria de instrucciones. ( ) La arquitectura Von Neumann utiliza una memoria de datos y otra para las instrucciones. Una arquitectura ortogonal puede utilizar cualquier elemento de la arquitectura como fuente o destino. El Stack está integrado por 8 registros de 8 bits cada uno. ( ) El registro de trabajo W es de 14 bits. ( ) En un PIC, un ciclo de máquina se ejecuta en 4 pulsos de reloj. ( ) La dirección 50H pertenece a los registros de propósito general. ( ) ( ) 1. Para el código que se muestra contesta las siguientes preguntas a) ¿Qué son las líneas que empiezan con un punto? b) ¿Qué define la palabra near en un procedimiento? c) ¿Qué código se requiere agregar para devolver el control al SO? d) ¿Cuál es el propósito de la instrucción ADD en este programa? e) Explica que hace la línea mov buffer [bx],0024h f) Escribe el código de la subrutina limpia. g) Escribe el código de la subrutina posic. h) Escribe el código de la subrutina retorno. i) Escribe el código de la subrutina desp. j) Escribe el código de la subrutina Esch. .model small .data msg1 DB "Introduzca su nombre $" msg2 DB "Su nombre es: $" msg3 DB "El numero de caracteres es: $" buffer DB 15 DUP("$") .code ;******* Programa Principal *********************** main proc near mov ax,@data mov ds,ax mov bl,15d mov buffer[0],bl Maestría en Cibertrónica call call mov call call limpia posic dx,offset msg1 desp retorno mov call mov mov mov add mov mov dx,offset buffer escr al,24h ah,00h bl,buffer[1] bl,2d bh,00h buffer [bx],0024h call mov call call mov call retorno dx,offset msg2 desp retorno dx,offset buffer[2] desp call mov call mov add mov mov mov mov call call retorno dx,offset msg3 desp al,buffer[1] al,30h buffer[1],al bl,"$" buffer[2],bl dx,offset buffer[1] desp retorno main endp 2. Observa el siguiente código y contesta las preguntas. a) b) c) d) e) f) Escribe 5 directivas del ensamblador. Escribe 3 errores que tenga el programa. Configura correctamente todo el puerto A como entrada y todo el B como salida. ¿Qué hace la línea ORG 0x000? ¿Qué línea de código debe de incluirse para no tener que escribir la sección de constantes? ¿Qué hace el programa? list p=16f84 radix hex ;----------------------------------------------------------w equ 0 f equ 1 porta equ 0x05 Maestría en Cibertrónica portb equ 0x06 ;----------------------------------------------------------org 0x000 inicio movlw 0xff tris porta movlw 0x00 tris portb movf porta,w movwf portb ciclo goto ciclo ; end 3. Observa el siguiente código y contesta las preguntas: ENCABEZADO CONSTANTES Inicio Org Call Call Call Goto 0x000 config_puertos lectura_boton Asigna_salida Inicio end a) b) c) d) e) f) g) h) i) j) k) l) IV. Muestra el circuito que corresponde al botón de MCLR Muestra el circuito para leer en el puerto A un dip switch de 4 bits y un push boton Muestra el circuito para conectar un display de 7 segmentos de ánodo común en el puerto B. No olvides conectar el ánodo. Muestra el código que debe colocarse en lugar de la etiqueta ENCABEZADO. Muestra las constantes que se deben definir en el área de CONSTANTES para mostrar en el display los números del 0 al 9 y una letra E de error. Escribe el contenido de la rutina config_puertos haciendo que el display muestre el número cero como primer valor. Escribe el código de la subrutina lectura_boton para identificar en que momento se oprime el botón y el momento en que se suelta. Cada vez que se oprime el botón, el valor del dip switch debe leerse. Escribe el código de la subrutina Asigna_salida para identificar la salida del puerto B de acuerdo con el valor leído del dip switch. En esta subrutina se le asigna valor a portb. Para los valores mayores a 9 debe de desplegarse una letra E. Modifica la subrutina config_puertos para que el valor inicial sea el del dipswitch. Modifica la subrutina lectura_boton para que una vez que se oprima el botón el display empiece a moverse ascendentemente hasta llegar al nueve. Cada que llegue al número 10 debe regresar a cero cíclicamente. Escribe una subrutina de retardo para que los resultados no aparezcan muy rápido Muestra como se modifica la instrucción GOTO Interfases 1. Observa el diagrama y contesta las preguntas. a) b) Determina el tamaño de la memoria ¿Cuántos bancos de memoria se pueden unir? Maestría en Cibertrónica c) d) e) ¿Qué se requiere para que el contenido de la memoria llegue hasta el bus de datos? ¿Cuál es el rango específico de direcciones para la memoria que se muestra en la figura? Si las terminales E2 y E3 no estuvieran conectadas a tierra y 5V respectivamente, y se usaran como bits de dirección ¿hasta que tamaño podría crecer la memoria? 4. Contesta las preguntas a) ¿Cuántas memorias se pueden conectar en total al arreglo? b) Determina el rango de direcciones sobre los que puede trabajar la memoria ROM1 c) Determina el rango de direcciones sobre los que puede trabajar la memoria ROM2 d) Determina el rango de direcciones sobre los que puede trabajar la memoria R/WM1 e) ¿Qué estado debe de tener la señal IO/M para que funcionen las memorias? Maestría en Cibertrónica 5. Explica de la firma mas completa el siguiente diagrama. 6. Escribe el código necesario para que el display muestre la palabra HOLA (no se requiere DELAY) Maestría en Cibertrónica 7. Escribe el código necesario para que aparezca en el display el número 17 8. Contesta las siguientes preguntas: 1 2 3 4 5 6 7 STAR: NXTBYTE: LXI MVI MVI MOV CMP JNC MOV H,2050H C,08H B,00H A,M B NEXT B,A Maestría en Cibertrónica 8 9 10 11 12 13 NEXT: INX DCR JNZ MOV OUT HLT H C NXTBYTE A,B PORT1 a) ¿Cuántas veces se repite el ciclo? b) En la línea 4, ¿Cuál es la primera dirección a la que se apunta? c) En la línea 7, ¿Qué queda almacenado siempre en B? d) ¿Para que se utilizan las líneas de código 8,9 y 10? e) ¿Qué número se saca por el puerto? f) ¿Qué hace este programa? Maestría en Cibertrónica Set de Instrucciones y mapa de memoria del PIC Maestría en Cibertrónica Set de Instrucciones de INTEL Maestría en Cibertrónica