Vous êtes sur la page 1sur 7

1

Direccionamiento de memorias y perifricos


Pablo Esteban Andrade Rea, pandrader@est.ups.edu.ec Mario Esteban Ochoa Guaraca, mochoagua@est.ups.edu.ec Juan Diego Orellana Calle, jorellanac@est.ups.edu.ec

ResumenEn el presente documento se realiza el direccionamiento de memorias tanto de programa como de datos ademas de los perifricos planteados, para poder realizarlo es necesario tener un conocimiento teorico acerca del tema por lo que se realiza breves descripciones de los conceptos y elementos utilizados para cumplir los objetivos; se realiza los respectivos calculos de direccionamientos basados en consideraciones de diseo con el n de optimizar los circuitos, estas consideraciones se encuentran detalladas con el n de que se pueda entender de mejor manera, a continuacin se presenta el mapeo de direcciones, a partir de ello se realiza el circuito de reset automtico, as como tambin todos los circuitos necesario ya sea el de reloj como el de reset manual, y por ultimo se presenta un esquema general de todo el sistema microprocesado.

2. I. I NTRODUCCIN 3. 4. 5. Una direccin de memoria es un identicador para una localizacin de memoria con la cual un programa informtico o un dispositivo de hardware pueden almacenar un dato para su posterior reutilizacin. Una forma comn de describir la memoria principal de un sistema microprocesado es como una coleccin de celdas que almacenan datos e instrucciones. Cada celda est identicada unvocamente por un nmero o direccin de memoria. Para poder acceder a una ubicacin especca de la memoria, la CPU genera seales en el bus de direccin. II. II-A. Generales O BJETIVOS

Registros 74LS373 o equivalente Intel Buffers 74LS244 74LS245 o equivalentes Intel Controladores de perifricos necesarios para Mando de 8 leds Mando de 4 pulsantes y 4 switches Mando de 4 displays 7 segmentos de nodo comn Mando de 1 motor unipolar a pasos (inversin giro) Mando de 1 motor cd con puente H (inversin giro) Comunicacin serial Clculo detallado del direccionamiento y capacidad de memorias y/ perifricos, as como especicaciones de cada dispositivo. Diseo del circuito decodicador de direcciones para las memorias y los perifricos descritos anteriormente. Diseo, clculos, consideraciones, conclusiones e informe del proyecto en formato paper. Enviar en una sola carpeta comprimida con el apellido de los 3 integrantes, todos los documentos utilizados, como: a) Paper b) Circuitos-Diseos-Planos c) Datasheets d) Referencias-Textos-Web e) Simulaciones, etc. III. M ARCO T ERICO

Disear sistemas microprocesados de forma general/especca. Disear - calcula el direccionamiento y capacidad de memorias y/ perifricos conocido el tamao del bus de direcciones. Disear la circuitera de reset del microprocesador Disear el sistema embebido detallando cada uno de los componentes II-B. Especcos

Se realiza una breve revisin de los conceptos mas importantes de los conceptos utilizados en el desarrollo de la tarea, de igual manera en cuanto a los dispositivos, si se requiere mayor detalle puede remitirse a las hojas de datos que se presentan adjuntas. III-A. Microprocesador 8086

1. Realizar un sistema microprocesado que contenga los siguientes: Microprocesador 8086 (Bus de direcciones de 20 lneas y Bus de datos de 16 lneas) Memoria de programa conformada por 4x27256 (Memorias EPROM) Memoria de datos conformada por: 8x4464 (Memoria DRAM) + 4x62128 (Memorias SRAM) Circuitos decodicadores de direcciones Generador de reloj Circuito de reset automtico/manual

El Intel 8086 llamados ocialmente iAPX 86 fue uno de los primeros microprocesadores de 16 bits diseados por Intel. Fueron el inicio y los primeros miembros de la arquitectura x86, actualmente usada en la mayora de los computadores. El trabajo de desarrollo para el 8086 comenz en la primavera de 1976 y el chip fue introducido al mercado en el verano de 1978. El 8088 fue lanzado en 1979. El 8086 y el 8088 ejecutan el mismo conjunto de instrucciones[1]. El 8086 tiene una cola de 6 bytes para instrucciones. Exteriormente se diferencian en que el 8086 tiene un bus de datos de 16 bits[1].

III-A1. Estructura Interna: A continuacin se presenta la estructura interna de este microprocesador[1].

