You are on page 1of 51

Sesin 4: MPUs/MCUs de 32 bits de Freescale

Agenda para la clase


Familias Flexis aplicaciones. Escalabilidad de las

Arquitecturas M68K y ColdFireV1.

Introduccin a los microcontroladores de 32 bits de Freescale.

Sistemas Embebidos

Ingeniera Electrnica

Universidad de Antioquia

Bibliografa
Antonio Diaz Estrella, et al. Teora y diseo con microcontroladores de Freescale.
Introduccin a los MCUs. Conceptos bsicos.

Manuales de usuario
MC9S08JM60. MCF51JM128. MCF51QE128.

Sistemas Embebidos

Ingeniera Electrnica

Universidad de Antioquia

Antes de comenzar
Metodologa de diseo
HW-COMPONENTES DISEO HARDWARE HARDWARE

Sistemas Embebidos

CONOCIMIENTOS PREVIOS

ESPECIFICACIN

SOFTWARE

IMPLEMENTACIN: CODIS. HW/SW Particionar Hardware/Software Administracin de Eventos. Mltiples tareas, concurrencia. Compilacin, Simulacin. Uso de bajo nivel (si es requerido)

REALIZACIN

SOFTWARE

VALIDACIN Y EVALUACIN: DESEMPEO, CONSUMO DE POTENCIA, SEGURIDAD, CONFIABILIDAD, GUSTO AL CLIENTE

Ingeniera Electrnica

Universidad de Antioquia

Unidad Central de Proceso


Cerebro de los sistemas de cmputo. Encargada de realizar las tareas ms delicadas de un sistema.
Puesta en marcha de perifricos. Control de timing. Flujo de programa. Supervisin de eventos. Notificacin de novedades. Manipulacin de actuadores. Toma de datos de sensores. Recuperacin en caso de fallas. Otras
Ingeniera Electrnica

Sistemas Embebidos

Universidad de Antioquia

Actualmente
Tendencia actual
Inteligencia distribuida. Mltiples CPUs trabajando de manera cooperativa para lograr el funcionamiento total de un sistema. Mltiples arquitecturas para comunicar las distintas CPUs.
NoCs. SoCs. Redes industriales. Buses. TCP/IP.

Computacin heterognea. Explotar lo mejor de cada fabricante.


Sistemas Embebidos Ingeniera Electrnica

Universidad de Antioquia

A continuacin

Familia Flexis de Freescale

M68k y ColdFireV1

Microcontroladores de 32 bits Fresscale

Sistemas Embebidos

Ingeniera Electrnica

Universidad de Antioquia

Freescale Flexis
Flexis se refiere a un conjunto especial de MCUs
Permite escalar las aplicaciones de la manera ms simple y transparente para el desarrollador. Paso de 8 a 32 bits de forma muy sencilla. Tericamente, no se requiere hacer ningn cambio en el programa. Compatibilidad pin a pin entre las diferentes familias Flexis.
MC9S08QE <=> MCF51QE MC9S08JE <=> MCF51JE MC9S08JM <=> MCF51JM MC9S08AC <=> MCF51AC MC9S08MM <=> MCF51MM
Ingeniera Electrnica

Sistemas Embebidos

Universidad de Antioquia

Microcontroladores Flexis
Compatibilidad total entre MCUs de 8 y 32 Bits.
Cuando se requiere mayor prestacin, se puede cambiar el ncleo S08 ColdFire V1.
Registro Acumulador A Registros de Datos D0-D7

15

7 0 Registro ndice H:X H X 8 7 Stack Pointer SP


Contador de Programa PC Registro Cdigos de Condicin CCR 7 0

31
0 31

1615 87 Registros de Direcciones A0-A6


1615 StackPointer SP (A7). 1615 Contador de Programa o PC Solo en el 68000 2423 Registro de Estado CCR 15 87 0

15 15

0 31 0 31

0 0

Sistemas Embebidos

Ingeniera Electrnica

Universidad de Antioquia

Microcontroladores Flexis
Microcontroladores de 8 y 32 Bits de alto rendimiento, pertenecen a la familia S08 y ColdFire.

Sistemas Embebidos

Ingeniera Electrnica

Universidad de Antioquia

