Vous êtes sur la page 1sur 5

Microcontroladores ARM

Características principales
 Advanced RISC Machines Ltd.
 Compañía inglesa Dedicada al desarrollo de procesadores RISC, software y
tecnologías relacionadas, fundada en 1990 por AppleComputer, Acorn Computer
Group y VLSI Technology.
 Cubre aprox. el 75 % del mercado mundial en microcontroladores RISC
 En la actualidad, ARM Ltd no hace procesadores, solo los diseña y licencia sus
diseños a fabricantes (P. ej: Analog Devices, Atmel, Cirrus Logic, Hyundai, Intel,
Oki, Plilips, Samsung, Sharp, Lucent, 3Comp, HP, IBM, Sony, etc.)
 Se basa en Arquitectura RISC.
 37 registros de 32 bits (16 disponibles)
 6 modos de operación: usr y sys, fiq, irq, svc, abt, sys, und.
 Todas las familias de procesadores ARM comparten el mismo conjunto de
instrucciones
 Casi todas las instrucciones se ejecutan en un ciclo de reloj.
 Tendencia a tener un gran número de registros

Los microcontroladores ARM son de 32 bits. Microcontroladores de 8, 16, 32


bits son prácticamente iguales en lo que se refiere a su funcionamiento. Su
principal diferencia está en la cantidad de información que manejan, pero la
forma de ejecutar instrucciones es prácticamente similar.
Existen 3 clasificaciones de microcontroladores ARM:
 Cortex-M (Microcontroller) Pueden ser usados en aplicaciones típicas de microcontroladores, como
neveras, lavadoras, controles remotos, etc.
 Cortex-R (Real Time) Pueden ser usados en reproductores MP3, controles de motores, robótica, etc.
 Cortex-A (Application) Pueden ser usados con equipos que requieren sistemas operativos, celulares,
tabletas, computadores, etc.
En un microcontrolador típico de 8 bits, el bus de datos es de 8 bits y el bus de direcciones de 16 bits. En el
microcontrolador de 32 bits, tanto el bus de direcciones y de datos son de 32 bits. Mas, por lo demás sigue siendo
igual, es decir, posee una CPU (Unidad Central de Proceso), memoria de programa, memoria RAM y puertos de
entrada y salida. También, la forma de buscar instrucciones en la memoria de programa y ejecutarlas sigue siendo
igual para el programador, aunque en los microcontroladores ARM a nivel de hardware, la búsqueda y ejecución
de instrucciones ha sido optimizado.
Arquitectura básica para un microcontrolador de 8 bits Arquitectura básica de un ARM de 32 bits

En los procesadores ARM (Figura Der.), podemos observar la presencia de un puente (Bridge) en los buses de datos
y direcciones. Esto se hace por que los microcontroladores ARM procesan instrucciones a una gran velocidad y los
periféricos necesitan de una velocidad más baja para funcionar. Así podemos notar que la memoria de programa y
la memoria RAM están conectador directamente al procesador y los periféricos a través del puente.
En los microcontroladores de 8 bits, es normal encontrar memorias de programa del tamaño de 1K, 2K, 4K, 8K,
16K y 32 KBytes. En los microcontroladores de 32 bits es normal encontrar tamaños de memoria de programa de
128K, 256K y 512 Kbytes.
En los microcontroladores de 8 bits, es normal encontrar memorias de datos (RAM), del tamaño de 64, 128, 256
Bytes. En los microcontroladores de 32 bits es normal encontrar tamaños de memoria de datos de 8K, 16K 32K y
64 Kbytes.
Los datos comunes son en hexadecimal para microcontroladores de 8 bits y 32 bits. En microcontroladores de 8
bits, es común que estos datos oscilen entre 0x00 y 0XFF o entre 0x0000 y 0xFFFF. En microcontroladores de 32
bits, es común que estos datos oscilen entre 0x00000000 y 0XFFFFFFFF. Es una cuestión de magnitudes y de
adaptarse al formato hexadecimal de 32 bits que consta de 4 bytes (0x FF FF FF FF).
En microcontroladores de 8 bits, es común que estos datos oscilen entre 0 y 255 o 0 y 65.535. En microcontroladores
de 32 bits, es común que estos datos oscilen entre 0 y 4.294.967.295. Aquí también es una cuestión de magnitudes
y de adaptarse al formato decimal de 32 bits que consta de 4 bytes.En microcontroladores de 8 bits estos registros
son de 8 bits, mientras que, en los microcontroladores de 32 bits, son de 32 bits. Aquí también es una cuestión de
adaptarse a visualizar y leer los registros de 32 bits, en otras palabras, practicar.
La CPU
la CPU para microcontroladores de 8 bits, donde es común tener un acumulador, uno o varios registros auxiliares,
un registro de indexación que normalmente se usa para direccionar datos en forma indirecta, un registro que apunte
a la pila (Stack Pointer), usado principalmente para almacenar las direcciones de retorno cuando se llaman a
subrutinas, un registro contador de programa (PC) y un registro de Estado.
La CPU para microcontroladores de 32 bits, normalmente formada por 16 registros de 32 bits, nombrados de r0
hasta r15 y registros para el estado del programa en ejecución. Los registros r0 hasta r13 son usados para propósito
general, pudiendo ser acumuladores, registro para indexación o direccionamiento indirecto, datos. El r13 es usado
para apuntar a la pila (Stack Pointer). El registro r14 (Link Register) es usado para almacenar la dirección de retorno
cuando se llaman a subrutinas. El registro r15 (Counter Program) es usado como contador de programa. También
posee registro de estado.

