Sistemas Con Microprocesadores - Cap1 [PDF]

  • 0 0 0
  • Gefällt Ihnen dieses papier und der download? Sie können Ihre eigene PDF-Datei in wenigen Minuten kostenlos online veröffentlichen! Anmelden
Datei wird geladen, bitte warten...
Zitiervorschau

Sistemas basados en microprocesadores

Parte I

CAPITULO 1

SISTEMAS BASADOS EN MICROPROCESADORES La ciencia es el arte del ensayo y el error, su producto más importante es la razón.... Los sistemas lógicos basados en transistores poseen las mismas ventajas que los circuitos electrónicos de estado sólido: son seguros, confiables, pequeños, rápidos y baratos. Desde el punto de vista del usuario industrial, su única falla es su difícil modificación con el cambio de aplicación. Hoy en día se ha popularizado un nuevo enfoque en la construcción de sistemas lógicos industriales. En este nuevo enfoque, la toma de decisiones del sistema se lleva a cabo por instrucciones codificadas las cuales están almacenadas en un circuito de memoria y ejecutadas por un microcroprocesador, por lo que, a la hora de cambiar de aplicación será suficiente cambiar las instrucciones codificadas, haciendo que estos sistemas sean más flexibles. PRE-REQUISITOS Para la comprensión adecuada del contenido de Microprocesadores, se requiere los conocimientos previos de:  Electrónica básica: semiconductores, transistores, elementos de visualización (LEDs, Displays, etc.).  Electrónica Digital: Sistemas de numeración, Circuitos Combinacionales y Secuenciales (Compuertas lógicas, Registros, etc.).  Sistemas Análogo-Digitales: Amplificadores operacionales, memorias.  Programación: Definiciones básicas, algoritmos y diagramas de flujo. OBJETIVOS Establecer los fundamentos necesarios para la comprensión 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 capítulo, el estudiante estará en capacidad de:  Realizar un análisis comparativo entre los controladores tradiciones y los sistemas basados en microprocesadores.  Describir correctamente la estructura física y funcional de un sistema basado en microprocesadores.  Identificar con criterio fundamentado las diferentes partes que constituyen los sistemas basados en microprocesadores.  Realizar un diseño correcto de un sistema básico basado en microprocesadores de 8 bits.  Utilizar las instrucciones de Lenguaje Ensamblador, en la programación de un sistema básico de microprocesador de 8 bits, orientado al control de periféricos de señal digital.

Ing. Gerardo Collaguazo

1

Sistemas basados en microprocesadores

Parte I

1.1 COMPONENTES DE BASE DE UN SISTEMA DE MICROPROCESADORES 1.1.1

INTRODUCCION

Con el avance tecnológico, los procesos de producción industriales han sufrido grandes cambios, por lo que quienes estamos involucrados con el tema, debemos estar permanentemente informados acerca de los nuevos productos, métodos de proceso, solución de fallas, sistemas, etc. En la actualidad, la automatización es un área que está en permanente contacto con nosotros, por esta razón, debemos estar preparados y conocer el funcionamiento de dichos sistemas. Evolución xxxx: Comunicaciones y controles con elementos mecánicos 1968: Se sustituyen los rel és con transistores 1973: Se incorpora el mP 1977: Aparecen mejoras en lenguaje de programación 1980: Aparecen los robots controlados por ordenador 1990: Aparece la comunicaci ón en red en el control de procesos 2000: Los PLC’s van de la mano con los microcontroladores

Año Fig.1.1 Evolución de los controladores industriales

Encontramos sistemas basados en microprocesadores en la mayoría de productos sean estos de uso doméstico (hornos de microondas, estéreos, reproductores de CD’s, etc.), industrial (automotriz, textil, plástica, etc.), equipos de comunicación, de oficina, instrumentos de laboratorio, etc., por tal razón, es muy importante que cualquier técnico en electrónica comprenda la manera de detectar los problemas en los microprocesadores.

Se dice que en la primera parte de la revolución industrial las máquinas reemplazaron los músculos, 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 eléctrico, uno de los inventos decisivos de la humanidad. Todos los sistemas tecnológicos modernos están compuestos por un método de movimiento y un sistema de control. El motor y el computador digital ocupan, en su orden, estos lugares. Un microprocesador es un circuito electrónico 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 función bien definida que ninguno podría hacerlo por sí solo; podríamos decir que un sistema basado en microprocesadores es un conjunto de componentes (circuitos electrónicos) interconectados capaces de efectuar sobre la información proveniente del proceso, representada en forma binaria, operaciones aritméticas y lógicas, y realizar la transferencia de datos con los diferentes periféricos conectados al sistema. Bajo este aspecto tenemos:

EQUIPO A CONTROLAR O PROCESO INDUSTRIAL

SENSORES O CAPTORES Informaciones del sistema

ACTUADORES

UNIDAD DE CONTROL

Elementos de programaci ón

Ordenes a ser ejecutadas

Informació n recibida

OPERADOR

Fig. 1.2 Sistema de control de procesos

 Periféricos de entrada (Sensores o Captores) son quienes reciben la información de cambios físicos del proceso. Están representados por los sensores captores de señal de tipo digital o analógico: pulsadores, interruptores, contactos eléctricos, CAD, etc. Ing. Gerardo Collaguazo

2

Sistemas basados en microprocesadores

Parte I

 La Unidad de control procesa la información recibida en base a un programa (secuencia lógica de instrucciones) y entrega los resultados para ser ejecutados.

 Periféricos de salida (Actuadores) que son los encargados de ejecutar las órdenes en función de los resultados de la Unidad de Control. Están representados por: solenoides, relés, contactores, display’s, CDA, etc. Existen dos soluciones para implementar un circuito digital que resuelva un determinado problema:

a. Lógica cableada: Son circuitos diseñados exclusivamente para realizar una aplicación concreta, es decir son muy rígidos, lo que significa que para una nueva aplicación se debe diseñar un nuevo circuito. b. Lógica programada: Es un concepto más amplio que dio lugar a las máquinas universales programadas. Se trata de máquinas potentes y flexibles capaces de realizar la mayoría de las funciones básicas necesarias para cualquier aplicación. Trabajan de forma secuencial ejecutando progresivamente las operaciones necesarias en base a un programa. CARACTERÍSTICAS DEL SISTEMA  Mantenimiento  Costo  Adaptación de procesos  Posibilidades de ampliación  Interconexión y cableado exterior  Estructuración en bloques independientes

CABLEADA Mucho Bajo Difícil Bajas Mucho Difícil

PROGRAMABLE Poco Alto Fácil Altas Poco Fácil

ANALISIS

PROBLEMA

PROGRAMADOR

PROGRAMA

SISTEMA mP

SOLUCION

El problema mayor que existe al realizar un sistema basado en microprocesadores, es aquel que se necesita personal experto para su diseño y mantenimiento.

CONOCIMIENTOS

DATOS DEL PROBLEMA

Fig. 1.3 Solución de un problema

Como se dijo anteriormente, un sistema basado en microprocesadores consta de una serie de elementos para la entrada, salida, procesamiento, control y almacenamiento de información. Los enlaces entre estos elementos se establecen a través de caminos de señal, por ejemplo cables, que llevan o transmiten información digital entre un punto y otro.

Unidad E/S

CPU o mP

UNIDADDE DE UNIDAD ENTRADA ENTRADA

UNIDADDE DE UNIDAD CONTROL CONTROL

MEMORIA MEMORIA RAM RAM

UNIDADDE DE UNIDAD SALIDA SALIDA

ALU ALU

MEMORIA MEMORIA ROM ROM

Unidad de memoria

Fig. 1.4 Estructura de un sistema de microprocesadores

Ing. Gerardo Collaguazo

3

Sistemas basados en microprocesadores

Parte I

La función principal de un sistema basado en microprocesadores consta en el procesamiento de información recogida del exterior por medio de los periféricos de entrada y la transmisión de los resultados sea directamente al proceso, sea al operador, por medio de los periféricos de salida conectados al sistema. El procesamiento de la información 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 comunicación entre el sistema y los periféricos se realiza por el conjunto de circuitos que constituyen el denominado Módulo de Entrada/Salida del sistema. En esta forma se distinguen tres partes fundamentales: UNIDAD CENTRAL DE PROCESAMIENTO (CPU), BLOQUE DE MEMORIA y el MÓDULO DE ENTRADA/SALIDA, interconectados entre ellos por intermedio de los BUSES. Como aplicación 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 práctico de conexión se muestra en la figura 5, mientras que el diagrama de bloques en la figura 6. ELEMENTO CALEFACTOR SEÑAL DE CONTROL SEÑAL DEL SENSOR

SISTEMADE DEmP mP SISTEMA e INTERFACES e INTERFACES

SEÑAL DE ALARMA

SEÑAL DE SEGURIDAD

HORNO ELECTRICO SE ÑAL DE REFERENCIA

SEÑAL DE ENERGIZACION

INT. DE SEGURIDAD

ON

0 6 5

ºC

OFF PANEL DE CONTROL

Fig. 1. 5 Esquema práctico de control de temperatura con microprocesador

SENSOR DE TEMP. SENSOR DE TEMP. (TERMISTOR, (TERMISTOR, TERMOCUPLA, TERMOCUPLA, RTD, etc) RTD, etc)

INTERFACE DE INTERFACE DE ENTRADA ENTRADA (CONVERTIDOR A/D) (CONVERTIDOR A/D)

INTERFACE DE INTERFACE DE ENTRADA ENTRADA (CONVERTIDOR A/D) (CONVERTIDOR A/D)

IN

IN

SISTEMA DE mP SISTEMA DE mP (CPU, RAM, ROM, E/S) (CPU, RAM, ROM, E/S) OUT

ELEMENTO ELEMENTO CALEFACTOR CALEFACTOR

INTERFACE DE INTERFACE DE SALIDA SALIDA (TRANSISTOR, (TRANSISTOR, RELE, TRIAC, etc) RELE, TRIAC, etc)

Fig. 1.6 Diagrama de bloques

SELECTOR DE TEMP SELECTOR DE TEMP (PERILLA GRADUADA (PERILLA GRADUADA EN ºC) EN º C)

La temperatura deseada se ajusta de la perilla que tiene una escala marcada en grados centígrados. Esta lectura se lleva a través 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 también, a través de una interface, la convierte en una señal digital equivalente a los grados leídos.

Este dato se almacena en una casilla o posición de memoria RAM. Estas dos operaciones están dirigidas por un programa que, generalmente para este tipo de sistemas, está almacenado o grabado en la memoria ROM.

Ing. Gerardo Collaguazo

4

Sistemas basados en microprocesadores

Parte I

Con estos dos datos se hace una operación lógica de comparación en la unidad Aritmético-Lógica de la CPU. De acuerdo a los resultados y las instrucciones del programa, la CPU envía una señal a la interface de salida que activa o desactiva un elemento calefactor o resistencia. Si la temperatura a controlar es más baja de lo deseado, se envía un alto (1 lógico) por una línea del bus de datos y se enciende la resistencia. Si la temperatura está más alta de lo deseado, se deja la resistencia sin funcionar enviando un bajo (0 lógico) por la misma línea 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 señales propias a todas las demás 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 también 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 razón, 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. Además, bajo esta condición, el microprocesador activa también una señal de alarma. Las señales proporcionadas por los distintos dispositivos de entrada se leen y se comprueban periódicamente. El programa almacenado en la memoria decide lo que debe hacerse en cada momento y la información 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 continuación las vamos a analizar. Bus de datos Bus de direcciones

CPU CPU

CLK

Bus de control

Bloque de memoria

RAM

ROM

Periféricos éricos de de Perif entrada entrada

Bloque E/S Entrada

Salida

Periféricos Periféricosde de salida salida

Fig. 1.7 Partes de un sistema de microprocesador

1.1.2.1

UNIDAD CENTRAL DE PROCESAMIENTO (CPU)

Es mejor conocida como procesador central y se encarga del procesamiento de la información proveniente del exterior. Este bloque contiene los circuitos lógicos, aritméticos y de control que dirigen y coordinan las operaciones del sistema y los dispositivos periféricos. En esta unidad se distinguen: la Unidad de Control, la Unidad Aritmético-lógica y el bloque de Registros internos. En la práctica, la CPU se encuentra en forma de un circuito integrado llamado MICROPROCESADOR.

Ing. Gerardo Collaguazo

5

Sistemas basados en microprocesadores