Microcontroladores Flexis
Aplicaciones
Dependiendo de la demanda de procesamiento de la aplicacin, se escoge entre S08 y ColdFire V1.

Sistemas Embebidos

Ingeniera Electrnica

Universidad de Antioquia

Microcontroladores Flexis
Caractersticas de esta nueva CPU
Velocidad de CPU de hasta 50MHz de 2.1V a 3.6V. Hasta 20MHz de 1.8V a 2.1V. DemoQE Velocidad de bus de 25Mhz. Mltiples estados de ejecucin: RUN, LPRUN, WAIT, LPWAIT, STOP2 y STOP3.
DemoJM ColdFire V1 32 Bits

S08 8 Bits
Sistemas Embebidos Ingeniera Electrnica

CORE Flexis

Universidad de Antioquia

Microcontroladores Flexis
Principales caractersticas
Compatibilidad pin a pin entre las versiones de 8 y 32 bits. Zero code changes. Escalabilidad
Velocidad de ejecucin. Capacidad de procesamiento. Bus de datos y direcciones ms amplios. Cantidad de memoria. Manejo de excepciones e interrupciones.

Limitantes cuando se realizar rutinas en ensamblador


Diferentes arquitecturas S08 <=> ColdFireV1

Sistemas Embebidos

Ingeniera Electrnica

Universidad de Antioquia

A continuacin

Familia Flexis de Freescale

M68k y ColdFireV1

Microcontroladores de 32 bits Fresscale

Sistemas Embebidos

Ingeniera Electrnica

Universidad de Antioquia

M68k
M68000 fue la primera arquitectura de un procesador de 32 bits que se hizo popular.
Primera versin lanzada en 1979. Llamado as por la cantidad de transistores usados en su primera versin. Competidor serio del x86 en sus comienzos. Padre de la famosa arquitectura m68k. Compatibilidad de los programas desarrollados para esta CPU desde sus inicios hasta la actualidad. Filosofa CISC Von-Newmman. Usado principalmente como controladores de impresoras y consolas de juego.
Sistemas Embebidos Ingeniera Electrnica

Universidad de Antioquia

Usos del 68000


Apple Lisa (1983) Amiga (1985) TI-89 (1998)

Jaguar (1993)

Apple Machintosh (1977)

Sistemas Embebidos

Ingeniera Electrnica

Universidad de Antioquia

M68k y ColdFire
ColdFire es una arquitectura desarrollada por Motorola semiconductors
Diseada con una mayor orientacin a sistemas embebidos. Su conjunto de instrucciones de ensamblador es un subconjunto de las originales del 68000. M68000 es un procesador CISC, mientras que los ColdFire se disean como una variante de RISC.
VL-RISC, instrucciones RISC de longitud variable.

Se restringe la cantidad de memoria accedida por el procesador. Se elimina la unidad de manejo de memoria (MMU).
Sistemas Embebidos Ingeniera Electrnica

Universidad de Antioquia

ColdFire Vx
Los procesadores se presentan en varias ControllerColdFire Continuum Philosophy versiones a saber.
V1: Versin reducida del diseo original para facilitar la migracin desde 8bits. V2: Versin original del ColdFire diseada en 1994, No tiene MMU ni FPU. V3: Versin que incluye una unidad de multiplicacin y suma en un ciclo de reloj (MAC). Usada en Procesamiento de Seales. V4: Versin con MMU y FPU, MAC mejorada. Cuenta con una arquitectura superescalar limitada. V5: Arquitectura totalmente superescalar.
Sistemas Embebidos Ingeniera Electrnica

Universidad de Antioquia

ColdFire V1
Freescale licenci el core de el ColdFireV1
Este puede ser usado como un procesador embebido (softcore) dentro de una FPGA de Altera Licencia gratuita! http://www.altera.com/devices/processor/freescale/coldfi re-v1/m-fre-coldfire-v1.html

Flexis
Esta estrategia de embebida de diseo. Esta fue lanzada en 2007. Marc el gnesis de los ColdFireV1.

ColdFire+
Es una implementacin del ColdFireV1 a 90nm.
Sistemas Embebidos Ingeniera Electrnica

Universidad de Antioquia