MEMORIA
En microcontroladores de 8 bits, las memorias son más
fáciles de manejar por causa de su magnitud pequeña. En
microcontroladores de 32 bits la memoria esta mapeada en
un espacio de 32 bits, es decir de 0x00000000 hasta
0XFFFFFFFF. La memoria de 32 bits está dividida en 8
regiones de 0.5 GBytes (512 MBytes). Los
Microntroladores ARM usan esta división para ubicar las
diferentes memorias y periféricos del microcontrolador.
Así, queda fácil ubicar las regiones donde están ubicadas
las memorias. En la figura de alado podemos observar un
mapa de memoria para un microcontrolador de 32 bits
ARM Cortex-M3, donde la parte más baja del mapa de
memoria es usado para el código (Code), le sigue la memoria RAM interna, los periféricos, la memoria RAM
externa, dispositivos externos, buses de periféricos y un área para uso del fabricante. Aquí también se trata de
práctica para visualizar y entender el mapa de memoria de los microcontroladores de 32 bits.

ARQUITECTURA
La Figura de la Izq. muestra el diagrama en bloque de una
configuración básica de un microcontrolador de 8 bits. En el
diagrama podemos notar, la CPU, la memoria de programa, la
memoria RAM o de datos, los periféricos o entradas y salidas. Los
periféricos más comunes en un microcontrolador de 8 bits son: las
GPIO (General Proposite Input Output) o entradas/salidas de
propósito general, las interrupciones, los timer, el watchdog, ADC
o conversores analógicos para digital.

La Figura de la Der. muestra el diagrama en bloque de una


configuración básica de un microcontrolador de 32 bits. También
posee: la CPU, memoria de programa y de datos, periféricos o
entradas/salidas. Podemos notar que tiene GPIO, Interrupciones,
timers, watchdog, ADC o conversores analógicos para digital,
DAC o conversores digitales para analógico, interfaces I2C, SPI,
UART, USB, CAN, Ethernet.
En la Figura anterior podemos notar la existencia de 2 buses
llamados:
AHB o Bus Avanzado del Alto desempeño (Advanced High-
performance Bus)
APB o Bus Avanzado de Perifericos (Advanced Peripheral Bus)
Como comentado anteriormente, son usados 2 buses por causa
de la velocidad de trabajo de los periféricos, que son mucho más
lentas que la frecuencia de operación de la CPU y las memorias.
Por ejemplo, mientras la CPU y memorias pueden estar
trabajando a una frecuencia de 72 MHz, los periféricos pueden trabajar a 36 MHz. En algunos microcontroladores
ARM, el bus APB es dividido en 2 buses (APB1 y APB2). Esto se hace porque algunos periféricos son más lentos
que otros. Una de las propiedades de los microcontroladores ARM, es que para cada periférico es necesario habilitar
su pulso de clock y su voltaje para que puedan trabajar. Por defecto todos los periféricos están sin voltaje para que
el consumo de corriente del microcontrolador sea lo más bajo posible. El clock del sistema debe de ser habilitado
para cada periférico por una compuerta AND. Sin esta habilitación, las operaciones de lectura y escrita que se hagan
sobre el periférico no tienen ningún efecto.
Ahora ya estamos en capacidad de entender un diagrama de un microcontrolador ARM. La Figura posterior muestra
el diagrama en bloques de un microcontrolador ARM Cortex-M3, específicamente el STM32F103xx el cual es
fabricado por ST. Podemos observar que la frecuencia máxima de bus AHB es de 72MHz. Los buses APB1 y APB2
pueden trabajar a diferentes frecuencias.

Flash Memory Controller (FMC) BITS DE CONFIGURACION DE PROTECCION BCP, OPTION BYTE,
OPTION REGISTER, FUSES

Vous aimerez peut-être aussi