Arquitectura Arm

Universidad Aeronáutica en Querétaro Arquitectura de las computadoras Practica No. 1: Arquitectura ARM IECSA01-A OBJETIV

Views 149 Downloads 52 File size 404KB

Report DMCA / Copyright

DOWNLOAD FILE

Recommend stories

Citation preview

Universidad Aeronáutica en Querétaro Arquitectura de las computadoras Practica No. 1: Arquitectura ARM IECSA01-A OBJETIVO: Conocer las características principales de la arquitectura de los microcontroladores ARM. INTRODUCCION: Un microcontrolador es un circuito integrado o chip que en su interior contiene una unidad central de procesamiento (CPU), unidades de memoria (RAM y ROM), puertos de entrada y salida y periféricos. Estas partes están interconectadas dentro del microcontrolador, y en conjunto forman lo que se le conoce como microcomputadora. En otras palabras un microcontrolador es una microcomputadora completa encapsulada en un circuito integrado. Toda microcomputadora requiere de un programa para que realice una función específica, este se almacena normalmente en la memoria ROM, su propósito es el de leer y ejecutar los programas que el usuario le escribe, es por esto que la programación es una actividad básica e indispensable cuando se diseñan circuitos y sistemas. Los procesadores son el corazón de las máquinas inteligentes que manejamos y de las que sacamos beneficio en el día a día, y no están presentes solo en teléfonos móviles sino que podemos encontrarlos en equipos de audio/video, incluso lavadoras o sistemas de navegación integrados en el salpicadero de un automóvil. Los microcontroladores permiten modularidad y flexibilidad, ya que un circuito se puede utilizar para que realice diferentes funciones solo cambiando el programa que se les aplica, estos están diseñados para interpretar y procesar datos e instrucciones en forma binaria, los lenguajes como el C o BASIC son comúnmente utilizados en la programación de microcontroladores pero el lenguaje ensamblador es sin lugar a dudas el lenguaje por excelencia en la programación de microcontroladores debido a que permite hacer un uso eficiente de la memoria y minimizar el tiempo de ejecución de un programa.

¿Que es la arquitectura ARM? ARM es una arquitectura RISC (Reduced Instruction Set Computer=Ordenador con Conjunto Reducido de Instrucciones) de 32 bits desarrollada por ARM Holdings. Se llamó Advanced RISC Machine, y anteriormente Acorn RISC Machine. La arquitectura ARM es el conjunto de instrucciones de 32 bits más ampliamente utilizado en unidades producidas. Concebida originalmente por Acorn Computers para su uso en ordenadores personales. La relativa simplicidad de los procesadores ARM los hace ideales para aplicaciones de baja potencia, encarnados en microprocesadores y microcontroladores pequeños, de bajo consumo y relativamente bajo coste. Los procesadores ARM son aproximadamente el 90% de todos los procesadores RISC de 32 bits integrados y se utilizan ampliamente en la electrónica de consumo, incluyendo PDA, tabletas, Teléfono inteligente, teléfonos móviles, videoconsolas portátiles, calculadoras, reproductores digitales de música y medios (fotos, vídeos, etc.), y periféricos de ordenador como discos duros y routers. Android, iOS, WebOS, Kernel de Linux y Solaris, son algunos ejemplos de los sistemas operativos que usan éste desarrollo para soportar sus sistemas operativos, es decir, la arquitectura ARM, con diseños en los que se integran más de 30.000 transistores, está presente en un gran número de dispositivos electrónicos en manos o utilizados por usuarios partículares y profesionales, y a diario se venden más de 16 millones de productos basados en esta arquitectura

de ARM Holdings.

CARACTERISTICAS: -Todas las instrucciones se ejecutan en un ciclo de reloj -Modos de direccionamiento simples El procesamiento de datos solo opera con contenidos de registros, no directamente en memoria. - Control sobre la unidad aritmética lógica (ALU, Arithmetic Logic Unit) y el “shifter”, en cada instrucción de procesamiento de datos para maximizar el uso de la ALU y del “shifter”. - Modos de direccionamiento con incremento y decremento automático de punteros, para optimizar los lazos de los programas. -Carga y almacenamiento de múltiples instrucciones, para maximizar el rendimiento de los datos. -Ejecución condicional de todas las instrucciones, para maximizar el rendimiento de la ejecución. -Set de instrucciones ortogonal, regular o simétrico En este tipo de set no hay restricciones en los registros usados en las instrucciones, son todos registros de propósitos generales, con muy pocas excepciones (por ejemplo el contador de programa, PC) A los programadores Assembler les resulta más fácil aprender un set con estas características. Y también, a los compiladores les resulta más fácil manejarlo. Mientras que la implementación del hardware será generalmente más eficiente. - Técnica “pipeline” Esta técnica consiste en comenzar la próxima instrucción antes de que la actual haya finalizado. El objetivo es economizar tiempo. ƒ Excepciones vectorizadas Las excepciones son condiciones inusuales o inválidas asociadas con la ejecución de una instrucción particular.

- Arquitectura “Thumb” Algunos procesadores ARM tienen esta arquitectura para aplicaciones que necesiten mejorar la densidad de código. Consiste en usar un set de instrucciones de 16 bits que es una forma comprimida del set de instrucciones ARM de 32 bits.