Aplicaciones ColdFire V1
Electrnica de consumo
Reproductores de audio de CD e Internet. Telfonos VoIP. NetCams. Equipos de testing.

Electrnica industrial
Sistemas de fabricacin y automatizacin. Controladoras de impresoras. Controles de ingreso/inventarios.

Electrnica mdica
Equipos healthcare. Equipos portables de captura de seales.

Hogar
Lavaplatos, secadoras, refrigeradores.

Sistemas Embebidos

Ingeniera Electrnica

Universidad de Antioquia

ColdFire V1 tools
Herramientas Debugger, Compiladores Software Stacks, Sistemas Operativos

Costoso

Bajo/Mediano Costo

Gratis

Sistemas Embebidos

Ingeniera Electrnica

Universidad de Antioquia

A continuacin

Familia Flexis de Freescale

M68k y ColdFireV1

Microcontroladores de 32 bits Fresscale

Sistemas Embebidos

Ingeniera Electrnica

Universidad de Antioquia

Mapa de Memoria
Los mapas de memoria dependen de cada MCU 0x00_0000 0xC0_0000 en particular
En general, el CFv1 implementa un 0x01_FFFF direcciones de 24 bits lo que supone que puede 0xC0_000F direccionar hasta 16MB.
0x80_0000 Nos concentraremos en 0xFF_8000 FLASH
Rapid espacioGPIO de

RAM El MCU Flexis MCF51JM128. Peripherals 0x80_3FFF La versin de 32 bits del MC9S08JMxx. 0xFF_FFFF Empaquetado de 64 pines LQFP. Los huecos en la memoria corresponden a zonas no implementadas.

Sistemas Embebidos

Ingeniera Electrnica

Universidad de Antioquia

Manejo de memoria
La lectura y escritura de la memoria
Presenta ciertas restricciones en la Flash.

La memoria de perifricos
Tiene tres subregiones
0xFF_8000 0xFF_9800

0xFF_FFC0

0xFF_FFFF

Controlador de Int.

0xFF_807F
Sistemas Embebidos

Pgina directa

Pgina alta
0xFF_987F
Ingeniera Electrnica

Universidad de Antioquia

Organizacin de la memoria
Los MCUs ColdFire
Tienen una organizacin Big-Endian. Recuerde: Byte ms pesado en la direccin ms baja.
Primera palabra en la memoria

MSB

LSB

Sistemas Embebidos

Ingeniera Electrnica

Universidad de Antioquia

Buses internos
Cada regin de memoria
Tiene caractersticas especiales, por lo que se recomienda usar modos de direccionamiento especficos para cada una de ellas. Tarea del compilador.

Por compatibilidad con los MCUs de 8 bits


El MCF51JMxx cuenta con un bus para el manejo de perifricos de 8 bits. Los accesos de 16 bits son serializados a 2 de 8 bits. Los accesos de 32 bits son serializados a 4 de 8 bits.

Sistemas Embebidos

Ingeniera Electrnica

Universidad de Antioquia

Coldfire Core
La arquitectura bsica de un ColdFire est diseada:
Con una unidad de bsqueda de instrucciones llamada Instruction Fetch Ppiline (IFP). Con una unidad de decodificacin y ejecucin de las instrucciones llamada Operand Execution Pipeline (OEP).
Sistemas Embebidos Ingeniera Electrnica

Universidad de Antioquia

ColdFire de Freescale
MCF5xxx
TIMER
Polarizacin

SIM

DRAM

RGPIO

1.8V 5.5V

UART
I2C

Core o CPU ColdFire v1, v2, v3, v4 PLL C/S INT

MAC
DMA

Frecuencia 50 - 162MHz

Mapeo de Memoria

Bus de Datos 32 Lneas D31..D0

Mapeo de Memoria

P1

Bus de Direcciones 32 Lneas A31..A0 (4 Gbytes)

P2

Sistemas Embebidos

Ingeniera Electrnica

Universidad de Antioquia

Modelo de Programacin
Registros de Datos
Nmero? Longitud? Tipos de Datos?
Long. Word. Byte. A un bit!!.
D0 D1 D2 D3 D4 D5 D6 D7 31

Funcin principal?

16 15

87

Almacenar datos y operandos. Usado para efectuar operaciones temporales.

