CAPITULO 1 SISTEMAS BASADOS EN MICROPROCESADORES La ciencia es el arte del ensayo y el error, su producto ms importante es la razn.... Los sistemas lgicos basados en transistores poseen las mismas ventajas que los circuitos electrnicos de estado slido: son seguros, confiables, pequeos, rpidos y baratos. Desde el punto de vista del usuario industrial, su nica falla es su difcil modificacin con el cambio de aplicacin. Hoy en da se ha popularizado un nuevo enfoque en la construccin de sistemas lgicos industriales. En este nuevo enfoque, la toma de decisiones del sistema se lleva a cabo por instrucciones codificadas las cuales estn almacenadas en un circuito de memoria y ejecutadas por un microcroprocesador, por lo que, a la hora de cambiar de aplicacin ser suficiente cambiar las instrucciones codificadas, haciendo que estos sistemas sean ms flexibles. PRE-REQUISITOS Para la comprensin adecuada del contenido de Microprocesadores, se requiere los conocimientos previos de: Electrnica bsica: semiconductores, transistores, elementos de visualizacin (LEDs, Displays, etc.). Electrnica Digital: Sistemas de numeracin, Circuitos Combinacionales y Secuenciales (Compuertas lgicas, Registros, etc.). Sistemas Anlogo-Digitales: Amplificadores operacionales, memorias. Programacin: Definiciones bsicas, algoritmos y diagramas de flujo. OBJETIVOS Establecer los fundamentos necesarios para la comprensin adecuada del funcionamiento de la estructura de los sistemas basados en microprocesadores para el desarrollo de diversas aplicaciones, sean estas industriales o de comunicaciones. Al finalizar el estudio de este captulo, el estudiante estar en capacidad de: Realizar un anlisis comparativo entre los controladores tradiciones y los sistemas basados en microprocesadores. Describir correctamente la estructura fsica y funcional de un sistema basado en microprocesadores. Identificar con criterio fundamentado las diferentes partes que constituyen los sistemas basados en microprocesadores. Realizar un diseo correcto de un sistema bsico basado en microprocesadores de 8 bits. Utilizar las instrucciones de Lenguaje Ensamblador, en la programacin de un sistema bsico de microprocesador de 8 bits, orientado al control de perifricos de seal digital. Sistemas basados en microprocesadores Parte I Ing. Gerardo Collaguazo 2 1.1 COMPONENTES DE BASE DE UN SISTEMA DE MICROPROCESADORES 1.1.1 INTRODUCCION Con el avance tecnolgico, los procesos de produccin industriales han sufrido grandes cambios, por lo que quienes estamos involucrados con el tema, debemos estar permanentemente informados acerca de los nuevos productos, mtodos de proceso, solucin de fallas, sistemas, etc. En la actualidad, la automatizacin es un rea que est en permanente contacto con nosotros, por esta razn, debemos estar preparados y conocer el funcionamiento de dichos sistemas. Encontramos sistemas basados en microprocesadores en la mayora de productos sean estos de uso domstico (hornos de microondas, estreos, reproductores de CDs, etc.), industrial (automotriz, textil, plstica, etc.), equipos de comunicacin, de oficina, instrumentos de laboratorio, etc., por tal razn, es muy importante que cualquier tcnico en electrnica comprenda la manera de detectar los problemas en los microprocesadores. Se dice que en la primera parte de la revolucin industrial las mquinas reemplazaron los msculos, mientras que en la segunda, la actual, los microprocesadores y sus aplicaciones intentan reemplazar la POTENCIA DEL CEREBRO; igualmente podemos afirmar que el computador digital es, junto al motor elctrico, uno de los inventos decisivos de la humanidad. Todos los sistemas tecnolgicos modernos estn compuestos por un mtodo de movimiento y un sistema de control. El motor y el computador digital ocupan, en su orden, estos lugares. Un microprocesador es un circuito electrnico programable que requiere de apoyo para su funcionamiento. 1.1.2 ROL Y ESTRUCTURA Teniendo en cuenta que la palabra sistema sugiere un conjunto de elementos relacionados entre s, para realizar una funcin bien definida que ninguno podra hacerlo por s solo; podramos decir que un sistema basado en microprocesadores es un conjunto de componentes (circuitos electrnicos) interconectados capaces de efectuar sobre la informacin proveniente del proceso, representada en forma binaria, operaciones aritmticas y lgicas, y realizar la transferencia de datos con los diferentes perifricos conectados al sistema. Bajo este aspecto tenemos: Perifricos de entrada (Sensores o Captores) son quienes reciben la informacin de cambios fsicos del proceso. Estn representados por los sensores captores de seal de tipo digital o analgico: pulsadores, interruptores, contactos elctricos, CAD, etc. Evolucin Ao 1968: Se sustituyen los rel s con transistores 1973: Se incorpora el mP 1977: Aparecen mejoras en lenguaje de programacin 1980: Aparecen los robots controlados por ordenador 1990: Aparece la comunicaci n en red en el control de procesos 2000: Los PLCs van de la mano con los microcontroladores xxxx: Comunicaciones y controles con elementos mecnicos Evolucin Ao 1968: Se sustituyen los rel s con transistores 1973: Se incorpora el mP 1977: Aparecen mejoras en lenguaje de programacin 1980: Aparecen los robots controlados por ordenador 1990: Aparece la comunicaci n en red en el control de procesos 2000: Los PLCs van de la mano con los microcontroladores xxxx: Comunicaciones y controles con elementos mecnicos Fig.1.1 Evolucin de los controladores industriales OPERADOR SENSORES O CAPTORES ACTUADORES EQUIPO A CONTROLAR O PROCESO INDUSTRIAL UNIDAD DE CONTROL Elementos de programaci n Informacin recibida Informaciones del sistema Ordenes a ser ejecutadas OPERADOR SENSORES O CAPTORES ACTUADORES EQUIPO A CONTROLAR O PROCESO INDUSTRIAL UNIDAD DE CONTROL Elementos de programaci n Informacin recibida Informaciones del sistema Ordenes a ser ejecutadas Fig. 1.2 Sistema de control de procesos Sistemas basados en microprocesadores Parte I Ing. Gerardo Collaguazo 3 La Unidad de control procesa la informacin recibida en base a un programa (secuencia lgica de instrucciones) y entrega los resultados para ser ejecutados. Perifricos de salida (Actuadores) que son los encargados de ejecutar las rdenes en funcin de los resultados de la Unidad de Control. Estn representados por: solenoides, rels, contactores, displays, CDA, etc. Existen dos soluciones para implementar un circuito digital que resuelva un determinado problema: a. Lgica cableada: Son circuitos diseados exclusivamente para realizar una aplicacin concreta, es decir son muy rgidos, lo que significa que para una nueva aplicacin se debe disear un nuevo circuito. b. Lgica programada: Es un concepto ms amplio que dio lugar a las mquinas universales programadas. Se trata de mquinas potentes y flexibles capaces de realizar la mayora de las funciones bsicas necesarias para cualquier aplicacin. Trabajan de forma secuencial ejecutando progresivamente las operaciones necesarias en base a un programa. CARACTERSTICAS DEL SISTEMA CABLEADA PROGRAMABLE Mantenimiento Costo Adaptacin de procesos Posibilidades de ampliacin Interconexin y cableado exterior Estructuracin en bloques independientes Mucho Bajo Difcil Bajas Mucho Difcil Poco Alto Fcil Altas Poco Fcil El problema mayor que existe al realizar un sistema basado en microprocesadores, es aquel que se necesita personal experto para su diseo y mantenimiento. Como se dijo anteriormente, un sistema basado en microprocesadores consta de una serie de elementos para la entrada, salida, procesamiento, control y almacenamiento de informacin. Los enlaces entre estos elementos se establecen a travs de caminos de seal, por ejemplo cables, que llevan o transmiten informacin digital entre un punto y otro. PROBLEMA PROGRAMADOR ANALISIS CONOCIMIENTOS PROGRAMA SISTEMA mP SOLUCION DATOS DEL PROBLEMA PROBLEMA PROGRAMADOR ANALISIS CONOCIMIENTOS PROGRAMA SISTEMA mP SOLUCION DATOS DEL PROBLEMA Fig. 1.3 Solucin de un problema UNIDAD DE CONTROL UNIDAD DE CONTROL ALU ALU UNIDAD DE ENTRADA UNIDAD DE ENTRADA UNIDAD DE SALIDA UNIDAD DE SALIDA MEMORIA RAM MEMORIA RAM MEMORIA ROM MEMORIA ROM Unidad E/S CPU o mP Unidad de memoria UNIDAD DE CONTROL UNIDAD DE CONTROL ALU ALU UNIDAD DE ENTRADA UNIDAD DE ENTRADA UNIDAD DE SALIDA UNIDAD DE SALIDA MEMORIA RAM MEMORIA RAM MEMORIA ROM MEMORIA ROM Unidad E/S CPU o mP Unidad de memoria Fig. 1.4 Estructura de un sistema de microprocesadores Sistemas basados en microprocesadores Parte I Ing. Gerardo Collaguazo 4 La funcin principal de un sistema basado en microprocesadores consta en el procesamiento de informacin recogida del exterior por medio de los perifricos de entrada y la transmisin de los resultados sea directamente al proceso, sea al operador, por medio de los perifricos de salida conectados al sistema. El procesamiento de la informacin de entrada se realiza en base a un programa escrito en la memoria del sistema, la misma que puede tener los resultados finales o intermedios. La comunicacin entre el sistema y los perifricos se realiza por el conjunto de circuitos que constituyen el denominado Mdulo de Entrada/Salida del sistema. En esta forma se distinguen tres partes fundamentales: UNIDAD CENTRAL DE PROCESAMIENTO (CPU), BLOQUE DE MEMORIA y el MDULO DE ENTRADA/SALIDA, interconectados entre ellos por intermedio de los BUSES. Como aplicacin de lo expuesto hasta el momento, vamos a describir brevemente el principio general de funcionamiento de un control de temperatura de un horno con microprocesador, tipo On/Off. El diagrama prctico de conexin se muestra en la figura 5, mientras que el diagrama de bloques en la figura 6. La temperatura deseada se ajusta de la perilla que tiene una escala marcada en grados centgrados. Esta lectura se lleva a travs de una interface de entrada y se almacena en una parte de la memoria RAM. Posteriormente, el microprocesador lee la temperatura actual por medio de un sensor apropiado y tambin, a travs de una interface, la convierte en una seal digital equivalente a los grados ledos. Este dato se almacena en una casilla o posicin de memoria RAM. Estas dos operaciones estn dirigidas por un programa que, generalmente para este tipo de sistemas, est almacenado o grabado en la memoria ROM. SISTEMA DE mP e INTERFACES SISTEMA DE mP e INTERFACES HORNO ELECTRICO ELEMENTO CALEFACTOR INT. DE SEGURIDAD SEAL DE CONTROL SEAL DEL SENSOR SEAL DE SEGURIDAD SEAL DE ALARMA SEAL DE REFERENCIA SEAL DE ENERGIZACION PANEL DE CONTROL 0 6 5 C ON OFF SISTEMA DE mP e INTERFACES SISTEMA DE mP e INTERFACES HORNO ELECTRICO ELEMENTO CALEFACTOR INT. DE SEGURIDAD SEAL DE CONTROL SEAL DEL SENSOR SEAL DE SEGURIDAD SEAL DE ALARMA SEAL DE REFERENCIA SEAL DE ENERGIZACION PANEL DE CONTROL 0 6 5 C ON OFF Fig. 1. 5 Esquema prctico de control de temperatura con microprocesador SENSOR DE TEMP. (TERMISTOR, TERMOCUPLA, RTD, etc) SENSOR DE TEMP. (TERMISTOR, TERMOCUPLA, RTD, etc) INTERFACE DE ENTRADA (CONVERTIDOR A/D) INTERFACE DE ENTRADA (CONVERTIDOR A/D) SISTEMA DE mP (CPU, RAM, ROM, E/S) SISTEMA DE mP (CPU, RAM, ROM, E/S) INTERFACE DE ENTRADA (CONVERTIDOR A/D) INTERFACE DE ENTRADA (CONVERTIDOR A/D) SELECTOR DE TEMP (PERILLA GRADUADA ENC) SELECTOR DE TEMP (PERILLA GRADUADA EN C) INTERFACE DE SALIDA (TRANSISTOR, RELE, TRIAC, etc) INTERFACE DE SALIDA (TRANSISTOR, RELE, TRIAC, etc) ELEMENTO CALEFACTOR ELEMENTO CALEFACTOR IN IN OUT SENSOR DE TEMP. (TERMISTOR, TERMOCUPLA, RTD, etc) SENSOR DE TEMP. (TERMISTOR, TERMOCUPLA, RTD, etc) INTERFACE DE ENTRADA (CONVERTIDOR A/D) INTERFACE DE ENTRADA (CONVERTIDOR A/D) SISTEMA DE mP (CPU, RAM, ROM, E/S) SISTEMA DE mP (CPU, RAM, ROM, E/S) INTERFACE DE ENTRADA (CONVERTIDOR A/D) INTERFACE DE ENTRADA (CONVERTIDOR A/D) SELECTOR DE TEMP (PERILLA GRADUADA ENC) SELECTOR DE TEMP (PERILLA GRADUADA EN C) INTERFACE DE SALIDA (TRANSISTOR, RELE, TRIAC, etc) INTERFACE DE SALIDA (TRANSISTOR, RELE, TRIAC, etc) ELEMENTO CALEFACTOR ELEMENTO CALEFACTOR IN IN OUT Fig. 1.6 Diagrama de bloques Sistemas basados en microprocesadores Parte I Ing. Gerardo Collaguazo 5 Con estos dos datos se hace una operacin lgica de comparacin en la unidad Aritmtico-Lgica de la CPU. De acuerdo a los resultados y las instrucciones del programa, la CPU enva una seal a la interface de salida que activa o desactiva un elemento calefactor o resistencia. Si la temperatura a controlar es ms baja de lo deseado, se enva un alto (1 lgico) por una lnea del bus de datos y se enciende la resistencia. Si la temperatura est ms alta de lo deseado, se deja la resistencia sin funcionar enviando un bajo (0 lgico) por la misma lnea para que la resistencia no funcione. De esta manera la temperatura se ir ajustando hasta el valor marcado por la perilla. La unidad de control del microprocesador enviar todas las seales propias a todas las dems unidades para que realicen las operaciones de lectura y accionamiento de los sensores y de la resistencia. El objetivo del sistema es mantener la temperatura del horno dentro de un estrecho margen con respecto a la temperatura de referencia indicada mediante unos interruptores rotativos situados en el panel de control. Desde este panel se realiza tambin el encendido y apagado general del horno. Para evitar un consumo excesivo de potencia y proteger a los usuarios que se encuentren en las proximidades, la puerta del horno debe permanecer cerrada en condiciones normales de funcionamiento. Por esta razn, al horno se le incorpora un conmutador de seguridad, el cual se activa cuando la puerta est completamente cerrada. Si el conmutador de seguridad est desconectado, mientras el horno est funcionando, el microprocesador desenergiza el elemento calefactor, enfriando el sistema. Adems, bajo esta condicin, el microprocesador activa tambin una seal de alarma. Las seales proporcionadas por los distintos dispositivos de entrada se leen y se comprueban peridicamente. El programa almacenado en la memoria decide lo que debe hacerse en cada momento y la informacin que debe enviar a los dispositivos de salida conectados al sistema. En la siguiente figura, se detallan las partes de un sistema basado en microprocesador, las mismas que a continuacin las vamos a analizar. 1.1.2.1 UNIDAD CENTRAL DE PROCESAMIENTO (CPU) Es mejor conocida como procesador central y se encarga del procesamiento de la informacin proveniente del exterior. Este bloque contiene los circuitos lgicos, aritmticos y de control que dirigen y coordinan las operaciones del sistema y los dispositivos perifricos. En esta unidad se distinguen: la Unidad de Control, la Unidad Aritmtico-lgica y el bloque de Registros internos. En la prctica, la CPU se encuentra en forma de un circuito integrado llamado MICROPROCESADOR. Salida RAM ROM CPU CPU Bloque E/S Entrada Bloque de memoria Perifricos de entrada Perifricos de entrada Perifricos de salida Perifricos de salida Bus de datos Bus de direcciones Bus de control CLK Salida RAM ROM CPU CPU Bloque E/S Entrada Bloque de memoria Perifricos de entrada Perifricos de entrada Perifricos de salida Perifricos de salida Bus de datos Bus de direcciones Bus de control CLK Fig. 1.7 Partes de un sistema de microprocesador Sistemas basados en microprocesadores Parte I Ing. Gerardo Collaguazo 6 La Unidad de Control se encarga de la interpretacin y ejecucin de las instrucciones del programa. Tambin genera las seales que son requeridas por la unidad Aritmtica y otros componentes del sistema para permitirle realizar la tarea encomendada. Nos indica el sentido de los datos (si entran o salen) o el dispositivo al que se accesa (memoria o dispositivo de E/S). Estas seales son enviadas a travs de las lneas llamadas buses. Esta contiene circuitos lgicos y de temporizacin que generan las seales adecuadas necesarias para ejecutar cada instruccin en un programa. Esta unidad extrae una instruccin de la memoria enviando una direccin y un comando de lectura a la unidad de memoria. La instruccin almacenada en la posicin de memoria se transfiere a ella para despus ejecutarse. La Unidad Aritmtico-lgica se encarga de realizar las operaciones lgicas y aritmticas usando como base la suma y la notacin del complemento de dos. Estas operaciones (SUMA, RESTA, COMPLEMENTO DE DOS, AND, OR, NOT, XOR y la COMPARACIN) las realiza con datos de la memoria, con datos de los registros internos o con datos de la unidad de entrada. El tipo de operacin que se realizar, se determina por medio de seales de la unidad de control. Conectados por medio del bus interno se encuentran los Registros Internos para el almacenamiento temporal de datos. Cabe mencionar que todo microprocesador tiene un registro muy importante llamado ACUMULADOR el cual contiene el primer operando de una operacin y el resultado de la misma luego de haberla ejecutado. Procesa informacin binaria en base de un programa escrito en la memoria CPU o mP Ejecuta e interpreta las instrucciones. Sincroniza el funcionamiento de todos los componentes del sistema Ejecuta e interpreta las instrucciones. Sincroniza el funcionamiento de todos los componentes del sistema Ejecuta operaciones: Aritmticas: +, -, complemento a dos. Lgicas: and, or, not, xor, comparacin. Adems: desplazamiento, rotaci n y traslado de informacin digital Ejecuta operaciones: Aritmticas: +, -, complemento a dos. Lgicas: and, or, not, xor, comparacin. Adems: desplazamiento, rotaci n y traslado de informaci n digital UNIDAD DE CONTROL UNIDAD DE CONTROL UNIDAD ARITMETICO-LOGICA UNIDAD ARITMETICO-LOGICA Memorias para almacenamiento temporal de datos necesarios para el desarrollo de las actividades del mP. Memorias para almacenamiento temporal de datos necesarios para el desarrollo de las actividades del mP. BLOQUE DE REGISTROS BLOQUE DE REGISTROS Procesa informacin binaria en base de un programa escrito en la memoria CPU o mP Ejecuta e interpreta las instrucciones. Sincroniza el funcionamiento de todos los componentes del sistema Ejecuta e interpreta las instrucciones. Sincroniza el funcionamiento de todos los componentes del sistema Ejecuta operaciones: Aritmticas: +, -, complemento a dos. Lgicas: and, or, not, xor, comparacin. Adems: desplazamiento, rotaci n y traslado de informacin digital Ejecuta operaciones: Aritmticas: +, -, complemento a dos. Lgicas: and, or, not, xor, comparacin. Adems: desplazamiento, rotaci n y traslado de informaci n digital UNIDAD DE CONTROL UNIDAD DE CONTROL UNIDAD ARITMETICO-LOGICA UNIDAD ARITMETICO-LOGICA Memorias para almacenamiento temporal de datos necesarios para el desarrollo de las actividades del mP. Memorias para almacenamiento temporal de datos necesarios para el desarrollo de las actividades del mP. BLOQUE DE REGISTROS BLOQUE DE REGISTROS Fig. 1.8 Bloques de la CPU REGISTROS DE PROPOSITO GENERAL REGISTROS DE PROPOSITO GENERAL SR SR AC AC ALU ALU PC PC IR IR BUSES INTERNOS REGISTRO INTERMEDIO DE DATOS REGISTRO INTERMEDIO DE DATOS REGISTRO INTERMEDIO DE DIRECCIONES REGISTRO INTERMEDIO DE DIRECCIONES LOGICA DE CONTROL Y TEMPORIZACION LOGICA DE CONTROL Y TEMPORIZACION ACUMULADOR REG. ESTADOS CONTADOR DE PROG. REG. INSTRUCCIONES BUS DEL SISTEMA HACIA LA MEMORIA PRINCIPAL Y DISPOSITIVOS DE E/S BUS DE DATOS BUS DE DIRECCION BUS DE CONTROL REGISTROS DE PROPOSITO GENERAL REGISTROS DE PROPOSITO GENERAL SR SR AC AC ALU ALU PC PC IR IR BUSES INTERNOS REGISTRO INTERMEDIO DE DATOS REGISTRO INTERMEDIO DE DATOS REGISTRO INTERMEDIO DE DIRECCIONES REGISTRO INTERMEDIO DE DIRECCIONES LOGICA DE CONTROL Y TEMPORIZACION LOGICA DE CONTROL Y TEMPORIZACION ACUMULADOR REG. ESTADOS CONTADOR DE PROG. REG. INSTRUCCIONES BUS DEL SISTEMA HACIA LA MEMORIA PRINCIPAL Y DISPOSITIVOS DE E/S BUS DE DATOS BUS DE DIRECCION BUS DE CONTROL Fig. 1.9 Estructura interna de la CPU Sistemas basados en microprocesadores Parte I Ing. Gerardo Collaguazo 7 Los registros tienen ciertas funciones especficas que cumplir dentro de la CPU, a saber: Registro Contador de Programa (PC), es el que indica al microprocesador la direccin de memoria donde se est ejecutando el programa. Cada vez que se lee una instruccin, el PC se incrementa automticamente para suministrar la direccin de la posicin de memoria donde se encuentra la siguiente instruccin o dato del programa. Registro de instrucciones (IR). Cada vez que el microprocesador capta una instruccin, esta se almacena en el registro IR, con el fin de proceder a su decodificacin o interpretacin y buscar en la ROM del microprograma el conjunto de microinstrucciones necesarios para su ejecucin. Esta funcin la realiza un circuito denominado decodificador de instrucciones. El Registro Acumulador (Ac) es utilizado por muchas instrucciones como fuente o destino de datos. En l, generalmente, se deposita el resultado de una operacin. El Registro de estado (SR) suministra, a travs de sus bits (llamados banderas (flags)), informacin relativa a la ejecucin de ciertas instrucciones como signo, sobreflujo, paridad, generacin de acarreo, resultado negativo o cero, etc. Mediante la verificacin del estado de estas banderas se pueden realizar bifurcaciones en la secuencia del programa. Registros de propsito general. Son utilizados para almacenar direcciones de memoria, datos, resultados intermedios y otros propsitos. El nmero y tipos de registros que posee un microprocesador es una parte muy importante en su arquitectura y su programacin. A continuacin, como ejemplo, se presentan la organizacin interna de un microprocesador de 8 bits (INTEL 8085A) y tambin su diagrama esquemtico con sus respectivas seales. Fig. 1.10 Organizacin interna del mP INTEL 8085A Sistemas basados en microprocesadores Parte I Ing. Gerardo Collaguazo 8 1.1.2.2 BLOQUE DE MEMORIA La memoria se emplea para dos funciones bsicas: Almacenamiento de las instrucciones que constituyen el programa. Las instrucciones se codifican mediante su Cdigo de Operacin (COP), formado por uno o varios Bytes. Almacenamiento de los datos y variables del programa. Normalmente agrupados en paquetes de 8 bits (Byte), 16 bits (Word) o 32 bits (Long Word). El bloque de memoria consta de una serie de registros que forman las denominadas posiciones de memoria las cuales guardan en forma temporal o definitiva una informacin. Una memoria tiene un nmero determinado de registros (posiciones) y de igual forma cada posicin de memoria tiene un nmero determinado de bits. A cada registro o posicin de memoria se le asigna un nmero llamado direccin de memoria. La operacin de la memoria es controlada por la unidad de control, la cual indica una operacin de lectura o escritura. Por medio de la Unidad de Control se puede acceder a una posicin de memoria, la cual proporciona el cdigo de direccin adecuado. A continuacin se detallan las principales caractersticas de la memoria de un sistema basado en microprocesadores: Longitud de la palabra de datos representa el nmero de bits a los cuales se pueden tener acceso en una sola operacin (de lectura o escritura), es decir el nmero de bits que pueden ser escritos o ledos en una posicin de memoria. Capacidad de memoria representa el nmero de bits que pueden ser memorados. Considerando una palabra de 8 bits, la unidad de medida usual para la capacidad de memoria es el Kilobyte. La unidad 1KB representa 2 10 , es decir 1024 bytes. De esta forma tenemos los siguientes tipos de memoria: 1Kx1, 256Kx4, 2Kx8, lo cual nos permite la identificacin directa de las posiciones de memoria, 1024, 256 y respectivamente 2048 ofrecidas por el circuito y el nmero de bits de cada posicin, 1, 4 y 8 respectivamente. Tiempo de acceso representa el intervalo de tiempo entre el momento en el cual se da una orden de lectura del contenido de una posicin de memoria y el momento en el cual la palabra de la posicin seleccionada se 0 1 N-2 N-1 Nr. De bits 0 1 N-2 N-1 Nr. De bits Fig. 1.12 La memoria M I C R O P R O C E S A D O R 8 0 8 5 8 2 2 5 BUS DE DIRECCIONES BUS DE DATOS/DIRECCIONES CONTROL DE DIRRECCIONES SELECCIN DE LECTURA SELECCIN DE ESCRITURA HABILITACION DE M-I/O ESTADO DEL CICLO MAQUINA PETICION DE DMA CONFORMIDAD EN EL DMA PETICION DE ESPERA B U S D E C O N T R O L ALIMENTACION PUESTA A CERO RELOJ CONTROL DE INTERRUPCIONES PUERTA DE E / S SERIE M I C R O P R O C E S A D O R 8 0 8 5 8 2 2 5 BUS DE DIRECCIONES BUS DE DATOS/DIRECCIONES CONTROL DE DIRRECCIONES SELECCIN DE LECTURA SELECCIN DE ESCRITURA HABILITACION DE M-I/O ESTADO DEL CICLO MAQUINA PETICION DE DMA CONFORMIDAD EN EL DMA PETICION DE ESPERA B U S D E C O N T R O L ALIMENTACION PUESTA A CERO RELOJ CONTROL DE INTERRUPCIONES PUERTA DE E / S SERIE Fig. 1.11 Diagramaesquemtico del mP 8085A Sistemas basados en microprocesadores Parte I Ing. Gerardo Collaguazo 9 encuentra en el bus de datos. Los valores del tiempo de acceso para los circuitos usuales, realizados en tecnologa MOS, son del orden de nanosegundos, por ejemplo para una memoria INTEL es de 70ns. El bloque de memoria est compuesto por dos tipos de memoria, a saber: MEMORIA RAM que es aquella que guarda en forma temporal (mientras dure la alimentacin con tensin al sistema) los datos. Este tipo de memoria permite leer y escribir datos en sus posiciones. MEMORIA ROM destinada nicamente a la escritura de programas o datos que van a ser guardados en forma definitiva. Las Memorias RAM son de dos tipos: o RAM ESTATICAS (SRAM) , cuyas caractersticas son: Usa flip-flops. Rpida. Usa ms espacio de silicio. Consume mucha energa. Generalmente celdas de 8 bits. o RAM DINAMICAS (DRAM), cuyas caractersticas son: Usa capacitores. Requiere refresco. Usa menos espacio de silicio. Consume menos energa. Generalmente celdas de 1 bit. Las Memorias de tipo ROM son: 1. ROM con mscara Es una memoria no voltil de slo lectura cuyo contenido se graba durante la fabricacin del chip. El elevado coste del diseo de la mscara slo hace aconsejable el empleo de los microprocesadores con este tipo de memoria cuando se precisan cantidades superiores a varios miles de unidades. MODULO DE MEMORIA MODULO DE MEMORIA MEMORIA LECTURA/ESCRITURA (ACCESO ALEATORIO) MEMORIA LECTURA/ESCRITURA (ACCESO ALEATORIO) MEMORIA DE VALOR FIJO (SOLO LECTURA) MEMORIA DE VALOR FIJO (SOLO LECTURA) RAM ESTATICAS (SRAM) RAM ESTATICAS (SRAM) RAM DINAMICAS (DRAM) RAM DINAMICAS (DRAM) PROM PROGRAMABLES POR EL USUARIO PROM PROGRAMABLES POR EL USUARIO ROM PROGRAMABLES POR MASCARA ROM PROGRAMABLES POR MASCARA ALMACENAMIENTO SECUNDARIO ALMACENAMIENTO SECUNDARIO PROM PROM EPROM EPROM OTP OTP EEPROM EEPROM FLASH FLASH MODULO DE MEMORIA MODULO DE MEMORIA MEMORIA LECTURA/ESCRITURA (ACCESO ALEATORIO) MEMORIA LECTURA/ESCRITURA (ACCESO ALEATORIO) MEMORIA DE VALOR FIJO (SOLO LECTURA) MEMORIA DE VALOR FIJO (SOLO LECTURA) RAM ESTATICAS (SRAM) RAM ESTATICAS (SRAM) RAM DINAMICAS (DRAM) RAM DINAMICAS (DRAM) PROM PROGRAMABLES POR EL USUARIO PROM PROGRAMABLES POR EL USUARIO ROM PROGRAMABLES POR MASCARA ROM PROGRAMABLES POR MASCARA ALMACENAMIENTO SECUNDARIO ALMACENAMIENTO SECUNDARIO PROM PROM EPROM EPROM OTP OTP EEPROM EEPROM FLASH FLASH Fig. 1.13 Tipos de memorias Sistemas basados en microprocesadores Parte I Ing. Gerardo Collaguazo 10 2. OTP El microprocesador contiene una memoria no voltil de slo lectura programable una sola vez por el usuario. OTP (One Time Programmable). Es el usuario quien puede escribir el programa en el chip mediante un sencillo grabador controlado por un programa desde un PC. La versin OTP es recomendable cuando es muy corto el ciclo de diseo del producto, o bien, en la construccin de prototipos y series muy pequeas. Tanto en este tipo de memoria como en la EPROM, se suele usar la encriptacin mediante fusibles para proteger el cdigo contenido. 3. EPROM Los sistemas de microprocesadores que disponen de memoria EPROM (Erasable Programmable Read Only Memory) pueden borrarse y grabarse muchas veces. La grabacin se realiza, como en el caso de los OTP, con un grabador gobernado desde un PC. Si, posteriormente, se desea borrar el contenido, disponen de una ventana de cristal en su superficie por la que se somete a la EPROM a rayos ultravioleta durante varios minutos. Las cpsulas son de material cermico y son ms caros que los microcontroladores con memoria OTP que estn hechos con material plstico. 4. EEPROM Se trata de memorias de slo lectura, programables y borrables elctricamente EEPROM (Electrical Erasable Programmable Read OnIy Memory). Tanto la programacin como el borrado, se realizan elctricamente desde el propio grabador y bajo el control programado de un PC. Es muy cmoda y rpida la operacin de grabado y la de borrado. No disponen de ventana de cristal en la superficie. Los sistemas de microprocesadores dotados de memoria EEPROM una vez instalados en el circuito, pueden grabarse y borrarse cuantas veces se quiera sin ser retirados de dicho circuito. Para ello se usan grabadores en circuito que confieren una gran flexibilidad y rapidez a la hora de realizar modificaciones en el programa de trabajo. El nmero de veces que puede grabarse y borrarse una memoria EEPROM es finito, por lo que no es recomendable una reprogramacin continua. Son muy idneos para la enseanza y la Ingeniera de diseo. Se va extendiendo en los fabricantes la tendencia de incluir una pequea zona de memoria EEPROM en los circuitos programables para guardar y modificar cmodamente una serie de parmetros que adecuan el dispositivo a las condiciones del entorno. Este tipo de memoria es relativamente lenta. 5. FLASH Se trata de una memoria no voltil, de bajo consumo, que se puede escribir y borrar. Funciona como una ROM y una RAM pero consume menos y es ms pequea. A diferencia de la ROM, la memoria FLASH es programable en el circuito. Es ms rpida y de mayor densidad que la EEPROM. La alternativa FLASH est recomendada frente a la EEPROM cuando se precisa gran cantidad de memoria de programa no voltil. Es ms veloz y tolera ms ciclos de escritura/borrado. Las memorias EEPROM y FLASH son muy tiles al permitir que los sistemas de microprocesadores que las incorporan puedan ser reprogramados en circuito, es decir, sin tener que sacar el circuito integrado de la tarjeta. As, un dispositivo con este tipo de memoria incorporado al control del motor de un automvil permite que pueda modificarse el programa durante la rutina de mantenimiento peridico, compensando los desgastes y otros factores tales como la compresin, la instalacin de nuevas piezas, etc. La reprogramacin de la memoria puede convertirse en una labor rutinaria dentro de la puesta a punto. Sistemas basados en microprocesadores Parte I Ing. Gerardo Collaguazo 11 Estas memorias son llamadas tambin de memorias de almacenamiento primario. Otro tipo de memorias son las de almacenamiento secundario que generalmente almacenan gran cantidad de informacin entre ellas podemos mencionar: discos duros, discos flexibles, discos pticos, etc. Las memorias son circuitos integrados que tienen las siguientes seales tpicas: Bus de Datos: Do-Dn, por l entran y salen los datos a la memoria semiconductora. Bus de Direcciones: Ao-An, por aqu se realiza el direccionamiento de las posiciones. OE (Output Enable): Terminal de lectura, habilita la memoria para que en la salida este lo que voy a leer. WE (Write Enable): Terminal que permite la escritura en la memoria. CS (Chip Select): Terminal que permite la activacin o desactivacin de la memoria. Memoria de Datos (RAM) permite la escritura y la lectura, mediante WE y OE respectivamente, as como su seleccin mediante el CS, mientras que la Memoria de programa (ROM) permite solo la lectura y la habilitacin, mediante OE y CS. El acceso a la memoria se puede realizar en forma combinada, conforme se muestra en la figura 1.15: Aqu la memoria de datos y la de programa se selecciona de manera combinada a la hora de ubicar las lecturas se anidan el PSEN del micro que habilita lectura en la memoria de datos y el Rd del micro que habilita lectura en la memoria de datos a un and lgico para que se seleccione cada una a su momento, se trabaja por la tabla de la verdad del and lgico. A continuacin presentamos como ejemplos tres circuitos de memoria, a saber: RAM6116, EPROM 2716 y EEPROM2816. MEMORIA RAM 6116 El dispositivo 6116 es una memoria de acceso aleatorio (RAM), cuenta con una capacidad de 2048 palabras de 8 bits cada una, es una memoria esttica de alta velocidad, fabricada con la tecnologa CMOS, opera con una fuente de alimentacin de +5.0V y est dispuesta en una pastilla de 24 terminales. Las principales caractersticas de esta memoria son: Organizacin de la memoria: 2048 X 8 Alta velocidad: tiempo de acceso 150 nseg. Fig. 1.14 Seales de una memoria Fig. 1.15 Acceso a la memoria de manera combinada Sistemas basados en microprocesadores Parte I Ing. Gerardo Collaguazo 12 Baja potencia en estado inactivo: 10 uW Baja potencia en estado activo: 160 mW RAM completamente esttica: No requiere reloj para su funcionamiento Temperatura de operacin: 0.75 grados centgrados Temperatura de almacenamiento: De -55 a +125 grados centgrados. Potencia de disipacin: 1 Watts Todas sus entradas y salidas son compatibles directamente con la tecnologa TTL Es directamente compatible con las memorias de 16K estndar, tipo RAM 6132 La descripcin de las terminales se detalla a continuacin: A0-A10: Lneas de direcciones E/S0-E/S7: Entrada y Salida de datos CS Habilitador de la pastilla OE Habilitador de salidas WE Habilitador para la escritura Vcc Voltaje de alimentacin +5.0 Volts GND Terminal de tierra 0.0 Volts Siendo este circuito una memoria RAM puede entonces, realizar las operaciones de lectura y escritura. OPERACIN DE LECTURA Un dato ser ledo del dispositivo de almacenamiento RAM 6116, mediante la aplicacin de un nivel alto en la terminal (#WE), un nivel bajo en (#CS), y estando en nivel bajo la terminal (#OE), con estas conexiones se dispone que se pueda leer la memoria RAM 6116, si se coloca un nivel alto en la terminales (#OE) y/o (#CS) las lneas de E/S y/o la pastilla 6116 se ponen en estado de alta impedancia, respectivamente. (#CS) posee la funcin de controlar la activacin de la pastilla, la cual puede ser usada por un sistema con microprocesadores para la seleccin del dispositivo. La terminal (#OE) habilita las salidas, o las pone en estado de alta impedancia, la cual puede ser habilitada cada vez que el microprocesador requiera leer la memoria. OPERACIN DE ESCRITURA Un dato es escrito en el dispositivo RAM 6116 mediante la aplicacin de un nivel bajo en la terminal (#WE), un nivel bajo en (#CS), y un nivel alto o bajo en la terminal (#OE). La terminal (#WE) al ser activa provoca que las terminales E/S de la memoria RAM 6116 se habiliten para aceptar la informacin, en estas condiciones la terminal (#OE) posee la opcin de ser colocada en estado de alto bajo, para realizar as la operacin de escritura. Nota: el smbolo # sustituye la raya superior de la seal y denota negacin. MEMORIA EPROM 2716 La EPROM 2716 contiene caractersticas borrables y es elctricamente reprogramable, es de alta velocidad y proporciona acceso a 16 Kbits de informacin, est diseada para aplicaciones en donde son importantes los cambios rpidos en la tensin. Fig. 1.16 Patillaje de la RAM6116 Sistemas basados en microprocesadores Parte I Ing. Gerardo Collaguazo 13 La EPROM 2716 est empacada en un circuito integrado de 24 terminales, usa una placa transparente en su dorso, lo cual nos permite exponer el chip a rayos ultravioleta pticos, que se utilizan para borrar la memoria, se le puede depositar una nueva informacin an despus de estar borrada siguiendo los procedimientos de programacin adecuados, esta EPROM 2716 est constituida con tecnologa de alta densidad con compuertas CMOS de canal N. Las principales caractersticas son: Tiempo de acceso menor que 250 nseg. Bajo consumo de potencia Disipacin en estado activo: 525 mW mx. Disipacin en estado inactivo: 132 mW mx. Fuente de alimentacin de +5 Volts Rango de temperatura de -40 hasta +85 grados centgrados Caractersticas estticas (no requiere refrescamiento por medio del reloj) Entradas y salidas compatibles con la tecnologa TTL Capacidad de colocarse en tercer estado. Las terminales de esta memoria son: A0-A10: Lineas de direcciones D0-D7: Salida de datos #CE Habilitador de la pastilla #OE Habilitador de salidas PGM Condicin de programacin Vcc Voltaje de alimentacin +5.0 Volts Vss Terminal de tierra 0.0 Volts Vpp Voltaje de programacin NC No conexin OPERACIN DE LECTURA Para leer la memoria se deben hacer las conexiones de las terminales que a continuacin se especifican, la terminal Vpp se conecta a Vcc para inhibir con esto la programacin, las entradas (#OE) y (#CE) se colocan a tierra y con estas simples conexiones se puede leer la memoria, los datos estarn sobre las terminales D1 - D7, la informacin se puede visualizar con LED'S quienes indican el dato direccionado por las terminales A0 - A10, cuya capacidad es de (2Kx8), 2048 localidades de 8 bits cada una. MODO DE PROGRAMACIN Para programar la memoria se requieren las siguientes conexiones: En la terminal 18 se debe depositar un pulso de Tw = 45 mseg aproximadamente, dicho pulso deber estar dado por un monoestable. La terminal 20 que es el habilitador de salidas se conecta a la polarizacin de +5.0V (la alimentacin). La terminal 21, voltaje de programacin se conecta a un voltaje fijo de +25.0V, la memoria normalmente cuando no est grabada contiene "unos", por lo tanto en la operacin de grabacin se procede a depositar ceros. PRECAUCIONES Excediendo de los 25 Volts en la terminal Vpp (pin 21) se daar la EPROM 2716 y despus todos los bits quedaran en el estado uno lgico. Fig. 1.17 EPROM2716 Sistemas basados en microprocesadores Parte I Ing. Gerardo Collaguazo 14 La informacin debe ser introducida usando el modo de programacin, depositando solamente ceros lgicos en la localidad seleccionada y con la combinacin deseada, aunque ambos unos y ceros pueden ser presentados como datos de entrada en la palabra de informacin a grabar. La nica manera de cambiar los ceros por los unos es borrando totalmente la memoria EPROM 2716 a travs de una intensa luz ultravioleta. La EPROM 2716 est en la modalidad de programacin cuando la fuente de alimentacin de Vpp est en +25 Volts y (#OE) en estado lgico alto. Se requiere un capacitor de 0.1 uF dispuesto entre +Vcc y GND para suprimir los estados transitorios de tensin que puedan daar al dispositivo EPROM 2716. La informacin debe ser programada en 8 bits en paralelo dispuestos en las terminales de salida del chip, los niveles deben ser compatibles con la tecnologa TTL. Cuando la direccin y el programa son estables, se debe hacer presente el pulso activo de programacin durante 45 mseg. Se puede programar cualquier localidad en cualquier tiempo en forma secuencial o con acceso aleatorio. El pulso de programacin debe tener una duracin mxima de 55 mseg. La EPROM 2716 no debe ser programada con una seal de CD en la terminal de programacin (CE)'. Se pueden programar varias EPROM 2716 en paralelo con la misma informacin, debido a la simplicidad de los requerimientos de programacin. MEMORIA EEPROM 2816 El circuito integrado EEPROM 2816 es una memoria reprogramable y borrable que contiene 2048 localidades de memoria con 8 bits cada una, (2K X 8) y opera con una sola fuente de alimentacin de + 5 Volts, con tiempos similares a los de una RAM esttica en modo de lectura, tiene dos modos de programacin una de +5 Volts y otra de alto voltaje. El modo de programacin de +5 Volts se inicia con un pulso de escritura con una transicin alto/bajo de nivel TTL con una duracin de 200 nseg, el circuito automticamente borra el byte seleccionado antes de escribir otro dato nuevo, se completa un ciclo de borrado/escritura en un tiempo mximo de 10 mseg, el tiempo de acceso a lectura es de 250 nseg, todas sus salidas son compatibles con la tecnologa TTL. Las caractersticas de esta memoria son: Organizacin de la memoria 2048 X8 Tipo de funcionamiento; chip esttico Tiempos de acceso a lectura; 250 nseg. Capacidad de correccin para un solo bit Tiempo de escritura max, 10 mseg. Compatible con la arquitectura de microprocesadores Potencia de disipacin a) Estado activo; 610 mW b) Estado inactivo: 295 mW A continuacin se describen las terminales de la memoria: A0 - A10 Lneas de direcciones E/S0 E/S7 Entrada y salida de datos #CE Habilitador del chip Fig. 1.18 EEPROM2816 Sistemas basados en microprocesadores Parte I Ing. Gerardo Collaguazo 15 #OE Habilitador de las salidas Vpp Voltaje de programacin Vcc + 5 Volts Vss 0.0 Volts tierra. OPERACIN DE LECTURA Un dato es ledo de la memoria EEPROM 2816 mediante la aplicacin de un nivel alto en Vpp, (voltaje de programacin conectada a Vcc), un nivel bajo en (#CE) y un nivel bajo en (#OE), con estas condiciones se obtiene informacin de terminales E/S estarn en estado de alta impedancia siempre y cuando (#OE) y/o (#CE) estn en un nivel alto. La funcin de la terminal (#CE) es la de poder controlar la activacin del chip, puede ser usado por un sistema con microprocesadores para la seleccin del dispositivo. La terminal que habilita las salidas, o las pone en estado de alta impedancia, si se tiene en cuenta que las entradas son estables el tiempo de acceso es igual al tiempo de retardo de la terminal (#CE), los datos estn disponibles despus de un tiempo de retardo de la terminal (#OE). OPERACIN DE ESCRITURA (modo de programacin de + 5 Volts) El ciclo de escritura es iniciado por la aplicacin de un nivel bajo en Vpp, 200 nseg, mientras que (#OE) debe estar en estado alto y (#CE) en estado bajo, la direccin es doblemente almacenada a la cada y a la salida de Vpp, una vez realizado esto la arquitectura interna de la memoria borrara automticamente el dato seleccionado y proceder a escribir el nuevo dato en un tiempo de l0 mseg, mientras tanto las terminales E/S o E/S; permanecern en estado de alta impedancia durante un tiempo igual al de la operacin del proceso de escritura, La EEPROM 2816 se escribe y se borra elctricamente utilizando un voltaje de +5 Volts para grabar y leer, la condicin de grabado es "borrado antes de escribir", esta memoria es del tipo ROM reprogramable, en caso de que se desconecte el circuito de alimentacin de la energa la informacin no se pierde, se puede usar el modo de "stand by" para que la informacin no se borre. La 2816 se borra y se programa elctricamente y no pticamente como lo requieren normalmente las EPROMS, en estas, se borra la informacin con luz ultravioleta, el dispositivo EEPROM 2816 ofrece flexibilidad para borrar un solo bit o todo el chip si as se desea. Para escribir en una localidad en particular, el bit existente se borra antes de escribir el nuevo bit, los niveles de las terminales E/S deben ser compatibles con la tecnologa TTL en cuanto a sus equivalentes de niveles lgicos deseados como niveles de grabacin, la programacin debe durar mnimo 9 msg y un mximo de 15 mseg. OPERACIN DE BORRADO Si se desean borrar todas las direcciones de la EEPROM 2816, el dispositivo ofrece una funcin para borrado inmediato de todas las localidades. 1.1.2.3 BUSES Los tres componentes principales de un sistema basado en microprocesadores (CPU, Bloque de memoria y mdulo de E/S) estn interconectados entre ellos por cables elctricos denominados buses del sistema. Un bus representa una reunin de lneas las cuales realizan la transferencia uni o bidireccional de la informacin. La presencia de un determinado bit (0 o 1) en una lnea del bus est marcada de un determinado valor del potencial elctrico en esa lnea. Por ejemplo, un potencial entre 2.4-5V marca el bit 1 y un potencia 0-0.4V el bit 0. Sistemas basados en microprocesadores Parte I Ing. Gerardo Collaguazo 16 En funcin del tipo de informacin que se transporta por las lneas del bus, este puede ser: BUS DE DATOS, BUS DE DIRECCIONES Y BUS DE CONTROL. A continuacin presentamos algunas caractersticas principales: Bus de datos est constituido por lneas bidireccionales. El nmero N de lneas del bus de datos es en general, igual con la longitud de la palabra de datos del microprocesador. Por el bus de datos de transfiere la informacin binaria entre el microprocesador y los perifricos o entre el microprocesador y la memoria, o directamente entre el perifrico y la memoria, en caso de existir dispositivos de acceso directo a la memoria. Por lo tanto ste bus determina el tipo de procesador ( 4, 8 16 o 32 bits) y el nmero de perifricos que se pueden conectar al microprocesador (por ejemplo para un microprocesador de 8 bits se conectarn 2 7 peri fricos). Este bus es tri-state. Bus de direcciones est formado por lneas unidireccionales. Es utilizado para la transferencia de informacin necesaria para la seleccin de una determinada posicin de memoria o de un puerto del mdulo de E/S. Esta informacin representa la direccin de una posicin de memoria o de un puerto de entrada o salida (del mdulo de E/S), seleccionados para la realizacin de la transferencia de datos por bus respectivo. El bus de direcciones determina la capacidad de memoria del sistema. Bus de control est formado por lneas, en general, unidireccionales. En este bus cada lnea tiene un significado y denominacin distinta. El bus de control contiene la informacin que enva el microprocesador a los elementos del sistema o bien recibe de estos con el propsito de sincronizar su operacin con la operacin de la circuitera externa. El nmero de lneas del bus de control es variable y depende dl microprocesador particular utilizado. Un conjunto tpico de seales de control disponible en la mayora de microprocesadores disponibles, se muestran en la siguiente figura. CLK IN (entrada de reloj) es usado por el microprocesador para generar pulsos de reloj y producir secuencias de tiempo y control para las funciones internas. CLK OUT (salida de reloj). Los pulsos de reloj de este Terminal son usados por los mdulos externos para sincronizar sus operaciones con las operaciones del microprocesador. RESET IN (peticin de reset) se usa para inicializar el microprocesador. RESET OUT (peticin de reset) informa a la circuitera externa que el microprocesador se encuentra en estado de reset. INTERRUPT IN (peticin de interrupcin). Se utiliza para interrumpir la operacin normal del microprocesador, obligndolo a suspender la ejecucin del programa corriente y transferir el control a una subrutina. La seal de interrupcin proviene generalmente de una unidad de E/S. INTERRUPT OUT (reconocimiento de interrupcin). Informa a la circuitera externa que la interrupcin ha sido atendida. Una vez ejecutada la interrupcin, el microprocesador retorna al programa previo. HOLD (peticin e bus). Se utiliza para suspender la operacin del microprocesador y llevarlo a un estado llamado hold en el cual todos los buses quedan en alta impedancia. HOLDA (garanta de bus). Informa que la peticin de hold a terminado. Las lneas READ y WRITE informan al componente seleccionado por el bus de direcciones la direccin de transferencia esperada en el bus de datos. M I C R O P R O C E S A D O R BUS DE DIRECCIONES BUS DE DATOS ENTRADAS DE CONTROL SALIDAS DE CONTROL FUENTE DE ALIMENTACION BUS DE CONTROL M I C R O P R O C E S A D O R BUS DE DIRECCIONES BUS DE DATOS ENTRADAS DE CONTROL SALIDAS DE CONTROL FUENTE DE ALIMENTACION BUS DE CONTROL Fig. 1.19 Buses de un sistema con microprocesador M I C R O P R O C E S A D O R CLK OUT RESET OUT INTP OUT HLDA WRITE READ CLK IN RESET IN INTP IN HOLD M I C R O P R O C E S A D O R CLK OUT RESET OUT INTP OUT HLDA WRITE READ CLK IN RESET IN INTP IN HOLD Fig. 1.20 Seales tpicas de control Sistemas basados en microprocesadores Parte I Ing. Gerardo Collaguazo 17 1.1.2.4 CIRCUITO DE RELOJ Y RESET Todo microcomputador necesita de un generador de pulsos de reloj para controlar el contador de programa y sincronizar sus funciones internas. En la mayora de microprocesadores este reloj viene incorporado, pudindose controlar externamente su frecuencia mediante un cristal de cuarzo, una red RC conectados a los pines respectivos. En la figura 21 se ilustran las posibilidades del control de la frecuencia. Cuando la estabilidad de la frecuencia no es de importancia, se prefiere una red RC, en los otros casos, por ejemplo para las comunicaciones seriales o paralelas es necesaria la utilizacin de un cristal. El microprocesador puede ser fcilmente conectado o desconectado por hardware manejando adecuadamente su entrada de reset. Cuando esta lnea recibe un bajo el microprocesador ingresa al estado de reset. Bajo esta condicin, el contador de programa se carga con ceros y se borran los flip-flops habilitadores de interrupcin y de reconocimiento de hold. Al mismo tiempo, los buses de datos y direcciones se sitan en el estado de alta impedancia. Debido a su naturaleza asncrona, la seal de reset puede afectar el contenido de los registros internos de la CPU, incluido el de estados o banderas. 1.1.2.5 MODULO DE ENTRADA/SALIDA. TECNICAS DE INTERFACE Para que el sistema basado en microprocesadores pueda ser utilizado en forma efectiva, el sistema debe estar de un bloque de circuitos lgicos que permitan la introduccin de datos, visualizacin de resultados y eventual la modificacin del programa, es decir un dispositivo de comunicacin con el operador, este bloque se denomina MODULO DE E/S y est destinado a asegurar la transferencia de informacin, representada en binario, entre el sistema y diversos perifricos conectados a ste (teclados, pulsadores, interruptores, contactos elctricos, LEDs, ASS, CAD, CDA, etc.). mP + Memoria mP + Memoria PERIFERICOS LEDs DISPLAY s ZUMBADORES INTERRUPTORES SENSORES ANALOGICOS TECLADOS Etc. PERIFERICOS LEDs DISPLAYs ZUMBADORES INTERRUPTORES SENSORES ANALOGICOS TECLADOS Etc. ENTRADA ENTRADA ESTADO ESTADO SALIDA SALIDA mP + Memoria mP + Memoria PERIFERICOS LEDs DISPLAY s ZUMBADORES INTERRUPTORES SENSORES ANALOGICOS TECLADOS Etc. PERIFERICOS LEDs DISPLAYs ZUMBADORES INTERRUPTORES SENSORES ANALOGICOS TECLADOS Etc. ENTRADA ENTRADA ESTADO ESTADO SALIDA SALIDA Fig. 1.23 Mdulos de entrada/salida a. Cristal de cuarzo b. Red RC (3MHz) c. Reloj externo (1 a 6 MHz) a. Cristal de cuarzo b. Red RC (3MHz) c. Reloj externo (1 a 6 MHz) Fig. 1.21 Circuitos de reloj Fig. 1.22 Circuito de Reset Sistemas basados en microprocesadores Parte I Ing. Gerardo Collaguazo 18 El mdulo de E/S tiene una estructura diferente, en funcin de la aplicacin del sistema basado en microprocesadores, lo cual implica la proyeccin de unos componentes de este mdulo, en funcin de los perifricos que van a ser conectados. Un puerto puede definirse como un dispositivo a travs del cual el microprocesador intercambia informacin con un dispositivo externo previamente seleccionado. En otras palabras un puerto E/S es un elemento de interconexin o interface entre un microprocesador y un perifrico. Los puertos tambin se denominan adaptadores perifricos de interface. La estructura de un puerto puede ser extremadamente simple o altamente compleja, dependiendo de cada aplicacin. En algunos casos solo se requieren de un flip-flop, buffer o registro tri-state, mientras que en otros debe recurrirse a circuitos de alta escala (LSI) muy especializados, como es el caso del 8212, 8216, 8255, 8155, etc., que se analizarn ms adelante. Las funciones que debe cumplir un puerto o dispositivo de interface E/S se pueden resumir en las siguientes: Identificar direcciones con el fin de establecer la conexin con los buses de datos y de control del mismo sistema cuando se selecciona un dispositivo perifrico de E/S especfico. Interpretar rdenes. Generalmente, las rdenes enviadas por el microprocesador al puerto E/S se reducen a seales de lectura y escritura. Estas seales pueden venir ya codificadas o necesitar una codificacin previa. Adaptar fsicamente el microprocesador a los requisitos del perifrico. Esto incluye la utilizacin de manejadores (drivers) de lneas de transmisin, eliminadores de ruido, optoacopladores, conversores de formato serie a paralelo, conversores de seal, etc. Temporizar la transferencia de informacin con el fin de garantizar que el flujo de datos entre el microprocesador y el perifrico ese realice de una forma ordenada y eficiente. El direccionamiento de un puerto (activacin de la lnea CS o CE) se realiza a travs del mismo bus de direcciones, sea por medio de un decodificador o un circuito lgico de seleccin (RLS). La generacin de la seal de seleccin de un puerto por el decodificador o de la RLS, debe producirse solamente cuando en el bus de direcciones se pone una palabra binaria, especfica de cada puerto, llamada direccin de puerto y de ha activado adems la seal ALE, que marca el acceso al puerto de E/S. Veamos, como ejemplos, algunas realizaciones prcticas de puertos de E/S de algunos perifricos. PUERTO DE SALIDA CON LED En la figura 1.25 se muestra un ejemplo sencillo de puerto de salida con flip-flop D, cuya funcin es transferir el estado del bit de datos D0 a un LED que acta como dispositivo perifrico. Esto sucede cuando la lnea de direccin A15 es alta y la seal de escritura (WR) es baja. Despus de habilitado, el flip-flop retiene la informacin previamente almacenada mientras el microprocesador se dedica a otras tareas. 0 1 2 3 S1 S0 EN DECODIFICADOR A0 A1 ALE D0-D7 M I C R O P R O C E S A D O R BUS DE DATOS CS CS CSO CS1 PS PE 0 1 2 3 S1 S0 EN DECODIFICADOR A0 A1 ALE D0-D7 M I C R O P R O C E S A D O R BUS DE DATOS CS CS CSO CS1 PS PE Fig. 1.24 Direccionamiento de un puerto Q D WR A15 A0 -A14 mP D0 D1-D7 CLK MICROPROCESADOR PUERTO DE SALIDA PERIFERICO LINEA DE SELECCION LINEA DE ESCRITURA Q D WR A15 A0 -A14 mP D0 D1-D7 CLK MICROPROCESADOR PUERTO DE SALIDA PERIFERICO LINEA DE SELECCION LINEA DE ESCRITURA Fig. 1.25 Puerto de salida con flip-flop Sistemas basados en microprocesadores Parte I Ing. Gerardo Collaguazo 19 PUERTO DE ENTRADA DE INTERRUPTOR En la figura 1.26, se muestra en cambio un puerto de entrada con flip-flop. En este caso, el dispositivo perifrico es un interruptor y su estado (alto o bajo) se transfiere a la lnea de datos D0 cuando la lnea de direccionameinto A15 es alta y la lnea de control de lectura (RD) es baja. Una vez que el microprocesador acepta el bit D0 presente en el bus de datos, lo transfiere al acumulador y situa la salida del puerto de entrada en estado de alta impedancia con el fin de de que no interfiera con otras transferencias de datos. PUERTO DE SALIDA CON REGISTRO DE DATOS En la siguiente figura se muestra un puerto de salida con registro tipo latch. El circuito transfiere el patrn de 8 bits presente en el bus de datos al display perifrico de siete segmentos cuando la lnea de direccin A15 es alta y la lnea de escritura (WR) es baja. Una forma ms elegante de realizar una interface es utilizando los circuitos especializados como son: los puertos 8212, 8216, los puertos E/S programables 8155 y 8255, el controlador USART 8251 (para el mP8085A), PIA6821 (para el Motorola 6800) y ACIA y Z80-PIO (para sistemas con Z80). Dentro de las principales caractersticas de estos circuitos especializados podemos mencionar: Son fciles de conectar con los buses del sistema puesto que disponen de lneas de adaptacin directa con las salidas del respectivo microprocesador. Son circuitos de E/S programables. Esta caracterstica permite adaptarlos fcilmente a las condiciones de la circuitera externa utilizando nicamente comandos de programacin. Algunos mdulos de E/S poseen cierta capacidad de decisin propia, independientemente del procesador. Esta circunstancia libera del microprocesador de la ejecucin d ciertas tareas rutinarias y de control, las cuales delega en el dispositivo de interface. Por la funcin que realizan, los puertos de interface programables se pueden dividir en tres categoras: interfaces dedicadas, interfaces de propsito general e interfaces universales. Las interfaces dedicadas se especializan en una funcin especfica, por ejemplo controlar interrupciones, temporizar eventos, controlar perifricos, etc. Como ejemplos podemos mencionar el controlador programable de interrupciones 8259, controlador programable de acceso directo de memoria (DMA) 8257, etc. Las interfaces de propsito general, como su nombre lo indica, son ms universales y pueden adaptarse a una gran variedad de aplicaciones. Como ejemplos tenemos: el PPI 8255, controlador USART 8251. D H L Q D0 D1-D7 CLK LINEA DE SELECCION LINEA DE LECTURA A15 A0-A14 RD MICROPROCESADOR PUERTO DE ENTRADA PERIFERICO D H L Q D0 D1-D7 CLK LINEA DE SELECCION LINEA DE LECTURA A15 A0-A14 RD MICROPROCESADOR PUERTO DE ENTRADA PERIFERICO Fig. 1.26 Puerto de entrada con flip-flop Q1 Q2 Q3 Q4 Q5 Q6 Q7 Q8 a b c d e f g dp A15 WR A0-A14 D0-D7 LINEA DE ESCRITURA LINEA DE SELECCION CS LINEA DE HABILITACION MICROPROCESADOR PUERTO DE SALIDA DISPOSITIVO PERIFERICO Q1 Q2 Q3 Q4 Q5 Q6 Q7 Q8 a b c d e f g dp A15 WR A0-A14 D0-D7 LINEA DE ESCRITURA LINEA DE SELECCION CS LINEA DE HABILITACION MICROPROCESADOR PUERTO DE SALIDA DISPOSITIVO PERIFERICO Fig. 1.27 Puerto de salida con registro tipo latch Sistemas basados en microprocesadores Parte I Ing. Gerardo Collaguazo 20 Una interface universal es un microcomputador en un chip que realiza tareas de E/S altamente complejas bajo el control de un microprocesador maestro. Como ejemplo podemos mencionar la interface universal de perifricos UPI 8741 de Intel. Dentro de los perifricos ms empleados, podemos mencionar los de la siguiente tabla: TIPO DISPOSITIVO ENTRADA Interruptores ON/OFF Teclados Sensores y transductores de entrada SALIDA Visualizadores (Led, LCD, etc) Pantallas TRC Impresoras (lser, de jet de tinta, de impacto,etc) Motores elctricos y actuadotes ENTRADA/SALIDA Terminales interactivos Memorias secundarias Unidades de disco magntico Enlaces de comunicaciones Lneas telefnicas De acuerdo a la velocidad de operacin, los dispositivos de E/S se pueden agrupar en tres categoras: lentos, de velocidad media y de alta velocidad. Adems segn la seal que transmiten a los perifricos tenemos: digitales (todo o nada) y analgicos (sensores de temperatura, caudal, presin, etc.). Cada una de estas categoras presenta sus propias caractersticas de interface. PERIFERICOS LENTOS: Su estado cambia una vez por segundo y requieren varios mil isegundos para estabilizarse en su nuevo estado. En esta categora tenemos los displays luminosos, rels, microinterruptores, sensores de posicin, contactos, botoneras, etc. La interface de estos dispositivos es relativamente fcil y necesitan muy pocas seales de control. El nico problema que aparece en este caso es el proceso transitorio en el momento de cambio de estado (por ejemplo el interruptor al cerrarse produce rebotes). Por multiplexaje es posible controlar varios perifricos lentos con un mismo puerto. PERIFERICOS DE VELOCIDAD MEDIA: Son aquellos que transfieren datos desde 1bps a 10000 bps. Dentro de esta categora se incluyen los teclados, impresoras normales, CAD, CDA, sistemas de adquisicin de datos, etc. En este caso, el microprocesador no puede asumir que retienen datos por mucho tiempo o reciben informacin en cualquier instante. En su lugar, el microprocesador debe ser capaz de determinar cuando el dispositivo tiene un nuevo dato de entrada o est listo para recibir un dato de salida. Lo anterior implica que un dispositivo de mediana velocidad debe estar sincronizado de alguna manera con el reloj del microprocesador. Este ltimo debe tambin disponer de algn medio para decirle al dispositivo que hay un nuevo dato de salida disponible o que el dato de entrada previamente suministrado por aquel ha sido receptado. SEAL DE SELECCION IN S1 S0 0 1 2 3 D E M U X S A L I D A D E D A T O S PUERTO DE SALIDA CS CLK CONTADOR BUS DE DATOS SEAL DE SELECCION IN S1 S0 0 1 2 3 D E M U X S A L I D A D E D A T O S PUERTO DE SALIDA CS CLK CONTADOR BUS DE DATOS IN S1 S0 0 1 2 3 D E M U X S A L I D A D E D A T O S PUERTO DE SALIDA CS CLK CONTADOR BUS DE DATOS Fig. 1.28 Control de varios perifricos lentos de salida Sistemas basados en microprocesadores Parte I Ing. Gerardo Collaguazo 21 Uno de los procedimientos ms comunes para interfazar microprocesadores con dispositivos de mediana velocidad en forma asincrnica es el saludo protocolario o handshake. En este caso, el transmisor indica la disponibilidad del dato al receptor y transfiere el dato. El receptor completa el saludo reconociendo la recepcin del dato. PERIFERICOS DE ALTA VELOCIDAD: Son aquellos que transfieren datos a velocidades superiores a 10000 bps. Dentro de esta categora se incluyen los Discos magnticos y pticos, impresoras lser, lneas de comunicacin de alta velocidad, pantallas de video (TRC), etc. La interface de este tipo de perifricos requiere mtodos especiales. La tcnica ms usual es utilizar un controlador de propsito especial que transfiera datos directamente entre la memoria y el dispositivo de E/S. Este proceso se denomina acceso directo de memoria o DMA. El controlador DMA debe forzar al microprocesador a liberar los buses, proporcionar direcciones y seales de control a la memoria y transferir los datos. Inicialmente, la CPU debe informarle al controlador donde debe comenzar la transferencia y la cantidad de informacin que debe transferir. Un microprocesador puede comunicarse con un dispositivo perifrico en paralelo o serie. Primariamente el bus de datos de un microprocesador est diseado para transferir datos en paralelo. Sin embargo, existen situaciones donde es deseable, preferible o necesario transferir datos en serie. En una comunicacin en paralelo (fig. 29) todos los bits que configuran la palabra de datos se transmiten simultneamente, por lneas separadas. En una comunicacin serie (fig. 30) todos los bits de la palabra se transmiten en forma secuencial, uno tras otro, por una sola lnea de datos. Los datos transferidos en serie se envan en grupos de bits que forman palabras o caracteres. En ambos casos, adems de las lneas de datos, se requiere el envo de una seal de reloj para sincronizar la transferencia. En una transmisin paralelo, la seal de reloj le indica al receptor cuando la palabra disponible en la lneas de datos es vlida mientras que una transmisin serie le indica donde empieza y termina cada bit. La transmisin en paralelo es intrnsecamente ms rpida que la transmisin en serie y se utiliza para comunicaciones de alta velocidad. Sin embargo, a medida que aumenta la distancia entre el transmisor y el receptor, la comunicacin serie tiende a ser ms econmica. En general, la transmisin serie resulta apropiada en los siguientes casos: Cuando el dispositivo de E/S hacia el cual ha de transferirse el dato es de naturaleza serie. Se incluyen en esta categora los cartuchos de cinta magntica, los discos flexibles, los modems. Cuando la distancia entre el microprocesador y el dispositivo perifrico de E/S es relativamente grande, superior a 4 metros. En estos casos, resulta ms econmica la transmisin serie, a pesar de requerir de lgica de control y programacin adicionales. 1.2 APLICACIN. DISEO DE UN SISTEMA BASICO CON UN MICROPROCESADOR DE 8 BITS Como hemos podido comprobar hasta el momento, el microprocesador ofrece gran potencialidad en la realizacin y desarrollo de funciones y actuaciones de control en general. Sin embargo tambin habremos constatado que por s mismo el microprocesador resulta inoperante, es decir, es preciso acompaarlo de los componentes necesarios para que pueda llevar a cabo la ejecucin prctica de los programas que se diseen. T R A N S M I S O R R E C E P T O R LINEAS DE DATOS RELOJ T R A N S M I S O R R E C E P T O R LINEAS DE DATOS RELOJ Fig. 1.29 Transmisin paralelo T R A N S M I S O R R E C E P T O R LINEA DE DATOS RELOJ T R A N S M I S O R R E C E P T O R LINEA DE DATOS RELOJ Fig. 1.30 Transmisin serie Sistemas basados en microprocesadores Parte I Ing. Gerardo Collaguazo 22 Estos componentes asociados son de muy diversas caractersticas y todos y cada uno de ellos desempean funciones determinadas y muy concretas. En este tema se ver la estructura de cada uno y se realizar un estudio de componentes concretos, que emplearemos para ir configurando una tarjeta bsica sobre la que posteriormente desarrollaremos diferentes programas. Los componentes asociados que necesitaremos, debern resolvernos problemas lgicos, de control, de direccionamiento, de tratamiento de buses, de almacenamiento de datos, de comunicacin de entrada/salida (E/S), etc. Esto nos da idea de la gran variedad de componentes que podemos encontrar para llevar a cabo estas tareas. Sin embargo aqu se tratarn nicamente los elementos imprescindibles para nuestros propsitos, como decodificadores, memorias RAM, memorias EPROM, etc. Adems, de forma sistemtica y paulatina, se ir desarrollando la forma de acoplamiento de todos los elementos, para finalmente llegar a la construccin de nuestro sistema bsico de trabajo. 1.2.1 TRATAMIENTO DE LOS BUSES Como se ha visto en el tema anterior, una de las principales caractersticas que presenta el microprocesador 8085 es poseer un bus de datos (de 8 lneas) multiplexado con la parte baja del bus de direcciones. Este multiplexado quiere decir que en un instante determinado tendremos en las 8 lneas del bus la informacin perteneciente a una direccin y un instante ms tarde tendremos en esas mismas lneas la informacin perteneciente a un dato. Corresponde por tanto a la circuitera externa, separar estas seales de modo apropiado, tal que no se produzcan interferencias por informaciones errneas en el resto de los componentes del sistema. De esta forma se obtendr una separacin total entre el bus de datos (8 bits) y el bus de direcciones (16 bits). Como sabemos el microprocesador 8085 dispone de una lnea de control o sincronizacin denominada ALE, por medio de la cual suministra un pulso de tensin de nivel lgico 1 cuando se presenta la parte baja de una direccin en el bus AD0,...,AD7 y cuando aparece un dato la seal ALE pasa al estado lgico 0. Deberemos por tanto emplear esta seal de control para separar estas informaciones utilizando un circuito integrado que acte de cerrojo (latch) y realice la separacin fsica. El esquema de principio responde a la Fig. 31. Mientras ALE est a nivel lgico 1, la informacin presente en las entradas del cerrojo, procedente de las lneas AD0,...,AD7 del microprocesador, pasa a las salidas, configurando de este modo la parte baja de las direcciones. En el instante en que ALE pasa a nivel 0, esa informacin queda almacenada y retenida en las salidas del cerrojo, que no cambiaran su estado mientras ALE no pase a nivel 1. Por tanto ahora puede cambiar la informacin presente en las lneas AD0,...,AD7 del microprocesador, que nos suministrar el dato oportuno, sin afectar a la parte baja de las direcciones. Son varios los circuitos que pueden emplearse para este cometido. Uno de los ms comnmente empleados es el 74LS373 cuya constitucin y funcionamiento pueden encontrarse en diversos textos. Fig. 1.31 Tratamiento de buses Fig. 1.32 Puerto 8212 Sistemas basados en microprocesadores Parte I Ing. Gerardo Collaguazo 23 Nosotros estudiaremos el circuito integrado 8212, fabricado por INTEL y que desarrolla esta funcin de forma adecuada. En realidad el 8212 es un puerto de E/S de 8 bits en paralelo. A su salida posee un latch con buffers de salida en tri- estado. Tambin dispone de una serie de flip-flop que utiliza para atender peticiones de servicio de interrupciones. Con este componente podremos llevar a cabo varias funciones perifricas y de entrada/salida del microprocesador. Se presenta en un encapsulado de 24 patillas que podemos ver representado en la Fig. 32. A continuacin se describir de forma concisa la funcin de todas las patillas de este componente: DO0,... DO7. Son las 8 lneas de salida de datos que estn conectadas a 8 buffers no inversores que pueden ser colocados en estado de alta impedancia. DI0,... DI7. Son las 8 lneas de entradas de datos a los 8 flip-flop internos de tipo D. La salida de estos flip-flop toman los valores de las entradas mientras la seal STB est a nivel alto. Cuando STB pasa a nivel bajo se produce el enclavamiento. Los datos de salida se borraran mediante la entrada de puesta a cero CLR. GND. Terminal de conexin a masa, o tensin de referencia. Vcc. Terminal de alimentacin (+5V). STB. Es la entrada Strobe o impulso de referencia se toma como clock para el latch de datos. MD. Seal de control del estado del buffer de salida y que determina el origen de los impulsos de clock que llegan al latch de datos. DS1 y DS2. Son dos entradas de seleccin de dispositivo. Con DS1=0 y DS2=1 el componente estar seleccionado. CLR. Pone a cero el latch de datos. Nivel bajo activo INT. Lnea de salida para una interrupcin. Nivel bajo activo. Dentro de las posibles aplicaciones o modos de conexin del 8212 pueden mencionarse: su utilizacin como controlador para un bus bidireccional empleando para ello dos componentes en oposicin; conexin como puerto para entrada de interrupciones; como puerto de salida; como latch para separar las direcciones de orden bajo con el microprocesador 8085 (ser la forma en que nosotros lo conectaremos), etc. Si deseamos obtener informacin adicional de este componente, como pueden ser sus diagramas de tiempos, caractersticas de conmutacin, etc., debemos acudir a las hojas de caractersticas tcnicas suministradas por los fabricantes. La conexin de este circuito integrado con el microprocesador 8085, se realiza de forma muy simple, segn se muestra en la Fig. 33. Como podemos apreciar los pasos a seguir son: Conectar directamente a +5V los terminales Vcc, DS2 y CLR. Conectar a masa los terminales GND, MD y DS1. Llevar la patilla STB directamente a la salida ALE del microprocesador. Unir las lneas DI0, DI1, DI2, ..., DI7, a las lneas del microprocesador AD0, AD1, AD2, ..., AD7, respectivamente. Realizada la conexin de este modo, cuando el microprocesador inicie su funcionamiento normal, tendremos en las salidas del 8212, la parte baja del bus de direcciones, correspondiendo las salidas DO0, DO1, DO2, ..., DO7 con las lneas de direcciones A0, A1, A2, ..., A7 respectivamente. 8 2 1 2 G N D M D D S 1 ALE STB V c c D S 2 C L R +5V 8 0 8 5 B U S D I R E C C I O N E S BUS DATOS AD0 DI0 DO0 A0 AD1 DI1 DO1 A1 AD2 DI2 DO2 A2 AD3 DI3 D03 A3 AD4 DI4 DO4 A4 AD5 DI5 DO5 A5 AD6 DI6 DO6 A6 AD7 DI7 DO7 A7 INT 8 2 1 2 G N D M D D S 1 ALE STB V c c D S 2 C L R +5V 8 0 8 5 B U S D I R E C C I O N E S BUS DATOS AD0 DI0 DO0 A0 AD1 DI1 DO1 A1 AD2 DI2 DO2 A2 AD3 DI3 D03 A3 AD4 DI4 DO4 A4 AD5 DI5 DO5 A5 AD6 DI6 DO6 A6 AD7 DI7 DO7 A7 INT Fig. 1.33 Acoplamiento del mP8085 con el 8212 Sistemas basados en microprocesadores Parte I Ing. Gerardo Collaguazo 24 1.2.2 DECODIFICACION DE DIRECCIONES Debemos entender que la mayora de los componentes que se emplean en los diseos con microprocesadores, necesitan ser conectados a los buses de datos y direcciones, por tanto deben poseer la caracterstica de permitir dejar en estado de alta impedancia las lneas que se conecten a dichos buses. De este modo podremos conectar varios componentes al mismo conjunto de lneas sin que se produzcan interferencias entre ellos, ya que solamente permanecer activo aquel que sea seleccionado, quedando el resto en estado de alta impedancia (tri-estado). Por tanto los componentes sobre los que debe actuar el microprocesador, adems de las lneas necesarias para conectarse a los buses, deben poseer algn terminal que permita al microprocesador habilitarlo para trabajar con l o por el contrario, dejarlo fuera de servicio. Este terminal ser el que realiza la seleccin del componente. Por otro lado sabemos que el bus de direcciones sirve para seleccionar algn registro (o alguna direccin) determinado en un componente, por tanto tendremos dos tipos de selecciones simultneas: Se debe seleccionar el componente que contiene la direccin o registro al que necesitamos acceder. Hay que indicar el registro o la direccin que deseamos dentro del componente. Para llevar a cabo estos procesos emplearemos el direccionamiento por decodificacin, aunque hay otros mtodos posibles. Las lneas de direccin ms bajas, son las que normalmente se emplean para apuntar a un registro determinado o a una direccin dada y las lneas de direccin ms altas (A15, A14, A13,...) se llevan a las entradas de un circuito integrado decodificador que ser el que con una de sus salidas, seleccione el componente que deseamos. Existen varios decodificadores que pueden ser empleados para este trabajo y que son de uso corriente. En nuestro caso ser utilizado el 74LS138. Se trata de un conocido decodificador de 3 a 8 lneas de lgica transistor-transistor que se presenta en un encapsulado de 16 patillas cuya distribucin puede apreciarse en la Fig. 34. La funcin de cada una de sus lneas se describe a continuacin: A0, A1 y A2 son las seales de entrada en cdigo binario. O0,..., O7 son las lneas de salida con nivel bajo activo. GND es el terminal de masa o tensin de referencia. Vcc es la patilla de alimentacin (+5V). E3 es una seal de habilitacin activa a nivel alto. E1 y E2 son seales de habilitacin activas a nivel bajo. A continuacin se muestra la tabla de la verdad, a travs de cuya observacin y anlisis puede apreciarse perfectamente la forma de actuar del decodificador. A2 A1 A0 O0 O1 O2 O3 O4 O5 O6 O7 0 0 0 0 1 1 1 1 1 1 1 0 0 1 1 0 1 1 1 1 1 1 0 1 0 1 1 0 1 1 1 1 1 0 1 1 1 1 1 0 1 1 1 1 1 0 0 1 1 1 1 0 1 1 1 1 0 1 1 1 1 1 1 0 1 1 1 1 0 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 0 A0 A1 A2 E1 E2 E3 O7 GND Vcc O0 O1 O2 O3 O4 O5 O6 7 4 L S 1 3 8 1 2 3 4 5 6 7 8 16 15 14 13 12 11 10 9 A0 A1 A2 E1 E2 E3 O7 GND Vcc O0 O1 O2 O3 O4 O5 O6 7 4 L S 1 3 8 1 2 3 4 5 6 7 8 16 15 14 13 12 11 10 9 Fig. 1.34 Registro latch 74LS138 Sistemas basados en microprocesadores Parte I Ing. Gerardo Collaguazo 25 En la Fig. 35 puede apreciarse el modo en que se puede conectar el decodificador al microprocesador 8085. Como vemos se emplean la lnea de direccin ms alta (A15) para atacar la entrada de control E3, mientras que las entradas de datos binarias del decodificador (A0, A1, A2) son manejadas por las direcciones A12, A13 y A14 del microprocesador. De esta forma puede utilizarse la lnea de direccin A15 tambin para seleccionar una memoria EPROM, puesto que al comenzar su ejecucin el microprocesador arranca en la direccin 0000H en su contador de programa, por lo que tendremos un 0 en la lnea A15 con la que podemos seleccionar una EPROM al tiempo que bloqueamos el 74LS138. Las otras dos lneas de control E1 y E2 se colocan a nivel bajo para dejar activo el decodificador. De todas formas es posible dar otra funcin a estas lneas de control en el diseo global del sistema. Las lneas de salida O0, O1, O2,..., O7 del decodificador quedarn disponibles para seleccionar los componentes deseados. En cada una de ellas, se colocar una resistencia a +5V para asegurar el nivel lgico 1, en las salidas no activas. 1.2.3 LA MEMORIA Para un sistema electrnico diseado sobre la base de un microprocesador determinado, la memoria es el lugar externo donde se almacenan los programas y los datos, tanto los iniciales como los que se van generando a medida que se ejecuta el programa. Las memorias debern disponer de un bus de datos (generalmente de 8 bits), un bus de direcciones cuyo nmero de bits depende de la capacidad de almacenaje y de los terminales de control adecuados que permitan un correcto funcionamiento del dispositivo, as como un fcil acceso y la posibilidad de situar los terminales del bus de datos en estado de alta impedancia. Dentro de las caractersticas ms destacables de una memoria y esenciales para su valoracin se encuentran los tiempos de escritura y lectura, el tiempo de acceso, los tiempos de ciclo, la capacidad (nmero de bits que pueden almacenarse en la memoria), etc. Todos estos datos, junto a otra serie de parmetros tpicos pueden encontrarse en las hojas de especificaciones tcnicas que suministran los fabricantes. Para trabajar con un microprocesador, se dispone bsicamente de dos tipos de memorias: a. Las memorias pasivas, de solo lectura, que generalmente se emplean para almacenar las instrucciones que configuran el programa y los datos necesarios permanentes. b. Las memorias activas, de lectura y escritura, de las que se puede leer y en las que se puede escribir la informacin deseada. Lo normal es almacenar en ellas los datos y valores que se van generando durante la ejecucin del programa, la informacin que contienen es voltil, es decir puede perderse por un fallo en la alimentacin. A continuacin veremos un resumen de las distintas memorias de cada tipo: Memoria RAM dinmica: Este tipo de memoria RAM se caracteriza por almacenar los bits que representan la informacin, en forma de cargas elctricas, aprovechando la capacidad generada en un transistor MOS que constituye la celda elemental de informacin. Sin embargo esta carga as almacenada, se va perdiendo con el tiempo, llegando a desaparecer al cabo de unos ms, debido a fugas elctricas. Es por tanto imprescindible con este tipo de memorias emplear circuitos de refresco cuya misin es leer la informacin que contiene la 7 4 L S 1 3 8 8 0 8 5 4 K 7 +5V Vcc G N D E 1 E 2 A15 E3 A14 A2 A13 A1 A12 A0 O7 CS7 O6 CS6 O5 CS5 O4 CS4 O3 CS3 O2 CS2 O1 CS1 O0 CS0 7 4 L S 1 3 8 8 0 8 5 4 K 7 +5V Vcc G N D E 1 E 2 A15 E3 A14 A2 A13 A1 A12 A0 O7 CS7 O6 CS6 O5 CS5 O4 CS4 O3 CS3 O2 CS2 O1 CS1 O0 CS0 Fig. 1.35 Conexin del mP con el decodificador Sistemas basados en microprocesadores Parte I Ing. Gerardo Collaguazo 26 memoria y volver a guardarla exactamente igual a intervalos de tiempo prximos a 1 o 2 ms. Hay microprocesadores que incluyen un sistema de refresco para trabajar con este tipo de memorias, en caso contrario sera preciso disear uno. Las RAM dinmicas poseen gran capacidad de memoria y son muy econmicas, suelen emplearse en sistemas que requieren mucha memoria. Memoria RAM esttica: Es la memoria que emplearemos nosotros en nuestro sistema. Esta constituida a partir de elementos flip-flop que configuran las celdillas de informacin, es decir, cada celdilla o flip-flop representa un bit. Su contenido permanece estable (a diferencia de las dinmicas) hasta que eliminemos la tensin de alimentacin, momento en que perdemos toda la informacin almacenada. Si deseamos retener la informacin de la RAM, no tendremos ms alternativa, que disear un sistema de alimentacin auxiliar (con bateras por ejemplo) que sustituya a la tensin principal cuando desaparezca. Existen RAM estticas de diferente ancho de palabra, en nuestro caso solo trataremos la RAM de 8 bits. Disponemos en el mercado de una amplia variedad de componentes RAM entre los que es posible elegir para disear un sistema. Nosotros vamos a emplear la memoria RAM 6116, que se presenta en un encapsulado de 24 patillas y podemos ver representada en la Fig. 36. Se trata de una memoria fabricada con tecnologa "CMOS" de bajo consumo con una capacidad de 16384 bits, es decir, 2 Kbytes para lectura/escritura. La descripcin de los distintos terminales es la siguiente: - Patillas A0,... A10. Son el bus de direcciones. - Patillas D0,... D7. Constituyen el bus de datos. - Patilla GND. Es el terminal de masa o tensin de referencia. - Patilla Vcc. Es el terminal de alimentacin (+5V). - Patilla CS. Entrada de seleccin de componente. - Patilla OE. Entrada de lectura. - Patilla WE. Entrada de escritura. (Recuerde que las seales marcadas en negrita tienen nivel activo BAJO). Para llevar a cabo la interconexin entre esta memoria y el microprocesador, debemos fijarnos en el esquema de la Fig. 37. Como podemos apreciar, las conexiones a realizar son las siguientes: - Las lneas de direccin A0, A1, A2, ..., A7 son conectadas a las salidas DO0, DO1, DO2, ..., DO7 del 8212. - Las lneas de direccin A8, A9 y A10, se conectan a las lneas correspondientes A8, A9 y A10 del bus de direcciones del microprocesador. - Los terminales D0, D1, D2, ..., D7 de la memoria RAM se conectan a las lneas AD0, AD1, AD2, ..., AD7 del bus de datos del microprocesador, respectivamente. - El terminal GND ser conectado a masa, mientras que Vcc se lleva a la alimentacin de +5V. - La lnea CS, de seleccin de chip, es conectada a una de las salidas del decodificador de direcciones 74LS138. R A M 6 1 1 6 A7 A6 A5 A4 A3 A2 A1 A0 D0 D1 D2 GND Vcc A8 A9 WE OE A10 CS D7 D6 D5 D4 D3 1 2 3 4 5 6 7 8 9 10 11 12 24 23 22 21 20 19 18 17 16 15 14 13 R A M 6 1 1 6 A7 A6 A5 A4 A3 A2 A1 A0 D0 D1 D2 GND Vcc A8 A9 WE OE A10 CS D7 D6 D5 D4 D3 1 2 3 4 5 6 7 8 9 10 11 12 24 23 22 21 20 19 18 17 16 15 14 13 Fig. 1.36 Memoria RAM 6116 8 2 1 2 74LS138 CS +5V Vcc GND R A M 6 1 1 6 AD7 A7 D7 AD6 A6 D6 AD5 A5 D5 AD4 A4 D4 AD3 A3 D3 AD2 A2 D2 AD1 A1 D1 AD0 A0 D0 WR WE RD OE A10 A9 A8 A15 E3 O7 A14 A2 O6 A13 A1 O5 A12 A0 O4 A11 O3 A10 O2 A9 O1 A8 O0 8 0 8 5 8 2 1 2 74LS138 CS +5V Vcc GND R A M 6 1 1 6 AD7 A7 D7 AD6 A6 D6 AD5 A5 D5 AD4 A4 D4 AD3 A3 D3 AD2 A2 D2 AD1 A1 D1 AD0 A0 D0 WR WE RD OE A10 A9 A8 A15 E3 O7 A14 A2 O6 A13 A1 O5 A12 A0 O4 A11 O3 A10 O2 A9 O1 A8 O0 8 0 8 5 Fig. 1.37 Conexin de la RAM al microprocesador Sistemas basados en microprocesadores Parte I Ing. Gerardo Collaguazo 27 - El terminal WE se conecta a la seal WRdel microprocesador. - La patilla OE se conecta a la salida RDdel microprocesador. Memoria ROM: Se trata de una memoria de solo lectura y se emplea para almacenar los programas, dado que su contenido no se pierde an en ausencia de la tensin de alimentacin. Este tipo de memoria debe ser grabada por el fabricante, mientras que el usuario no tiene la posibilidad de variar su contenido. Solo se emplean cuando se requiere un gran volumen de produccin y no es preciso introducir modificaciones en los programas. Memoria PROM: Tiene caractersticas similares a la anterior, con una distribucin de terminales idntica, por lo que pueden reemplazarlas. Las PROM se compran vacas o limpias, es decir, sin informacin alguna y es el usuario quien mediante un programador adecuado, les carga el programa. Las celdillas de informacin poseen dispositivos fusibles que segn permanezcan intactos o fundidos, representarn los dos posibles estados de informacin (1 0). Por supuesto, una vez almacenado el programa en la PROM, no podremos modificar su contenido. Memoria EPROM: Se trata de una memoria de solo lectura, que tambin puede ser programada por el usuario con el dispositivo programador adecuado. Sin embargo las EPROM tienen la particularidad de disponer de una ventana de cuarzo que permite el paso de los rayos de luz hasta la cpsula que contiene la memoria en s. Si hacemos incidir radiaciones ultravioletas sobre dicha ventana conseguimos eliminar la informacin existente en la memoria, quedando la EPROM dispuesta para ser grabada de nuevo. Este proceso puede repetirse en muchas ocasiones. Son ms caras que las anteriores y sus terminales no son totalmente compatibles. Nosotros emplearemos la EPROM 27256, que posee una capacidad de 32 Kbytes de memoria, es decir, 262144 bits. Su distribucin de patillas puede verse en la Fig. 38. A continuacin se describe la funcin de sus terminales: - Patillas A0,... A14. Representan el bus de direcciones. - Patillas D0,... D7. Representan el bus de datos. - Patilla GND. Representa la tensin de referencia o masa. - Patilla Vcc. Tensin de alimentacin. - Patilla Vpp. Entrada de programacin. - Patilla CS. Terminal de seleccin de chip. - Patilla OE. Terminal que habilita las salidas. Para llevar a cabo la interconexin entre esta EPROM y el microprocesador, no tendremos ms que conectar de forma adecuada las lneas correspondientes de los buses de datos y direcciones, segn se muestra en la Fig. 39. Hay que destacar que al disponer esta memoria de 15 lneas de direcciones, emplearemos las lneas A0,... A14 del microprocesador para direccionar todas las posiciones disponibles de la EPROM, efectuando la seleccin de chip con la lnea de direcciones A15 de forma directa y emplendola al mismo tiempo para bloquear el decodificador 74LS138. Tambin debemos conectar la seal RD del microprocesador a la entrada OE de la memoria para efectuar la lectura de datos. E P R O M 2 7 2 5 6 Vpp A12 A7 A6 A5 A4 A3 A2 A1 A0 D0 D1 D2 GND Vcc A14 A13 A8 A9 A11 CS A10 OE D7 D6 D5 D4 D3 1 2 3 4 5 6 7 8 9 10 11 12 13 14 28 27 26 25 24 23 22 21 20 19 18 17 16 15 E P R O M 2 7 2 5 6 Vpp A12 A7 A6 A5 A4 A3 A2 A1 A0 D0 D1 D2 GND Vcc A14 A13 A8 A9 A11 CS A10 OE D7 D6 D5 D4 D3 1 2 3 4 5 6 7 8 9 10 11 12 13 14 28 27 26 25 24 23 22 21 20 19 18 17 16 15 Fig. 1.38 Memoria EPROM 8 2 1 2 RD +5V Vcc GND E P R O M 2 7 2 5 6 A15 Vpp 8085 A15 A14 A13 A12 A11 A10 A9 A8 OE A14 A13 A12 A11 A10 A9 A8 AD7 A7 D7 AD6 A6 D6 AD5 A5 D5 AD4 A4 D4 AD3 A3 D3 AD2 A2 D2 AD1 A1 D1 AD0 A0 D0 8 2 1 2 RD +5V Vcc GND E P R O M 2 7 2 5 6 A15 Vpp 8085 A15 A14 A13 A12 A11 A10 A9 A8 OE A14 A13 A12 A11 A10 A9 A8 AD7 A7 D7 AD6 A6 D6 AD5 A5 D5 AD4 A4 D4 AD3 A3 D3 AD2 A2 D2 AD1 A1 D1 AD0 A0 D0 Fig. 1.39 Conexin de la EPROM al microprocesador Sistemas basados en microprocesadores Parte I Ing. Gerardo Collaguazo 28 El terminal Vpp (de entrada de programacin) debemos conectarlo a +5V, durante su estado de funcionamiento normal. Si deseamos aadir ms memorias EPROM, podremos situarlas en las direcciones que deseemos dentro del mapa de memoria disponible, aunque lo normal es situar las EPROM en bancos consecutivos. Otras memorias: El desarrollo de las tecnologas de fabricacin y los continuos avances en la investigacin, hacen que el campo de las memorias est evolucionando constantemente, consiguindose componentes con mayores capacidades de almacenamiento, velocidades de acceso mayores y costes ms reducidos. Al mismo tiempo se trabaja sobre otros tipos de memorias intentando mejorar determinadas caractersticas. Podemos mencionar: - Las memorias EAROM, que almacenan la informacin de forma permanente, pero pueden ser ledas y escritas electrnicamente (aunque los tiempos de escritura son muy superiores a los de lectura). - Las memorias de burbujas que se caracterizan por poseer una densidad elevadsima de almacenamiento aunque son lentas y caras. - Las memorias PLA o de matriz lgica programable. Se emplean para decodificar o codificar seales lgicas. 1.2.4 DISEO DEL SISTEMA BASICO Apoyndonos ahora en todo lo visto hasta el momento, podemos realizar nuestro diseo de sistema, para llevar a cabo operaciones bsicas con el microprocesador 8085. Esta tarjeta que estar constituida esencialmente por los componentes mencionados con anterioridad, responde al esquema de la Fig. 40. En ella podemos ver cmo la conexin de la memoria EPROM se realiza del mismo modo que se ha indicado en el apartado anterior (ver Fig. 39). El banco de memorias RAM estar constituido en este caso por tres unidades 6116, con idntico modo de conexin en todas sus lneas a excepcin de las lneas de seleccin de chip, que en este caso sern las CS0, CS1, y CS2 procedentes del decodificador 74LS138. En lo que se refiere a la conexin del 8212, vemos que nada vara respecto a lo expuesto en la Fig. 33, nicamente mencionar la colocacin de una resistencia de 4K7 a +5V en la seal ALE al objeto de reafirmar los niveles de tensin en esta salida del microprocesador. Este mismo sistema se emplea en la parte alta del bus de direcciones en el que se sita un bloque de 8 resistencias de 10k cada una conectadas a +5V. El decodificador de direcciones 74LS138, sigue el mismo esquema de conexin que el mostrado en la Fig. 35. Ahora adems se refuerzan las salidas del mismo colocando un bloque de 8 resistencias de 4K7 a +5V. Puede verse como en este caso las salidas CS0, CS1, y CS2, tomadas de las patillas 15, 14 y 13 respectivamente se emplean para direccionar las tres pastillas de memorias RAM que hemos colocado en el sistema. Sistemas basados en microprocesadores Parte I Ing. Gerardo Collaguazo 29 Puede verse con claridad cmo el microprocesador se sirve de un cristal de cuarzo de 4 MHz y un condensador de 18 pF, que colocados entre las patillas 1 y 2 generan la oscilacin que produce la frecuencia de reloj a la que funcionar el sistema. Es decir, se genera la frecuencia de trabajo. Fig. 1.40 Sistema bsico con mP 8085A Sistemas basados en microprocesadores Parte I Ing. Gerardo Collaguazo 30 Destacamos adems el circuito situado en la seal de entrada RESET IN del microprocesador (patilla 36) formado por una resistencia de 1K en paralelo con un diodo y un condensador electroltico de 1 uF. Este circuito es el que asegura un arranque correcto del sistema en el momento de conexin a red inicindose el contador de programa en la direccin 0000H, despus de que la patilla 36 haya alcanzado el nivel lgico 1 (ALTO). Este circuito produce un retardo en el arranque que viene dado aproximadamente por la constante de tiempo RC. En la parte izquierda de la FIG.1.40 puede verse que las seales INTR, TRAP, RST 7.5, RST 6.5, RST 5.5 y HOLD son conectadas directamente a masa para conseguir un correcto funcionamiento del sistema mientras no vayamos a emplearlas. Estas conexiones deben realizarse individualmente para cada seal y mediante puentes fcilmente eliminables de modo que si en un momento dado, para una determinada aplicacin deseamos emplear alguna de ellas, podamos hacerlo sin ms que eliminar el puente a masa correspondiente y tratando dicha entrada del modo adecuado. Adems deben colocarse distribuidos sobre la tarjeta condensadores de desacoplo. Lo ms usual es situar uno por cada circuito integrado y debern ir soldados mediante conexiones cortas y a ser posible directamente sobre las patillas de alimentacin de los circuitos integrados. Este es un medio eficaz y sencillo para impedir la creacin de seales parsitas de alta frecuencia que son derivadas a masa a travs del condensador. Normalmente estos condensadores son de 100 nF. Puede apreciarse tambin cmo la tarjeta dispone, para su conexin a otros circuitos, de cuatro conectores: CON1: Constituido por 16 lneas en las cuales podemos encontrar el bus de direcciones completo (A0, A1, A2,..., A15). CON2: Constituido por 8 lneas en las que podemos encontrar el bus de datos completo (D0, D1, ..., D7). CON3: Constituido por un total de 24 lneas entre las que encontramos el bus de control, el bloque completo de seales de interrupcin (que podremos utilizar desde el exterior eliminando previamente los puentes a masa) y las seales de seleccin de chip que se toman del decodificador 74LS138. CON4: Constituido por nueve lneas divididas en dos grupos que sirven para suministrar la alimentacin a la tarjeta (+5V y MASA). Realizadas todas estas consideraciones, no queda ms que analizar con detenimiento, las direcciones de memoria que ocupa cada uno de los componentes que integran esta tarjeta y las direcciones que quedan disponibles para futuras ampliaciones. Como puede deducirse de la Fig. 41 y apoyndonos en los valores que adquieren las entradas A0, A1, A2 y E3 del decodificador, se tendr la siguiente distribucin de direcciones: EPROM 27256 Desde 0000H hasta 7FFFH RAM 6116-1 Desde 8000H hasta 87FFH RAM 6116-2 Desde 9000H hasta 97FFH RAM 6116-3 Desde A000h hasta A7FFH Al mismo tiempo, los terminales del decodificador 74LS138 que quedan libres para aadir nuevos elementos al sistema, respondern a las siguientes direcciones: CS3 B000H CS4 C000H CS5 D000H CS6 E000H CS7 F000H 1.2.5 INTERCONEXION DEL 8155 CON EL MICROPROCESADOR 8085 Es claro, por todo lo estudiado hasta el momento, que el 8155 es un perifrico programable cuya estructura permite su utilizacin directa con el microprocesador 8085. Sistemas basados en microprocesadores Parte I Ing. Gerardo Collaguazo 31 El 8155 dispone de ciertas caractersticas que hacen posible su conexin al microprocesador de dos formas claramente diferenciadas que veremos a continuacin: POSIBILIDAD 1 Dada la estructura del 8155, no tendremos ms que: - Unir las patillas AD0, AD1, AD2, AD3, AD4, AD5, AD6 y AD7 a las patillas correspondientes del bus de datos/direcciones del microprocesador. - Unir la patilla de RESET del 8155 a la patilla RESET OUT del microprocesador, colocando un condensador a masa de 15 pF. - Conectar los terminales de masa (GND) y alimentacin (Vcc) a la masa y alimentacin del microprocesador (+5V). Es conveniente colocar un condensador a masa de 100 nF en el terminal de alimentacin. - Conectar las seales ALE, RD y WR del 8155 directamente a las patillas ALE, RD y WR del microprocesador. - La patilla TIMER IN del 8155 se conectar a la salida CLK OUT del microprocesador. - La patilla CS (seleccin de chip) ser controlada mediante una de las salidas libres del decodificador de direcciones. En este caso elegiremos la salida CS4. - El terminal IO/M del 8155 se conecta directamente a la seal de control IO/M de idntica denominacin del microprocesador. - Finalmente dispondremos de 22 lneas para comunicarse con el exterior que forman los tres puertos de entrada/salida del 8155 y de una lnea de salida de un contador o temporizador denominada TIMER OUT. De esta forma tendremos perfectamente acoplado este nuevo componente a nuestro sistema. En la Fig. 41 puede verse el esquema de esta conexin. No nos queda ahora ms que estudiar la forma de acceso al mismo, o lo que es igual, encontrar las direcciones de sus registros internos y puertos de entrada/salida. Para ello debemos darnos cuenta que para efectuar la seleccin del dispositivo hay que hacer activa la salida CS4 del decodificador de direcciones, es decir, hay que colocar en la parte alta del bus de direcciones (A15, A14, A13 y A12) el valor binario 1100, por lo que dicha combinacin es obligatoria. Por tener conectada la seal IO/M del microprocesador, para acceder a los puertos de E/S ser necesario emplear las instrucciones OUT PORT e IN PORT para sacar o leer datos del exterior y como sabemos por el tema 4, (al emplear estas instrucciones el microprocesador entiende que deseamos tener acceso a una entrada/salida y automticamente coloca un 1 lgico en la seal IO/M) el operando PORT representa el puerto seleccionado. Tendremos por tanto que situar en los bits de direccin ms bajos (A0, A1 y A2) los cdigos correspondientes a los puertos A, B, C y el cdigo correspondiente del registro de estado, segn el elemento al que deseemos tener acceso. Ambas instrucciones (OUT e IN) tienen el mismo efecto sobre el bus de direcciones, duplican el valor asignado a PORT en dicho bus. Por ejemplo con la instruccin OUT B1H, sacaramos hacia el exterior el contenido del acumulador, y en el bus de direcciones tendramos el valor B1B1H. De modo similar con la instruccin IN B3H, cargaramos un dato del exterior en el acumulador y tendramos en el bus de direcciones el valor B3B3H. Sistemas basados en microprocesadores Parte I Ing. Gerardo Collaguazo 32 Fig. 1.41 Puerto programable paralelo 8155 Por tanto en nuestro caso, para acceder a los puertos y registro de estado del 8155 tendramos que colocar como valor de PORT: Puerto A PORT = C1H Puerto B PORT = C2H Puerto C PORT = C3H Timer Low PORT = C4H Timer High PORT = C5H Registro de estado PORT = C0H Cuando deseemos trabajar con la memoria interna del 8155, no podremos utilizar la instrucciones especiales OUT e IN, sino que habr que emplear instrucciones normales como LDA o bien STA, segn sea el caso, seguidas de la direccin de memoria a la que deseemos acceder, que en el caso que estamos tratando, sern los 256 octetos comprendidos entre las direcciones siguientes: RAM 8155 C000H hasta C0FFH POSIBILIDAD 2. La segunda posibilidad de conectar este integrado, es en todo similar a la anterior, la nica diferencia radica en que la seal IO/M del 8155 no se conecta a la equivalente IO/M del microprocesador, sino que se controla mediante una lnea del bus de direcciones. Nosotros elegiremos este mtodo y conectaremos a dicha seal la lnea de direcciones A10 (podramos haber elegido otra). Para acceder a los puertos de entrada/salida o al registro de estado no podremos utilizar ahora las instrucciones OUT e IN puesto que no usamos la salida IO/M del microprocesador. En este caso, tanto para los puertos y registro de estado, como para las direcciones de RAM interna, se utilizarn instrucciones como STA o bien LDA seguidas de la direccin correspondiente. 21 PA0 22 PA1 23 PA2 24 PA3 27 PA4 25 PA5 26 PA6 28 PA7 PC0 37 PC1 38 PC2 39 PC3 1 PC4 2 PC5 5 AD0 12 AD1 13 AD2 14 AD3 15 AD4 16 AD5 17 AD6 18 AD7 19 29 PB0 30 PB1 31 PB2 32 PB3 33 PB4 34 PB5 35 PB6 36 PB7 6 TIMER OUT 4 RESET ALE 11 WR 10 RD 9 IO/M 7 CS 8 TIMER IN 3 +5V 100 nF 40 20 D0 D1 D2 D3 D4 D5 D6 D7 ALE WR RD IO/M CS4 CLK OUT RESET OUT 15pF PUERTO C PUERTO A PUERTO B BUS 8085 8155 Sistemas basados en microprocesadores Parte I Ing. Gerardo Collaguazo 33 Al igual que en el caso anterior, para seleccionar el chip debemos colocar en la parte alta del bus de direcciones (A15, A14, A13, A12) el dato binario 1100. Adems hay que colocar en la parte baja (A0, A1, A2) el cdigo correspondiente al elemento que deseemos utilizar. Y finalmente, tendremos que colocar la lnea de direcciones A10 a nivel lgico 1 para acceder a los puertos y registro de estado y a nivel lgico 0 para tener acceso a las posiciones de memoria RAM interna. Por tanto las direcciones a considerar en nuestro caso sern: Puerto A C401H Puerto B C402H Puerto C C403H Timer Low C404H Timer High C405H Registro de estado C/E C400H RAM 8155 C000H hasta C0FFH En la Fig. 42 puede verse la representacin esquemtica de esta conexin, que ser la que finalmente utilizaremos en nuestro sistema. Fig. 1.42 Posibilidad 2 de conexin del 8155 1.3 SOFTWARE. PROGRAMACION DE UN SISTEMA CON MICROPROCESADOR 1.3.1 INTRODUCCION Los sistemas construidos sobre la base de los microprocesadores, requieren para su puesta en marcha, el desarrollo del software, es decir, el desarrollo de programas que una vez construidos, son almacenados en las memorias permanentes (PROM, EPROM,...) del sistema, donde son buscados por el microprocesador para desarrollar todas las funciones y tareas deseadas. 21 PA0 22 PA1 23 PA2 24 PA3 27 PA4 25 PA5 26 PA6 28 PA7 PC0 37 PC1 38 PC2 39 PC3 1 PC4 2 PC5 5 AD0 12 AD1 13 AD2 14 AD3 15 AD4 16 AD5 17 AD6 18 AD7 19 29 PB0 30 PB1 31 PB2 32 PB3 33 PB4 34 PB5 35 PB6 36 PB7 6 TIMER OUT 4 RESET ALE 11 WR 10 RD 9 IO/M 7 CS 8 TIMER IN 3 +5V 100 nF 40 20 D0 D1 D2 D3 D4 D5 D6 D7 ALE WR RD A10 CS4 CLK OUT RESET OUT 15pF BUS 8085 PUERTO C PUERTO A PUERTO B 8155 Sistemas basados en microprocesadores Parte I Ing. Gerardo Collaguazo 34 Un programa est constituido por un conjunto ordenado de instrucciones, que constituyen el cuerpo principal del programa y uno o ms bloques de datos iniciales necesarios para una correcta ejecucin. El proceso bsico de ejecucin de un programa requiere por parte del microprocesador, la repeticin de los siguientes pasos: 1. Construir la direccin de la posicin de memoria donde se encuentra la instruccin y situarla en el bus de direcciones. Esta funcin, como se mencion anteriormente, la realiza el contador de programa. 2. Leer la instruccin por medio de una orden de lectura enviada a travs del bus de control. En respuesta, la posicin de memoria direccionada transmite el cdigo de la instruccin al bus de datos. Esta informacin se almacena en el registro de instrucciones. 3. Decodificar la instruccin para determinar en la ROM del microprograma la secuencia de microinstrucciones necesarias para llevarlas a cabo. Esta funcin la realiza el decodificador de instrucciones del microprocesador. 4. Leer, si la instruccin as lo exige, cualquier dato almacenado en una posicin de memoria o traerlo desde un puerto de entrada. 5. Ejecutar las operaciones especificadas por la instruccin. Esta funcin la realizan la ALU, el Acumulador y dems registros asociados a la unidad de ejecucin. 6. Almacenar, si al instruccin as lo exige, los resultados en una determinada posicin de memoria o llevarlos a un puerto de salida. Todas estas acciones estn sincronizadas por la seal de reloj del sistema y constituyen lo que se denomina ciclo de instruccin, que en algunos microprocesadores pueden tomar 2 o 4 ciclos reloj. Estos 6 pasos se pueden resumir en tres fases, a saber: Leer de la memoria una instruccin del programa. Interpretar la instruccin leda. Ejecutar dicha instruccin. Debemos considerar adems que los microprocesadores trabajan solamente con lenguaje de bajo nivel, es decir, trabajan con lenguaje mquina. Cada microprocesador o familia de microprocesadores, posee su propio lenguaje mquina que determina las capacidades propias de cada familia. Las instrucciones mquina son almacenadas en la memoria en forma de bytes, es decir, en forma de unos y ceros empleando por tanto el sistema binario de numeracin. Sin embargo este sistema es muy complejo para trabajar directamente con l, por lo que se emplean otros sistemas como el hexadecimal, BCD, etc. para la representacin de datos. Para construir los programas, normalmente se emplean lenguajes de alto nivel, y luego se transforman los programas as escritos a lenguaje mquina asequible para el microprocesador. No obstante en nuestro caso emplearemos un lenguaje de bajo nivel (ensamblador) que trabaja con abreviaturas alfabticas denominadas mnemnicos que constituyen las operaciones e instrucciones que ejecutar el microprocesador. 1.3.2 ARQUITECTURAS DE LOS SISTEMAS DE MICROPROCESADORES. TIPOS DE PROCESADORES 1.3.2.1 ARQUITECTURAS VON NEUMANN Y HARVARD La arquitectura de los sistemas digitales programables pueden ser de tipo Von Neumann o Harvard. En la Arquitectura Von Neumann la CPU est conectada a una memoria nica que contiene las instrucciones del programa y datos. A esta memoria se accede a travs de un nico sistema de buses nico. La nica ventaja que posee es que simplifica la lgica del sistema. Las limitaciones de esta arquitectura tradicional son: La longitud de las instrucciones est limitada por la longitud de los datos, por lo tanto, el microprocesador debe hacer varios accesos a la memoria para buscar instrucciones complejas. CPU CPU MEMORIA DE PROGRAMA Y DATOS MEMORIA DE PROGRAMA Y DATOS CPU CPU MEMORIA DE PROGRAMA Y DATOS MEMORIA DE PROGRAMA Y DATOS Fig. 1.43 Arquitectura Von Neumann Sistemas basados en microprocesadores Parte I Ing. Gerardo Collaguazo 35 La velocidad de operacin est limitada por el efecto de cuello de botella que significa un nico bus de datos e instrucciones, que impide superponer ambos tiempos de acceso. Otros sistemas de microprocesadores utilizan la Arquitectura Harvard que dispone de dos tipos de memorias independientes (memoria de datos y memoria de programa) a la que se conecta mediante dos grupos de buses separados, conforme la figura 1.44. Ambos buses son totalmente independientes y pueden ser de distintos anchos, esto permite que la CPU pueda acceder de forma independiente y simultnea a la memoria de datos y a la de instrucciones, consiguiendo que las instrucciones se ejecuten en menos ciclos de reloj. Se puede concluir que las principales ventajas de la arquitectura Harvard son: El tamao de las instrucciones no est relacionado con el de los datos y, por lo tanto, puede ser optimizado para que cualquier instruccin ocupe una sola posicin de memoria de programa. As se logra mayor velocidad y una menor longitud de programa. El tiempo de acceso a las instrucciones puede superponerse con el de los datos logrando una mayor velocidad de operacin. 1.3.2.2 PROCESADOR SEGMENTADO O PIPELINE Un procesador Segmentado o Pipeline realiza simultneamente la ejecucin de la instruccin y la bsqueda del cdigo de la siguiente, de esta manera, se puede ejecutar una instruccin en un solo ciclo mquina. Este sistema acompaado de una estructura Harvard, permite que las instrucciones se ejecuten en un solo ciclo mquina, salvo en el caso de saltos de programa. 1.3.2.3 PROCESADOR SEGN EL NUMERO DE INSTRUCCIONES Las CPUs atendiendo al tipo de instrucciones que utilizan pueden clasificarse fundamentalmente en: CPU CPU MEMORIA DE PROGRAMA (ROM) MEMORIA DE PROGRAMA (ROM) MEMORIA DE DATOS (RAM) MEMORIA DE DATOS (RAM) CPU CPU MEMORIA DE PROGRAMA (ROM) MEMORIA DE PROGRAMA (ROM) MEMORIA DE DATOS (RAM) MEMORIA DE DATOS (RAM) Fig. 1.44 Arquitectura Harvard OSC PC PC+1 BUSQUEDA INST (PC) EJECUTA INST (PC-1) BUSQUEDA INST (PC+1) EJECUTA INST (PC) CICLO MAQUINA OSC PC PC+1 BUSQUEDA INST (PC) EJECUTA INST (PC-1) BUSQUEDA INST (PC+1) EJECUTA INST (PC) CICLO MAQUINA PC PC+1 BUSQUEDA INST (PC) EJECUTA INST (PC-1) BUSQUEDA INST (PC+1) EJECUTA INST (PC) CICLO MAQUINA Fig. 1.45 Ciclo mquina en un procesador segmentado Sistemas basados en microprocesadores Parte I Ing. Gerardo Collaguazo 36 CISC (Complex Instruction Set Computer) . Son procesadores con un juego de instrucciones complejo. Su repertorio de instrucciones es elevado y algunas de ellas son muy sofisticadas y potentes. Su problema es que requieren de muchos ciclos de reloj para ejecutar las instrucciones. RISC (Reduced Instruction Set Computer). Son microprocesadores con un repertorio de insrucciones reducido. Las instrucciones son muy simples y suelen ejecutarse en un solo ciclo mquina. Los procesadores RISC suelen tener una estructura Pipeline y ejecutar casi todas las instrucciones en el mismo tiempo. SISC (Specific Instruction Set Computer). Estos procesadores poseen un juego de instrucciones especfico para cada aplicacin. Estn destinadas a aplicaciones muy concretas. 1.3.2.4 ARQUITECTURA DEL PROCESADOR SEGN EL FORMATO DE LAS INSTRUCCIONES En un procesador con Arquitectura Ortogonal una instruccin puede utilizar cualquier elemento de la arquitectura como fuente o destino. Esta es una diferencia muy significativa respecto de la arquitectura tradicional. En las siguientes figuras se representan las Arquitecturas Tradicional y Ortogonal. La principal diferencia entre ambos radica en la ubicacin del registro de trabajo (Acumulador). En los procesadores tradicionales todas las operaciones se realizan sobre el Acumulador. La salida del mismo esta conectada a una de las entradas de la ALU y, por lo tanto, este es siempre uno de los dos operandos de cualquier instruccin. La salida de la ALU va solamente a la entrada del Acumulador, el resultado de cualquier operacin siempre quedar en este registro. En la estructura Ortogonal la salida de la ALU va al registro de trabajo y tambin a la memoria de datos, as el resultado puede guardarse en cualquiera de los dos destinos. En las instrucciones de doble operando, uno de los dos datos siempre debe estar en el registro de trabajo. La gran ventaja de esta arquitectura es que permite un gran ahorro de instrucciones ya que el resultado d cualquier instruccin que opere con la memoria, puede dejarse en la misma posicin de memoria o en el registro de trabajo. 1.3.3 LENGUAJES DE PROGRAMACION. EL ENSAMBLADOR Los lenguajes de programacin se pueden dividir grosso modo, en las siguientes jerarquas: Lenguajes de microprogramacin. Lenguajes de mquina. Lenguajes ensambladores. Lenguajes de alto nivel. El Lenguaje de microprogramacin es, normalmente invisible para el usuario de un microprocesador, porque reside en la parte interna del mismo llamada ROM del microprograma. El microprograma interpreta las MEMORIA DE DATOS MEMORIA DE DATOS ACUMULADOR ACUMULADOR ALU MEMORIA DE DATOS MEMORIA DE DATOS ACUMULADOR ACUMULADOR ALU Fig. 1.46 Arquitectura Tradicional MEMORIA DE DATOS MEMORIA DE DATOS W W ALU MEMORIA DE DATOS MEMORIA DE DATOS W W ALU Fig. 1.47 Arquitectura Ortogonal Sistemas basados en microprocesadores Parte I Ing. Gerardo Collaguazo 37 instrucciones en lenguaje mquina recibidas por el microprocesador y es el responsable de generar las microinstrucciones necesarias para ejecutar correctamente cada instruccin. El Lenguaje Mquina, es la forma binaria (0s y 1s) del programa y es el nico lenguaje que, en ltima instancia entiende el microprocesador. Una forma simplificada es el cdigo objeto, el cual representa cada cdigo binario por se equivalente hexadecimal. El Lenguaje Ensamblador y los lenguajes de alto nivel (Pascal, Basic, C, C++, etc) consisten en una serie de instrucciones especiales (statements) que son ms fciles de entender por la personas que las instrucciones en lenguaje mquina o cdigo objeto. El Lenguaje Ensamblador utiliza Nemnicos que son grupos de caracteres alfanumricos que simbolizan las rdenes o tareas a realizar con cada instruccin. De manera general, los nemnicos se corresponden con las iniciales del nombre de la instruccin en ingls, d forma que recuerdan la operacin que realiza la instruccin, lo que facilita su memorizacin. Para ser comprendidas las instrucciones escritas en otro lenguaje, estas deben ser convertidas a lenguaje de mquina por medio de un programa llamado traductor o compilador. El cdigo fuente est compuesto por una sucesin de lneas de programa. Todos los ficheros fuente poseen una estructura similar independientemente del procesador utilizado. Cada lnea de programa suele estar compuesta de 4 campos separados por uno o ms espacios o tabulaciones. Estos campos son: 1. Campo de las etiquetas 2. Campo del cdigo de operacin 3. Campo de operandos y datos 4. Campo de comentarios. ETIQUETA OP-CODE OPERANDOS COMENTARIOS SUM1: SUM2: RESUL: ORG EQU EQU EQU MVI MVI ADD STA HLT 0000H 08H 07H 0020H A,SUM1 B,SUM2 B RESUL ;Empezar en la dir. 0000h ;Define dato1 SUM1=08h ;Define dato2 SUM2=07h ;Define dir de resultado RESUL=0020h ;Carga reg. Ac. con el dato1 ;Carga reg. B con dato2 ;Suma dato1+dato2 ;Lleva resultado a la posicin RESUL ;Stop El primer campo corresponde a la etiqueta. Como se mencion anteriormente, es un nemnico alfanumrico de 5 o 6 caracteres (siendo el primero una letra) para referirse a direcciones que son especficamente conocidas. Normalmente, una etiqueta termina en dos puntos (:) para separarla de los otros campos. El segundo campo corresponde al nemnico del op-code de la instruccin a ser ejecutada. Cada procesador tiene su propio conjunto de cdigos nemnicos para designar cada una de las instrucciones a las que responde. CODIGO FUENTE PROGRAMA EN ENSAMBLADOR, BASIC, etc. TRADUCTOR ENSAMBLADOR, COMPILADOR, INTERPRETE, etc CODIGO FUENTE PROGRAMA EN LENGUAJE DE MAQUINA CODIGO FUENTE PROGRAMA EN ENSAMBLADOR, BASIC, etc. TRADUCTOR ENSAMBLADOR, COMPILADOR, INTERPRETE, etc CODIGO FUENTE PROGRAMA EN LENGUAJE DE MAQUINA Fig. 1.48 Conversin de Lenguaje Ensamblador a Lenguaje de mquina Sistemas basados en microprocesadores Parte I Ing. Gerardo Collaguazo 38 El tercer campo corresponde a los operandos o parmetros requeridos por la instruccin. Contiene, separados por comas (,), las designaciones de los registros y/o los datos o direcciones sobre los cuales acta la misma. El cuarto campo corresponde a os comentarios. En esta rea se escribe, entre otras cosas, notas especiales que sirven de referencia no solamente al programador sino a cualquier persona que consulte el programa. Los comentarios deben dar explicaciones de la instruccin o grupos de instrucciones desde el punto de vista de la aplicacin. Los comentarios comienzan con asterisco (*) o punto y coma (;) y no son ejecutables. 1.3.4 LAS INSTRUCCIONES. MODOS DE DIRECCIONAMIENTO 1.3.4.1 LAS INSTRUCCIONES Bsicamente puede decirse que el bloque de instrucciones debe ser completo y eficaz de modo que podamos realizar todos los clculos necesarios de la forma ms rpida y precisa posible. Una de las principales caractersticas de todo microprocesador es disponer de un buen conjunto de instrucciones que le den la mayor versatilidad posible. Se establecen los siguientes grupos, tipos o conjuntos de instrucciones: 1. Aritmticas: Son las instrucciones que realizan operaciones de tipo aritmtico como sumas, restas, incrementos, decrementos, etc. Todas las operaciones de este tipo afectan al registro de estado, es decir a los flags. 2. Movimiento de datos: Este tipo de instrucciones de movimiento o transferencia de datos, permiten realizar una copia del contenido de un registro o direccin de memoria (origen), en otro registro o direccin de memoria (destino), sin alterar el contenido del origen. 3. Instrucciones lgicas: Realizan operaciones lgicas entre los operandos. Afectan a los flags segn sea el caso y las operaciones se realizan bit a bit entre los datos. 4. Instrucciones de comparacin: Son operaciones de restar o operaciones XOR entre dos operandos. Afectan a los flags pero no se almacena el resultado. 5. Instrucciones de salto: Son instrucciones de modificacin de secuencia que alteran la ejecucin normal del programa, cargando el contador de programa con la nueva direccin en la que deseamos contine ejecutndose el programa. Los saltos o bifurcaciones pueden ser: Condicionales: Cuando son controlados por el estado de un indicador o flag, y basndose en dicho estado se decide si se salta o no. Incondicionales: Cuando modifican el contador de programa sin condicin previa. Dentro de cada uno de estos tipos, podemos encontrar adems la particularidad de que al efectuar los saltos se realicen con posibilidad de retorno o no. 6. Instrucciones de entrada/salida: Son en realidad instrucciones de transferencia, pero no entre registros o posiciones de memoria, sino con elementos perifricos que permiten la comunicacin del microprocesador con el exterior. 7. Instrucciones de control: Sirven para actuar internamente sobre el microprocesador, provocando detenciones en la ejecucin del programa, etc. 8. Instrucciones de bit: Trabajan o tratan bits independientes. 9. Instrucciones de desplazamiento: Desplazan o rotan hacia la izquierda o hacia la derecha los bits de un registro (Acumulador). Sistemas basados en microprocesadores Parte I Ing. Gerardo Collaguazo 39 1.3.4.2 MODOS DE DIRECCIONAMIENTO Los modos de direccionamiento son aquellos procedimientos empleados por el microprocesador para poder acceder a determinados operandos, instrucciones, posiciones de memoria, registros de entrada/salida, etc. Por tanto, el objeto del direccionamiento es un valor o dato que se encuentra en un lugar de la memoria, en algn registro o en la propia instruccin. Los diferentes modos de direccionamiento que pueda emplear un microprocesador le proporcionan un determinado nivel de potencialidad, permitindole manejar datos y realizar operaciones con mayor facilidad. En general podemos diferenciar los siguientes tipos o modos de direccionamiento: 1. Direccionamiento inmediato: En este caso el objeto (un operando) se encuentra incluido en la instruccin, es decir, a continuacin del cdigo de la instruccin se aade el operando propiamente dicho. Las instrucciones que emplean este direccionamiento pueden ser de dos o tres bytes y son instrucciones de ejecucin rpida y sencilla. 2. Direccionamiento implcito: Las instrucciones que emplean este modo de direccionamiento tienen un solo byte y es la propia instruccin la que indica qu registro o direccin de memoria se va a utilizar en la operacin. 3. Direccionamiento absoluto: En este caso las instrucciones incluyen la direccin de memoria donde se encuentra el dato con el que se va a operar. En este tipo de direccionamiento pueden darse tres supuestos: a. La instruccin apunta a un registro que contiene la informacin deseada (direccionamiento tambin llamado de registro). b. La instruccin contiene la direccin completa en la que se encuentra el dato, empleando para ello tres bytes. c. Cuando la instruccin se refiere solo a una parte de la memoria (pgina). En este caso el byte ms alto lo suministra el contador de programa y el byte ms bajo se expresa a continuacin del cdigo de instruccin, por tanto solo se emplean dos bytes (Este direccionamiento tambin se llama de pgina base). 4. Direccionamiento directo relativo: La instruccin en este caso contiene un valor determinado al que podemos llamar V. La direccin total se calcula sumando a V el valor que est almacenado en un registro al que haga referencia la instruccin. El valor de V puede ser tanto positivo como negativo. 5. Direccionamiento indirecto: La instruccin contiene una direccin a la que llamaremos D1. El contenido de D1 no es el objeto directo de nuestra instruccin, sino que contiene otra direccin que llamaremos D2. Esta nueva direccin D2 es la que contiene el dato que s es objeto de la instruccin. Expresados ya los modos de direccionamiento con carcter general, pasamos ahora a ver los modos de direccionamiento que utiliza el microprocesador 8085 en particular, que son los cuatro siguientes: Direccionamiento Directo Absoluto. La instruccin contiene la direccin exacta y completa donde se encuentra el dato. Por ejemplo: LHLD A716H Direccionamiento por Registro. La instruccin lleva el registro en el que est el dato que va a ser tratado. Por ejemplo: MOV A,B MOV B,C Sistemas basados en microprocesadores Parte I Ing. Gerardo Collaguazo 40 Direccionamiento por Registro Indirecto. En la instruccin se especifica un registro cuyo contenido apunta a una direccin de memoria en la que se encuentra el dato. Por ejemplo: MOV A,M M es una referencia simblica a una direccin de memoria apuntada o sealada por el par de registros HL. Direccionamiento Inmediato. La instruccin contiene el dato con el que se desea operar, pudiendo ser el dato de uno o dos bytes. LXI H,A0B7H ADI 3AH 1.4 EJERCICIOS BASICOS DE PROGRAMACION Para las prcticas vamos a utilizar el entrenador del microprocesador 8085A del laboratorio, que tiene el siguiente diagrama de bloques. Para realizar los programas en Lenguaje Ensamblador, se recomienda construir: El algoritmo. Diagrama de flujo. Escribir los mnemnicos de las instrucciones. 1. Empleo de las instrucciones bsicas a) Mayor de dos nmeros: Leer un nmero de una direccin de memoria determinada, si es mayor que 12 cargarlo en el registro B y en caso contrario cargarlo en el registro C. En primer lugar debemos analizar el problema detenidamente hasta entenderlo de forma correcta y poder as realizar las especificaciones y acotaciones que consideremos oportunas. Se hace referencia a una direccin de memoria, por tanto se trata de un byte que contiene el Dato buscado. Se supone que buscamos un nmero positivo (no dicen nada en contra). Y adems aadimos que la direccin de memoria en la que se encuentra el Dato, la tenemos en el registro par HL. Fig. 49 Diagrama de bloques del Entrenador uP8085A Sistemas basados en microprocesadores Parte I Ing. Gerardo Collaguazo 41 Adems, podemos intuir que se trata de una toma de decisin sencilla ya que establece una accin a ejecutar si se cumple una condicin determinada y en caso contrario debe hacer nada debe ejecutar otra accin. De esta forma el algoritmo sera de la siguiente manera: NOMBRE: MENOR12 FUNCION: Leer dato memoria y almacenarlo en B (>12) o en C PRECONDICIONES: HL = Direccin memoria, B=0, C=0 POSTCONDICIONES: Dato en B o en C Leer Dato de la memoria SI Dato > 12 B = Dato SI NO C = Dato FIN DE SI Fin del Programa A continuacin se muestra el diagrama de flujo correspondiente a este pseudocdigo, donde se puede comprobar el desarrollo del programa. ---------------------------------------------------------------------------------------------- 1 ;------------------------------------------ 2 ;NOMBRE : MENOR12 3 ;FUNCION : Si Dato>12 va a B si no va a C 4 ;PRECONDICION : HL=Direccin Dato, B=0, C=0 5 ;POSTCONDICION : Resultado en B o en C 6 ;------------------------------------------ 7 8 0000 MENOR12: 9 0000 F5 PUSH PSW 10 0001 7E MOV A,M 11 0002 FE 0C CPI 12 12 0004 CA 0D 00 JZ SALT1 13 0007 DA 0D 00 JC SALT1 14 000A 46 MOV B,M 15 000B F1 FIN POP PSW 16 000C END 17 000D 4E SALT1 MOV C,M 18 000E C3 0B 00 JMP FIN ---------------------------------------------------------------------------------------------- b) Suma decimal de varios dgitos. Con este ejercicio se llevar a cabo la suma de dos nmeros decimales de varias cifras. Puesto que no nos dicen nada en el enunciado, supondremos que se trata de nmeros de ocho cifras. Los nmeros a sumar (los sumandos) se encuentran almacenados en la memoria RAM expresados segn el sistema decimal (BCD). Puesto que en cada byte disponemos de ocho bits, podemos tener representadas dos cifras decimales en cada byte, por lo que para completar las ocho cifras de cada nmero se necesitarn cuatro bytes por nmero. La direccin donde se encuentra almacenado el primer byte del primer sumando, vendr dada por SUM1 y el resto en direcciones consecutivas. La direccin del primer byte del segundo sumando, estar dada por SUM2 y el resto en direcciones consecutivas. El resultado de la operacin ser almacenado en las direcciones del primer sumando, por tanto, ste se perder. Necesitamos desarrollar un bucle que sume los cuatro bytes representativos de cada nmero. Para realizar este proceso, es preciso iniciar un Contador que nos permita establecer el final del bucle. Fig. 1.50 Diagrama de flujo Sistemas basados en microprocesadores Parte I Ing. Gerardo Collaguazo 42 El pseudocdigo propuesto es el siguiente: NOMBRE: SUMA FUNCION: Suma dos nmeros decimales de 8 cifras cada uno PRECONDICIONES:Primer sumando en SUM1 Segundo sumando en SUM2 POSTCONDICIONES: El resultado se almacena en lugar de SUM1 Apuntar a SUM1 Apuntar a SUM2 Iniciar Contador = 4 MIENTRAS Contador > 0 Sumar bytes SUM1+SUM2 Ajuste decimal Guardar resultado en SUM1 Apuntar a SUM1+1 Apuntar a SUM2+1 Contador = Contador 1 FIN DE MIENTRAS Fin del Programa En la 1.51 se representa el diagrama de flujo correspondiente este pseudocdigo y en l puede apreciarse el desarrollo o flujo de las rdenes a ejecutar por la computadora o sistema. ---------------------------------------------------------------------------------------------- 1 ;------------------------------------------ 2 ;NOMBRE : SUMA 3 ;FUNCION : Suma dos nm decimales 8 cifras 4 ;PRECONDICION : SUM1 Y SUM2 conocidos 5 ;POSTCONDICION : Resultado en SUM1 6 ;------------------------------------------ 7 20 80 SUM1 EQU 8020H 8 30 80 SUM2 EQU 8030H 9 10 0000 SUMA: 11 0000 F5 PUSH PSW 12 0001 E5 PUSH H 13 0002 C5 PUSH B 14 0003 D5 PUSH D 15 0004 21 20 80 LXI H,SUM1 16 0007 11 30 80 LXI D,SUM2 17 000A A7 ANA A 18 000B 06 04 MVI B,04 19 000D 1A SALT1 LDAX D 20 000E 8E ADC M 21 000F 27 DAA 22 0010 77 MOV M,A 23 0011 23 INX H 24 0012 13 INX D 25 0013 05 DCR B 26 0014 C2 0D 00 JNZ SALT1 27 0017 D1 POP D 28 0018 C1 POP B 29 0019 E1 POP H 30 001A F1 POP PSW 31 001B END ------------------------------------------------------------------------------------------- Fig. 1.51 Diagrama de flujo Sistemas basados en microprocesadores Parte I Ing. Gerardo Collaguazo 43 c) Subrutina: Retardo En este caso nos piden desarrollar una subrutina o un programa de temporizacin. No se nos indica cunto tiempo se debe permanecer en este estado, por lo que ser una caracterstica que impondremos nosotros. Tampoco se dice nada acerca de qu debe hacer el microprocesador durante ese tiempo. El programa bsicamente consistir en desarrollar un bucle o ciclo que se repita durante un tiempo, o un determinado nmero de veces, y en el que el microprocesador no haga nada. Es decir, estableceremos un tiempo de espera. Como se ha hecho en otras ocasiones se establecer un Contador que nos seale el final del bucle y por tanto el final del tiempo de espera. Segn las condiciones expresadas, tendremos el siguiente pseudocdigo: NOMBRE: TEMPORIZ FUNCION: Realiza un tiempo de espera PRECONDICIONES: Conocemos el dato del Contador POSTCONDICIONES: Ninguna Iniciar el Contador MIENTRAS Contador > 0 No hacer nada Decrementar Contador FIN DE MIENTRAS Final del Programa En la Fig. 1.52 se muestra el diagrama de flujo. ---------------------------------------------------------------------------------------------- 1 ;------------------------------------------ 2 ;NOMBRE : TEMPORIZ 3 ;FUNCION : Realiza un tiempo de espera 4 ;PRECONDICION : Contador=CONTA 5 ;POSTCONDICION : Ninguna 6 ;------------------------------------------ 7 8 0000 TEMPORIZ: 9 0000 F5 PUSH PSW 10 0001 1B SALT1 DCX D 11 0002 7A MOV A,D 12 0003 B3 ORA E 13 0004 00 NOP 14 0005 00 NOP 15 0006 00 NOP 16 0007 C2 01 00 JNZ SALT1 17 000A F1 POP PSW 18 000B C9 RET 19 20 000C END ------------------------------------------------------------------------------------------------------------------------------------- Para el llamado de la subrutina se emplea la instruccin CALL name. 2. Control de un juego de LEDs: Se desea rotar a la izquierda los LEDs conectados al PORTA cada cierto tiempo. Antes de realizar el programa, revisemos la configuracin de los puertos en el 8155 de nuestro entrenador de laboratorio. En la tabla siguiente se presenta las direcciones de los Puertos que tiene el 8155. Fig. 1.52 Diagrama de flujo Sistemas basados en microprocesadores Parte I Ing. Gerardo Collaguazo 44 DIRECCIONES I/O SELECCIN x puede ser 0 o 1 A7 A6 A5 A4 A3 A2 A1 A0 x x x x x 0 0 0 Registro de Comandos/Estados x x x x x 0 0 1 PORTA. Propsito general E/S x x x x x 0 1 0 PORTB. Propsito general E/S x x x x x 0 1 1 PORTC. Propsito general E/S o control x x x x x 1 0 0 Registro inferior de temporizacin x x x x x 1 0 1 Registro superior de temporizacin El formato de la palabra de configuracin es la siguiente. 7 6 5 4 3 2 1 0 TM2 TM1 IEB IEA PC PC PB PA PA<7:0> 0 - Entrada PB<7:0> 1 - Salida 00 - Entradas 11 - Salidas PC<5:0> 01 - Activa las interrupciones 10 Activa las interrupciones Habilita la interrupcin del PORTA Habilita la interrupcin del PORTB Comando del Temporizador En este programa solo se presenta el cdigo, dejando como tarea al estudiante la realizacin del algoritmo y diagrama de flujo. ---------------------------------------------------------------------------------------------------------------------------------------- ORG 0000H ; Direccin de inicio de programa MVI A,0Fh ; Carga palabra de control para OUT 00 ; configurar PORTA como salida LXI SP,00FFh ; Inicializa Stack Pointer MVI A,01h ; Dato para primer LED LED OUT 01 ; Encender LED CALL Tiempo ; Subrutina de retardo RAL ; Rotar un bit a la izquierda JMP LED ; Encender el siguiente LED ; --------------------------------------------------------------------------------------- ORG 0040h ; Direccin de inicio de subrutina Tiempo MVI B,60h ; Cargar contador externo Loop1 MVI C,0FFh ; Cargar contador interno Loop2 DCR C ; Decrementa contador interno JNZ Loop2 ; Nuevo ciclo interno DCR B ; Decrementa contador externo JNZ Loop1 ; Nuevo ciclo externo RET ; Regresa a programa principal ---------------------------------------------------------------------------------------------- En la siguiente la siguiente figura se muestra la conexin de un LED al PORTA del 8155. Fig. 1.53 Conexin de LEDs al PORTA Sistemas basados en microprocesadores Parte I Ing. Gerardo Collaguazo 45 3. Control del giro de un motor DC El giro de un motor DC va a ser controlado en funcin de la siguiente tabla de verdad. S1 S0 Operacin 0 0 Stop 0 1 Giro a la derecha 1 0 Giro a la izquierda 1 1 No se utiliza El programa, con sus respectivos comentarios, es el siguiente: ---------------------------------------------------------------------------------------------------------------------------------------- ORG 0000H ; Direccin de inicio de programa MVI A,02h ; Carga palabra de control para configurar OUT 00 ; PORTA como entrada y PORTB como salida LXI SP,00FFh ; Inicializa Stack Pointer MVI A,00h ; Empieza con el motor apagado OUT 02h MOTOR IN 01h ; Lee estado de interruptores ANI 03h ; Filtra bits no utilizados SUI 00h ; Si es cero JZ MOTOR IN 01h ; Lee estado de interruptores ANI 03h ; Filtra bits no utilizados SUI 01h ; Si no es uno JNZ MOTOR ; Verifica de nuevo los interruptores CALL MOTOR_DER ; Si es uno, gira motor a la derecha IN 01h ; Lee estado de interruptores ANI 03h ; Filtra bits no utilizados SUI 02h ; Si no es dos JNZ MOTOR ; verifica de nuevo los interruptores CALL MOTOR_IZQ ; Si es dos, gira motor a la izquierda JMP MOTOR ; Verifica por siempre estado de interruptores ; --------------------------------------------------------------------------------------- ORG 0040h ; Direccin de inicio de subrutina MVI A,01h ; Cargar dato OUT 02h ; y enviar al PORTB RET ; Regresa al programa principal ORG 0050h ; Direccin de inicio de subrutina MVI A,02h ; Cargar dato OUT 02h ; y enviar al PORTB RET ; Regresa al programa principal ---------------------------------------------------------------------------------------------- Fig. 1.54 Conexin de un motor DC Sistemas basados en microprocesadores Parte I Ing. Gerardo Collaguazo 46 AUTOEVALUACION 1. Qu integrados forman parte de las siguientes escalas de integracin: Baja escala de integracin (SSI), mediana escala de integracin (MSI), alta escala de integracin (LSI) y muy alta escala de integracin (VLSI). 2. Complete el siguiente cuadro comparativo de los mtodos de diseo digital, segn el ejemplo. CUADRO COMPARATIVO DE LOS METODOS DE DISEO DIGITAL CLASE DE DISEO METODOS DE DISEO PARAMETROS DE EVALUACION Con circuitos SSI (Especificar Qu elementos forman parte de esta escala de integracin?) Procesos sistemticos como el Algebra de Boole, los Mapas de Karnaught, Tablas de verdad, etc. Menor nmero de elementos. (Especificar cules elementos?) Con circuitos MSI Con circuitos LSI Con circuitos VLSI 3. Cules cree usted seran las ventajas de la utilizacin de los sistemas basados en microprocesadores frente a los sistemas electrnicos de lgica cableada? Explique cuatro de ellas. 4. Anotar cuatro aplicaciones de los microprocesadores en las siguientes ramas tecnolgicas: industria, medicina, telecomunicaciones, informtica, medicin y clculo, consumo domstico, comercio y banca. 5. Investigar el funcionamiento de una de las aplicaciones anotadas anteriormente en cada caso. 6. Busque en libros, revistas tcnicas nacionales o internacionales o en sitios de INTERNET, algn artculo sobre la evolucin y desarrollo de los microprocesadores y haga un resumen para presentarlo. Indique la fuente de consulta. 7. En los sitios de INTERNET, consulte el funcionamiento de un equipo de comunicaciones que utilice el microprocesador y haga un resumen para presentarlo. Indique la fuente de consulta. 8. En los sitios de INTERNET, consulte el funcionamiento de un equipo empleado en la automatizacin industrial que utilice los microprocesadores y haga un resumen para presentarlo. Indique la fuente de consulta. 9. De acuerdo a sus conocimientos, realice un diagrama de bloques de los componentes de un computador personal (PC). 10. Por qu, segn Ud., no se emplea una PC en los procesos industriales, debindose para ello disear dispositivos dedicados a la industria? 11. Defina los siguientes trminos especificando su funcin segn sea el caso: Unidad Aritmtica y Lgica (ALU), Unidad de Control, Memoria RAM, Unidad de Entrada/Salida, Perifrico (enumere 10 de ellos), Bus (indique los tipos y su funcin), Instruccin, Programa, Software, Hardware, Firmware, Unidad Central de Procesamiento (CPU). Sistemas basados en microprocesadores Parte I Ing. Gerardo Collaguazo 47 12. Indique la funcin de los registros siguientes: Contador de programa, Registro de trabajo o Acumulador, Registro de Instrucciones, Registro de estado, Registro Puntero de Pila (SP). 13. Cules son las caractersticas de una memoria? 14. En qu se diferencia un bus de datos y direcciones? 15. Qu parte de un sistema de microprocesadores se encarga se sincronizar el funcionamiento con los dems dispositivos y mediante que lneas lo hace? 16. Cuntas lneas forman el Bus de Direcciones y de qu depende este nmero? 17. Adems de la CPU qu circuitos integrados interviene en un sistema de microprocesadores? 18. Cules son las diferencias entre un PPI8155 y un PPI8255? 19. Qu es un ciclo de instruccin. Describa las fases que lo conforman en base a un ejemplo? 20. Cul es la diferencia entre un programa y un algoritmo? 21. Cules son las funciones de: la seal de RESET, del Oscilador, del integrado 8212? 22. Enumere las caractersticas tcnicas del microprocesador 8085A. 23. Investigue las caractersticas de los microprocesadores MC6800 y Z80 y realice un cuadro comparativo entre los tres microprocesadores. 24. Qu son los Mnemnicos y cmo se obtienen los cdigos de mquina con ayudas computacionales? 25. Qu son los modos de direccionamiento? Explique dos de ellos en base a un ejemplo. 26. Indique y explique los pasos a seguir para guardar datos en una memoria RAM. 27. Cules son las diferencias entre un microprocesador de Arquitectura Von Neumann y Harvard. 28. Qu elementos componen un sistema bsico de un microprocesador de 8 bits 8085A? 29. En funcin de que se clasifican las instrucciones de un microprocesador y cules son estos tipos? 30. Qu funcin realizan las lneas de control y de donde toman la informacin? Sistemas basados en microprocesadores Parte I Ing. Gerardo Collaguazo 48 BIBLIOGRAFIA 1. Luque Sacaluga David, Electrnica Digital y Microprogramable, Ed. Alfa-Omega, Mexico 2006. 2. Vallejo Horacio, Microprocesadores y Microcontroladores, Ed. Televisa SA, Mexico 2002. 3. Moga Mihai, Conducerea proceselor din Energetica cu Calculatoare de Proces, Ed. Miton, Timisoara 1999. 4. Moga Mihai, Sisteme cu Microprocesor Z80, Ed. Mirton, Timisoara 1998. 5. Enciclopedia Electrnica Digital y Microprocesadores, CEKIT 1999. 6. Kammerer y otros, Mdulos de la Microelectrnica, Curso de Electrnica III, Libro de Texto, GTZ, Munchen 1992. 7. Vallejo Horacio, Revista Saber Electrnica No. 126. 8. Vallejo Horacio, Revista Saber Electrnica No. 132. 9. Datasheets: CI8212, uP 8085A, 8155, PPI 8255A, RAM6116, EPROM2716, EEPROM2816. Direcciones de Internet. 1. www.monografias.com/trabajos32/microprocesador-8085/microprocesador-8085.shtml 2. www.alpertron.com.ar/8085.htm 3. http://www.iuma.ulpgc.es/~armas/asignaturas/fundamentos/tutorial/intel8085/ppframe.htm 4. http://www,webelectronica.com.ar/news05/news06.htm 5. www.geocities.com/hesovi/introduccionA|8085.pdf 6. www.mmtraining.com.ve/cursos/DanyCocchioni/Microprocesador.htm