manejo de los perifricos, por tanto mediante la programacin, el decodicador de direcciones y los buses tanto de datos, control y direcciones deben ser capaces de[1]: 1. Activar el circuito integrado 2. Identicar el registro al que se va a acceder 3. Habilitar el buffer apropiado Para poder activar el circuito integrado se requiere decodicar la direccin enviada a la memoria. Esta decodicacin provoca que la memoria funcione en una seccin nica del mapa de memoria, por ejemplo de la direccin FC000H a la FFFFFH. Y en cualquier otra direccin fuera de este rango no se activar la memoria[1]. Si se tiene una cantidad de direcciones de memoria de 1MB y entonces el rango FC000H a la FFFFFH sera 64K direcciones de memoria, como se muestra en la gura.

Figura 1. Estructura interna

En donde se puede diferenciar las siguientes partes 1. Bloque de registros de propsito general 2. Bloque de registros de segmento y registro IP 3. Sumador de direcciones 4. Bus de direcciones interno 5. Cola de instrucciones 6. Unidad de control 7. Interfaz del bus 8. Bus de datos interno 9. Unidad aritmtico lgica (ALU) 10. 10, 11, 12 Bus de direcciones, datos y control externos III-A2. Patillaje: A continuacin se presenta los pines y sus nombres del microprocesador 8086

Figura 3. Mapeo de memoria

La memoria EPROM es recomendable colocarla en la parte ms alta de memoria (de la direccin FFFFFH hacia abajo) y en caso de requerir ms memoria se agregar en las direcciones inmediatas inferiores. Esto es debido a que siempre que se genere un RESET al sistema, la direccin de inicio del sistema es la FFFF0H[1]. La memoria RAM por el contrario se recomienda colocarla en la parte mas baja de memoria (a partir de la direccin 00000H) que es la zona de vectores de interrupcin[1]. III-C. Tipos de memorias III-C1. EPROM: EPROM son las siglas de Erasable Programmable Read-Only Memory. Es un tipo de chip de memoria ROM no voltil inventado por el ingeniero Dov Frohman. Las memorias EPROM se programan mediante un dispositivo electrnico que proporciona voltajes superiores a los normalmente utilizados en los circuitos electrnicos. Las celdas que reciben carga se leen entonces como un 0. Una EPROM programada retiene sus datos durante diez o veinte aos, y se puede leer un nmero ilimitado de veces.Una vez programada, una EPROM se puede borrar solamente mediante exposicin a una fuerte luz ultravioleta[1]. III-C2. SRAM: Tipo de memoria RAM. Las siglas de SRAM signica Memoria de acceso aleatorio esttica, la palabra "esttica" indica que estas memorias retienen su contenido el tiempo que reciben energa. Es un tipo de memoria que es ms rpida y ms able que las ms comunes DRAM porque no est refrescando

Figura 2. Patillaje

III-B. Direccionamiento La funcin del direccionamiento es permitir el proceso tanto de lectura y escritura en las memorias, as como el correcto

constantemente el contenido de los circuitos y por esto mismo requiere de menos electricidad. Puede almacenar y recuperar los datos rpidamente y su uso generalmente se limita a memoria cach, video y en general en dispositivos que tienen un uso intensivo de memoria con tiempos crticos de recuperacin de informacin y escritura. SRAM tiene un tiempo de acceso de 10 nanosegundos, en cambio en las DRAM es de 60 nanosegundos; Adems, su ciclo es mucho ms corto que el de las DRAM porque no necesitan una pausa entre accesos[1]. III-C3. DRAM: Es la memoria dinmica de acceso aleatorio cuyo acrnimo corresponde a su nombre en ingls Dynamic Random Access Memory. Tiene una capacidad de retencin de datos muy corta en tiempo, razn por la cual requiere de circuitera para refrescar el contenido almacenado en ella cada determinado tiempo. Esta es la memoria de trabajo, por lo que a mayor cantidad de memoria, ms datos se pueden almacenar en ella y ms aplicaciones pueden estar funcionando simultneamente. De manera similar, a mayor cantidad de memoria mayor velocidad de acceso relativa, pues los programas no necesitan buscar datos continuamente en el disco duro, el cual es mucho ms lento[1]. III-D. Buferes triestados