Otras funciones?
Sirve como registro ndice.
Sistemas Embebidos Ingeniera Electrnica

Universidad de Antioquia

Modelo de Programacin
Registros de Direcciones
Nmero? Longitud? Tipos de Datos? A7? USP SSP
A0 A1 A2 A3 A4 A5 A6 A7 31

Funcin principal?

16 15

Almacenar direcciones de memoria para hacer uso de modos de direccionamiento indirecto.

Otras funciones?
Almacenar operandos. Sirve como registro ndice.
Sistemas Embebidos Ingeniera Electrnica

Universidad de Antioquia

Arquitectura CFv1
En su modelo de programacin, los CFv1 poseen
8 Registros de direcciones de 32 bits (A0 A6).

Se puede acceder a
El word ms liviano. Todo el registro (long).

Tericamente
Es posible tener al procesador conectada una memoria de una memoria de hasta 4GB
Restricciones??

El registro A7 es usado como Stack Pointer. En el momento de un reset, como saber a que direccin se inicializa el SP? Los registros apuntadores son usados muy comnmente como Software Stack Pointers
Sistemas Embebidos Ingeniera Electrnica

Universidad de Antioquia

Arquitectura CFv1
Registro Contador de Programa
PC de 32 bits.
Espacio real de direcciones

Tamao mximo del programa para CFv1?

Registro de cdigos de condicin


Implementa las flags de ejecucin del programa en modo usuario. CCR de 8 bits.
Negativo (N), Cero (Z) Acarreo (C), Overflow (V)
Sistemas Embebidos Ingeniera Electrnica

Universidad de Antioquia

Arquitectura CFv1
Registro de estado
SR de 16 bits. Almacena datos relacionados al estado del procesador. Contiene al CCR.
CCR

Trace Supervisor Mask/Interrupt Interrupt Enable Enable State Priority

Sistemas Embebidos

Ingeniera Electrnica

Universidad de Antioquia

Arquitectura CFv1
Vector Base Register (VBR)
Este registro contiene la direccin base de los vectores de atencin a interrupcin.

Los 20 bits ms livianos se encuentran no implementados


Esto obliga a que los vectores comiencen en el primer megabyte de la memoria, en caso de que Base_Address ! = 0 Es posible redirigir los vectores a la RAM.

Es posible reubicar los vectores de interrupcin a mltiplos de 1MB.


Sistemas Embebidos Ingeniera Electrnica

Universidad de Antioquia

Arquitectura CFv1
Registro de configuracin de la CPU (CPUCR)
Ciertas caractersticas propias del hardware del procesador pueden ser habilitadas desde el supervisor con este registro. Los 25 bits ms livianos de este registro no tienen uso y estn reservados.

Enable Enable Reset Reset por por Mask Flash Interrupt Interrupt buffer excepciones excepciones en Habilitar en filtrar Acknowlege Enable, Speculation de perifricos direcciones instrucciones Enable ints en SR[I] Enable
Sistemas Embebidos Ingeniera Electrnica

Universidad de Antioquia

Modos de la CPU
Al heredar del 68000, el ColdFire tiene una caracterstica importante
Posee dos modos de funcionamiento bsicos llamados Usuario y Supervisor.

Como ha de suponerse
El modo Usuario presenta ciertas restricciones en cuanto al acceso a los recursos del procesador. Mientras que el modo supervisor da acceso total para el anlisis de todas las caractersticas del mismo.

La idea es
Permitir a los desarrolladores usar el modelo de programacin supervisado para implementar funcionalidades relacionadas a Sistemas Operativos.
Sistemas Embebidos Ingeniera Electrnica

Universidad de Antioquia

Modos de la CPU
En el modo usuario
El modelo de programacin est restringido a 16 registros de propsito general de 32 bits.
D0 D7, A0 A6, USP.

Registro contador de programa de 32 bits (PC). Registro de cdigos de condicin de 8 bits (CCR).

En el modo supervisor
Registro de estado de 16 bits (SR).
Habilitar interrupciones y permitir ejecucin paso a paso.

Apuntador de pila del supervisor de 32 bits (SSP). 16 registros de propsito general de 32 bits. Registro base de vectores de 32 bits (VBR).
Ubicar los vectores de interrupcin en otras regiones de memoria.