MICROCONTROLADORES MSP430 Es una familia de microcontroladores fabricados por Texas Instruments. Construido con una CPU de 16bits, el MSP430 está diseñado para aplicaciones empotradas de bajo costo, sistemas inalámbricos y/o de ultra bajo consumo de energía. Esta arquitectura tiene reminiscencias de la del procesador DEC PDP-11. Este dispositivo tiene una gran variedad de configuraciones que se agrupan en familias, con velocidades máximas de procesamiento y capacidades de direccionamiento diferentes, y modelos con diferentes selecciones de entre los siguientes periféricos: diferentes bloques y capacidades de memoria, oscilador interno, temporizadores incluyendo un PWM, temporizador watchdog, USART, bus SPI, bus I²C, 10/12/14/16-bit conversores ADC, y circuitos de apagado y reinicio. La CPU usa una arquitectura von Neumann, con direccionamiento simple para las instrucciones y los datos. La memoria se direcciona por bloque de 1byte, y los pares de byte se combinan en forma endianness para hacer palabras de 16 bits. El procesador contiene 16 registros de 16 bits. R0 es el contador de programa, R1 es el puntero de pila, R2 es el registro de estado, y R3 es un registro especial denominado generador constante,

que provee acceso a 6 valores constantes utilizados comúnmente, sin requerir el uso de un operando adicional. Los registros desde el R4 hasta el R15 son para uso general.

MAPA DE DIRECCIONES DEL MSP430: La disposición general de las direcciones del MSP430 es: 0x0000–0x0007 Registros para funciones especiales del procesador(Registro para el control de interrupciones) 0x0008–0x00FF Periféricos de 8-bit. Se debe acceder a estos utilizando 8 bits para lectura-escritura. 0x0100–0x01FF Periféricos de 16-bit. Se debe acceder a estos utilizando 16 bits para lectura-escritura. 0x0200–0x09FF Hasta 2048 bytes de Memoria RAM. 0x0C00–0x0FFF 1024 bytes de bootstrap loader ROM (para las versiones que incluyen flash ROM). 0x1000-0x1100 256 bytes de data flash ROM (para las versiones que incluyen flash ROM). 0x1100–0x38FF

Extensión de RAM para modelos de más de 2048 bytes de RAM. (0x1100–0x18FF es una copia de 0x0200–0x09FF) 0x1100–0xFFFF Hasta 60 kilobytes de ROM de programa. el inicio de modelos con ROM más pequeña comienzan en direcciones superiores. Los últimos 16 o 32 bytes son para el vector de interrupción.

FAMILIAS DEL MSP430: MSP430x1xx: Es la familia básica sin pantalla LCD integrada. Son normalmente más pequeños que el de la familia '3xx. MSP430F2xx: Es similar a la familia '1xx, pero opera con aún menor consumo, soporta velocidades de operación de hasta 16Mhz (las otras familias están limitadas a 8Mhz), y son más precisas (± 2%) en la sincronía del reloj, lo que los hace más fáciles de operar sin un cristal externo. MSP430x3xx: Es la familia más antigua de esta serie de microcontroladores. Fue diseñada para instrumentos portátiles con pantalla LCD integrada. Incluye un oscilador (frequency-locked loop) que puede sincronizarlo automáticamente con cristales de baja velocidad (32Khz). Esta familia no soporta memorias EEPROM, solamente ROM y EPROM. Familias posteriores proveyeron solamente soporte flash y ROM. MSP430x4xx: Esta familia es muy similar a la '3xx, también incluye un controlador LCD, pero es mejor y más capaz, y viene en versiones de máscara o flash ROM.

PUERTOS DE ENTRADA-SALIDA (E/S) DE PROPÓSITO GENERAL PxIN :Puerto x de entrada. Este es un registro de solo lectura, y refleja el estado actual del pin. PxOUT: Puerto x de salida. Los valores escritos en este registro de lectura/escritura son extraídos a los pines correspondientes cuando están configurados como salida. PxDIR: Puerto x de dirección de datos. Los bits escritos con un 1 configuran los pines de salida correspondientes. Los bits escritos con 0 configuran los pines para entradas. PxSEL: Puerto x de selección de función. Los bits escritos con 1 configuran los pines correspondientes para ser utilizados por el periférico especializado. Los bits escritos con 0 configuran los pines para uso de propósito general de E/S. El puerto 0 (solamente los modelos '3xx) no se multiplexa con otros periféricos y no tienen un registro P0SEL. PxREN :Puerto x para habilitar resistencia (solamente los modelos '2xx). Los bits en este registro habilitan resistencias en pull-up o pull-down en los correspondientes pines siempre que estén configurados como entradas. El tipo de pull se establece con el bit escrito en el registro PxOUT. PxIES: Puerto x para seleccionar el flanco de interrupción (puertos 0-2 solamente). Selecciona el flanco que causará el bit PxIFG a ser establecido. Cuando el bit de entrada cambia desde la coincidencia con el estado PxIES hacia cuando cambia (es decir cuando un bit en PxIES XOR PxIN cambia desde 0 a 1), el bit correspondiente PxIFG se establece. PxIFG:Puerto x de bandera de interrupción (puertos 0-2 solamente). Se establece siempre que el pin correspondiente hace que el estado cambie a pedido de PxIES. Puede borrarse solo por software. (Puede también establecerse por software.) PxIE :Puerto x de habilitación de interrupción (puertos 0-2 solamente). Cuando este bit y el bit correspondiente PxIFG se establecen, se genera una interrupción.