Parte I UNIDAD DE CONTROL UNIDAD DE CONTROL Ejecutaeeinterpreta interpretalas lasinstrucciones. instrucciones. Ejecuta Sincroniza el funcionamiento de Sincroniza el funcionamiento de todos los componentes del sistema todos los componentes del sistema

CPU o mP Procesa información binaria en base de un programa escrito en la memoria

UNIDADARITMETICO ARITMETICO-LOGICA -LOGICA UNIDAD Ejecutaoperaciones: operaciones: Ejecuta Aritméticas: ticas:+,+,-,-,complemento complementoaados. dos. Aritmé Lógicas: and, or, not, xor, comparación. Lógicas: and, or, not, xor, comparación. Ademá s: desplazamiento, rotaci ón y traslado Ademá s: desplazamiento, rotaci ón y traslado de información digital de informaci ón digital

BLOQUEDE DEREGISTROS REGISTROS BLOQUE Memoriaspara paraalmacenamiento almacenamientotemporal temporal Memorias dedatos datosnecesarios necesariospara paraeleldesarrollo desarrollode de de lasactividades actividadesdel delmP mP. . las

Fig. 1.8 Bloques de la CPU

 La Unidad de Control se encarga de la interpretación y ejecución de las instrucciones del programa. También genera las señales que son requeridas por la unidad Aritmética 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 señales son enviadas a través de las líneas llamadas buses. Esta contiene circuitos lógicos y de temporización que generan las señales adecuadas necesarias para ejecutar cada instrucción en un programa. Esta unidad extrae una instrucción de la memoria enviando una dirección y un comando de lectura a la unidad de memoria. La instrucción almacenada en la posición de memoria se transfiere a ella para después ejecutarse.  La Unidad Aritmético-lógica se encarga de realizar las operaciones lógicas y aritméticas usando como base la suma y la notación del complemento de dos. Estas operaciones (SUMA, RESTA, COMPLEMENTO DE DOS, AND, OR, NOT, XOR y la COMPARACIÓN) las realiza con datos de la memoria, con datos de los registros internos o con datos de la unidad de entrada. El tipo de operación que se realizará, se determina por medio de señales de la unidad de control.

REG. ESTADOS

SR SR

ACUMULADOR

AC AC

REGISTROS REGISTROS DEPROPOSITO PROPOSITO DE GENERAL GENERAL

CONTADOR DE PROG.

PC PC REG. INSTRUCCIONES

IR IR ALU ALU

BUSES INTERNOS

REGISTROINTERMEDIO INTERMEDIO REGISTRO DEDATOS DATOS DE BUS DE DATOS

LOGICADE DE LOGICA CONTROL CONTROL YY TEMPORIZACION TEMPORIZACION

REGISTRO REGISTROINTERMEDIO INTERMEDIO DE DEDIRECCIONES DIRECCIONES BUS DE DIRECCION

BUS DE CONTROL

BUS DEL SISTEMA HACIA LA MEMORIA PRINCIPAL Y DISPOSITIVOS DE E/S

Fig. 1.9 Estructura interna de la CPU

Ing. Gerardo Collaguazo

 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 operación y el resultado de la misma luego de haberla ejecutado. 6

Sistemas basados en microprocesadores

Parte I

Los registros tienen ciertas funciones específicas que cumplir dentro de la CPU, a saber:  Registro Contador de Programa (PC), es el que indica al microprocesador la dirección de memoria donde se está ejecutando el programa. Cada vez que se lee una instrucción, el PC se incrementa automáticamente para suministrar la dirección de la posición de memoria donde se encuentra la siguiente instrucción o dato del programa.  Registro de instrucciones (IR). Cada vez que el microprocesador capta una instrucción, esta se almacena en el registro IR, con el fin de proceder a su decodificación o interpretación y buscar en la ROM del microprograma el conjunto de microinstrucciones necesarios para su ejecución. Esta función 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 operación.  El Registro de estado (SR) suministra, a través de sus bits (llamados banderas (flags)), información relativa a la ejecución de ciertas instrucciones como signo, sobreflujo, paridad, generación de acarreo, resultado negativo o cero, etc. Mediante la verificación del estado de estas banderas se pueden realizar bifurcaciones en la secuencia del programa.  Registros de propósito general. Son utilizados para almacenar direcciones de memoria, datos, resultados intermedios y otros propósitos. El número y tipos de registros que posee un microprocesador es una parte muy importante en su arquitectura y su programación. A continuación, como ejemplo, se presentan la organización interna de un microprocesador de 8 bits (INTEL 8085A) y también su diagrama esquemático con sus respectivas señales.

Fig. 1.10 Organización interna del mP INTEL 8085A

Ing. Gerardo Collaguazo

7

Sistemas basados en microprocesadores

Parte I

8

2

BUS DE DIRECCIONES

ALIMENTACION

BUS DE DATOS/DIRECCIONES 2

RELOJ

5

CONTROL DE INTERRUPCIONES

CONTROL DE DIRRECCIONES SELECCIÓN DE LECTURA SELECCIÓN DE ESCRITURA HABILITACION DE M-I/O ESTADO DEL CICLO MAQUINA PETICION DE DMA CONFORMIDAD EN EL DMA PETICION DE ESPERA

PUERTA DE E / S SERIE

BUS DE CO NT RO L

M IC R OP R OC ES A D O R 8 08 5

PUESTA A CERO

Fig. 1.11 Diagrama esquemático del mP 8085A

1.1.2.2

BLOQUE DE MEMORIA

La memoria se emplea para dos funciones básicas:  Almacenamiento de las instrucciones que constituyen el programa. Las instrucciones se codifican mediante su Código de Operación (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). N-1 N-2

Nr. De bits 1 0

Fig. 1.12 La memoria

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 información. Una memoria tiene un número determinado de registros (posiciones) y de igual forma cada posición de memoria tiene un número determinado de bits. A cada registro o posición de memoria se le asigna un número llamado dirección de memoria. La operación de la memoria es controlada por la unidad de control, la cual indica una operación de lectura o escritura. Por medio de la Unidad de Control se puede acceder a una posición de memoria, la cual proporciona el código de dirección adecuado.

A continuación se detallan las principales características de la memoria de un sistema basado en microprocesadores:

 Longitud de la palabra de datos representa el número de bits a los cuales se pueden tener acceso en una sola

operación (de lectura o escritura), es decir el número de bits que pueden ser escritos o leídos en una posición de memoria.

 Capacidad de memoria representa el número 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 identificación directa de las posiciones de memoria, 1024, 256 y respectivamente 2048 ofrecidas por el circuito y el número de bits de cada posición, 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 posición de memoria y el momento en el cual la palabra de la posición seleccionada se Ing. Gerardo Collaguazo

8

Sistemas basados en microprocesadores

Parte I

encuentra en el bus de datos. Los valores del tiempo de acceso para los circuitos usuales, realizados en tecnología 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 alimentación con tensión 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.

MODULODE DEMEMORIA MEMORIA MODULO