agrupar, algunos de estos grupos tienen nombres especiales, como por ejemplo el latch quad (que puede almacenar cuatro bits) y el latch octal (ocho bits). Los latches pueden ser dispositivos biestables asncronos que no tienen entrada de reloj y cambian el estado de salida solo en respuesta a datos de entrada, o bien biestables sncronos por nivel, que cuando tienen datos de entrada, cambian el estado de salida slo si lo permite una entrada de reloj. Una aplicacin se encuentra en el manejo de perifricos, en donde es necesario mantener el estado enva por el bus de datos dado que deben estar visibles para el usuario[3]. III-F. Controladores de motores

En electrnica digital, la lgica triestado permite puertos de salida con valor 0,1 Hi-Z (High Impedance). Es este ltimo estado el que proporciona los buffer triestado. El estado Hi-Z pone la salida en alta impedancia, haciendo que el pin ya no tenga relevancia en el circuito. Normalmente, la intencin de este estado es permitir a varios circuitos compartir el mismo bus o lnea de salida. O tambin, permitir a un dispositivo monitorizar seales sin afectar a la seal. Tristate es una marca registrada de National Semiconductor pero normalmente se usa para describir dispositivos de este tipo hechos por cualquier fabricante[3]. Un buffer triestado se disea normalmente de modo que el retardo de habilitacin de salida (de Hi-Z a Alto o Bajo) sea un poco ms largo que el retardo de deshabilitacin de salida (de Alto o Bajo a Hi-Z). As, si un circuito de control activa la entrada de habilitacin de salida de un dispositivo al mismo tiempo que desactiva la entrada de habilitacin de un segundo dispositivo, al tener un retardo de deshabilitacin de salida ms corto se puede asegurar que antes de que el primer dispositivo ponga un nivel Alto o Bajo en el bus, el segundo dispositivo se encontrar en estado de alta impedancia. Entre los buferes triestados mas utilizados se encuentran el 75LS244 y el 74LS245, que cuentan con la nica diferencia de que el segundo es bidireccional, es decir, puede enviar o recibir datos, y son muy utilizados tanto en buses de direccionamiento como en buses de datos de los sistemas microprocesados[2], [3]. III-E. Latches

III-F1. L293D: El integrado L293D incluye cuatro circuitos para manejar cargas de potencia media, en especial pequeos motores y cargas inductivas, con la capacidad de controlar corriente hasta 600 mA en cada circuito y una tensin entre 4,5 V a 36 V. Los circuitos individuales se pueden usar de manera independiente para controlar cargas de todo tipo y, en el caso de ser motores, manejar un nico sentido de giro. Pero adems, cualquiera de estos cuatro circuitos sirve para congurar la mitad de un puente H. El integrado permite formar, entonces, dos puentes H completos, con los que se puede realizar el manejo de dos motores. En este caso el manejo ser bidireccional, con frenado rpido y con posibilidad de implementar fcilmente el control de velocidad[3].

Figura 4. Conexin de motor cd

Un latch es un circuito electrnico usado para almacenar informacin en sistemas lgicos asncronos. Un latch puede almacenar un bit de informacin. Los latches se pueden

III-F2. L297D: El L297 puede crear las seales de control para bipolar, unipolar y de reluctancia variable para motores paso a paso. El motor lleva un paso por cada pulso enviado desde el bus de datos. La direccin se decide tomando un estado ALTO o BAJO. El L297 tiene otra caracterstica importante, se incluye dos circuitos PWM chopper para regular la corriente en los devanados del motor. Incluye un bit en el control para aumentar el par a velocidades ms altas

A continuacin se muestra los pines de conexin de este controlador[3].

Memoria

de

Programa:

4 27256 = 4 (32K 8) = 1M bits M emP rograma = 1M bits = 128KB Memoria de Datos: 8 (4464) = 8 (64K 4) = 2M bits M emDatos1 = 256KB 4 (62128) = 4 (128K 8) = 4M bits
Figura 5. L297D

M emDatos2 = 512KB Entonces la memoria total es: M emDatos = 768KB IV-B. Manejo de perifricos

III-G.

Comunicacin Serial

III-G1. MAX232: El MAX232 es un circuito integrado que convierte los niveles de las lneas de un puerto serie RS232 a niveles TTL y viceversa. Lo interesante es que slo necesita una alimentacin de 5V, ya que genera internamente algunas tensiones que son necesarias para el estndar RS232. Otros integrados que manejan las lneas RS232 requieren dos voltajes, +12V y -12V[3]. A continuacin se muestra los pines de conexin del MAX232

Figura 6. Pines MAX232

IV. IV-A.

D ESARROLLO