Registro de configuracin de la CPU de 32 bits (CPUCR).


Sistemas Embebidos Ingeniera Electrnica

Universidad de Antioquia

Modos del CFv1


Usuario y Supervisor. La idea de realizar esta distincin radica en que en Registro de estado
modo supervisor se ejecutar todo el cdigo asociado al Habilitar el modo supervisor. sistema operativo y las rutinas de atencin a excepcin. Habilitar interrupciones. Habilitar Trace. Esto es todo el firmware/software asociado a la Registro base de Vectores administracin eficaz y segura de los recursos del sistema. Reubicar las direcciones donde estn los vectores de interrupcin. Lasubicados partes crticas del sistema estn por tanto ubicadas Configuracin de la CPU en los registros que hacen parte del modelo de Habilitar caractersticas propias del programacin del supervisor. funcionamiento interno de bsica la CPUde . los registros de Recordemos la funcionalidad supervisor
Sistemas Embebidos Ingeniera Electrnica

Universidad de Antioquia

Manejo de las pilas


Para la administracin de la pila Conclusiones El supervisor tiene su propio puntero de pila: Supervisor
No hay una diferencia en el hardware Stack Pointer (SSP) en oposicin al puntero de pila del del procesador entre registros A7 y espacio de usuario: Userlos Stack Pointer (USP). OTHER_A7. Que registro dentro del CFv1 acta como puntero de Una vez el MCU arranca, el pila? programador debe inicializar el USP. En el reset se inicializa el puntero Existen dos instrucciones que de el pila. Cul de los dossupervisor punteros se inicializa, el SSP o el USP? Porqu? puede usar para el manejo Como se inicializa este puntero? del punteros de pila del usuario Su contenido en;move el primer move.l Ay,est USP tovector USP (Dir 0 en la memoria flash) move.l USP, Ay ;move from USP Existe un puntero llamado OTHER_A7 if(SR[S] = 1) {A7 = SSP; OTHER_A7 = USP} else {A7 = SSP; OTHER_A7 = SSP}
Sistemas Embebidos Ingeniera Electrnica

Universidad de Antioquia

Modos usuario y supervisor


Para pasar de modo Usuario a Supervisor, se deben presentar las siguientes condiciones
Algn perifrico Reset de la CPU necesita atencin (Excepcin por hardware). Se ha producido algnExcepcin error por parte del programa que se est ejecutando en modo usuario. (Excepcin por software). Modo Modo SR[S] = 1 SR[S] = 0 Supervisor Ambas situaciones, en trminos generales son no Usuario planeadas por el usuario.

Para pasar de modo Supervisor a usuario


Se modifica el estado del SR[S] a cero. Se ejecuta la instruccin RTE (Fin de excepcin).
Sistemas Embebidos Ingeniera Electrnica

Universidad de Antioquia

Excepciones
Una excepcin es
Una condicin de hardware o de software que cambia el normal flujo del programa. Es posible pensar en una excepcin como una interrupcin sncrona o por software. (ej: SWI)

Las excepciones estn relacionadas


Con condiciones especiales del programa que hacen que un procesador ejecute cdigo que normalmente no ejecuta. Se dice que son la primera aproximacin a los para resolver con un procesador tareas delicadas que involucran tiempo real.
Sistemas Embebidos Ingeniera Electrnica

Universidad de Antioquia

Ecosistema de excepciones
Error de acceso.
Se da cuando algn perifrico interno del MCU no responde.

Trace exception.
Se da cada vez que se ejecuta una instruccin del procesador.

Error de direccin.
Se intenta acceder a una direccin de memoria invlida.

Trap #n.
Llamada al sistema. Ingreso al Supervisor. Similar al SWI en los S08.

Instruccin ilegal.
Se intenta ejecutar un OpCode invlido.

Interrupcin.
Excepcin de hardware.

Violacin de privilegio.
Intento de realizar una accin como supervisor sin serlo.
Sistemas Embebidos

Reset.
Excepcin dada cuando se activa alguna de las fuentes de reset del MCU.
Universidad de Antioquia

Ingeniera Electrnica