MEMORIADE DEVALOR VALORFIJO FIJO MEMORIA (SOLOLECTURA) LECTURA) (SOLO

MEMORIA MEMORIALECTURA/ESCRITURA LECTURA/ESCRITURA (ACCESO (ACCESOALEATORIO) ALEATORIO)

RAM ESTATICAS RAM ESTATICAS (SRAM) (SRAM)

PROM PROM PROGRAMABLES PROGRAMABLES POR EL POR ELUSUARIO USUARIO

RAM DINAMICAS RAM DINAMICAS (DRAM) (DRAM)

PROM PROM

EPROM EPROM

OTP OTP

ROM ROM ALMACENAMIENTO PROGRAMABLES ALMACENAMIENTO PROGRAMABLES SECUNDARIO SECUNDARIO POR MASCARA POR MASCARA

EEPROM EEPROM

FLASH FLASH

Fig. 1.13 Tipos de memorias

Las Memorias RAM son de dos tipos: o

RAM ESTATICAS (SRAM) , cuyas características son:  Usa flip-flops.  Rápida.  Usa más espacio de silicio.  Consume mucha energía.  Generalmente celdas de 8 bits.

o

RAM DINAMICAS (DRAM), cuyas características son:  Usa capacitores.  Requiere refresco.  Usa menos espacio de silicio.  Consume menos energía.  Generalmente celdas de 1 bit.

Las Memorias de tipo ROM son: 1. ROM con máscara Es una memoria no volátil de sólo lectura cuyo contenido se graba durante la fabricación del chip. El elevado coste del diseño de la máscara sólo hace aconsejable el empleo de los microprocesadores con este tipo de memoria cuando se precisan cantidades superiores a varios miles de unidades.

Ing. Gerardo Collaguazo

9

Sistemas basados en microprocesadores

Parte I

2. OTP El microprocesador contiene una memoria no volátil de sólo 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 versión OTP es recomendable cuando es muy corto el ciclo de diseño del producto, o bien, en la construcción de prototipos y series muy pequeñas. Tanto en este tipo de memoria como en la EPROM, se suele usar la encriptación mediante fusibles para proteger el código contenido. 3. EPROM Los sistemas de microprocesadores que disponen de memoria EPROM (Erasable Programmable Read Only Memory) pueden borrarse y grabarse muchas veces. La grabación 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 cápsulas son de material cerámico y son más caros que los microcontroladores con memoria OTP que están hechos con material plástico. 4. EEPROM Se trata de memorias de sólo lectura, programables y borrables eléctricamente EEPROM (Electrical Erasable Programmable Read OnIy Memory). Tanto la programación como el borrado, se realizan eléctricamente desde el propio grabador y bajo el control programado de un PC. Es muy cómoda y rápida la operación 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 número de veces que puede grabarse y borrarse una memoria EEPROM es finito, por lo que no es recomendable una reprogramación continua. Son muy idóneos para la enseñanza y la Ingeniería de diseño. Se va extendiendo en los fabricantes la tendencia de incluir una pequeña zona de memoria EEPROM en los circuitos programables para guardar y modificar cómodamente una serie de parámetros que adecuan el dispositivo a las condiciones del entorno. Este tipo de memoria es relativamente lenta. 5. FLASH Se trata de una memoria no volátil, de bajo consumo, que se puede escribir y borrar. Funciona como una ROM y una RAM pero consume menos y es más pequeña. A diferencia de la ROM, la memoria FLASH es programable en el circuito. Es más rápida 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 volátil. Es más veloz y tolera más 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 automóvil permite que pueda modificarse el programa durante la rutina de mantenimiento periódico, compensando los desgastes y otros factores tales como la compresión, la instalación de nuevas piezas, etc. La reprogramación de la memoria puede convertirse en una labor rutinaria dentro de la puesta a punto.

Ing. Gerardo Collaguazo

10

Sistemas basados en microprocesadores

Parte I

Estas memorias son llamadas también de memorias de almacenamiento primario. Otro tipo de memorias son las de almacenamiento secundario que generalmente almacenan gran cantidad de información entre ellas podemos mencionar: discos duros, discos flexibles, discos ópticos, etc.

Las memorias son circuitos integrados que tienen las siguientes señales típicas:  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 activación o desactivación de la memoria.

Memoria de Datos (RAM) permite la escritura y la lectura, mediante WE y OE respectivamente, así como su selección mediante el CS, mientras que la Memoria de programa (ROM) permite solo la lectura y la habilitación, mediante OE y CS.

El acceso a la memoria se puede realizar en forma combinada, conforme se muestra en la figura 1.15:

Fig. 1.14 Señales de una memoria

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 lógico para que se seleccione cada una a su momento, se trabaja por la tabla de la verdad del and lógico. A continuación presentamos como ejemplos tres circuitos de memoria, a saber: RAM6116, EPROM 2716 y EEPROM2816.

Fig. 1.15 Acceso a la memoria de manera combinada

 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 estática de alta velocidad, fabricada con la tecnología CMOS, opera con una fuente de alimentación de +5.0V y está dispuesta en una pastilla de 24 terminales. Las principales características de esta memoria son:  Organización de la memoria: 2048 X 8  Alta velocidad: tiempo de acceso 150 nseg. Ing. Gerardo Collaguazo

11

Sistemas basados en microprocesadores

Parte I

 Baja potencia en estado inactivo: 10 uW  Baja potencia en estado activo: 160 mW  RAM completamente estática: No requiere reloj para su funcionamiento  Temperatura de operación: 0.75 grados centígrados  Temperatura de almacenamiento: De -55 a +125 grados centígrados.  Potencia de disipación: 1 Watts  Todas sus entradas y salidas son compatibles directamente con la tecnología TTL  Es directamente compatible con las memorias de 16K estándar, tipo RAM 6132 La descripción de las terminales se detalla a continuación:       

A0-A10: Líneas 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 alimentación +5.0 Volts GND Terminal de tierra 0.0 Volts

Fig. 1.16 Patillaje de la RAM6116

Siendo este circuito una memoria RAM puede entonces, realizar las operaciones de lectura y escritura.  OPERACIÓN DE LECTURA Un dato será leído del dispositivo de almacenamiento RAM 6116, mediante la aplicación 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 líneas de E/S y/o la pastilla 6116 se ponen en estado de alta impedancia, respectivamente. (#CS) posee la función de controlar la activación de la pastilla, la cual puede ser usada por un sistema con microprocesadores para la selección 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.  OPERACIÓN DE ESCRITURA Un dato es escrito en el dispositivo RAM 6116 mediante la aplicación 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 información, en estas condiciones la terminal (#OE) posee la opción de ser colocada en estado de alto bajo, para realizar así la operación de escritura. Nota: el símbolo # sustituye la raya superior de la señal y denota negación.

 MEMORIA EPROM 2716 La EPROM 2716 contiene características borrables y es eléctricamente reprogramable, es de alta velocidad y proporciona acceso a 16 Kbits de información, está diseñada para aplicaciones en donde son importantes los cambios rápidos en la tensión.

Ing. Gerardo Collaguazo

12

Sistemas basados en microprocesadores

Parte I

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 información aún después de estar borrada siguiendo los procedimientos de programación adecuados, esta EPROM 2716 está constituida con tecnología de alta densidad con compuertas CMOS de canal N. Las principales características son:  Tiempo de acceso menor que 250 nseg.  Bajo consumo de potencia     Disipación en estado activo: 525 mW máx.     Disipación en estado inactivo: 132 mW máx.     Fuente de alimentación de +5 Volts   Rango de temperatura de -40 hasta +85 grados centígrados  Características estáticas (no requiere refrescamiento por medio del reloj)  Entradas y salidas compatibles con la tecnología 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 Condición de programación  Vcc Voltaje de alimentación +5.0 Volts  Vss Terminal de tierra 0.0 Volts  Vpp Voltaje de programación  NC No conexión

Fig. 1.17 EPROM2716

 OPERACIÓN DE LECTURA Para leer la memoria se deben hacer las conexiones de las terminales que a continuación se especifican, la terminal Vpp se conecta a Vcc para inhibir con esto la programación, las entradas (#OE) y (#CE) se colocan a tierra y con estas simples conexiones se puede leer la memoria, los datos estarán sobre las terminales D1 - D7, la información 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 PROGRAMACIÓN 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 polarización de +5.0V (la alimentación). La terminal 21, voltaje de programación se conecta a un voltaje fijo de +25.0V, la memoria normalmente cuando no está grabada contiene "unos", por lo tanto en la operación de grabación se procede a depositar ceros.  PRECAUCIONES Excediendo de los 25 Volts en la terminal Vpp (pin 21) se dañará la EPROM 2716 y después todos los bits quedaran en el estado uno lógico.

Ing. Gerardo Collaguazo

13

Sistemas basados en microprocesadores

Parte I

La información debe ser introducida usando el modo de programación, depositando solamente ceros lógicos en la localidad seleccionada y con la combinación deseada, aunque ambos unos y ceros pueden ser presentados como datos de entrada en la palabra de información a grabar. La única manera de cambiar los ceros por los unos es borrando totalmente la memoria EPROM 2716 a través de una intensa luz ultravioleta. La EPROM 2716 está en la modalidad de programación cuando la fuente de alimentación de Vpp está en +25 Volts y (#OE) en estado lógico alto. Se requiere un capacitor de 0.1 uF dispuesto entre +Vcc y GND para suprimir los estados transitorios de tensión que puedan dañar al dispositivo EPROM 2716. La información debe ser programada en 8 bits en paralelo dispuestos en las terminales de salida del chip, los niveles deben ser compatibles con la tecnología TTL. Cuando la dirección y el programa son estables, se debe hacer presente el pulso activo de programación durante 45 mseg. Se puede programar cualquier localidad en cualquier tiempo en forma secuencial o con acceso aleatorio. El pulso de programación debe tener una duración máxima de 55 mseg. La EPROM 2716 no debe ser programada con una señal de CD en la terminal de programación (CE)'. Se pueden programar varias EPROM 2716 en paralelo con la misma información, debido a la simplicidad de los requerimientos de programación.

 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 alimentación de + 5 Volts, con tiempos similares a los de una RAM estática en modo de lectura, tiene dos modos de programación una de +5 Volts y otra de alto voltaje. El modo de programación de +5 Volts se inicia con un pulso de escritura con una transición alto/bajo de nivel TTL con una duración de 200 nseg, el circuito automáticamente borra el byte seleccionado antes de escribir otro dato nuevo, se completa un ciclo de borrado/escritura en un tiempo máximo de 10 mseg, el tiempo de acceso a lectura es de 250 nseg, todas sus salidas son compatibles con la tecnología TTL. Las características de esta memoria son:  Organización de la memoria 2048 X8  Tipo de funcionamiento; chip estático  Tiempos de acceso a lectura; 250 nseg.  Capacidad de corrección para un solo bit  Tiempo de escritura max, 10 mseg.     Compatible con la arquitectura de microprocesadores  Potencia de disipación a) Estado activo; 610 mW b) Estado inactivo: 295 mW A continuación se describen las terminales de la memoria:  A0 - A10 Líneas de direcciones    E/S0 E/S7 Entrada y salida de datos  #CE Habilitador del chip Ing. Gerardo Collaguazo

Fig. 1.18 EEPROM2816

14

Sistemas basados en microprocesadores

Parte I

 #OE Habilitador de las salidas  Vpp Voltaje de programación  Vcc + 5 Volts  Vss 0.0 Volts tierra.

 OPERACIÓN DE LECTURA Un dato es leído de la memoria EEPROM 2816 mediante la aplicación de un nivel alto en Vpp, (voltaje de programación conectada a Vcc), un nivel bajo en (#CE) y un nivel bajo en (#OE), con estas condiciones se obtiene información de terminales E/S estarán en estado de alta impedancia siempre y cuando (#OE) y/o (#CE) están en un nivel alto. La función de la terminal (#CE) es la de poder controlar la activación del chip, puede ser usado por un sistema con microprocesadores para la selección 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 están disponibles después de un tiempo de retardo de la terminal (#OE).  OPERACIÓN DE ESCRITURA (modo de programación de + 5 Volts) El ciclo de escritura es iniciado por la aplicación de un nivel bajo en Vpp, 200 nseg, mientras que (#OE) debe estar en estado alto y (#CE) en estado bajo, la dirección es doblemente almacenada a la caída y a la salida de Vpp, una vez realizado esto la arquitectura interna de la memoria borrara automáticamente 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; permanecerán en estado de alta impedancia durante un tiempo igual al de la operación del proceso de escritura, La EEPROM 2816 se escribe y se borra eléctricamente utilizando un voltaje de +5 Volts para grabar y leer, la condición de grabado es "borrado antes de escribir", esta memoria es del tipo ROM reprogramable, en caso de que se desconecte el circuito de alimentación de la energía la información no se pierde, se puede usar el modo de "stand by" para que la información no se borre. La 2816 se borra y se programa eléctricamente y no ópticamente como lo requieren normalmente las EPROMS, en estas, se borra la información 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 tecnología TTL en cuanto a sus equivalentes de niveles lógicos deseados como niveles de grabación, la programación debe durar mínimo 9 msg y un máximo de 15 mseg.  OPERACIÓN DE BORRADO Si se desean borrar todas las direcciones de la EEPROM 2816, el dispositivo ofrece una función 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 módulo de E/S) están interconectados entre ellos por cables eléctricos denominados buses del sistema. Un bus representa una reunión de líneas las cuales realizan la transferencia uni o bidireccional de la información. La presencia de un determinado bit (0 o 1) en una línea del bus está marcada de un determinado valor del potencial eléctrico en esa línea. Por ejemplo, un potencial entre 2.4-5V marca el bit “1” y un potencia 0-0.4V el bit “0”.

Ing. Gerardo Collaguazo

15

Sistemas basados en microprocesadores

BUS DE DATOS

MICROPROCESADOR

BUS DE DIRECCIONES

ENTRADAS DE CONTROL

BUS DE CONTROL

SALIDAS DE CONTROL

Parte I En función del tipo de información que se transporta por las líneas del bus, este puede ser: BUS DE DATOS, BUS DE DIRECCIONES Y BUS DE CONTROL. A continuación presentamos algunas características principales:

 Bus de datos está constituido por líneas FUENTE DE ALIMENTACION

Fig. 1.19 Buses de un sistema con microprocesador

bidireccionales. El número N de líneas 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 información binaria entre el microprocesador y los periféricos o entre el microprocesador y la memoria, o directamente entre el periférico 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 número de periféricos que se pueden conectar al microprocesador (por ejemplo para un microprocesador de 8 bits se conectarán 2 7 periféricos). Este bus es tri-state.

 Bus de direcciones está formado por líneas unidireccionales. Es utilizado para la transferencia de información necesaria para la selección de una determinada posición de memoria o de un puerto del módulo de E/S. Esta información representa la dirección de una posición de memoria o de un puerto de entrada o salida (del módulo de E/S), seleccionados para la realización 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 líneas, en general,

Un conjunto típico de señales de control disponible en la mayoría de microprocesadores disponibles, se muestran en la siguiente figura.

CLK OUT CLK IN RESET IN INTP IN HOLD

M IC R O P R O C E S A D O R

unidireccionales. En este bus cada línea tiene un significado y denominación distinta. El bus de control contiene la información que envía el microprocesador a los elementos del sistema o bien recibe de estos con el propósito de sincronizar su operación con la operación de la circuitería externa. El número de líneas del bus de control es variable y depende dl microprocesador particular utilizado.

RESET OUT INTP OUT HLDA WRITE READ

Fig. 1.20 Señales típicas de control

 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 módulos externos para sincronizar sus operaciones con las operaciones del microprocesador.  RESET IN (petición de reset) se usa para inicializar el microprocesador.  RESET OUT (petición de reset) informa a la circuitería externa que el microprocesador se encuentra en estado de reset.  INTERRUPT IN (petición de interrupción). Se utiliza para interrumpir la operación normal del microprocesador, obligándolo a suspender la ejecución del programa corriente y transferir el control a una subrutina. La señal de interrupción proviene generalmente de una unidad de E/S.  INTERRUPT OUT (reconocimiento de interrupción). Informa a la circuitería externa que la interrupción ha sido atendida. Una vez ejecutada la interrupción, el microprocesador retorna al programa previo.  HOLD (petición e bus). Se utiliza para suspender la operación del microprocesador y llevarlo a un estado llamado hold en el cual todos los buses quedan en alta impedancia.  HOLDA (garantía de bus). Informa que la petición de hold a terminado.  Las líneas READ y WRITE informan al componente seleccionado por el bus de direcciones la dirección de transferencia esperada en el bus de datos. Ing. Gerardo Collaguazo

16

Sistemas basados en microprocesadores

1.1.2.4

Parte I

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 mayoría de microprocesadores este reloj viene incorporado, pudiéndose 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 utilización de un cristal.

a. Cristal de cuarzo

b. Red RC (3MHz)

c. Reloj externo (1 a 6 MHz)

Fig. 1.21 Circuitos de reloj

El microprocesador puede ser fácilmente conectado o desconectado por hardware manejando adecuadamente su entrada de reset. Cuando esta línea recibe un bajo el microprocesador ingresa al estado de reset. Bajo esta condición, el contador de programa se carga con ceros y se borran los flip-flops habilitadores de interrupción y de reconocimiento de hold.

Al mismo tiempo, los buses de datos y direcciones se sitúan en el estado de alta impedancia. Debido a su naturaleza asíncrona, la señal de reset puede afectar el contenido de los registros internos de la CPU, incluido el de estados o banderas.

Fig. 1.22 Circuito de Reset

1.1.2.5

MODULO DE ENTRADA/SALIDA. TECNICAS DE INTERFACE

ENTRADA ENTRADA

mP mP ++ Memoria Memoria

ESTADO ESTADO SALIDA SALIDA

Fig. 1.23

Módulos de entrada/salida

Ing. Gerardo Collaguazo

PERIFERICOS PERIFERICOS

LED’s • •LED’s • DISPLAY’s • DISPLAY’s • ZUMBADORES • ZUMBADORES • INTERRUPTORES • INTERRUPTORES • SENSORES • SENSORES ANALOGICOS ANALOGICOS • TECLADOS • TECLADOS Etc. • •Etc.

Para que el sistema basado en microprocesadores pueda ser utilizado en forma efectiva, el sistema debe estar de un bloque de circuitos lógicos que permitan la introducción de datos, visualización de resultados y eventual la modificación del programa, es decir un dispositivo de comunicación con el operador, este bloque se denomina MODULO DE E/S y está destinado a asegurar la transferencia de información, representada en binario, entre el sistema y diversos periféricos conectados a éste (teclados, pulsadores, interruptores, contactos eléctricos, LEDs, ASS, CAD, CDA, etc.).

17

Sistemas basados en microprocesadores

Parte I

El módulo de E/S tiene una estructura diferente, en función de la aplicación del sistema basado en microprocesadores, lo cual implica la proyección de unos componentes de este módulo, en función de los periféricos que van a ser conectados. Un puerto puede definirse como un dispositivo a través del cual el microprocesador intercambia información con un dispositivo externo previamente seleccionado. En otras palabras un puerto E/S es un elemento de interconexión o interface entre un microprocesador y un periférico. Los puertos también se denominan adaptadores periféricos de interface. La estructura de un puerto puede ser extremadamente simple o altamente compleja, dependiendo de cada aplicación. 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 analizarán más adelante.

MICROPROCESADOR

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 conexión con los buses de datos y de control del mismo sistema cuando se selecciona un dispositivo periférico de E/S específico.  Interpretar órdenes. Generalmente, las órdenes enviadas por el microprocesador al BUS DE DATOS puerto E/S se reducen a señales de lectura y D0-D7 escritura. Estas señales pueden venir ya PS codificadas o necesitar una codificación CSO CS previa.  Adaptar físicamente el microprocesador a los requisitos del periférico. Esto incluye la PE utilización de manejadores (drivers) de líneas CS1 de transmisión, eliminadores de ruido, CS optoacopladores, conversores de formato serie a paralelo, conversores de señal, etc. 0 1 2 3  Temporizar la transferencia de información DECODIFICADOR con el fin de garantizar que el flujo de datos S1 S0 EN entre el microprocesador y el periférico ese A0 realice de una forma ordenada y eficiente. El direccionamiento de un puerto (activación de la línea CS o CE) se realiza a través del mismo bus de direcciones, sea por medio de un decodificador o un circuito lógico de selección (RLS).

A1 ALE

Fig. 1.24 Direccionamiento de un puerto

La generación de la señal de selección de un puerto por el decodificador o de la RLS, debe producirse solamente cuando en el bus de direcciones se pone una palabra binaria, específica de cada puerto, llamada dirección de puerto y de ha activado además la señal ALE, que marca el acceso al puerto de E/S. PUERTO DE SALIDA

MICROPROCESADOR

mP

D0

D

Q

D1-D7 A0 -A14

CLK

A15 WR

LINEA DE ESCRITURA LINEA DE SELECCION

Fig. 1.25 Puerto de salida con flip-flop

Ing. Gerardo Collaguazo

PERIFERICO

Veamos, como ejemplos, algunas realizaciones prácticas de puertos de E/S de algunos periféricos.  PUERTO DE SALIDA CON LED En la figura 1.25 se muestra un ejemplo sencillo de puerto de salida con flip-flop D, cuya función es transferir el estado del bit de datos D0 a un LED que actúa como dispositivo periférico. Esto sucede cuando la línea de dirección A15 es alta y la señal de escritura (WR) es baja. Después de habilitado, el flip-flop retiene la información previamente almacenada mientras el microprocesador se dedica a otras tareas. 18

Sistemas basados en microprocesadores

Parte I

 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 periférico es un interruptor y su estado (alto o bajo) se transfiere a la línea de datos D0 cuando la línea de direccionameinto A15 es alta y la línea de control de lectura (RD) es baja.

PERIFERICO PUERTO DE ENTRADA H D L

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.

Q

CLK

MICROPROCESADOR LINEA DE SELECCION

A15

D0

A0-A14

LINEA DE LECTURA

RD

D1 -D7

Fig. 1.26 Puerto de entrada con flip-flop

 PUERTO DE SALIDA CON REGISTRO DE DATOS MICROPROCESADOR

A0-A14

PUERTO DE SALIDA Q1 Q2 Q3 Q4 Q5 Q6 Q7 Q8

D0-D7

A15 WR

LINEA DE ESCRITURA

DISPOSITIVO PERIFERICO a b c d e f g dp

En la siguiente figura se muestra un puerto de salida con registro tipo latch. El circuito transfiere el patrón de 8 bits presente en el bus de datos al display periférico de siete segmentos cuando la línea de dirección A15 es alta y la línea de escritura (WR) es baja.

CS

LINEA DE SELECCION

LINEA DE HABILITACION

Fig. 1.27 Puerto de salida con registro tipo latch

Una forma más 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 características de estos circuitos especializados podemos mencionar:  Son fáciles de conectar con los buses del sistema puesto que disponen de líneas de adaptación directa con las salidas del respectivo microprocesador.  Son circuitos de E/S programables. Esta característica permite adaptarlos fácilmente a las condiciones de la circuitería externa utilizando únicamente comandos de programación.  Algunos módulos de E/S poseen cierta capacidad de decisión propia, independientemente del procesador. Esta circunstancia libera del microprocesador de la ejecución d ciertas tareas rutinarias y de control, las cuales delega en el dispositivo de interface. Por la función que realizan, los puertos de interface programables se pueden dividir en tres categorías: interfaces dedicadas, interfaces de propósito general e interfaces universales. Las interfaces dedicadas se especializan en una función específica, por ejemplo controlar interrupciones, temporizar eventos, controlar periféricos, etc. Como ejemplos podemos mencionar el controlador programable de interrupciones 8259, controlador programable de acceso directo de memoria (DMA) 8257, etc. Las interfaces de propósito general, como su nombre lo indica, son más universales y pueden adaptarse a una gran variedad de aplicaciones. Como ejemplos tenemos: el PPI 8255, controlador USART 8251. Ing. Gerardo Collaguazo

19

Sistemas basados en microprocesadores

Parte I

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 periféricos UPI 8741 de Intel. Dentro de los periféricos más empleados, podemos mencionar los de la siguiente tabla: TIPO

DISPOSITIVO

ENTRADA

Interruptores ON/OFF Teclados Sensores y transductores de entrada Visualizadores (Led, LCD, etc) Pantallas TRC Impresoras (láser, de jet de tinta, de impacto,etc) Motores eléctricos y actuadotes Terminales interactivos Memorias secundarias Unidades de disco magnético Enlaces de comunicaciones Líneas telefónicas

SALIDA

ENTRADA/SALIDA

De acuerdo a la velocidad de operación, los dispositivos de E/S se pueden agrupar en tres categorías: lentos, de velocidad media y de alta velocidad. Además según la señal que transmiten a los periféricos tenemos: digitales (todo o nada) y analógicos (sensores de temperatura, caudal, presión, etc.). Cada una de estas categorías presenta sus propias características de interface. PERIFERICOS LENTOS : Su estado cambia una vez por segundo y requieren varios milisegundos para estabilizarse en su nuevo estado. En esta categoría tenemos los displays luminosos, relés, microinterruptores, sensores de posición, contactos, botoneras, etc.

BUS DE DATOS

PUERTO DE SALIDA

0 IN D EMUX

CS SEÑAL DE SELECCION

CLK

S1

CONTADOR

S0

1 2 3

Fig. 1.28 Control de varios periféricos lentos de salida



SALID A DE DAT OS



La interface de estos dispositivos es relativamente fácil y necesitan muy pocas señales 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 periféricos lentos con un mismo puerto.

PERIFERICOS DE VELOCIDAD MEDIA: Son aquellos que transfieren datos desde 1bps a 10000 bps. Dentro de esta categoría se incluyen los teclados, impresoras normales, CAD, CDA, sistemas de adquisición de datos, etc. En este caso, el microprocesador no puede asumir que retienen datos por mucho tiempo o reciben información 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 también disponer de algún 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.

Ing. Gerardo Collaguazo

20

Sistemas basados en microprocesadores

Parte I

Uno de los procedimientos más comunes para interfazar microprocesadores con dispositivos de mediana velocidad en forma asincrónica 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 recepción del dato. •

PERIFERICOS DE ALTA VELOCIDAD: Son aquellos que transfieren datos a velocidades superiores a 10000 bps. Dentro de esta categoría se incluyen los Discos magnéticos y ópticos, impresoras láser, líneas de comunicación de alta velocidad, pantallas de video (TRC), etc. La interface de este tipo de periféricos requiere métodos especiales. La técnica más usual es utilizar un controlador de propósito 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 señales 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 información que debe transferir.

Fig. 1.29 Transmisión paralelo

En una comunicación en paralelo (fig. 29) todos los bits que configuran la palabra de datos se transmiten simultáneamente, por líneas separadas. En una comunicación serie (fig. 30) todos los bits de la palabra se transmiten en forma secuencial, uno tras otro, por una sola línea de datos. Los datos transferidos en serie se envían en grupos de bits que forman palabras o caracteres.

En ambos casos, además de las líneas de datos, se requiere el envío de una señal de reloj para sincronizar la transferencia. En una transmisión paralelo, la señal de reloj le indica al receptor cuando la palabra disponible en la líneas de datos es válida mientras que una transmisión serie le indica donde empieza y termina cada bit. La transmisión en paralelo es intrínsecamente más rápida que la transmisión 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 comunicación serie tiende a ser más económica. En general, la transmisión serie resulta apropiada en los siguientes casos:

LINEA DE DATOS

RECEPTOR

RELOJ

Un microprocesador puede comunicarse con un dispositivo periférico en paralelo o serie. Primariamente el bus de datos de un microprocesador está diseñado para transferir datos en paralelo. Sin embargo, existen situaciones donde es deseable, preferible o necesario transferir datos en serie.

TRANSMISOR

RECEPTOR

TRANSMISOR

LINEAS DE DATOS

RELOJ

Fig. 1.30 Transmisión serie

 Cuando el dispositivo de E/S hacia el cual ha de transferirse el dato es de naturaleza serie. Se incluyen en esta categoría los cartuchos de cinta magnética, los discos flexibles, los modems.  Cuando la distancia entre el microprocesador y el dispositivo periférico de E/S es relativamente grande, superior a 4 metros. En estos casos, resulta más económica la transmisión serie, a pesar de requerir de lógica de control y programación adicionales.

1.2

APLICACIÓN. DISEÑO DE UN SISTEMA BASICO CON UN MICROPROCESADOR DE 8 BITS

Como hemos podido comprobar hasta el momento, el microprocesador ofrece gran potencialidad en la realización y desarrollo de funciones y actuaciones de control en general. Sin embargo también habremos constatado que por sí mismo el microprocesador resulta inoperante, es decir, es preciso acompañarlo de los componentes necesarios para que pueda llevar a cabo la ejecución práctica de los programas que se diseñen.

Ing. Gerardo Collaguazo

21

Sistemas basados en microprocesadores

Parte I

Estos componentes asociados son de muy diversas características y todos y cada uno de ellos desempeñan 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 básica sobre la que posteriormente desarrollaremos diferentes programas. Los componentes asociados que necesitaremos, deberán resolvernos problemas lógicos, de control, de direccionamiento, de tratamiento de buses, de almacenamiento de datos, de comunicación 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 tratarán únicamente los elementos imprescindibles para nuestros propósitos, como decodificadores, memorias RAM, memorias EPROM, etc. Además, de forma sistemática y paulatina, se irá desarrollando la forma de acoplamiento de todos los elementos, para finalmente llegar a la construcción de nuestro sistema básico de trabajo.

1.2.1

TRATAMIENTO DE LOS BUSES

Como se ha visto en el tema anterior, una de las principales características que presenta el microprocesador 8085 es poseer un bus de datos (de 8 líneas) multiplexado con la parte baja del bus de direcciones. Este multiplexado quiere decir que en un instante determinado tendremos en las 8 líneas del bus la información perteneciente a una dirección y un instante más tarde tendremos en esas mismas líneas la información perteneciente a un dato. Corresponde por tanto a la circuitería externa, separar estas señales de modo apropiado, tal que no se produzcan interferencias por informaciones erróneas en el resto de los componentes del sistema. De esta forma se obtendrá una separación total entre el bus de datos (8 bits) y el bus de direcciones (16 bits).

Fig. 1.31 Tratamiento de buses

Como sabemos el microprocesador 8085 dispone de una línea de “control” o “sincronización” denominada ALE, por medio de la cual suministra un pulso de tensión de nivel lógico 1 cuando se presenta la parte baja de una dirección en el bus AD0,...,AD7 y cuando aparece un dato la señal ALE pasa al estado lógico 0. Deberemos por tanto emplear esta señal de control para separar estas informaciones utilizando un circuito integrado que actúe de cerrojo (latch) y realice la separación física. El esquema de principio responde a la Fig. 31.

Mientras ALE está a nivel lógico 1, la información presente en las entradas del cerrojo, procedente de las líneas 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 información 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 información presente en las líneas 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 más comúnmente empleados es el 74LS373 cuya constitución y funcionamiento pueden encontrarse en diversos textos. Ing. Gerardo Collaguazo

Fig. 1.32 Puerto 8212

22

Sistemas basados en microprocesadores

Parte I

Nosotros estudiaremos el circuito integrado 8212, fabricado por INTEL y que desarrolla esta función 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 triestado. También 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 periféricas y de entrada/salida del microprocesador. Se presenta en un encapsulado de 24 patillas que podemos ver representado en la Fig. 32. A continuación se describirá de forma concisa la función de todas las patillas de este componente:  DO0,... DO7. Son las 8 líneas de salida de datos que están conectadas a 8 buffers no inversores que pueden ser colocados en estado de alta impedancia.  DI0,... DI7. Son las 8 líneas 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 señal 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 conexión a masa, o tensión de referencia.  Vcc. Terminal de alimentación (+5V).  STB. Es la entrada Strobe o impulso de referencia se toma como clock para el latch de datos.  MD. Señal 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 selección de dispositivo. Con DS1=0 y DS2=1 el componente estará seleccionado.  CLR. Pone a cero el latch de datos. Nivel bajo activo  INT. Línea de salida para una interrupción. Nivel bajo activo.

STB

ALE

DO0

DI1 DI2

DO1 DO2

A1 A2

AD3

DI3

D03

A3

AD4 AD5

DI4 DI5

DO4 DO5

A4 A5

AD6 AD7

DI6 DI7

DO6 DO7

A6 A7

DS1

BUS DATOS

8212

DI0

AD1 AD2

MD

AD0

GND

8085

INT

BUS DIRECCIONES

CLR

Vcc

DS2

+5V

Fig. 1.33 Acoplamiento del mP8085 con el 8212

   

A0

Dentro de las posibles aplicaciones o modos de conexión del 8212 pueden mencionarse: su utilización como controlador para un bus bidireccional empleando para ello dos componentes en oposición; conexión 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 información adicional de este componente, como pueden ser sus diagramas de tiempos, características de conmutación, etc., debemos acudir a las hojas de características técnicas suministradas por los fabricantes. La conexión de este circuito integrado con el microprocesador 8085, se realiza de forma muy simple, según 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 líneas DI0, DI1, DI2, ..., DI7, a las líneas del microprocesador AD0, AD1, AD2, ..., AD7, respectivamente.

Realizada la conexión 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 líneas de direcciones A0, A1, A2, ..., A7 respectivamente.

Ing. Gerardo Collaguazo

23

Sistemas basados en microprocesadores

1.2.2

Parte I

DECODIFICACION DE DIRECCIONES

Debemos entender que la mayoría de los componentes que se emplean en los diseños con microprocesadores, necesitan ser conectados a los buses de datos y direcciones, por tanto deben poseer la característica de permitir dejar en estado de alta impedancia las líneas que se conecten a dichos buses. De este modo podremos conectar varios componentes al mismo conjunto de líneas 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, además de las líneas necesarias para conectarse a los buses, deben poseer algún 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 selección del componente. Por otro lado sabemos que el bus de direcciones sirve para seleccionar algún registro (o alguna dirección) determinado en un componente, por tanto tendremos dos tipos de selecciones simultáneas:  Se debe seleccionar el componente que contiene la dirección o registro al que necesitamos acceder.  Hay que indicar el registro o la dirección que deseamos dentro del componente.

Las líneas de dirección más bajas, son las que normalmente se emplean para apuntar a un registro determinado o a una dirección dada y las líneas de dirección más 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 líneas de lógica transistor-transistor que se presenta en un encapsulado de 16 patillas cuya distribución puede apreciarse en la Fig. 34. La función de cada una de sus líneas se describe a continuación:      

A0 A1 A2 E1 E2 E3 O7 GND

1 2 3 4 5 6 7 8

74LS138

Para llevar a cabo estos procesos emplearemos el “direccionamiento por decodificación”, aunque hay otros métodos posibles.

16 15 14 13 12 11 10 9

Vcc O0 O1 O2 O3 O4 O5 O6

Fig. 1.34 Registro latch 74LS138

A0, A1 y A2 son las señales de entrada en código binario. O0,..., O7 son las líneas de salida con nivel bajo activo. GND es el terminal de masa o tensión de referencia. Vcc es la patilla de alimentación (+5V). E3 es una señal de habilitación activa a nivel alto. E1 y E2 son señales de habilitación activas a nivel bajo.

A continuación se muestra la tabla de la verdad, a través de cuya observación y análisis puede apreciarse perfectamente la forma de actuar del decodificador. A2 A1 A0 0 0 0 0 0 1 0 1 0 0 1 1 1 0 0 1 0 1 1 1 0 1 1 1

Ing. Gerardo Collaguazo

O0 0 1 1 1 1 1 1 1

O1 1 0 1 1 1 1 1 1

O2 1 1 0 1 1 1 1 1

O3 1 1 1 0 1 1 1 1

O4 1 1 1 1 0 1 1 1

O5 1 1 1 1 1 0 1 1

O6 1 1 1 1 1 1 0 1

O7 1 1 1 1 1 1 1 0

24

Sistemas basados en microprocesadores

Parte I

En la Fig. 35 puede apreciarse el modo en que se puede conectar el decodificador al microprocesador 8085. +5V

Vcc

O6

CS6

A14

A2

O5

CS5

A13

A1

O4

A12

A0

CS4 CS3

O2

CS2

O1

CS1

O0

CS0

E2

E1

GND

8085

O3

4K7

CS7

E3

74LS138

O7

A15

Fig. 1.35 Conexión del mP con el decodificador

1.2.3

Como vemos se emplean la línea de dirección más 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 línea de dirección A15 también para seleccionar una memoria EPROM, puesto que al comenzar su ejecución el microprocesador arranca en la dirección 0000H en su contador de programa, por lo que tendremos un 0 en la línea A15 con la que podemos seleccionar una EPROM al tiempo que bloqueamos el 74LS138. Las otras dos líneas de control E1 y E2 se colocan a nivel bajo para dejar activo el decodificador. De todas formas es posible dar otra función a estas líneas de control en el diseño global del sistema. Las líneas de salida O0, O1, O2,..., O7 del decodificador quedarán disponibles para seleccionar los componentes deseados. En cada una de ellas, se colocará una resistencia a +5V para asegurar el nivel lógico 1, en las salidas no activas.

LA MEMORIA

Para un sistema electrónico diseñado 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 deberán disponer de un bus de datos (generalmente de 8 bits), un bus de direcciones cuyo número 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 fácil acceso y la posibilidad de situar los terminales del bus de datos en estado de alta impedancia. Dentro de las características más destacables de una memoria y esenciales para su valoración se encuentran los “tiempos de escritura y lectura”, el “tiempo de acceso”, los “tiempos de ciclo”, la “capacidad” (número de bits que pueden almacenarse en la memoria), etc. Todos estos datos, junto a otra serie de parámetros típicos pueden encontrarse en las hojas de especificaciones técnicas que suministran los fabricantes. Para trabajar con un microprocesador, se dispone básicamente 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 información deseada. Lo normal es almacenar en ellas los datos y valores que se van generando durante la ejecución del programa, la información que contienen es volátil, es decir puede perderse por un fallo en la alimentación. A continuación veremos un resumen de las distintas memorias de cada tipo:  Memoria RAM dinámica: Este tipo de memoria RAM se caracteriza por almacenar los bits que representan la información, en forma de cargas eléctricas, aprovechando la capacidad generada en un transistor MOS que constituye la “celda” elemental de información. Sin embargo esta carga así almacenada, se va perdiendo con el tiempo, llegando a desaparecer al cabo de unos ms, debido a fugas eléctricas. Es por tanto imprescindible con este tipo de memorias emplear “circuitos de refresco” cuya misión es leer la información que contiene la Ing. Gerardo Collaguazo

25

Sistemas basados en microprocesadores

Parte I

memoria y volver a guardarla exactamente igual a intervalos de tiempo próximos a 1 o 2 ms. Hay microprocesadores que incluyen un sistema de refresco para trabajar con este tipo de memorias, en caso contrario sería preciso diseñar uno. Las RAM dinámicas poseen gran capacidad de memoria y son muy económicas, suelen emplearse en sistemas que requieren mucha memoria.  Memoria RAM estática: Es la memoria que emplearemos nosotros en nuestro sistema. Esta constituida a partir de elementos flip-flop que configuran las celdillas de información, es decir, cada celdilla o flip-flop representa un bit. Su contenido permanece estable (a diferencia de las dinámicas) hasta que eliminemos la tensión de alimentación, momento en que perdemos toda la información almacenada. Si deseamos retener la información de la RAM, no tendremos más alternativa, que diseñar un sistema de alimentación auxiliar (con baterías por ejemplo) que sustituya a la tensión principal cuando desaparezca. Existen RAM estáticas de diferente ancho de palabra, en nuestro caso solo trataremos la RAM de 8 bits.

La descripción 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 tensión de referencia. Patilla Vcc. Es el terminal de alimentación (+5V). Patilla CS. Entrada de selección de componente. Patilla OE. Entrada de lectura. Patilla WE. Entrada de escritura.

A7 A6 A5 A4 A3 A2 A1 A0 D0 D1 D2 GND

1 2 3 4 5 6 7 8 9 10 11 12

RAM 6116

Disponemos en el mercado de una amplia variedad de componentes RAM entre los que es posible elegir para diseñar 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 tecnología "CMOS" de bajo consumo con una capacidad de 16384 bits, es decir, 2 Kbytes para lectura/escritura. 24 23 22 21 20 19 18 17 16 15 14 13

Vcc A8 A9 WE OE A10 CS D7 D6 D5 D4 D3

(Recuerde que las señales marcadas en negrita tienen nivel activo BAJO). Fig. 1.36 Memoria RAM 6116 E3

O7

A14 A13 A12 A11 A10

A2 A1 A0

O6 O5 O4 O3 O2

A9 A8

O1 O0

+5V

CS

74LS138

WR RD

AD7 AD6 AD5 AD4 AD3 AD2 AD1 AD0

WE OE

8212

8085

A10 A9 A8

Vcc GND

Para llevar a cabo la interconexión 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: -

RAM 6116

A15

A7 A6 A5 A4

D7 D6 D5 D4

A3 A2 A1 A0

D3 D2 D1 D0

-

-

Fig. 1.37 Conexión de la RAM al microprocesador

Ing. Gerardo Collaguazo

Las líneas de dirección A0, A1, A2, ..., A7 son conectadas a las salidas DO0, DO1, DO2, ..., DO7 del 8212. Las líneas de dirección A8, A9 y A10, se conectan a las líneas 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 líneas 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 alimentación de +5V. La línea CS, de selección de chip, es conectada a una de las salidas del decodificador de direcciones 74LS138.

26

Sistemas basados en microprocesadores -

Parte I

El terminal WE se conecta a la señal WR del microprocesador. La patilla OE se conecta a la salida RD del 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 aún en ausencia de la tensión de alimentación. 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 producción y no es preciso introducir modificaciones en los programas.  Memoria PROM: Tiene características similares a la anterior, con una distribución de terminales idéntica, por lo que pueden reemplazarlas. Las PROM se compran “vacías” o “limpias”, es decir, sin información alguna y es el usuario quien mediante un “programador” adecuado, les carga el programa. Las celdillas de información poseen dispositivos “fusibles” que según permanezcan intactos o fundidos, representarán los dos posibles estados de información (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 también 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 cápsula que contiene la memoria en sí. Si hacemos incidir radiaciones ultravioletas sobre dicha ventana conseguimos eliminar la información existente en la memoria, quedando la EPROM dispuesta para ser grabada de nuevo. Este proceso puede repetirse en muchas ocasiones. Son más caras que las anteriores y sus terminales no son totalmente compatibles.

28 27 26 25 24 23 22 21 20 19 18 17 16 15

Vcc A14 A13 A8 A9 A11 CS A10 OE D7 D6 D5 D4 D3

A continuación se describe la función de sus terminales: - Patillas A0,... A14. Representan el bus de direcciones. - Patillas D0,... D7. Representan el bus de datos. - Patilla GND. Representa la tensión de referencia o masa. - Patilla Vcc. Tensión de alimentación. - Patilla Vpp. Entrada de programación. - Patilla CS. Terminal de selección de chip. - Patilla OE. Terminal que habilita las salidas. A15 A14 A13 A12

Fig. 1.38 Memoria EPROM

Para llevar a cabo la interconexión entre esta EPROM y el microprocesador, no tendremos más que conectar de forma adecuada las líneas correspondientes de los buses de datos y direcciones, según se muestra en la Fig. 39. Hay que destacar que al disponer esta memoria de 15 líneas de direcciones, emplearemos las líneas A0,... A14 del microprocesador para direccionar todas las posiciones disponibles de la EPROM, efectuando la selección de chip con la línea de direcciones A15 de forma directa y empleándola al mismo tiempo para bloquear el decodificador 74LS138. También debemos conectar la señal RD del microprocesador a la entrada OE de la memoria para efectuar la lectura de datos. Ing. Gerardo Collaguazo

+5V

A11 A10 A9 A8

Vcc

A15

Vpp

A14 A13 A12

8085

A11 A10 A9 A8 OE

RD

EPROM 27256

1 2 3 4 5 6 7 8 9 10 11 12 13 14

AD7 AD6 AD5

A7 A6 A5

D7 D6 D5

AD4 AD3

A4 A3

D4 D3

AD2 AD1

A2 A1

D2 D1

AD0

A0

8212

Vpp A12 A7 A6 A5 A4 A3 A2 A1 A0 D0 D1 D2 GND

EPRO M 27256

Nosotros emplearemos la EPROM 27256, que posee una capacidad de 32 Kbytes de memoria, es decir, 262144 bits. Su distribución de patillas puede verse en la Fig. 38.

D0 GND

Fig. 1.39 Conexión de la EPROM al microprocesador

27

Sistemas basados en microprocesadores

Parte I

El terminal Vpp (de entrada de programación) debemos conectarlo a +5V, durante su estado de funcionamiento normal. Si deseamos añadir más 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 tecnologías de fabricación y los continuos avances en la investigación, hacen que el campo de las memorias esté evolucionando constantemente, consiguiéndose componentes con mayores capacidades de almacenamiento, velocidades de acceso mayores y costes más reducidos. Al mismo tiempo se trabaja sobre otros tipos de memorias intentando mejorar determinadas características. Podemos mencionar: -

1.2.4

Las memorias EAROM, que almacenan la información de forma permanente, pero pueden ser leídas y escritas electrónicamente (aunque los tiempos de escritura son muy superiores a los de lectura). Las memorias de “burbujas” que se caracterizan por poseer una densidad elevadísima de almacenamiento aunque son lentas y caras. Las memorias PLA o de matriz lógica programable. Se emplean para decodificar o codificar señales lógicas.

DISEÑO DEL SISTEMA BASICO

Apoyándonos ahora en todo lo visto hasta el momento, podemos realizar nuestro diseño de sistema, para llevar a cabo operaciones básicas 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 cómo la conexión 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 idéntico modo de conexión en todas sus líneas a excepción de las líneas de selección de chip, que en este caso serán las CS0, CS1, y CS2 procedentes del decodificador 74LS138. En lo que se refiere a la conexión del 8212, vemos que nada varía respecto a lo expuesto en la Fig. 33, únicamente mencionar la colocación de una resistencia de 4K7 a +5V en la señal ALE al objeto de reafirmar los niveles de tensión en esta salida del microprocesador. Este mismo sistema se emplea en la parte alta del bus de direcciones en el que se sitúa un bloque de 8 resistencias de 10k cada una conectadas a +5V. El decodificador de direcciones 74LS138, sigue el mismo esquema de conexión que el mostrado en la Fig. 35. Ahora además 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.

Ing. Gerardo Collaguazo

28

Sistemas basados en microprocesadores

Parte I

Fig. 1.40 Sistema básico con mP 8085A

Puede verse con claridad cómo 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 oscilación que produce la frecuencia de reloj a la que funcionará el sistema. Es decir, se genera la “frecuencia de trabajo”.

Ing. Gerardo Collaguazo

29

Sistemas basados en microprocesadores

Parte I

Destacamos además el circuito situado en la señal de entrada RESET IN del microprocesador (patilla 36) formado por una resistencia de 1K en paralelo con un diodo y un condensador electrolítico de 1 uF. Este circuito es el que asegura un arranque correcto del sistema en el momento de conexión a red iniciándose el contador de programa en la dirección 0000H, después de que la patilla 36 haya alcanzado el nivel lógico 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 señales 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 señal y mediante puentes fácilmente eliminables de modo que si en un momento dado, para una determinada aplicación deseamos emplear alguna de ellas, podamos hacerlo sin más que eliminar el puente a masa correspondiente y tratando dicha entrada del modo adecuado. Además deben colocarse distribuidos sobre la tarjeta condensadores de desacoplo. Lo más usual es situar uno por cada circuito integrado y deberán ir soldados mediante conexiones cortas y a ser posible directamente sobre las patillas de alimentación de los circuitos integrados. Este es un medio eficaz y sencillo para impedir la creación de señales parásitas de alta frecuencia que son derivadas a masa a través del condensador. Normalmente estos condensadores son de 100 nF. Puede apreciarse también cómo la tarjeta dispone, para su conexión a otros circuitos, de cuatro conectores:  CON1: Constituido por 16 líneas en las cuales podemos encontrar el bus de direcciones completo (A0, A1, A2,..., A15).  CON2: Constituido por 8 líneas en las que podemos encontrar el bus de datos completo (D0, D1, ..., D7).  CON3: Constituido por un total de 24 líneas entre las que encontramos el bus de control, el bloque completo de señales de interrupción (que podremos utilizar desde el exterior eliminando previamente los puentes a masa) y las señales de selección de chip que se toman del decodificador 74LS138.  CON4: Constituido por nueve líneas divididas en dos grupos que sirven para suministrar la alimentación a la tarjeta (+5V y MASA). Realizadas todas estas consideraciones, no queda más 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 apoyándonos en los valores que adquieren las entradas A0, A1, A2 y E3 del decodificador, se tendrá la siguiente distribución de direcciones: EPROM 27256 RAM 6116-1 RAM 6116-2 RAM 6116-3

Desde 0000H hasta 7FFFH Desde 8000H hasta 87FFH Desde 9000H hasta 97FFH Desde A000h hasta A7FFH

Al mismo tiempo, los terminales del decodificador 74LS138 que quedan libres para añadir nuevos elementos al sistema, responderán a las siguientes direcciones: CS3 CS4 CS5 CS6 CS7

1.2.5

B000H C000H D000H E000H F000H

INTERCONEXION DEL 8155 CON EL MICROPROCESADOR 8085

Es claro, por todo lo estudiado hasta el momento, que el 8155 es un periférico programable cuya estructura permite su utilización directa con el microprocesador 8085. Ing. Gerardo Collaguazo

30

Sistemas basados en microprocesadores

Parte I

El 8155 dispone de ciertas características que hacen posible su conexión al microprocesador de dos formas claramente diferenciadas que veremos a continuación:  POSIBILIDAD 1 Dada la estructura del 8155, no tendremos más 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 alimentación (Vcc) a la masa y alimentación del microprocesador (+5V). Es conveniente colocar un condensador a masa de 100 nF en el terminal de alimentación.

-

Conectar las señales 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 (selección 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 señal de control IO/M de idéntica denominación del microprocesador.

-

Finalmente dispondremos de 22 líneas para comunicarse con el exterior que forman los tres puertos de entrada/salida del 8155 y de una línea 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 conexión. No nos queda ahora más 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 selección 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 combinación es obligatoria. Por tener conectada la señal 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 automáticamente coloca un 1 lógico en la señal IO/M) el operando PORT representa el puerto seleccionado. Tendremos por tanto que situar en los bits de dirección más bajos (A0, A1 y A2) los códigos correspondientes a los puertos A, B, C y el código correspondiente del registro de estado, según 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 instrucción OUT B1H, sacaríamos hacia el exterior el contenido del acumulador, y en el bus de direcciones tendríamos el valor B1B1H. De modo similar con la instrucción IN B3H, cargaríamos un dato del exterior en el acumulador y tendríamos en el bus de direcciones el valor B3B3H.

Ing. Gerardo Collaguazo

31

Sistemas basados en microprocesadores +5V

PC0 PC1 PC2 PUERTO C PC3 PC4 PC5 D0 AD0 D1 AD1 D2 AD2 BUS D3 AD3 8085 D4 AD4 D5 AD5 D6 AD6 D7 AD7 ALE ALE WR WR RD RD IO/M IO/M CS4 CS CLK TIMER IN OUT

37 38 39 1 2 5 12 13 14 15 16 17 18 19 11 10 9 7 8 3

Parte I

100 nF 40

20

8155

21 22 23

PA0 PA1 PA2

24 27 25 26 28 29 30 31 32 33 34 35 36

PA3 PA4 PA5 PA6 PA7 PB0 PB1 PB2 PB3 PB4 PB5 PB6 PB7

6 4

PUERTO A

PUERTO B

TIMER OUT RESET

RESET OUT

15pF

Fig. 1.41 Puerto programable paralelo 8155

Por tanto en nuestro caso, para acceder a los puertos y registro de estado del 8155 tendríamos que colocar como valor de PORT: Puerto A Puerto B Puerto C Timer Low Timer High Registro de estado

PORT = C1H PORT = C2H PORT = C3H PORT = C4H PORT = C5H 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, según sea el caso, seguidas de la dirección de memoria a la que deseemos acceder, que en el caso que estamos tratando, serán 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 señal IO/M del 8155 no se conecta a la equivalente IO/M del microprocesador, sino que se controla mediante una línea del bus de direcciones. Nosotros elegiremos este método y conectaremos a dicha señal la línea de direcciones A10 (podríamos 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 utilizarán instrucciones como STA o bien LDA seguidas de la dirección correspondiente.

Ing. Gerardo Collaguazo

32

Sistemas basados en microprocesadores

Parte I

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. Además hay que colocar en la parte baja (A0, A1, A2) el código correspondiente al elemento que deseemos utilizar. Y finalmente, tendremos que colocar la línea de direcciones A10 a nivel lógico 1 para acceder a los puertos y registro de estado y a nivel lógico 0 para tener acceso a las posiciones de memoria RAM interna. Por tanto las direcciones a considerar en nuestro caso serán: Puerto A Puerto B Puerto C Timer Low Timer High Registro de estado C/E RAM 8155

C401H C402H C403H C404H C405H C400H C000H hasta C0FFH

En la Fig. 42 puede verse la representación esquemática de esta conexión, que será la que finalmente utilizaremos en nuestro sistema. +5V

PUERTO C

PC0 PC1 PC2 PC3

37 38 39 1

PC4 PC5 AD0 AD1 AD2 AD3

2 5 12 13 14 15

D0 D1 D2 BUS D3 8085 D4 AD4 AD5 D5 AD6 D6 D7 AD7 ALE ALE WR WR RD RD A10 IO/M CS CS4 CLK TIMER IN OUT

16 17 18 19 11 10 9 7 8 3

100 nF 40

20

8155

21 22 23 24

PA0 PA1 PA2 PA3

27 25 26

PA4 PA5 PA6

28 29 30

PA7 PB0 PB1

31 32

PB2 PB3

33 34 35

PB4 PB5 PB6

36

PB7

6 4

PUERTO A

PUERTO B

TIMER OUT RESET

RESET OUT

15pF

Fig. 1.42 Posibilidad 2 de conexión 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. Ing. Gerardo Collaguazo

33

Sistemas basados en microprocesadores

Parte I

Un programa está constituido por un conjunto ordenado de instrucciones, que constituyen el cuerpo principal del programa y uno o más bloques de datos iniciales necesarios para una correcta ejecución. El proceso básico de ejecución de un programa requiere por parte del microprocesador, la repetición de los siguientes pasos: 1. Construir la dirección de la posición de memoria donde se encuentra la instrucción y situarla en el bus de direcciones. Esta función, como se mencionó anteriormente, la realiza el contador de programa. 2. Leer la instrucción por medio de una orden de lectura enviada a través del bus de control. En respuesta, la posición de memoria direccionada transmite el código de la instrucción al bus de datos. Esta información se almacena en el registro de instrucciones. 3. Decodificar la instrucción para determinar en la ROM del microprograma la secuencia de microinstrucciones necesarias para llevarlas a cabo. Esta función la realiza el decodificador de instrucciones del microprocesador. 4. Leer, si la instrucción así lo exige, cualquier dato almacenado en una posición de memoria o traerlo desde un puerto de entrada. 5. Ejecutar las operaciones especificadas por la instrucción. Esta función la realizan la ALU, el Acumulador y demás registros asociados a la unidad de ejecución. 6. Almacenar, si al instrucción así lo exige, los resultados en una determinada posición de memoria o llevarlos a un puerto de salida. Todas estas acciones están sincronizadas por la señal de reloj del sistema y constituyen lo que se denomina ciclo de instrucción, 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 instrucción del programa.  Interpretar la instrucción leída.  Ejecutar dicha instrucción. Debemos considerar además que los microprocesadores trabajan solamente con lenguaje de bajo nivel, es decir, trabajan con lenguaje máquina. Cada microprocesador o familia de microprocesadores, posee su propio lenguaje máquina que determina las capacidades propias de cada familia. Las instrucciones máquina son almacenadas en la memoria en forma de bytes, es decir, en forma de unos y ceros empleando por tanto el sistema binario de numeración. 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 representación de datos. Para construir los programas, normalmente se emplean lenguajes de alto nivel, y luego se transforman los programas así escritos a lenguaje máquina asequible para el microprocesador. No obstante en nuestro caso emplearemos un lenguaje de bajo nivel (ensamblador) que trabaja con abreviaturas alfabéticas denominadas mnemónicos 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

CPU CPU

MEMORIADE DE MEMORIA PROGRAMA PROGRAMA DATOS YYDATOS

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 través de un único sistema de buses único. La única ventaja que posee es que simplifica la lógica del sistema. Las limitaciones de esta arquitectura tradicional son:

Fig. 1.43 Arquitectura Von Neumann

Ing. Gerardo Collaguazo

 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. 34

Sistemas basados en microprocesadores

Parte I

 La velocidad de operación 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 simultánea a la memoria de datos y a la de instrucciones, consiguiendo que las instrucciones se ejecuten en menos ciclos de reloj.

MEMORIA MEMORIADE DE PROGRAMA PROGRAMA (ROM) (ROM)

CPU CPU

MEMORIADE DE MEMORIA DATOS DATOS (RAM) (RAM)

Fig. 1.44 Arquitectura Harvard

Se puede concluir que las principales ventajas de la arquitectura Harvard son:  El tamaño de las instrucciones no está relacionado con el de los datos y, por lo tanto, puede ser optimizado para que cualquier instrucción ocupe una sola posición 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 operación.

1.3.2.2 PROCESADOR SEGMENTADO O PIPELINE Un procesador Segmentado o Pipeline realiza simultáneamente la ejecución de la instrucción y la búsqueda del código de la siguiente, de esta manera, se puede ejecutar una instrucción en un solo ciclo máquina. Este sistema acompañado de una estructura Harvard, permite que las instrucciones se ejecuten en un solo ciclo máquina, salvo en el caso de saltos de programa. CICLO MAQUINA

OSC

PC

PC+1

BUSQUEDA INST (PC) EJECUTA INST (PC -1)

BUSQUEDA INST (PC+1) EJECUTA INST (PC)

Fig. 1.45 Ciclo máquina en un procesador segmentado

1.3.2.3 PROCESADOR SEGÚN EL NUMERO DE INSTRUCCIONES Las CPU’s atendiendo al tipo de instrucciones que utilizan pueden clasificarse fundamentalmente en:

Ing. Gerardo Collaguazo

35

Sistemas basados en microprocesadores

Parte I

 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 máquina. 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 específico para cada aplicación. Están destinadas a aplicaciones muy concretas.

1.3.2.4 ARQUITECTURA DEL PROCESADOR SEGÚN EL FORMATO DE LAS INSTRUCCIONES

MEMORIA MEMORIA DE DEDATOS DATOS

ALU

MEMORIA MEMORIA DEDATOS DATOS DE

W W

ALU

ACUMULADOR ACUMULADOR

Fig. 1.46 Arquitectura Tradicional

En un procesador con Arquitectura Ortogonal una instrucción 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.

Fig. 1.47 Arquitectura Ortogonal

La principal diferencia entre ambos radica en la ubicación del registro de trabajo procesadores tradicionales todas las operaciones se realizan sobre el Acumulador. La conectada a una de las entradas de la ALU y, por lo tanto, este es siempre uno de los dos instrucción. La salida de la ALU va solamente a la entrada del Acumulador, el resultado siempre quedará en este registro.

(Acumulador). En los salida del mismo esta operandos de cualquier de cualquier operación

En la estructura Ortogonal la salida de la ALU va al registro de trabajo y también 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 instrucción que opere con la memoria, puede dejarse en la misma posición de memoria o en el registro de trabajo.

1.3.3

LENGUAJES DE PROGRAMACION. EL ENSAMBLADOR

Los lenguajes de programación se pueden dividir grosso modo, en las siguientes jerarquías:  Lenguajes de microprogramación.  Lenguajes de máquina.  Lenguajes ensambladores.  Lenguajes de alto nivel. El Lenguaje de microprogramación 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 Ing. Gerardo Collaguazo

36

Sistemas basados en microprocesadores

Parte I

instrucciones en lenguaje máquina recibidas por el microprocesador y es el responsable de generar las microinstrucciones necesarias para ejecutar correctamente cada instrucción. El Lenguaje Máquina, es la forma binaria (0’s y 1’s) del programa y es el único lenguaje que, en última instancia entiende el microprocesador. Una forma simplificada es el código objeto, el cual representa cada código 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 más fáciles de entender por la personas que las instrucciones en lenguaje máquina o código objeto. El Lenguaje Ensamblador utiliza Nemónicos que son grupos de caracteres alfanuméricos que simbolizan las órdenes o tareas a realizar con cada instrucción. De manera general, los nemónicos se corresponden con las iniciales del nombre de la instrucción en inglés, d forma que “recuerdan” la operación que realiza la instrucción, lo que facilita su memorización. Para ser comprendidas las instrucciones escritas en otro lenguaje, estas deben ser convertidas a lenguaje de máquina por medio de un programa llamado traductor o compilador.

CODIGO FUENTE

TRADUCTOR

CODIGO FUENTE

PROGRAMA EN ENSAMBLADOR, BASIC, etc.

ENSAMBLADOR, COMPILADOR, INTERPRETE, etc

PROGRAMA EN LENGUAJE DE MAQUINA

Fig. 1.48

Conversión de Lenguaje Ensamblador a Lenguaje de máquina

El código fuente está compuesto por una sucesión de líneas de programa. Todos los ficheros fuente poseen una estructura similar independientemente del procesador utilizado. Cada línea de programa suele estar compuesta de 4 campos separados por uno o más espacios o tabulaciones. Estos campos son: 1. Campo de las etiquetas 2. Campo del código de operación 3. Campo de operandos y datos 4. Campo de comentarios. ETIQUETA SUM1: SUM2: RESUL:

OP-CODE ORG EQU EQU EQU MVI MVI ADD STA HLT

OPERANDOS 0000H 08H 07H 0020H A,SUM1 B,SUM2 B RESUL

COMENTARIOS ;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 posición RESUL ;Stop

El primer campo corresponde a la etiqueta. Como se mencionó anteriormente, es un nemónico alfanumérico de 5 o 6 caracteres (siendo el primero una letra) para referirse a direcciones que son específicamente conocidas. Normalmente, una etiqueta termina en dos puntos (:) para separarla de los otros campos. El segundo campo corresponde al nemónico del op-code de la instrucción a ser ejecutada. Cada procesador tiene su propio conjunto de códigos nemónicos para designar cada una de las instrucciones a las que responde.

Ing. Gerardo Collaguazo

37

Sistemas basados en microprocesadores

Parte I

El tercer campo corresponde a los operandos o parámetros requeridos por la instrucción. Contiene, separados por comas (,), las designaciones de los registros y/o los datos o direcciones sobre los cuales actúa 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 instrucción o grupos de instrucciones desde el punto de vista de la aplicación. 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 Básicamente puede decirse que el bloque de instrucciones debe ser completo y eficaz de modo que podamos realizar todos los cálculos necesarios de la forma más rápida y precisa posible. Una de las principales características 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. Aritméticas: Son las instrucciones que realizan operaciones de tipo aritmético 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 dirección de memoria (origen), en otro registro o dirección de memoria (destino), sin alterar el contenido del origen. 3. Instrucciones lógicas: Realizan operaciones lógicas entre los operandos. Afectan a los flags según sea el caso y las operaciones se realizan bit a bit entre los datos. 4. Instrucciones de comparación: 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 modificación de secuencia que alteran la ejecución normal del programa, cargando el contador de programa con la nueva dirección en la que deseamos continúe ejecutándose el programa. Los saltos o bifurcaciones pueden ser:  Condicionales: Cuando son controlados por el estado de un indicador o flag, y basándose en dicho estado se decide si se salta o no.  Incondicionales: Cuando modifican el contador de programa sin condición previa. Dentro de cada uno de estos tipos, podemos encontrar además 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 periféricos que permiten la comunicación del microprocesador con el exterior. 7. Instrucciones de control: Sirven para actuar internamente sobre el microprocesador, provocando detenciones en la ejecución 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). Ing. Gerardo Collaguazo

38

Sistemas basados en microprocesadores

Parte I

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 algún registro o en la propia instrucción. Los diferentes modos de direccionamiento que pueda emplear un microprocesador le proporcionan un determinado nivel de potencialidad, permitiéndole 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 instrucción, es decir, a continuación del código de la instrucción se añade el operando propiamente dicho. Las instrucciones que emplean este direccionamiento pueden ser de dos o tres bytes y son instrucciones de ejecución rápida y sencilla. 2. Direccionamiento implícito: Las instrucciones que emplean este modo de direccionamiento tienen un solo byte y es la propia instrucción la que indica qué registro o dirección de memoria se va a utilizar en la operación. 3. Direccionamiento absoluto: En este caso las instrucciones incluyen la dirección 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 instrucción apunta a un registro que contiene la información deseada (direccionamiento también llamado de registro). b. La instrucción contiene la dirección completa en la que se encuentra el dato, empleando para ello tres bytes. c. Cuando la instrucción se refiere solo a una parte de la memoria (página). En este caso el byte más alto lo suministra el contador de programa y el byte más bajo se expresa a continuación del código de instrucción, por tanto solo se emplean dos bytes (Este direccionamiento también se llama de página base). 4. Direccionamiento directo relativo: La instrucción en este caso contiene un valor determinado al que podemos llamar V. La dirección total se calcula sumando a V el valor que esté almacenado en un registro al que haga referencia la instrucción. El valor de V puede ser tanto positivo como negativo. 5. Direccionamiento indirecto: La instrucción contiene una dirección a la que llamaremos D1. El contenido de D1 no es el objeto directo de nuestra instrucción, sino que contiene otra dirección que llamaremos D2. Esta nueva dirección D2 es la que contiene el dato que sí es objeto de la instrucción. Expresados ya los modos de direccionamiento con carácter 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 instrucción contiene la dirección exacta y completa donde se encuentra el dato. Por ejemplo: LHLD

A716H

 Direccionamiento por Registro. La instrucción lleva el registro en el que está el dato que va a ser tratado. Por ejemplo: MOV MOV

Ing. Gerardo Collaguazo

A,B B,C

39

Sistemas basados en microprocesadores

Parte I

 Direccionamiento por Registro Indirecto. En la instrucción se especifica un registro cuyo contenido apunta a una dirección de memoria en la que se encuentra el dato. Por ejemplo: MOV

A,M

M es una referencia simbólica a una dirección de memoria apuntada o señalada por el par de registros HL.  Direccionamiento Inmediato. La instrucción 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 prácticas vamos a utilizar el entrenador del microprocesador 8085A del laboratorio, que tiene el siguiente diagrama de bloques.

Fig. 49 Diagrama de bloques del Entrenador uP8085A

Para realizar los programas en Lenguaje Ensamblador, se recomienda construir:  El algoritmo.  Diagrama de flujo.  Escribir los mnemónicos de las instrucciones. 1. Empleo de las instrucciones básicas a) Mayor de dos números: Leer un número de una dirección 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 dirección de memoria, por tanto se trata de un byte que contiene el Dato buscado. Se supone que buscamos un número positivo (no dicen nada en contra). Y además añadimos que la dirección de memoria en la que se encuentra el Dato, la tenemos en el registro par HL. Ing. Gerardo Collaguazo

40

Sistemas basados en microprocesadores

Parte I

Además, podemos intuir que se trata de una toma de decisión sencilla ya que establece una acción a ejecutar si se cumple una condición determinada y en caso contrario debe hacer nada debe ejecutar otra acción. De esta forma el algoritmo sería de la siguiente manera: NOMBRE: MENOR12 FUNCION: Leer dato memoria y almacenarlo en B (>12) o en C PRECONDICIONES: HL = Dirección 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 continuación se muestra el diagrama de flujo correspondiente a este pseudocódigo, donde se puede comprobar el desarrollo del programa.

Fig. 1.50 Diagrama de flujo

---------------------------------------------------------------------------------------------1 ;-----------------------------------------2 ;NOMBRE : MENOR12 3 ;FUNCION : Si Dato>12 va a B si no va a C 4 ;PRECONDICION : HL=Dirección 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 dígitos. Con este ejercicio se llevará a cabo la suma de dos números decimales de varias cifras. Puesto que no nos dicen nada en el enunciado, supondremos que se trata de números de ocho cifras. Los números a sumar (los sumandos) se encuentran almacenados en la memoria RAM expresados según 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 número se necesitarán cuatro bytes por número. La dirección donde se encuentra almacenado el primer byte del primer sumando, vendrá dada por SUM1 y el resto en direcciones consecutivas. La dirección del primer byte del segundo sumando, estará dada por SUM2 y el resto en direcciones consecutivas. El resultado de la operación 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 número. Para realizar este proceso, es preciso iniciar un Contador que nos permita establecer el final del bucle.

Ing. Gerardo Collaguazo

41

Sistemas basados en microprocesadores

Parte I

El pseudocódigo propuesto es el siguiente: NOMBRE: SUMA FUNCION: Suma dos números 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 pseudocódigo y en él puede apreciarse el Fig. 1.51 Diagrama de flujo desarrollo o flujo de las órdenes a ejecutar por la computadora o sistema. ---------------------------------------------------------------------------------------------1 ;-----------------------------------------2 ;NOMBRE : SUMA 3 ;FUNCION : Suma dos núm 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 -------------------------------------------------------------------------------------------

Ing. Gerardo Collaguazo

42

Sistemas basados en microprocesadores

Parte I

c) Subrutina: Retardo

En este caso nos piden desarrollar una subrutina o un programa de temporización. No se nos indica cuánto tiempo se debe permanecer en este estado, por lo que será una característica que impondremos nosotros. Tampoco se dice nada acerca de qué debe hacer el microprocesador durante ese tiempo. El programa básicamente consistirá en desarrollar un bucle o ciclo que se repita durante un tiempo, o un determinado número 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 señale el final del bucle y por tanto el final del tiempo de espera. Según las condiciones expresadas, tendremos el siguiente pseudocódigo: 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

Fig. 1.52 Diagrama de flujo

En la Fig. 1.52 se muestra el diagrama de flujo. ---------------------------------------------------------------------------------------------1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20

;-----------------------------------------;NOMBRE : TEMPORIZ ;FUNCION : Realiza un tiempo de espera ;PRECONDICION : Contador=CONTA ;POSTCONDICION : Ninguna ;-----------------------------------------0000 0000 0001 0002 0003 0004 0005 0006 0007 000A 000B

F5 1B 7A B3 00 00 00 C2 01 00 F1 C9

000C

TEMPORIZ: PUSH PSW SALT1 DCX D MOV A,D ORA E NOP NOP NOP JNZ SALT1 POP PSW RET END

------------------------------------------------------------------------------------------------------------------------------------Para el llamado de la subrutina se emplea la instrucción 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 configuración 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.

Ing. Gerardo Collaguazo

43

Sistemas basados en microprocesadores

A7 x x x x x x

A6 x x x x x x

DIRECCIONES I/O A5 A4 A3 A2 x x x 0 x x x 0 x x x 0 x x x 0 x x x 1 x x x 1

Parte I

A1 0 0 1 1 0 0

A0 0 1 0 1 0 1

SELECCIÓN x – puede ser 0 o 1 Registro de Comandos/Estados PORTA. Propósito general E/S PORTB. Propósito general E/S PORTC. Propósito general E/S o control Registro inferior de temporización Registro superior de temporización

El formato de la palabra de configuración es la siguiente. 7 6 5 4 TM2 TM1 IEB IEA

3 PC

2 PC

1 PB

0 PA PA PB PC

0 - Entrada 1 - Salida 00 - Entradas 11 - Salidas 01 - Activa las interrupciones 10 – Activa las interrupciones

Habilita la interrupción del PORTA Habilita la interrupción del PORTB Comando del Temporizador En este programa solo se presenta el código, dejando como tarea al estudiante la realización del algoritmo y diagrama de flujo. ---------------------------------------------------------------------------------------------------------------------------------------ORG 0000H ; Dirección 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 ; Dirección de inicio de subrutina MVI B,60h ; Cargar contador externo MVI C,0FFh ; Cargar contador interno 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 ---------------------------------------------------------------------------------------------Tiempo Loop1 Loop2

En la siguiente la siguiente figura se muestra la conexión de un LED al PORTA del 8155.

Fig. 1.53 Conexión de LEDs al PORTA

Ing. Gerardo Collaguazo

44

Sistemas basados en microprocesadores

Parte I

3. Control del giro de un motor DC El giro de un motor DC va a ser controlado en función de la siguiente tabla de verdad. S1 0 0 1 1

S0 0 1 0 1

Operación Stop Giro a la derecha Giro a la izquierda No se utiliza

El programa, con sus respectivos comentarios, es el siguiente: ----------------------------------------------------------------------------------------------------------------------------------------

MOTOR

ORG MVI OUT LXI MVI OUT

0000H A,02h 00 SP,00FFh A,00h 02h

; ; ; ; ;

Dirección de inicio de programa Carga palabra de control para configurar PORTA como entrada y PORTB como salida Inicializa Stack Pointer Empieza con el motor apagado

IN ANI SUI JZ

01h 03h 00h MOTOR

; Lee estado de interruptores ; Filtra bits no utilizados ; Si es cero

IN ANI SUI JNZ CALL

01h 03h 01h MOTOR MOTOR_DER

; ; ; ; ;

Lee estado de interruptores Filtra bits no utilizados Si no es uno Verifica de nuevo los interruptores Si es uno, gira motor a la derecha

IN ANI SUI JNZ CALL

01h 03h 02h MOTOR MOTOR_IZQ

; ; ; ; ;

Lee estado de interruptores Filtra bits no utilizados Si no es dos verifica de nuevo los interruptores Si es dos, gira motor a la izquierda

JMP

MOTOR

; Verifica por siempre estado de interruptores

; --------------------------------------------------------------------------------------ORG MVI OUT RET

0040h A,01h 02h

; ; ; ;

Dirección de inicio de subrutina Cargar dato y enviar al PORTB Regresa al programa principal

ORG MVI OUT RET

0050h A,02h 02h

; ; ; ;

Dirección de inicio de subrutina Cargar dato y enviar al PORTB Regresa al programa principal

----------------------------------------------------------------------------------------------

Fig. 1.54 Conexión de un motor DC

Ing. Gerardo Collaguazo

45

Sistemas basados en microprocesadores

Parte I

AUTOEVALUACION 1. ¿Qué integrados forman parte de las siguientes escalas de integración: Baja escala de integración (SSI), mediana escala de integración (MSI), alta escala de integración (LSI) y muy alta escala de integración (VLSI). 2. Complete el siguiente cuadro comparativo de los métodos de diseño digital, según el ejemplo. CUADRO COMPARATIVO DE LOS METODOS DE DISEÑO DIGITAL CLASE DE DISEÑO

METODOS DE DISEÑO

PARAMETROS DE EVALUACION

Con circuitos SSI

Procesos sistemáticos como el Algebra de Boole, los Mapas de Karnaught, Tablas de verdad, etc.

Menor número de elementos. (Especificar ¿cuáles elementos?)

(Especificar ¿Qué elementos forman parte de esta escala de integración?) Con circuitos MSI Con circuitos LSI Con circuitos VLSI

3. ¿Cuáles cree usted serían las ventajas de la utilización de los sistemas basados en microprocesadores frente a los sistemas electrónicos de lógica cableada? Explique cuatro de ellas. 4. Anotar cuatro aplicaciones de los microprocesadores en las siguientes ramas tecnológicas: industria, medicina, telecomunicaciones, informática, medición y cálculo, consumo doméstico, comercio y banca. 5. Investigar el funcionamiento de una de las aplicaciones anotadas anteriormente en cada caso. 6. Busque en libros, revistas técnicas nacionales o internacionales o en sitios de INTERNET, algún artículo sobre la evolución 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 automatización 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é, según Ud., no se emplea una PC en los procesos industriales, debiéndose para ello diseñar dispositivos dedicados a la industria? 11. Defina los siguientes términos especificando su función según sea el caso: Unidad Aritmética y Lógica (ALU), Unidad de Control, Memoria RAM, Unidad de Entrada/Salida, Periférico (enumere 10 de ellos), Bus (indique los tipos y su función), Instrucción, Programa, Software, Hardware, Firmware, Unidad Central de Procesamiento (CPU).

Ing. Gerardo Collaguazo

46

Sistemas basados en microprocesadores

Parte I

12. Indique la función de los registros siguientes: Contador de programa, Registro de trabajo o Acumulador, Registro de Instrucciones, Registro de estado, Registro Puntero de Pila (SP). 13. ¿Cuáles son las características 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 demás dispositivos y mediante que líneas lo hace? 16. ¿Cuántas líneas forman el Bus de Direcciones y de qué depende este número? 17. Además de la CPU ¿qué circuitos integrados interviene en un sistema de microprocesadores? 18. ¿Cuáles son las diferencias entre un PPI8155 y un PPI8255? 19. ¿Qué es un ciclo de instrucción. Describa las fases que lo conforman en base a un ejemplo? 20. ¿Cuál es la diferencia entre un programa y un algoritmo? 21. ¿Cuáles son las funciones de: la señal de RESET, del Oscilador, del integrado 8212? 22. Enumere las características técnicas del microprocesador 8085A. 23. Investigue las características de los microprocesadores MC6800 y Z80 y realice un cuadro comparativo entre los tres microprocesadores. 24. ¿Qué son los Mnemónicos y cómo se obtienen los códigos de máquina 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. ¿Cuáles son las diferencias entre un microprocesador de Arquitectura Von Neumann y Harvard. 28. ¿Qué elementos componen un sistema básico de un microprocesador de 8 bits 8085A? 29. ¿En función de que se clasifican las instrucciones de un microprocesador y cuáles son estos tipos? 30. ¿Qué función realizan las líneas de control y de donde toman la información?

Ing. Gerardo Collaguazo

47

Sistemas basados en microprocesadores

Parte I

BIBLIOGRAFIA 1. Luque Sacaluga David, Electrónica 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 Electrónica Digital y Microprocesadores, CEKIT 1999. 6. Kammerer y otros, Módulos de la Microelectrónica, Curso de Electrónica III, Libro de Texto, GTZ, Munchen 1992. 7. Vallejo Horacio, Revista Saber Electrónica No. 126. 8. Vallejo Horacio, Revista Saber Electrónica No. 132. 9. Datasheets: CI8212, uP 8085A, 8155, PPI 8255A, RAM6116, EPROM2716, EEPROM2816.

1. 2. 3. 4. 5. 6.

Direcciones de Internet. www.monografias.com/trabajos32/microprocesador-8085/microprocesador-8085.shtml www.alpertron.com.ar/8085.htm http://www.iuma.ulpgc.es/~armas/asignaturas/fundamentos/tutorial/intel8085/ppframe.htm http://www,webelectronica.com.ar/news05/news06.htm www.geocities.com/hesovi/introduccionA|8085.pdf www.mmtraining.com.ve/cursos/DanyCocchioni/Microprocesador.htm

Ing. Gerardo Collaguazo

48