Manejo de Memorias

Se debe manejar 4 memorias EPROM 27256 para la memoria de programa , esta memoria cuenta con 8 bits de datos, entonces al tener 16 bits de datos en el microprocesador 8086 se debe manejar en 2 grupos de 2. Para la memoria de datos se debe manejar 8 memorias DRAM 4464, las cuales al tener 4 bits de datos se debe direccionar en 2 grupos de 4 para utilizar los 16 bits de datos. Ademas de las memorias DRAM para la memoria de datos se debe utilizar 4 memorias SRAM 62128, las cuales se debe direccionar en 2 grupos de 2 para utilizar los 16 bits de datos. IV-A1. Capacidad de memoria: Basado en las memorias utilizadas se tiene las siguientes capacidades de memoria:

A continuacin se presenta las consideraciones tomadas para realizar el manejos de los perifricos IV-B1. Mando de 8 leds: Para el mando de los leds se tomo en consideracin habilitarlo mediante un bufer triestados 74244, con la nalidad de poder habilitar mas de un led con una sola direccin, entonces se envan los estados del led mediante los 8 bits menos signicativos del bus de datos. IV-B2. Mando de 4 pulsantes: Los pulsantes se manejan individualmente para el caso de que se requiera almacenar el estado del pulsante en una nica posicin de memoria, teniendo de esta manera un acceso mas rpido al estado de cada pulsante de manera independiente. IV-B3. Mando de 4 switch: De la misma manera que los pulsantes estos se manejan individualmente con el n de tener sus estados de manera independiente. IV-B4. Mando de 1 motor unipolar a pasos con inversin de giro: Para el mando de un motor unipolar se utiliza el controlador L297D este dispositivo cuenta con un bit de habilitacin el cual se utiliza para el direccionamiento por tanto para poder manejar este perifrico se utiliza solamente un espacio de direccin. IV-B5. Mando de 1 motor cd con puente H e inversin de giro: Para el mando de un motor unipolar se utiliza el controlador L293D este dispositivo cuenta con un bit de habilitacin el cual se utiliza para el direccionamiento por tanto para poder manejar este perifrico se utiliza solamente un espacio de direccin. IV-B6. Comunicacin Serial: Para la comunicacin serial se utilizara el protocolo RS232 mediante un conector DB-9 y un circuito para implementar el envi y la recepcin de datos, estos datos se envan a travs de un buffer triestados 74245 que tiene un bit de habilitacin, por tanto se utiliza solamente un espacio de direccin.

IV-C.

Capacidad de direccionamiento

IV-D.

Decodicador de direcciones

A continuacin se presenta el detalle del direccionamiento. El bus de direcciones cuenta con 20 lineas con las cuales se puede direccionar hasta 1M espacio de direcciones, por lo que el espacio tanto de memorias como de perifricos no debe sobrepasar este rago. 220 = 1048576 espacio = 1M espacios Segn las consideraciones realizadas en el manejo de memorias, las direcciones de cada grupo de memorias y de los perifricos se realiza de la siguiente manera: Memoria de programa : M P 1 = 2 (27256) = 32K = 32768 espacios M P 2 = 2 (27256) = 32K = 32768 espacios Memoria de datos DRAM:

De acuerdo a las agrupaciones realizadas en las memorias se tienes los diferentes rangos de direcciones que especican a cada memoria por tanto hay que realizar un mapeo de direcciones con el n de hacer un diseo mas eciente, a partir del este mapeo de direcciones se puede realizar el circuito de reset automtico y el circuito del decodicador de direcciones. IV-D1. Mapa de direcciones: A continuacin se presenta el mapa de las direcciones utilizadas

M D1 = 4 (4464) = 65536 espacios M D2 = 4 (4464) = 65536 espacios Memoria de datos SRAM:

M D3 = 2 (62128) = 13072 espacios


Figura 7. Mapa de Direcciones