Excepciones internas
Este tipo de excepciones
NO son enmascarables. Por lo tanto requieren de una rutina especial en el caso de que se generen. Se utiliza una excepcin por defecto para hacer tratamiento de la mayora de estas excepciones (RESET).

Para ello
CPUCR[ARD] = 0, engloba las excepciones de direcciones, de error de acceso, y de retorno de subrutina a una direccin ilegal. CUCR[IRD] = 0, engloba las de instruccin ilegal y las de violacin de privilegio.
Sistemas Embebidos Ingeniera Electrnica

Universidad de Antioquia

Excepciones vs Interrupciones
Con respecto a las interrupciones
Denominadas tambin Excepciones Externas. Generadas por perifricos conectados a la CPU (requieren atencin de la CPU):
Internos: UART, A/D, SCI, TIMERs, I2C Externos: Lneas de IRQ, Teclados,

Bsicamente se trata de una transicin generada en una lnea de IRQ


Interrupt Request.

Diferencia entre una interrupcin y una excepcin?


Sistemas Embebidos Ingeniera Electrnica

Universidad de Antioquia

Controlador de interrupciones
Es un mdulo de los ColdFirev1 (CFI_INTC)
Encargado de la gestin de las interrupciones que puede procesar el MCU. Este mdulo permite poca programabilidad, ocupa un rea mnima de silicio. El nivel de prioridad que ingresa se compara con el contenido del SR[I]
Se atendr la interrupcin si

De mayor a menor prioridad, los niveles de interrupcin estn organizados as: 7-6-5-4-3-2-1-0. Las interrupciones de nivel 7 son no enmascarables.
Las dems son enmascarables.
0x(FF)FF_FFC0 0x(FF)FF_FFFF
Sistemas Embebidos Ingeniera Electrnica

Controlador de Int.
Universidad de Antioquia

Niveles de prioridad
Leyenda

Adems de los 7 niveles de prioridad mscara global

Cada nivel de prioridad cuenta con 9 prioridades dentro de cada nivel (subprioridades). De mayor a menor prioridad, estas se ordenan de la siguiente manera: 7 6 5 4 valor medio 3 2 1- 0. Se dispone entonces de 63 fuentes de interrupcin para los CFv1. Interrupciones Interrupciones no Tanto los niveles de prioridad como las subprioridades reubicables en enmascarables cuantoun a su siguen nivel estrictamente descendente.
ejecucin

Interrupciones forzadas por dados por la nivel: tiles para depuracin

Sistemas Embebidos

Ingeniera Electrnica

Universidad de Antioquia

Manejo de Excepciones
Comparacin entre el manejo de excepciones
S08 ColdFireV1.

Sistemas Embebidos

Ingeniera Electrnica

Universidad de Antioquia

Manejo de Excepciones
Comprende cuatro pasos bsicos en los CFv1.
El procesador hace una copia del SR e ingresa en modo Supervisor, deshabilita el trace.
SR[S,T] = (1,0). Cuando la excepcin es una interrupcin, la mscara global se establece al nivel de la interrupcin que se gener.

Se determina el vector de la excepcin para determinar su fuente.


Para excepciones que no son interrupciones, se determina el vector directamente de la prioridad de la excepcin. Para interrupciones si CPUCR[IAE] = 1 se produce una seal (IACK) por el bus de perifricos para determinar el vector. Si CPUCR[IAE] = 0, se determina el vector directamente de la prioridad de la interrupcin.
Sistemas Embebidos Ingeniera Electrnica

Universidad de Antioquia

Manejo de Excepciones
Comprende cuatro pasos bsicos en los CFv1.
Se hace un proceso de salvar el contexto antes de atender la excepcin.
En que consiste este paso? Que registros considera deben ser guardados en este proceso?

Se calcula la direccin donde se encuentra la primera instruccin de la atencin a la excepcin.


Cmo se hace esto? Se multiplica el nmero de la excepcin por 4 (Porqu?) Se le suma el valor contenido en el registro base de Vectores (Porqu?)

Sistemas Embebidos

Ingeniera Electrnica

Universidad de Antioquia

Sistemas Embebidos

Ingeniera Electrnica

Universidad de Antioquia

Fin de la sesin

You might also like