Andradep2 Ochoam2 Orellanaj2 Direccionamineto

download Andradep2 Ochoam2 Orellanaj2 Direccionamineto

of 7

Transcript of Andradep2 Ochoam2 Orellanaj2 Direccionamineto

  • 1Direccionamiento de memorias y perifricosPablo Esteban Andrade Rea, [email protected]

    Mario Esteban Ochoa Guaraca, [email protected] Diego Orellana Calle, [email protected]

    ResumenEn el presente documento se realiza el direcciona-miento de memorias tanto de programa como de datos ademasde los perifricos planteados, para poder realizarlo es necesariotener un conocimiento teorico acerca del tema por lo que se rea-liza breves descripciones de los conceptos y elementos utilizadospara cumplir los objetivos; se realiza los respectivos calculos dedireccionamientos basados en consideraciones de diseo con elfin de optimizar los circuitos, estas consideraciones se encuentrandetalladas con el fin de que se pueda entender de mejor manera,a continuacin se presenta el mapeo de direcciones, a partir deello se realiza el circuito de reset automtico, as como tambintodos los circuitos necesario ya sea el de reloj como el de resetmanual, y por ultimo se presenta un esquema general de todo elsistema microprocesado.

    I. INTRODUCCIN

    Una direccin de memoria es un identificador para unalocalizacin de memoria con la cual un programa informticoo un dispositivo de hardware pueden almacenar un dato parasu posterior reutilizacin.

    Una forma comn de describir la memoria principal de unsistema microprocesado es como una coleccin de celdas quealmacenan datos e instrucciones. Cada celda est identificadaunvocamente por un nmero o direccin de memoria. Parapoder acceder a una ubicacin especfica de la memoria, laCPU genera seales en el bus de direccin.

    II. OBJETIVOS

    II-A. Generales

    Disear sistemas microprocesados de formageneral/especfica.

    Disear - calcula el direccionamiento y capacidad de memo-rias y/ perifricos conocido el tamao del bus de direcciones.

    Disear la circuitera de reset del microprocesadorDisear el sistema embebido detallando cada uno de los

    componentes

    II-B. Especficos

    1. Realizar un sistema microprocesado que contenga lossiguientes:

    Microprocesador 8086 (Bus de direcciones de 20lneas y Bus de datos de 16 lneas)Memoria de programa conformada por 4x27256(Memorias EPROM)Memoria de datos conformada por: 8x4464 (Me-moria DRAM) + 4x62128 (Memorias SRAM)Circuitos decodificadores de direccionesGenerador de relojCircuito de reset automtico/manual

    Registros 74LS373 o equivalente IntelBuffers 74LS244 74LS245 o equivalentes IntelControladores 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

    2. Clculo detallado del direccionamiento y capacidad dememorias y/ perifricos, as como especificaciones decada dispositivo.

    3. Diseo del circuito decodificador de direcciones para lasmemorias y los perifricos descritos anteriormente.

    4. Diseo, clculos, consideraciones, conclusiones e infor-me del proyecto en formato paper.

    5. Enviar en una sola carpeta comprimida con el apellidode los 3 integrantes, todos los documentos utilizados,como:

    a) Paperb) Circuitos-Diseos-Planosc) Datasheetsd) Referencias-Textos-Webe) Simulaciones, etc.

    III. MARCO TERICO

    Se realiza una breve revisin de los conceptos mas impor-tantes de los conceptos utilizados en el desarrollo de la tarea,de igual manera en cuanto a los dispositivos, si se requieremayor detalle puede remitirse a las hojas de datos que sepresentan adjuntas.

    III-A. Microprocesador 8086

    El Intel 8086 llamados oficialmente iAPX 86 fue uno delos primeros microprocesadores de 16 bits diseados por Intel.Fueron el inicio y los primeros miembros de la arquitecturax86, actualmente usada en la mayora de los computadores. Eltrabajo de desarrollo para el 8086 comenz en la primaverade 1976 y el chip fue introducido al mercado en el veranode 1978. El 8088 fue lanzado en 1979. El 8086 y el 8088ejecutan 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 dedatos de 16 bits[1].

  • 2III-A1. Estructura Interna: A continuacin se presenta laestructura interna de este microprocesador[1].

    Figura 1. Estructura interna

    En donde se puede diferenciar las siguientes partes1. Bloque de registros de propsito general2. Bloque de registros de segmento y registro IP3. Sumador de direcciones4. Bus de direcciones interno5. Cola de instrucciones6. Unidad de control7. Interfaz del bus8. Bus de datos interno9. Unidad aritmtico lgica (ALU)

    10. 10, 11, 12 Bus de direcciones, datos y control externosIII-A2. Patillaje: A continuacin se presenta los pines y

    sus nombres del microprocesador 8086

    Figura 2. Patillaje

    III-B. DireccionamientoLa funcin del direccionamiento es permitir el proceso tanto

    de lectura y escritura en las memorias, as como el correcto

    manejo de los perifricos, por tanto mediante la programacin,el decodificador de direcciones y los buses tanto de datos,control y direcciones deben ser capaces de[1]:

    1. Activar el circuito integrado2. Identificar el registro al que se va a acceder3. Habilitar el buffer apropiado

    Para poder activar el circuito integrado se requiere decodificarla direccin enviada a la memoria. Esta decodificacin provocaque la memoria funcione en una seccin nica del mapa dememoria, por ejemplo de la direccin FC000H a la FFFFFH.Y en cualquier otra direccin fuera de este rango no se activarla memoria[1].

    Si se tiene una cantidad de direcciones de memoria de1MB y entonces el rango FC000H a la FFFFFH sera 64Kdirecciones de memoria, como se muestra en la figura.

    Figura 3. Mapeo de memoria

    La memoria EPROM es recomendable colocarla en la partems alta de memoria (de la direccin FFFFFH hacia abajo) yen caso de requerir ms memoria se agregar en las direccionesinmediatas inferiores. Esto es debido a que siempre que segenere un RESET al sistema, la direccin de inicio del sistemaes la FFFF0H[1].

    La memoria RAM por el contrario se recomienda colocarlaen la parte mas baja de memoria (a partir de la direccin00000H) que es la zona de vectores de interrupcin[1].

    III-C. Tipos de memoriasIII-C1. EPROM: EPROM son las siglas de Erasable

    Programmable Read-Only Memory. Es un tipo de chip dememoria ROM no voltil inventado por el ingeniero DovFrohman.

    Las memorias EPROM se programan mediante un dis-positivo electrnico que proporciona voltajes superiores alos normalmente utilizados en los circuitos electrnicos. Lasceldas que reciben carga se leen entonces como un 0.

    Una EPROM programada retiene sus datos durante diez oveinte aos, y se puede leer un nmero ilimitado de veces.Unavez programada, una EPROM se puede borrar solamentemediante exposicin a una fuerte luz ultravioleta[1].

    III-C2. SRAM: Tipo de memoria RAM. Las siglas deSRAM significa Memoria de acceso aleatorio esttica, la pala-bra "esttica" indica que estas memorias retienen su contenidoel tiempo que reciben energa.

    Es un tipo de memoria que es ms rpida y ms fiableque las ms comunes DRAM porque no est refrescando

  • 3constantemente el contenido de los circuitos y por esto mismorequiere de menos electricidad. Puede almacenar y recuperarlos datos rpidamente y su uso generalmente se limita a me-moria cach, video y en general en dispositivos que tienen unuso intensivo de memoria con tiempos crticos de recuperacinde informacin y escritura.

    SRAM tiene un tiempo de acceso de 10 nanosegundos, encambio en las DRAM es de 60 nanosegundos; Adems, suciclo es mucho ms corto que el de las DRAM porque nonecesitan una pausa entre accesos[1].

    III-C3. DRAM: Es la memoria dinmica de acceso aleato-rio cuyo acrnimo corresponde a su nombre en ingls DynamicRandom Access Memory. Tiene una capacidad de retencinde datos muy corta en tiempo, razn por la cual requiere decircuitera para refrescar el contenido almacenado en ella cadadeterminado tiempo.

    Esta es la memoria de trabajo, por lo que a mayor cantidadde memoria, ms datos se pueden almacenar en ella y msaplicaciones pueden estar funcionando simultneamente. Demanera similar, a mayor cantidad de memoria mayor velocidadde acceso relativa, pues los programas no necesitan buscardatos continuamente en el disco duro, el cual es mucho mslento[1].

    III-D. Buferes triestados

    En electrnica digital, la lgica triestado permite puertosde salida con valor 0,1 Hi-Z (High Impedance). Es esteltimo estado el que proporciona los buffer triestado. El estadoHi-Z pone la salida en alta impedancia, haciendo que elpin ya no tenga relevancia en el circuito. Normalmente, laintencin de este estado es permitir a varios circuitos compartirel mismo bus o lnea de salida. O tambin, permitir a undispositivo monitorizar seales sin afectar a la seal. Tri-state es una marca registrada de National Semiconductor peronormalmente se usa para describir dispositivos de este tipohechos por cualquier fabricante[3].

    Un buffer triestado se disea normalmente de modo queel retardo de habilitacin de salida (de Hi-Z a Alto o Bajo)sea un poco ms largo que el retardo de deshabilitacin desalida (de Alto o Bajo a Hi-Z). As, si un circuito de controlactiva la entrada de habilitacin de salida de un dispositivo almismo tiempo que desactiva la entrada de habilitacin de unsegundo dispositivo, al tener un retardo de deshabilitacin desalida ms corto se puede asegurar que antes de que el primerdispositivo ponga un nivel Alto o Bajo en el bus, el segundodispositivo se encontrar en estado de alta impedancia.

    Entre los buferes triestados mas utilizados se encuentran el75LS244 y el 74LS245, que cuentan con la nica diferencia deque el segundo es bidireccional, es decir, puede enviar o recibirdatos, y son muy utilizados tanto en buses de direccionamientocomo en buses de datos de los sistemas microprocesados[2],[3].

    III-E. Latches

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

    agrupar, algunos de estos grupos tienen nombres especiales,como por ejemplo el latch quad (que puede almacenar cuatrobits) y el latch octal (ocho bits). Los latches pueden serdispositivos biestables asncronos que no tienen entrada dereloj y cambian el estado de salida solo en respuesta a datosde entrada, o bien biestables sncronos por nivel, que cuandotienen datos de entrada, cambian el estado de salida slo si lopermite una entrada de reloj.

    Una aplicacin se encuentra en el manejo de perifricos,en donde es necesario mantener el estado enva por el bus dedatos dado que deben estar visibles para el usuario[3].

    III-F. Controladores de motores

    III-F1. L293D: El integrado L293D incluye cuatro cir-cuitos para manejar cargas de potencia media, en especialpequeos motores y cargas inductivas, con la capacidad decontrolar corriente hasta 600 mA en cada circuito y una tensinentre 4,5 V a 36 V.

    Los circuitos individuales se pueden usar de manera inde-pendiente para controlar cargas de todo tipo y, en el caso deser motores, manejar un nico sentido de giro. Pero adems,cualquiera de estos cuatro circuitos sirve para configurar lamitad de un puente H.

    El integrado permite formar, entonces, dos puentes H com-pletos, con los que se puede realizar el manejo de dos motores.En este caso el manejo ser bidireccional, con frenado rpidoy con posibilidad de implementar fcilmente el control develocidad[3].

    Figura 4. Conexin de motor cd

    III-F2. L297D: El L297 puede crear las seales de controlpara bipolar, unipolar y de reluctancia variable para motorespaso a paso.

    El motor lleva un paso por cada pulso enviado desde el busde 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 losdevanados del motor.

    Incluye un bit en el control para aumentar el par a veloci-dades ms altas

  • 4A continuacin se muestra los pines de conexin de estecontrolador[3].

    Figura 5. L297D

    III-G. Comunicacin Serial

    III-G1. MAX232: El MAX232 es un circuito integradoque convierte los niveles de las lneas de un puerto serieRS232 a niveles TTL y viceversa. Lo interesante es que slonecesita una alimentacin de 5V, ya que genera internamentealgunas tensiones que son necesarias para el estndar RS232.Otros integrados que manejan las lneas RS232 requieren dosvoltajes, +12V y -12V[3].

    A continuacin se muestra los pines de conexin delMAX232

    Figura 6. Pines MAX232

    IV. DESARROLLO

    IV-A. Manejo de Memorias

    Se debe manejar 4 memorias EPROM 27256 para la me-moria de programa , esta memoria cuenta con 8 bits de datos,entonces al tener 16 bits de datos en el microprocesador 8086se debe manejar en 2 grupos de 2.

    Para la memoria de datos se debe manejar 8 memoriasDRAM 4464, las cuales al tener 4 bits de datos se debedireccionar en 2 grupos de 4 para utilizar los 16 bits de datos.

    Ademas de las memorias DRAM para la memoria de datosse debe utilizar 4 memorias SRAM 62128, las cuales se debedireccionar en 2 grupos de 2 para utilizar los 16 bits de datos.

    IV-A1. Capacidad de memoria: Basado en las memoriasutilizadas se tiene las siguientes capacidades de memoria:

    Memoria de Programa:

    4 27256 = 4 (32K 8) = 1Mbits

    MemPrograma = 1Mbits = 128KB

    Memoria de Datos:

    8 (4464) = 8 (64K 4) = 2Mbits

    MemDatos1 = 256KB

    4 (62128) = 4 (128K 8) = 4Mbits

    MemDatos2 = 512KB

    Entonces la memoria total es:

    MemDatos = 768KB

    IV-B. Manejo de perifricos

    A continuacin se presenta las consideraciones tomadaspara realizar el manejos de los perifricos

    IV-B1. Mando de 8 leds: Para el mando de los leds setomo en consideracin habilitarlo mediante un bufer triestados74244, con la finalidad de poder habilitar mas de un led conuna sola direccin, entonces se envan los estados del ledmediante los 8 bits menos significativos del bus de datos.

    IV-B2. Mando de 4 pulsantes: Los pulsantes se manejanindividualmente para el caso de que se requiera almacenarel estado del pulsante en una nica posicin de memoria,teniendo de esta manera un acceso mas rpido al estado decada pulsante de manera independiente.

    IV-B3. Mando de 4 switch: De la misma manera que lospulsantes estos se manejan individualmente con el fin de tenersus estados de manera independiente.

    IV-B4. Mando de 1 motor unipolar a pasos con inversinde giro: Para el mando de un motor unipolar se utilizael controlador L297D este dispositivo cuenta con un bit dehabilitacin el cual se utiliza para el direccionamiento portanto para poder manejar este perifrico se utiliza solamenteun espacio de direccin.

    IV-B5. Mando de 1 motor cd con puente H e inversinde giro: Para el mando de un motor unipolar se utilizael controlador L293D este dispositivo cuenta con un bit dehabilitacin el cual se utiliza para el direccionamiento portanto para poder manejar este perifrico se utiliza solamenteun espacio de direccin.

    IV-B6. Comunicacin Serial: Para la comunicacin serialse utilizara el protocolo RS232 mediante un conector DB-9 yun circuito para implementar el envi y la recepcin de datos,estos datos se envan a travs de un buffer triestados 74245que tiene un bit de habilitacin, por tanto se utiliza solamenteun espacio de direccin.

  • 5IV-C. Capacidad de direccionamiento

    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 loque el espacio tanto de memorias como de perifricos no debesobrepasar este rago.

    220 = 1048576 espacio = 1M espacios

    Segn las consideraciones realizadas en el manejo de me-morias, las direcciones de cada grupo de memorias y de losperifricos se realiza de la siguiente manera:

    Memoria de programa :

    MP1 = 2 (27256) = 32K = 32768 espacios

    MP2 = 2 (27256) = 32K = 32768 espaciosMemoria de datos DRAM:

    MD1 = 4 (4464) = 65536 espacios

    MD2 = 4 (4464) = 65536 espaciosMemoria de datos SRAM:

    MD3 = 2 (62128) = 13072 espacios

    MD4 = 2 (62128) = 13072 espaciosPerifricos:

    Mando de 8 leds

    P1 = 1

    Mando de 4 pulsante

    P2=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-D. Decodificador de direcciones

    De acuerdo a las agrupaciones realizadas en las memoriasse tienes los diferentes rangos de direcciones que especificana cada memoria por tanto hay que realizar un mapeo dedirecciones con el fin de hacer un diseo mas eficiente, a partirdel este mapeo de direcciones se puede realizar el circuito dereset automtico y el circuito del decodificador de direcciones.

    IV-D1. Mapa de direcciones: A continuacin se presentael mapa de las direcciones utilizadas

    Figura 7. Mapa de Direcciones

    IV-D2. Direccin del reset: Dado que se utiliza un ciertorango para direccionar las memorias y los perifricos, entoncespara evitar que se realice un conteo innecesario con lasdirecciones sobrantes es necesario realizar un circuito de reseta partir la primera direccin despus del rango total, estadireccin es:

    DirReset = 458768 = 0x70010

    IV-D3. Anlisis decodificador de direcciones: Del mapeode direcciones realizado se puede observar que solo se necesitautilizar el primero, segundo y ltimo nibble para construir eldecodificador, en concreto se utilizan solamente los pines A18,A17, A16, A15, A3, A2, A1 y A0 ya que estos representancambios significativos en la mayora de casos de uno o dosbits y permiten realizar un direccionamiento sencillo. A partirde estos bits se procede a construir una tabla de verdad dela siguiente manera: Mientras que los bits A18-A15 debenpermanecer en cero los restantes A3-A0 varan de 0 a F porlo que se tomarn como condiciones indeterminadas, cuandoexiste el cambio al perifrico MP2 el nico bit que lo identificaes A15, por esto se toma las mismas condiciones anterioressolo que con A15 en 1 en lugar de cero, de igual manera seanalizan las condiciones anteriores y se obtiene la siguientetabla de verdad.

  • 6Figura 8. Tabla de verdad direccionamiento

    IV-D4. Esquema del circuito decodificador de direccio-nes: Debido a la extensin del circuito este se presenta enANEXOS

    IV-E. Esquema en diagrama de bloques

    Debido a la extensin del esquema este se presenta enANEXOS

    IV-F. Circuito generador de reloj

    Figura 9. Generador de reloj

    IV-G. Circuito de reset automtico y manual

    Figura 10. Circuitos de reset

    V. CIRCUITO GENERAL

    Debido a la extensin del circuito este se presenta enANEXOS

    VI. ANLISIS DE RESULTADOS

    En el esquema del circuito decodificador de direccionesse puede notar como se reduce la circuitera debido a quese realiz un mapeo de memoria en el que se logr queunicamente cambie uno o dos bits entre cada bloque dememoria o perifrico, adems el buen planteamiento de lalgica combinatoria y una efectiva reduccin de las ecuacionesobtenidas es imprescindible para simplificar el esquema deldecodificador.

    En el esquema en diagrama de bloques se puede observarque es necesario activar mas de una memoria a la vez, por loque se recurri a conectar el pin de habilitacin en paralelo alnmero de dispositivos necesarios para poder obtener un busde datos 16 bits, adems debe notarse que con este arreglo seapuntar a una misma posicin en cada uno de los dipositivos.

    Para el circuito generador de reloj se coloco un cristalde 15MHz y mediante el uso del circuito integrado 8284logramos obtener una frecuencia de 5MHz en el pin de clockdel microprocesador, con el cual se obtiene una velocidad debus de 1.25 MHz.

    En el aspecto de la comunicacin serial esta se logrimplmentar mediante el uso del integrado 8250, que no esmas que una unidad de transmisin serial universal asncrona,esta simplific el diseo de esta parte del circuito ya quesolamente es necesario conectar una lgica en los distintospines de control para obtener el resultado deseado.

    Como punto final es de destacar que se utiliz latches paralos distintos perifricos y as poder almacenar sus estados.

    VII. CONCLUSIONES Y RECOMENDACIONES

    Una vez finalizado la primera tarea de Sistemas Micropro-cesados se ha llegado a las siguiente conclusiones:

    1. Para realizar cualquier diseo se debe conocer muy bienlas capacidades de cada uno de los dispositivos ya que de

  • 7un buen diseo depender evitar futuros inconvenientesque puedan generar demoras en el proceso de diseo.

    2. Cuando se realiza el mapeo de memoria se debe notarque al activar los dispositivos en bloques se utilizar unamisma direccin de memoria para los 4 dispositivos,esto debe tomarse en cuenta al momento de realizarel clculo de los espacios que se necesitarn para eldireccionamiento.

    3. Es importante el uso de latches en los distintos perif-ricos ya que de esto depender la correcta visualizaciny recepcin de los datos que se esten enviando por elbus de datos.

    REFERENCIAS[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 aplica-

    ciones. Pearson Educacin, 2003.