M D4 = 2 (62128) = 13072 espacios Perifricos: Mando de 8 leds P1 = 1 Mando de 4 pulsante P 2=4 Mando de 4 switch P3 = 4 Mando de un motor unipolar P4 = 1 Mando de un motor CD P5 = 1 Comunicacin Serial P6 = 1 Mando de 4 display 7 segmentos P7 = 4 Al sumar todos los espacios de direccin se tiene un total de D = 458768 El cual esta dentro del rango permitido IV-D3. Anlisis decodicador de direcciones: Del mapeo de direcciones realizado se puede observar que solo se necesita utilizar el primero, segundo y ltimo nibble para construir el decodicador, en concreto se utilizan solamente los pines A18, A17, A16, A15, A3, A2, A1 y A0 ya que estos representan cambios signicativos en la mayora de casos de uno o dos bits y permiten realizar un direccionamiento sencillo. A partir de estos bits se procede a construir una tabla de verdad de la siguiente manera: Mientras que los bits A18-A15 deben permanecer en cero los restantes A3-A0 varan de 0 a F por lo que se tomarn como condiciones indeterminadas, cuando existe el cambio al perifrico MP2 el nico bit que lo identica es A15, por esto se toma las mismas condiciones anteriores solo que con A15 en 1 en lugar de cero, de igual manera se analizan las condiciones anteriores y se obtiene la siguiente tabla de verdad. DirReset = 458768 = 0x70010 IV-D2. Direccin del reset: Dado que se utiliza un cierto rango para direccionar las memorias y los perifricos, entonces para evitar que se realice un conteo innecesario con las direcciones sobrantes es necesario realizar un circuito de reset a partir la primera direccin despus del rango total, esta direccin es:

IV-G.

Circuito de reset automtico y manual

Figura 10. Circuitos de reset

V.
Figura 8. Tabla de verdad direccionamiento

C IRCUITO G ENERAL

Debido a la extensin del circuito este se presenta en ANEXOS VI. A NLISIS DE RESULTADOS

IV-D4. Esquema del circuito decodicador de direcciones: Debido a la extensin del circuito este se presenta en ANEXOS

IV-E.

Esquema en diagrama de bloques

Debido a la extensin del esquema este se presenta en ANEXOS

IV-F.

Circuito generador de reloj

En el esquema del circuito decodicador de direcciones se puede notar como se reduce la circuitera debido a que se realiz un mapeo de memoria en el que se logr que unicamente cambie uno o dos bits entre cada bloque de memoria o perifrico, adems el buen planteamiento de la lgica combinatoria y una efectiva reduccin de las ecuaciones obtenidas es imprescindible para simplicar el esquema del decodicador. En el esquema en diagrama de bloques se puede observar que es necesario activar mas de una memoria a la vez, por lo que se recurri a conectar el pin de habilitacin en paralelo al nmero de dispositivos necesarios para poder obtener un bus de datos 16 bits, adems debe notarse que con este arreglo se apuntar a una misma posicin en cada uno de los dipositivos. Para el circuito generador de reloj se coloco un cristal de 15MHz y mediante el uso del circuito integrado 8284 logramos obtener una frecuencia de 5MHz en el pin de clock del microprocesador, con el cual se obtiene una velocidad de bus de 1.25 MHz. En el aspecto de la comunicacin serial esta se logr implmentar mediante el uso del integrado 8250, que no es mas que una unidad de transmisin serial universal asncrona, esta simplic el diseo de esta parte del circuito ya que solamente es necesario conectar una lgica en los distintos pines de control para obtener el resultado deseado. Como punto nal es de destacar que se utiliz latches para los distintos perifricos y as poder almacenar sus estados. VII. C ONCLUSIONES Y RECOMENDACIONES

Figura 9. Generador de reloj

Una vez nalizado la primera tarea de Sistemas Microprocesados se ha llegado a las siguiente conclusiones: 1. Para realizar cualquier diseo se debe conocer muy bien las capacidades de cada uno de los dispositivos ya que de

un buen diseo depender evitar futuros inconvenientes que puedan generar demoras en el proceso de diseo. 2. Cuando se realiza el mapeo de memoria se debe notar que al activar los dispositivos en bloques se utilizar una misma direccin de memoria para los 4 dispositivos, esto debe tomarse en cuenta al momento de realizar el clculo de los espacios que se necesitarn para el direccionamiento. 3. Es importante el uso de latches en los distintos perifricos ya que de esto depender la correcta visualizacin y recepcin de los datos que se esten enviando por el bus de datos. R EFERENCIAS
[1] B. B. Brey. Microprocesadores Intel, Los. 2001. [2] J. M. Rabaey, A. P. Chandrakasan, and B. Nikolic. Digital integrated circuits, volume 2. Prentice hall Englewood Cliffs, 2002. [3] R. J. Tocci and N. S. Widmer. Sistemas digitales: Principios y aplicaciones. Pearson Educacin, 2003.

Vous aimerez peut-être aussi