UNIVERSIDAD TECNOLOGICA NACIONAL FACULTAD REGIONAL HAEDO Departamento de Electrónica
Técnicas Digitales II – Año 2013
UNIVERSIDAD TECNOLOGICA NACIONAL FACULTAD REGIONAL HAEDO Departamento de Electrónica
Cuestiones Administrativas
Cátedra: Técnicas Digitales II
Prof: Fidel SANTOS
JTP: Pablo RIDOLFI
Inscripción en Campus Virtual http://frh.cvg.utn.edu.ar/ http://frh.cvg.utn.edu.ar/ Contraseña: Contraseña: Cortex M3 2013
Aprobación de la materia materia cursada.
UNIVERSIDAD TECNOLOGICA NACIONAL FACULTAD REGIONAL HAEDO Departamento de Electrónica
Cuestiones Administrativas
Cátedra: Técnicas Digitales II
Prof: Fidel SANTOS
JTP: Pablo RIDOLFI
Inscripción en Campus Virtual http://frh.cvg.utn.edu.ar/ http://frh.cvg.utn.edu.ar/ Contraseña: Contraseña: Cortex M3 2013
Aprobación de la materia materia cursada.
UNIVERSIDAD TECNOLOGICA NACIONAL FACULTAD REGIONAL HAEDO Departamento de Electrónica
Cuestiones Administrativas
Evaluaciones tradicionales: 2 (dos) . Las evaluaciones son
escritas práctico - teóricas en las por medio de ejercicios integradores en los que el alumno debe poner en juego el grado de aprehensión de conocimientos para resolver un conjunto de ejercicios de moderada complejidad. El alumno puede consultar manuales y hojas de datos y debe desarrollar programas y circuitos sin errores groseros. Los alumnos tendrán dos posibilidades de recuperar los parciales en el turno diciembre y dos en el turno febrero.
Evaluación práctica: 1 (una). Consiste en un diseño, armado,
puesta en funcionamiento, depuración y documentación completa de un proyecto seleccionado durante el primer cuatrimestre de común acuerdo entre alumnos y la cátedra empleando microcontroladores. microcontroladores. El proyecto debe estar funcionando en la última fecha de final del turno diciembre de año de cursada la materia. La aprobación de de este trabajo práctico es obligatorio para aprobar la materia. Esta evaluación N O se puede recuperar.
UNIVERSIDAD TECNOLOGICA NACIONAL FACULTAD REGIONAL HAEDO Departamento de Electrónica
Objetivos de la materia:
Los alumnos serán capaces de diseñar circuitos con microprocesadores y microcontroladores y sus interfaces con el mundo real. Los alumnos aprenderán a interpretar los requerimientos de un diseño con microprocesadores y/o microcontroladores, aprenderán a elegir los componentes circuitales apropiados, especificarlos para su compra, aprenderán a realizar cronogramas de desarrollo, armado y prueba. Asimismo deberán saber elegir las herramientas (de hardware y software) apropiadas para encarar el desarrollo, depuración y la puesta a punto. También deberán realizar un manual completo del proyecto que incluya: objetivo, teoría de operación, circuitos, programas y técnicas de reparación (troubleshooting). Las actividades (tanto de problemas como de laboratorio o de proyecto) se realizan en forma grupal, lo que involucra la discusión conjunta de las actividades a realizar (defensa de criterios y crítica a los que corresponda) y la distribución de tareas a cada integrante y la armonización y sincronización de los resultados y actividades individuales.
UNIVERSIDAD TECNOLOGICA NACIONAL FACULTAD REGIONAL HAEDO Departamento de Electrónica
Desarrollo del Proyecto Final
Condiciones Generales:
Se deberá presentar como condición obligatoria para la firma de los Trabajos Prácticos de la Asignatura un prototipo funcionando de un proyecto cuyo eje temático esté relacionado con cualquiera de los temas que integran el programa de estudios del Diseño curricular. El proyecto, en principio, puede surgir de la libre elección de los alumnos integrantes del equipo de trabajo, en cuyo caso debe contar con la fundamentación de las razones de la elección a partir de un análisis previo de viabilidad, y así como el mismo grado de complejidad que los propuestos. será tomado de un conjunto de opciones establecidas por los docentes del curso. Para tal fin se trabajará en grupos de no más de cuatro estudiantes. Si durante el transcurso del ciclo lectivo algún integrante del equipo dejase por cualquier motivo de cursar la Asignatura, los restantes miembros del grupo deberán absorber sus responsabilidades. La complejidad del proyecto a elegir, dependerá del grado de experiencia previa con que cuenten todos los integrantes de cada equipo. Esto significa que si bien no se aceptarán proyectos triviales, tampoco es recomendable optar por un proyecto que, independientemente de lo interesante y enriquecedor que resultase su desarrollo, sea de una complejidad tal que impida llevarlo a cabo en los plazos límite establecidos para la entrega del mismo. No obstante, si los alumnos integrantes del equipo luego de una evaluación realista de su experiencia previa en temas relacionados con esta especialidad, y de los medios con que cuentan para llevar a cabo un proyecto de tales características, concluyen en que pueden implementarlo en los plazos previstos, nada impide que lo lleven adelante, pero obviamente esta decisión implicará un riesgo, ya que una vez asumido el compromiso con los docentes, deberán responsabilizarse de finalizarlo. Por lo tanto, se recomienda realizar una evaluación sumamente cuidadosa de tiempos, recursos (fundamentalmente herramientas de desarrollo necesarias), y eventuales dificultades que puedan aparecer durante el desarrollo, para acotar el proyecto seleccionado.
UNIVERSIDAD TECNOLOGICA NACIONAL FACULTAD REGIONAL HAEDO Departamento de Electrónica
Desarrollo del Proyecto Final
Se requerirá una entrega del pre-proyecto, de acuerdo con la guía que se entrega, para el análisis en conjunto con el plantel docente. Durante el calendario Académico se realizarán entregas parciales del proyecto a fin de establecer los puntos de control adecuados por parte de los docentes, de modo de permitir a los alumnos anticipar ajustes y correcciones, además de ser ésta la forma de trabajo con que se encontrarán en su vida profesional. Este cronograma debe ser establecido por el grupo, de acuerdo con la complejidad del proyecto. Cada grupo deberá elaborar una carpeta del proyecto a la que irá incorporando la documentación correspondiente a cada entrega. Se pretende que cada carpeta se vaya nutriendo con los diferentes entregables que se enumerarán a continuación, a medida que se avance en el ciclo de vida del proyecto. Esta documentación deberá estar íntegramente elaborada en PC, con herramientas de software a elección del equipo. Es decir, los documentos elaborados en un procesador de texto, los circuitos en ORCAD o cualquier utilitario de características similares, el layout de las placas en ORCAD PCB, u otros, etc. Dicha carpeta deberá contener:
Una carátula con el Nombre del proyecto, grupo, integrantes (apellido, nombre y número de legajo), más cualquier otro dato que los alumnos consideren oportuno. Una sección por cada entrega relacionada con cada etapa del proyecto, de modo que al final de éste, la carpeta contenga el ciclo completo de desarrollo, permitiendo la comparación de lo conceptualizado originalmente con lo obtenido en la práctica. Una sección Apéndice que contenga las fotocopias de las hojas de datos de todos los dispositivos utilizados en el proyecto, incluyendo chips de lógica menor (TTL), transistores, reguladores de tensión, etc.
UNIVERSIDAD TECNOLOGICA NACIONAL FACULTAD REGIONAL HAEDO Departamento de Electrónica
Desarrollo del Proyecto Final
Finalizado el proyecto se deberá entregar al Profesor del curso, la carpeta completa con toda la documentación del proyecto y un medio magnético con los archivos correspondientes. En dicha documentación deberán estar los programas fuente en forma completa y el circuito completo del hardware con su listado de componentes. En virtud de los objetivos del presente proyecto, y del hecho que, tanto el dictado teórico en clase, las prácticas de laboratorio y las consultas atendidas por los docentes del curso, dan las bases de conocimiento a los alumnos para la ejecución del presente proyecto los derechos intelectuales del mismo quedarán en el Departamento de Electrónica de la UTN. El Departamento de Electrónica seleccionará a su criterio aquellos trabajos que resulten de interés y efectuará de considerarlo adecuado la publicación de los mismos en su página de internet.
UNIVERSIDAD TECNOLOGICA NACIONAL FACULTAD REGIONAL HAEDO Departamento de Electrónica
Cronograma Tentativo mayo
FASES
ETAPAS
I. Iniciación
1. Descripción de Necesidades
HITOS
SEMANA Tareas
2. Planificación del proyecto
HITO 0: Aprobación Anteproyecto
3. Ejecución
HITO 2: Aceptación
3
Definición de las distintas tareas
4
Definición de responsables de cada tarea
ZZ X X
5
Definición de tiempos de entrega
ZZ
6
Análisis de los posibles desvios que pueden introducirse en el proyecto
ZZ
7
Tareas realizadas para evitar los desvios introducidos en el proyecto
agosto
septiembre
octubre
noviembre
diciembre
20 21 22 23
24 25 26 27
28 29 30 31
32 33 34 35
36 37 38 39
X X X X
X X X X
X X X X
X X X X
X X X X
X X X X
X X X X
ZZ
10
Diseño de HW
XX XX XX XX XX XX XX XX
11
Diseño del SW
12
Armado
13
Prueba y Debugging
14
4. Control
HITO 3. Cierre
ZZ ZZ ZZ
Establecimiento de protocolos (comunicaciones, etc) Definición del prototipo a construir y planificacion
15
5. Balance y Cierre
julio
11 12 13 14 15 16 17 18 19
XX
2
9
IV. Cierre
junio
9 10
Definición del alcance del proyecto
8
III. Ejecución y Control
8
1 Formación de los grupos
II. Planificación
7
X X
XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX
Confección de manuales: de fabricación, de puesta en marcha, de usuario Elaboracion de los protocolos de verificacion de funcionamiento y cumplimiento de normas
16
Procedimientos de verificación de funcionamiento y de cumplimiento de normas y especificaciones.
17
Presentación de Informes: de necesidades, de especificación, de alcance, memoria de diseño
18
Cierre del proyecto
X XX X X
ZZ XX XX
ZZ ZZ
ZZ
Nota1 : X significa Trabajo unicamente del Grupo Nota2 : Z significa Trabajo en conjunto con el Ayudante
ZZ
ZZ
ZZ
ZZ
ZZ
ZZ
ZZ
ZZ
ZZ
ZZ
ZZ
ZZ
ZZ
ZZ ZZ
UNIVERSIDAD TECNOLOGICA NACIONAL FACULTAD REGIONAL HAEDO Departamento de Electrónica
Arquitectura general del microprocesador. Historia y proyección.
UNIDAD I – INTRODUCCIÓN
UNIVERSIDAD TECNOLOGICA NACIONAL FACULTAD REGIONAL HAEDO Departamento de Electrónica
Arquitectura general del microprocesador Memoria
Computadora
Programa Datos
CPU Unidad Aritmética y Lógica Unidad de Control
I n t e r f a z d e E n t r a d a y S a l i d a
1 2 P e r i f é r i c o s
n
Mundo Exterior
UNIVERSIDAD TECNOLOGICA NACIONAL FACULTAD REGIONAL HAEDO Departamento de Electrónica
Arquitectura general del microprocesador
UNIVERSIDAD TECNOLOGICA NACIONAL FACULTAD REGIONAL HAEDO Departamento de Electrónica
Procesadores
Procesadores de 8 bits de datos y 16 bits de dirección
Intel 8080.
Intel 8085.
Motorola 6800.
Motorola 6802.
Motorola 6803.
Motorola 6809.
Zilog Z-80.
Rockwell 6502
UNIVERSIDAD TECNOLOGICA NACIONAL FACULTAD REGIONAL HAEDO Departamento de Electrónica
Procesadores
Procesadores de 16 bits de datos
Intel 8086/8088 [1]
Intel 80188/80186.
Intel 80286.
Intel 80386 SX [2]
Motorola 68000.
Motorola 68008.
National 16032.
Zilog Z8000.
UNIVERSIDAD TECNOLOGICA NACIONAL FACULTAD REGIONAL HAEDO Departamento de Electrónica
Procesadores
Procesadores de 32 bits de datos
iAPX 432 (que en 3 circuitos integrados proveía el núcleo del sistema operativo de una computadora IBM 370, actualmente fuera de producción).
Intel 80386 (DX y SL)
Intel 80486 (DX, DX2, DX4 y SX).
Motorola 68020 y 68030.
National 32032.
Intel Pentium, Pentium PRO, Pentium MMX y Pentium II
Motorola Power PC
UNIVERSIDAD TECNOLOGICA NACIONAL FACULTAD REGIONAL HAEDO Departamento de Electrónica
Procesadores
La totalidad de los microprocesadores de 8 bits en su palabra de instrucción, poseen 16 bits en la barra de direcciones, es decir que pueden llegar a direccionar hasta 65536 (64 K) posiciones de memoria. Otros procesadores (8086, 8088) poseen 20 líneas de direcciones, pudiendo de tal manera direccionar 1 Mega posiciones de memoria. Los microprocesadores del tipo 80286 tienen 24 líneas de direcciones pudiendo direccionar los 16 Megabytes. Los microprocesadores de 32 bits de palabra de instrucción disponen también 32 bits de direccionamiento, pudiendo manejar 4 Gigabytes (232 4 1010 = 4.000 Megabytes). ~
UNIVERSIDAD TECNOLOGICA NACIONAL FACULTAD REGIONAL HAEDO Departamento de Electrónica
Procesadores
Microcomputadoras en un solo chip
Intel 8038
Intel 8048.
Intel 8051.
Motorola 6805.
Motorola H9 H11.
µChip PIC
Zilog Z8
UNIVERSIDAD TECNOLOGICA NACIONAL FACULTAD REGIONAL HAEDO Departamento de Electrónica
Algunos de los Primeros Micros 1970
1975
1980
1985 68020
32 bits
PMOS
| NMOS
| HMOS
| CMOS
80386
Motorola 68000
16 bits
Intel 8086
80286
8088 GI PIC1640 MOS T. 6502
8 bits
Zilog Z80 8008
8080 Motorola 6800
4 bits
Intel 8048
8051 6805
Intel 4004 tiempo
68HC11
UNIVERSIDAD TECNOLOGICA NACIONAL FACULTAD REGIONAL HAEDO Departamento de Electrónica
Evolución del microprocesador
1971: Intel 4004. Fue el primer microprocesador comercial.
1972: Intel 8008
1974: Intel 8080, Intel 8085
1975: Signetics 2650, MOS 6502, Motorola 6800
1976: Zilog Z80
1978: Intel 8086, Motorola 68000
1979: Intel 8088
1982: Intel 80286, Motorola 68020
1985: Intel 80386, Motorola 68020, AMD Am386
1987: Motorola 68030
1989: Intel 80486, Motorola 68040, AMD Am486
UNIVERSIDAD TECNOLOGICA NACIONAL FACULTAD REGIONAL HAEDO Departamento de Electrónica
Evolución del microprocesador
1993: Intel Pentium, Motorola 68060, AMD K5, MIPS R10000
1997: Intel Pentium II, AMD K6, PowerPC G3, MIPS R120007
1995: Intel Pentium Pro
1999: Intel Pentium III, AMD K6-2, PowerPC G4
2000: Intel Pentium 4, Intel Itanium 2, AMD Athlon XP, AMD Duron, MIPS R14000
2003: PowerPC G5
2004: Intel Pentium M
2005: Intel Pentium D, Intel Extreme Edition con hyper threading, Intel Core Duo, AMD Athlon 64, AMD Athlon 64 X2, AMD Sempron 128.
2006: Intel Core 2 Duo, Intel Core 2 Extreme, AMD Athlon FX
2007: Intel Core 2 Quad, AMD Quad Core, AMD Quad FX
UNIVERSIDAD TECNOLOGICA NACIONAL FACULTAD REGIONAL HAEDO Departamento de Electrónica
Evolución de los microcontroladores
INTEL 8048,8051
Los microcontroladores 8051 modernos ofrecen muchas mejoras sobre el original. Mejoras comunes incluyen watchdog timers (un temporizador programable que "resetea" el microcontrolador si no se refresca en cierto tiempo), osciladores internos, memoria de programa Flash ROM interna, código de inicialización en ROM, almacenamiento en EEPROM interna, I²C, SPI, USB, generadores PWM, conversores analógicos A/D y D/A, relojes de tiempo real RTC, temporizadores y contadores extra, facilidades de depuración internas, más fuentes de interrupción, modos de bajo consumo, interfaz CAN, etc. Existen varios compiladores de lenguaje C disponibles para el 8051, así como en lenguaje ensamblador . La mayoría añaden extensiones al lenguaje que permiten al programador especificar por ejemplo el tipo de memoria donde se ubicará la variable, especificar manejadores de interrupción, especificar el banco de registros, acceder a instrucciones especiales de manipulación de bits... El predecesor del 8051, el 8048, se usó en el teclado del primer IBM PC, donde convertía pulsaciones de tecla en un stream serie que se envía a la unidad central del ordenador. El 8048 y sus derivados aun se usan actualmente en teclados básicos.
El 8031 fue una versión reducida del Intel 8051 original que no contiene memoria interna.
El 8052 fue una versión mejorada del Intel 8051 original con:
256 bytes de RAM interna, en vez de 128 bytes
8 kB de ROM, en vez de 4 kB
un tercer temporizador de 16-bit
un segundo puerto serie.
UNIVERSIDAD TECNOLOGICA NACIONAL FACULTAD REGIONAL HAEDO Departamento de Electrónica
Evolución de los microcontroladores
MOTOROLA 6805,68HC11,68HC12
La familia Motorola 68HC11 (abreviado HC11 o 6811) es una familia de micro controladores de Motorola, derivada del microprocesador Motorola 6800. Los microcontroladores 68HC11 son más potentes y costosos que los de la familia 68HC05 y se utilizan en múltiples sistemas embebidos. Siguen la Arquitectura de von Neumann, en la que la memoria de programa, de datos y de entrada/salida se direcciona en un único mapa de memoria. Internamente, el conjunto de instrucciones de la familia 68HC11 es compatible con la del Motorola 6801 y el Motorola 6809, con el añadido de un registro. La familia 68HC11 emplea instrucciones de longitud variable y se considera que emplea una arquitectura CISC. Tienen dos acumuladores de ocho bits (A y B), cuenta con un acumulador virtual D, que no es más que la unión de A y B (16 bits), dos registros índice de 16 bits (X e Y), un registro de banderas, un puntero de pila y un contador de programa.
UNIVERSIDAD TECNOLOGICA NACIONAL FACULTAD REGIONAL HAEDO Departamento de Electrónica
Evolución de los microcontroladores
Familia PIC10F20x:
Encapsulados de 6 pines (SOT). Oscilador interno 4MHz
Memoria de programa de 12 bits y datos de 8 bits
Juego de 33 instrucciones
Familia PIC12CXXX/12FXXX:
Encapsulados de 8 pines (DIP ó SOIC)
Instrucciones de 12 ó 14 bits en Memoria de Programa
Juego de 33 ó 35 instrucciones
Modelos con módulos de conversión A/D
Permiten alimentación a baja tensión de hasta 2,5V
UNIVERSIDAD TECNOLOGICA NACIONAL FACULTAD REGIONAL HAEDO Departamento de Electrónica
Evolución de los microcontroladores
Familia PIC16C5X:
Encapsulados de 14, 18, 20 y 28 pines
Instrucciones de 12 bits
Juego de 33 instrucciones
Familia PIC16CXXX/16FXXX + PIC 14000:
Encapsulados desde 18 hasta 68 pines (DIP, SSOP, PLCC, QFP)
Instrucciones de 14 bits en Memoria de Programa
Juego de 35 instrucciones
Gran variedad de módulos integrados
Familia PIC18CXXX/18FXXX:
Encapsulados de 18 a 80 pines
Memoria de Programa de 16 bits
Juego de 77 instrucciones (multiplicación)
UNIVERSIDAD TECNOLOGICA NACIONAL FACULTAD REGIONAL HAEDO Departamento de Electrónica
Funcionamiento
El microprocesador ejecuta instrucciones almacenadas como números binarios organizados secuencialmente en la memoria principal. La ejecución de las instrucciones se puede realizar en varias fases:
Preselecciona (PreFetch): pre-lectura de la instrucción desde la memoria principal.
Selecciona (Fetch): envío de la instrucción al decodificador.
Decodificación (Decode) de la instrucción: determinar qué instrucción es y por tanto qué se debe hacer.
Lectura de operandos (si los hay)
Ejecución (Execute): lanzamiento de las máquinas de estado que llevan a cabo el procesamiento. Escritura (Store) de los resultados en la memoria principal o en los registros.
Cada una de estas fases se realiza en uno o varios ciclos de CPU, dependiendo de la estructura del procesador, y concretamente de su grado de segmentación. La duración de estos ciclos viene determinada por la frecuencia de reloj, y nunca podrá ser inferior al tiempo requerido para realizar la tarea individual (realizada en un solo ciclo) de mayor coste temporal. El microprocesador se conecta a un oscilador, normalmente un cristal de cuarzo capaz de generar pulsos a un ritmo constante, de modo que genera varios ciclos (o pulsos) en un segundo.
UNIVERSIDAD TECNOLOGICA NACIONAL FACULTAD REGIONAL HAEDO Departamento de Electrónica
Ciclo de instrucción
Búsqueda de Instrucción
Decodificación
Almacenar el resultado
Búsqueda de Operandos
Ejecución de la Instrucción
UNIVERSIDAD TECNOLOGICA NACIONAL FACULTAD REGIONAL HAEDO Departamento de Electrónica
Modelos de procesadores Modelo de Von NEWMANN
Modelo de Harvard
UNIVERSIDAD TECNOLOGICA NACIONAL FACULTAD REGIONAL HAEDO Departamento de Electrónica
Cantidad de direcciones en la palabra de instrucción
Palabra de 4 direcciones.
La palabra de instrucción genérica consta de cinco partes (o campos) a saber:
Código de operación, que indica que operación se realizará (suma, resta, comparación, etc).
Dirección donde se halla el primer operando.
Dirección donde se halla el segundo operando.
Dirección donde se almacenará el resultado de la operación.
Dirección donde se deberá ir a busca la próxima instrucción (código de operación).
CÓDIGO DE OPERACIÓN
DIRECCIÓN 1º OPERANDO
DIRECCIÓN 2º OPERANDO
DIRECCIÓN RESULTADO
DIRECCIÓN PRÓXIMA INSTRUCCIÓN
UNIVERSIDAD TECNOLOGICA NACIONAL FACULTAD REGIONAL HAEDO Departamento de Electrónica
Cantidad de direcciones en la palabra de instrucción
Palabra de 3 direcciones. Registro Contador de Programa
CÓDIGO DE OPERACIÓN
DIRECCIÓN 1º OPERANDO
DIRECCIÓN 2º OPERANDO
DIRECCIÓN RESULTADO
IP Ó PC
Palabra de 2 Direcciones.
CÓDIGO DE OPERACIÓN
DIRECCIÓN 1º OPERANDO Y RESULTADO
DIRECCIÓN 2º OPERANDO
IP Ó PC
UNIVERSIDAD TECNOLOGICA NACIONAL FACULTAD REGIONAL HAEDO Departamento de Electrónica
Cantidad de direcciones en la palabra de instrucción
Palabra de 1 Dirección
CÓDIGO DE OPERACIÓN
DIRECCIÓN 2º OPERANDO
ACUMULADOR
IP Ó PC
UNIVERSIDAD TECNOLOGICA NACIONAL FACULTAD REGIONAL HAEDO Departamento de Electrónica
Ciclos de instrucción, máquina y reloj.
Ciclo de instrucción.
Ciclo de máquina.
Llamaremos ciclo de instrucción al conjunto de eventos que deben realizarse para ejecutar una instrucción. Desde el punto de vista de la ejecución, la instrucción es la menor unidad indivisible de un programa.. Esto quiere decir que no puede interrumpirse una instrucción luego que comenzó a ejecutarse. Se divide en dos ciclos denominados ciclos de máquina y ciclos de reloj.
Se define así a toda operación perfectamente definible realizada por el microprocesador. Por ejemplo, serán ciclos de máquina la búsqueda de código de operación, la lectura de memoria o dispositivos de entrada, la escritura de memoria o dispositivos de salida, etc.
Ciclo de reloj (o estado).
Las microcomputadoras, como todo sistema secuencial, se rige por un reloj (o clock) obtenido a partir de un oscilador a cristal. Ese reloj maneja todas las transacciones que realiza el microprocesador (y es el que fija los tiempos para activar los multiplexores internos, habilitar buffers, la carga de los registros, etc). El período de este reloj es la base de tiempo sobre la cual se medirán todas las operaciones del microprocesador. Un ciclo de máquina durará por lo menos uno y en general varios ciclos de reloj (depende del microprocesador).
UNIVERSIDAD TECNOLOGICA NACIONAL FACULTAD REGIONAL HAEDO Departamento de Electrónica
Cronograma
En la figura se ve el diagrama temporal correspondiente a la escritura de una posición de memoria empleando direccionamiento directo. En el primer ciclo de máquina se buscará el código de operación, luego en dos ciclos de máquina consecutivos se leerán los dos bytes correspondientes a la dirección. Finalmente en el cuarto y último ciclo de máquina se procederá a escribir la posición de memoria.
UNIVERSIDAD TECNOLOGICA NACIONAL FACULTAD REGIONAL HAEDO Departamento de Electrónica
PERIFÉRICOS
UNIVERSIDAD TECNOLOGICA NACIONAL FACULTAD REGIONAL HAEDO Departamento de Electrónica
Periféricos
Cuando observamos la organización básica de un microcontrolador, señalamos que dentro de este se ubican un conjunto de periféricos, cuyas salidas están reflejadas en los pines del microcontrolador. A continuación describiremos algunos de los periféricos que con mayor frecuencia encontraremos en los microcontroladores.
UNIVERSIDAD TECNOLOGICA NACIONAL FACULTAD REGIONAL HAEDO Departamento de Electrónica
Entradas y salidas de propósito general
También conocidos como puertos de E/S, generalmente agrupadas en puertos de 8 bits de longitud, permiten leer datos del exterior o escribir en ellos desde el interior del microcontrolador, el destino habitual es el trabajo con dispositivos simples como relés, LED, o cualquier otra cosa que se le ocurra al programador. Algunos puertos de E/S tienen características especiales que le permiten manejar salidas con determinados requerimientos de corriente, o incorporan mecanismos especiales de interrupción para el procesador. Típicamente cualquier pin de E/S puede ser considerada E/S de propósito general, pero como los microcontroladores no pueden tener infinitos pines, ni siquiera todos los pines que queramos, las E/S de propósito general comparten los pines con otros periféricos. Para usar un pin con cualquiera de las características a él asignadas debemos configurarlo mediante los registros destinados a ellos.
UNIVERSIDAD TECNOLOGICA NACIONAL FACULTAD REGIONAL HAEDO Departamento de Electrónica
Temporizadores y contadores
Son circuitos sincrónicos para el conteo de los pulsos que llegan a su para poder conseguir la entrada de reloj. Si la fuente de un gran conteo es el oscilador interno del microcontrolador es común que no tengan un pin asociado, y en este caso trabajan como temporizadores. Por otra parte, cuando la fuente de conteo es externa, entonces tienen asociado un pin configurado como entrada, este es el modo contador. Los temporizadores son uno de los periféricos más habituales en los microcontroladores y se utilizan para muchas tareas, como por ejemplo, la medición de frecuencia, implementación de relojes, para el trabajo de conjunto con otros periféricos que requieren una base estable de tiempo entre otras funcionalidades. Es frecuente que un microcontrolador típico incorpore más de un temporizador/contador e incluso algunos tienen arreglos de contadores. Como veremos más adelante este periférico es un elemento casi imprescindible y es habitual que tengan asociada alguna interrupción. Los tamaños típicos de los registros de conteo son 8 y 16 bits, pudiendo encontrar dispositivos que solo tienen temporizadores de un tamaño o con más frecuencia con ambos tipos de registro de conteo.
UNIVERSIDAD TECNOLOGICA NACIONAL FACULTAD REGIONAL HAEDO Departamento de Electrónica
Conversor analógico/digital
Como es muy frecuente el trabajo con señales analógicas, éstas deben ser convertidas a digital y por ello muchos microcontroladores incorporan un conversor analógico-digital, el cual se utiliza para tomar datos de varias entradas diferentes que se seleccionan mediante un multiplexor. Las resoluciones más frecuentes son 8 y 10 bits, que son suficientes para aplicaciones sencillas. Para aplicaciones en control e instrumentación están disponibles resoluciones de 12bit, 16bit y 24bit6 . También es posible conectar un convertidor externo, en caso de necesidad.
UNIVERSIDAD TECNOLOGICA NACIONAL FACULTAD REGIONAL HAEDO Departamento de Electrónica
PUERTOS DE COMUNICACIÓN
UNIVERSIDAD TECNOLOGICA NACIONAL FACULTAD REGIONAL HAEDO Departamento de Electrónica
Puerto serie
Este periférico está presente en casi cualquier microcontrolador, normalmente en forma de UART (Universal Asynchronous Receiver Transmitter) o USART (Universal Synchronous Asynchronous Receiver Transmitter) dependiendo de si permiten o no el modo sincrónico de comunicación. El destino común de este periférico es la comunicación con otro microcontrolador o con una PC y en la mayoría de los casos hay que agregar circuitos externos para completar la interfaz de comunicación. La forma más común de completar el puerto serie es para comunicarlo con una PC mediante la interfaz EIA232 (más conocida como RS-232), es por ello que muchas personas se refieren a la UART o USART como puerto serie RS-232, pero esto constituye un error, puesto que este periférico se puede utilizar para interconectar dispositivos mediante otros estándares de comunicación. En aplicaciones industriales se utiliza preferiblemente RS-485 por su superior alcance en distancia, velocidad y resistencia al ruido.
UNIVERSIDAD TECNOLOGICA NACIONAL FACULTAD REGIONAL HAEDO Departamento de Electrónica
SPI
Este tipo de periférico se utiliza para comunicar al microcontrolador con otros microcontroladores o con periféricos externos conectados a él, por medio de una interfaz muy sencilla. Hay solo un nodo controlador que permite iniciar cualquier transacción, lo cual es una desventaja en sistemas complejos, pero su sencillez permite el aislamiento galvánico de forma directa por medio de optoacopladores.
UNIVERSIDAD TECNOLOGICA NACIONAL FACULTAD REGIONAL HAEDO Departamento de Electrónica
I2C
Cumple las mismas funciones que el SPI, pero requiere menos señales de comunicación y cualquier nodo puede iniciar una transacción. Es muy utilizado para conectar las tarjetas gráficas de las computadores personales con los monitores, para que estos últimos informen de sus prestaciones y permitir la autoconfiguración del sistema de vídeo.
UNIVERSIDAD TECNOLOGICA NACIONAL FACULTAD REGIONAL HAEDO Departamento de Electrónica
USB
Los microcontroladores son los que han permitido la existencia de este sistema de comunicación. Es un sistema que trabaja por polling (monitorización) de un conjunto de periféricos inteligentes por parte de un maestro que, puede ser normalmente un computador personal. Cada nodo inteligente está gobernado inevitablemente por un microcontrolador.
UNIVERSIDAD TECNOLOGICA NACIONAL FACULTAD REGIONAL HAEDO Departamento de Electrónica
Ethernet
Es el sistema más extendido en el mundo para redes de área local cableadas. Los microcontroladores más poderosos de 32 bits se usan para implementar periféricos lo suficientemente poderosos como para que puedan ser accedidos directamente por la red. Muchos de los enrutadores caseros de pequeñas empresas están construidos en base a un microcontrolador que hace del cerebro del sistema.
UNIVERSIDAD TECNOLOGICA NACIONAL FACULTAD REGIONAL HAEDO Departamento de Electrónica
Can
Este protocolo es del tipo CSMA/CD con tolerancia a elevados voltajes de modo común y orientado al tiempo real. Este protocolo es el estándar mas importante en la industria automotriz (OBD). También se usa como capa física del "field bus" para el control industrial. Otros puertos de comunicación Hay una enorme cantidad de otros buses disponibles para la industria automotriz (linbus) o de medios audiovisuales como el i2s, IEEE 1394.
UNIVERSIDAD TECNOLOGICA NACIONAL FACULTAD REGIONAL HAEDO Departamento de Electrónica
Conversores AD y DA. Comparadores
Comparadores:
Son circuitos analógicos basados en amplificadores operacionales que tienen la característica de comparar dos señales analógicas y dar como salida los niveles lógicos ‘0’ o ‘1’ en dependencia del resultado de la comparación.
Conversores AD
Convierte una señal analógica a digital
Conversores CA
Convierte una señal digital a analógica
UNIVERSIDAD TECNOLOGICA NACIONAL FACULTAD REGIONAL HAEDO Departamento de Electrónica
Modulador de ancho de pulsos
Los PWM (Pulse Width Modulator) son periféricos muy útiles sobre todo para el control de motores, sin embargo hay un grupo de aplicaciones que pueden realizarse con este periférico, dentro de las cuales podemos citar: inversión DC/AC para UPS, conversión digital analógica D/A, control regulado de luz (dimming) entre otras.
UNIVERSIDAD TECNOLOGICA NACIONAL FACULTAD REGIONAL HAEDO Departamento de Electrónica
Memoria de datos no volátil
Muchos microcontroladores han incorporado este tipo de memoria como un periférico más, para el almacenamiento de datos de configuración o de los procesos que se controlan. Esta memoria es independiente de la memoria de datos tipo RAM o la memoria de programas, en la que se almacena el código del programa a ejecutar por el procesador del microcontrolador. Muchos de los microcontroladores PIC, incluyen este tipo de memoria, típicamente en forma de memoria EEPROM, incluso algunos de ellos permiten utilizar parte de la memoria de programas como memoria de datos no volátil, por lo que el procesador tiene la capacidad de escribir en la memoria de programas como si ésta fuese un periférico más.
UNIVERSIDAD TECNOLOGICA NACIONAL FACULTAD REGIONAL HAEDO Departamento de Electrónica
Arquitecturas de Microprocesadores
El núcleo (kernel) es la parte fundamental de un sistema operativo. Es el software responsable de facilitar a los distintos programas acceso seguro al hardware de la computadora. Como hay muchos programas y el acceso al hardware es limitado, el núcleo también se encarga de decidir qué programa podrá hacer uso de un dispositivo de hardware y durante cuánto tiempo. Acceder al hardware directamente puede ser realmente complejo, por lo que los núcleos suelen implementar una serie de abstracciones del hardware. Esto permite esconder la complejidad, y proporciona una interfaz limpia y uniforme al hardware subyacente, lo que facilita su uso para el programador. Se asegura de:
La comunicación entre los programas informáticos y el hardware. Gestión de los distintos programas informáticos (tareas) de una máquina. Gestión del hardware (memoria, procesador, periférico, forma de almacenamiento, etc.)
UNIVERSIDAD TECNOLOGICA NACIONAL FACULTAD REGIONAL HAEDO Departamento de Electrónica
Arquitecturas de Microprocesadores
Firmware o Programación en Firme, es un bloque de instrucciones de programa para propósitos específicos, grabado en una memoria tipo ROM, que establece la lógica de más bajo nivel que controla los circuitos electrónicos de un dispositivo de cualquier tipo. Al estar integrado en la electrónica del dispositivo es en parte hardware, pero también es software, ya que proporciona lógica y se dispone en algún tipo de lenguaje de programación. Funcionalmente, el firmware es el intermediario (interfaz) entre las órdenes externas que recibe el dispositivo y su electrónica, ya que es el encargado de controlar a ésta última para ejecutar correctamente dichas órdenes externas. Encontramos Firmware en memorias ROM de los sistemas de diversos dispositivos periféricos, como en monitores de video, unidades de disco, impresoras, etc., pero también en los propios microprocesadores, chips de memoria principal y en general en cualquier circuito integrado. El programa BIOS de una computadora es un firmware cuyo propósito es activar una máquina desde su encendido y preparar el entorno para la instalación de un Sistema Operativo complejo, así como responder a otros eventos externos (botones de pulsación humana) y al intercambio de órdenes entre distintos componentes de la computadora. En un microprocesador el firmware es el que recibe las instrucciones de los programas y las ejecuta en la compleja circuitería del mismo, emitiendo órdenes a otros dispositivos del sistema.
UNIVERSIDAD TECNOLOGICA NACIONAL FACULTAD REGIONAL HAEDO Departamento de Electrónica
Arquitecturas de Microprocesadores
CISC es un modelo de arquitectura de computadores (Complex Instruction Set Computer). Los microprocesadores CISC tienen un conjunto de instrucciones que se caracteriza por ser muy amplio y permitir operaciones complejas entre operandos situados en la memoria o en los registros internos, en contraposición a la arquitectura RISC. Este tipo de arquitectura dificulta el paralelismo entre instrucciones, por lo que, en la actualidad, la mayoría de los sistemas CISC de alto rendimiento implementan un sistema que convierte dichas instrucciones complejas en varias instrucciones simples del tipo RISC, llamadas generalmente microinstrucciones. Los CISC pertenecen a la primera corriente de construcción de procesadores, antes del desarrollo de los RISC. Ejemplos de ellos son: Motorola 68000, Zilog Z80 y toda la familia Intel x86 usada en la mayoría de las computadoras personales del planeta. Hay que hacer notar, sin embargo que la utilización del término CISC comenzó tras la aparición de los procesadores RISC como nomenclatura despectiva por parte de los defensores/creadores de éstos últimos.
UNIVERSIDAD TECNOLOGICA NACIONAL FACULTAD REGIONAL HAEDO Departamento de Electrónica
Arquitecturas de Microprocesadores
RISC (Reduced Instruction Set Computer), Computadora con Conjunto de Instrucciones Reducido. Es un tipo de microprocesador con las siguientes características fundamentales:
Instrucciones de tamaño fijo y presentadas en un reducido número de formatos.
Sólo las instrucciones de carga y almacenamiento acceden a la memoria por datos.
Además estos procesadores suelen disponer de muchos registros de propósito general. El objetivo de diseñar máquinas con esta arquitectura es posibilitar la segmentación y el paralelismo en la ejecución de instrucciones y reducir los accesos a memoria. Las máquinas RISC protagonizan la tendencia actual de construcción de microprocesadores. PowerPC, DEC Alpha, MIPS, ARM... son ejemplos de algunos de ellos.
UNIVERSIDAD TECNOLOGICA NACIONAL FACULTAD REGIONAL HAEDO Departamento de Electrónica
Arquitecturas de Microprocesadores
RISC es un tipo de diseño de CPU para computadoras que está a favor de conjuntos de instrucciones pequeños y simples que toman menor tiempo para ejecutarse. El tipo de procesador más comúnmente utilizado en equipos de escritorio, el x86, está basado en CISC en lugar de RISC, aunque las versiones más nuevas traducen instrucciones basadas en CISC x86 a instrucciones más simples basadas en RISC para uso interno antes de su ejecución. La idea fue inspirada por el hecho de que muchas de las características que eran incluidas en los diseños tradicionales de CPU para aumentar la velocidad estaban siendo ignoradas por los programas que eran ejecutados en ellas. Además, la velocidad del procesador en relación con la memoria de la computadora que accedía era cada vez más alta. Esto conllevó la aparición de numerosas técnicas para reducir el procesamiento dentro del CPU, así como de reducir el número total de accesos a memoria. La terminología más moderna se refiere a esos diseños como arquitecturas de carga-almacenamiento.
UNIVERSIDAD TECNOLOGICA NACIONAL FACULTAD REGIONAL HAEDO Departamento de Electrónica
Migración de 8 a 32 bits. Características de cada familia.
UNIDAD II – FAMILIAS DE MICROCONTROLADORES
UNIVERSIDAD TECNOLOGICA NACIONAL FACULTAD REGIONAL HAEDO Departamento de Electrónica
Microcontroladores de 32 Bits
UNIVERSIDAD TECNOLOGICA NACIONAL FACULTAD REGIONAL HAEDO Departamento de Electrónica
Agenda
¿Porqué 32 bits?
Microcontrolador vs Microprocesador.
Distintos Core en el mercado.
Aplicaciones.
Freescale
RTOSs
UNIVERSIDAD TECNOLOGICA NACIONAL FACULTAD REGIONAL HAEDO Departamento de Electrónica
Familias de Microcontroladores actuales Empresa
8 bits
16 bits
32 bits
Atmel
AVR (mega y tiny), 89Sxxxx familia similar 8051
SAM7 (ARM7TDMI), SAM3 (ARM CortexM3), SAM9 (ARM926)
Freescale (antes Motorola)
68HC05, 68HC08,68HC11, HCS08
Holtek
HT8
Intel
MCS-48 (familia 8048) MCS51 (familia 8051) 8xC251
MCS96, MXS296
X
National Semiconductor
COP8
x
X
Microchip
Familia 10f2xx Familia 12Cxx Familia PIC24F, PIC24H y 12Fxx, 16Cxx y 16Fxx 18Cxx y dsPIC30FXX,dsPIC33F 18Fxx con motor dsp integrado
PIC32
NXP Semiconductors (antes Philips)
80C51
XA
Cortex-M3, Cortex-M0, ARM7, ARM9
Renesas (antes Hitachi, Mitsubishi y NEC)
78K,H8
H8S,78K0R,R8C,R32C/M RX,V850,SuperH,SH-Mobile,H8SX 32C/M16C
STMicroelectronics
ST 62,ST 7
Texas Instruments
TMS370, MSP430
Zilog
Z8, Z86E02
68HC12, 68HCS12, 68HC 683xx, PowerPC, ColdFire SX12, 68HC16
C2000, Cortex-M3 (ARM) , TMS570 (ARM)
UNIVERSIDAD TECNOLOGICA NACIONAL FACULTAD REGIONAL HAEDO Departamento de Electrónica
¿Porqué 32 bits?
Aumento de las prestaciones.
Permite realizar tareas mas rápido y mejor.
Aumento de la complejidad de las aplicaciones.
Interfaces gráficas.
Interfaces inalambricas.
Distintos tipos de conectividad.
Reducción de los costos.
El uso masivo de este tipo de soluciones a llevado a que los costos estén cada día mas competitivos.
UNIVERSIDAD TECNOLOGICA NACIONAL FACULTAD REGIONAL HAEDO Departamento de Electrónica
Microcontrolador vs Microprocesador
El microprocesador es un circuito integrado digital que puede programarse con una serie de instrucciones, para realizar funciones específicas con los datos. Cuando un microprocesador se conecta a un dispositivo de memoria y se provee de dispositivos de entrada salida, pasa a ser un sistema microprocesador. Un Microcontrolador esta formado por un Microprocesador y el conjunto de dispositivos que normalmente requiere un microprocesador: memoria volátil (calculo temporal), memoria no volátil (donde almacena el programa), entrada y salida.
UNIVERSIDAD TECNOLOGICA NACIONAL FACULTAD REGIONAL HAEDO Departamento de Electrónica
Bonus
Un procesador digital de señales o DSP (sigla en inglés de digital signal processor) es un sistema basado en un microprocesador que posee un juego de instrucciones, un hardware (MAC)y un software optimizados para aplicaciones que requieran operaciones numéricas a muy alta velocidad. Debido a esto es especialmente útil para el procesado y representación de señales analógicas en tiempo real.
UNIVERSIDAD TECNOLOGICA NACIONAL FACULTAD REGIONAL HAEDO Departamento de Electrónica
Distintos CORE
UNIVERSIDAD TECNOLOGICA NACIONAL FACULTAD REGIONAL HAEDO Departamento de Electrónica
Aplicaciones
Aplicaciones de consumo portatiles •
Smartbook
•
E-book
•
Smartphone
•
Reproductores portatiles
•
Navegadores
Home Consumer • •
Telefonos y terminales multimedia. Accesorios para iPod.
Automotriz •
Audio
•
Conectividad y telematica
•
Video y navegación.
32 Bits Industrial
•
Portaretratos digitales.
•
POS/Scanners
•
Electrodomesticos.
•
Seguridad y vigilancia.
•
Interfaces HMI industriales.
•
Healthcare (Electromedicina)
•
Metering (Medidores)
UNIVERSIDAD TECNOLOGICA NACIONAL FACULTAD REGIONAL HAEDO
Herramientas - Software
Departamento de Electrónica
UNIVERSIDAD TECNOLOGICA NACIONAL FACULTAD REGIONAL HAEDO Departamento de Electrónica
RTOS
UNIVERSIDAD TECNOLOGICA NACIONAL FACULTAD REGIONAL HAEDO Departamento de Electrónica
Un poco de teoría
Arquitectura tipo RISC
Arquitectura “Load and Store”
Máquina de 3 direcciones
Ejecución Condicional
Barrel Shifter
Conjunto de instrucciones Thumb
UNIVERSIDAD TECNOLOGICA NACIONAL FACULTAD REGIONAL HAEDO Departamento de Electrónica
Un poco de teoría, Pipeline
En la arquitectura ARM7 el pipeline es de tres etapas.
El pipeline se “vacía” con instrucciones de salto.
Para que una instrucción se ejecute debe pasar por todo el pipeline.
UNIVERSIDAD TECNOLOGICA NACIONAL FACULTAD REGIONAL HAEDO Departamento de Electrónica
Un poco de teoría, Registros
R0 a R13 ortogonales
R15 Program Counter
R14 Link Register
Sólo dos instrucciones operan con la memoria LDM y STR.
LDR r0,[r1,r2]
STR r0,[r1,#0x4]
UNIVERSIDAD TECNOLOGICA NACIONAL FACULTAD REGIONAL HAEDO Departamento de Electrónica
Un poco de teoría, Excepciones
Reset
Undefined Instruction
Software Interrupt
Prefetch Abort
Data Abort.
Interrupt Request
Fast Interrupt Request
UNIVERSIDAD TECNOLOGICA NACIONAL FACULTAD REGIONAL HAEDO Departamento de Electrónica
Un poco de teoría, Excepciones
UNIVERSIDAD TECNOLOGICA NACIONAL FACULTAD REGIONAL HAEDO Departamento de Electrónica
Un poco de teoría, Familias
UNIVERSIDAD TECNOLOGICA NACIONAL FACULTAD REGIONAL HAEDO Departamento de Electrónica
Cores ARM Core
Arquitectura
ARM7TDMI ARMv4T
Características
Cache (I/D)/MMU
3-stage pipeline, Thumb
none
0.94 (ARM) / 0.74 (Thumb)
5-stage pipeline
variable, TCMs, MMU
1.1 DMIPS / MHz
variable, MMU
1.25 DMIPS/MHz
(Von Neumann)
ARM926EJ- ARMv5TEJ S
ARM1136J F-S
ARMv6
MIPS @ MHz
Thumb, Jazelle DBX, Enhanced DSP instructions 8-stage pipeline, SIMD, Thumb, Jazelle DBX, (VFP), Enhanced DSP instructions
UNIVERSIDAD TECNOLOGICA NACIONAL FACULTAD REGIONAL HAEDO Departamento de Electrónica
Cores ARM Core Cortex-M0
Cortex-M3
Cortex-A8
Arquitectura
Características
ARMv6-M
3-stage
(Von Neumann)
Thumb, Thumb-2.
ARMv7-M
3-stage + branch speculation
(Harvard)
Thumb, Thumb-2.
ARMv7-A
Cache (I/D)/MMU
MIPS @ MHz
No cache.
0.9 DMIPS/MHz
no cache, MPU optional.
1.25 DMIPS/MHz
13-stage superscalar pipeline, variable ARM,VFP, NEON,Thumb, (L1+L2), Thumb-2. MMU+Trust Zone
up to 2000 (2.0 DMIPS/MHz in speed from 600 MHz to greater than 1 GHz)
UNIVERSIDAD TECNOLOGICA NACIONAL FACULTAD REGIONAL HAEDO Departamento de Electrónica
ARM Cortex-M0
El núcleo Cortex-M más pequeño y eficiente energéticamente, es la alternativa más reciente de bajo costo a los diseños de 8 y 16 bits. La serie LPC1100L ofrece el mejor nivel de costos y consumo de energía de la industria e incluye la serie LPC1102, el microcontrolador ARM de 32 bits más pequeño del mundo. La serie LPC11C00 incluye el primer microcontrolador CAN y transceptor con controladores CANopen; mientras que la serie LPC11U00 ofrece un rendimiento de USB sólido a bajo precio. La serie LPC1200, la última generación de Cortex-M0 de NXP, proporciona un alto nivel de eficiencia energética e incluye características especiales para el control industrial. Muchos de los dispositivos Cortex-M0 de NXP presentan compatibilidad de pines con los dispositivos Cortex-M3 LPC1300
UNIVERSIDAD TECNOLOGICA NACIONAL FACULTAD REGIONAL HAEDO Departamento de Electrónica
El dispositivo ARM Cortex-M3 de NXP
El primero de los núcleos Cortex-M que ofrece un rendimiento continuo y perfecto, se ha convertido rápidamente en la elección principal para una amplia gama de aplicaciones. El dispositivo LPC1300, una implementación de bajo costo y bajo consumo, cumple las funciones de un dispositivo USB. El dispositivo LPC1700 incorpora periféricos avanzados, como Ethernet, USB 2.0 y CAN 2.0B. El dispositivo LPC1800, el núcleo Cortex-M3 de mayor rendimiento en el mercado, funciona con hasta 150 MHz y ofrece hasta 1 MB de memoria Flash y hasta 200 KB de memoria SRAM.
UNIVERSIDAD TECNOLOGICA NACIONAL FACULTAD REGIONAL HAEDO Departamento de Electrónica
Primeros DSC de doble núcleo en el mundo
La serie LPC4300, la primera familia de controladores de señal digital de doble núcleo (DSC) asimétricos en el mundo, combina las características de alto rendimiento y bajo consumo de los núcleos ARM Cortex-M4 y ARM Cortex-M0 con un conjunto único de periféricos configurables. Esta combinación permite desarrollar rápidamente aplicaciones de DSP y MCU sofisticadas mediante una sola arquitectura y un solo entorno de desarrollo. Si se busca mayor flexibilidad de diseño, la serie LPC4300 ofrece compatibilidad de pines con la serie LPC1800 de Cortex-M3. LPC1102, la primer serie alojada en paquetes Wafer Level Chip Scale Packages (WL-CSP), ofrece una potencia de computación sin precedentes en una placa de circuito impreso (PCB) de apenas 5 mm2. Esta serie fue diseñada para aplicaciones que requieren un diseño de placa ultraminiatura, por lo que ofrece un rendimiento de 32 bits reales (50 MHz) y una configuración de memoria mucho más alta (memoria Flash de 32 bits) que las soluciones tradicionales de 8 y 16 bits.
UNIVERSIDAD TECNOLOGICA NACIONAL FACULTAD REGIONAL HAEDO
Características
Núcleo ARM Cortex-M0 de 50 MHz
Memoria Flash de 32 KB
Memoria SRAM de 8 KB
Periféricos seriales: SPI, UART
Departamento de Electrónica
ADC de 5 canales y 10 bits Dos temporizadores de 32 bits, dos temporizadores de 16 bits, temporizador Systick, WDT
Potencia dinámica más baja, con consumo de energía general bajo
GPIO de alta velocidad
Paquete WL-CSP (2.17 x 2.32 mm, paso de 0.5 mm)
Densidad de código superior frente a los microprocesadores de 8 y 16 bits tradicional Compatibilidad con las herramientas LPCXpresso de bajo costo de NXP
UNIVERSIDAD TECNOLOGICA NACIONAL FACULTAD REGIONAL HAEDO Departamento de Electrónica
LPC1300
Esta serie de productos eficiente en términos energéticos ahorra energía en una amplia gama de aplicaciones. Para simplificar el diseño de los sistemas activados por USB, la serie LPC1340 incluye controladores USB en chip para almacenamiento masivo (DMA) y dispositivos de interfaz humana. Los controladores están incorporados en la memoria ROM, por lo que ahorran entre 5 y 6 KB de código de usuario. Si se busca mayor flexibilidad de diseño, los dispositivos LPC134x ofrecen compatibilidad de pines con la serie LPC11U00 de Cortex-M0.
UNIVERSIDAD TECNOLOGICA NACIONAL FACULTAD REGIONAL HAEDO Departamento de Electrónica
Núcleo ARM Cortex-M3 de hasta 72 MHz
Hasta 32 KB de memoria Flash
Hasta 8 KB de memoria SRAM
Perfiles de potencia en ROM (solo LPC13x)
Controlador de dispositivo USB 2.0 FS con PHY en chip
Controladores basados en ROM que ahorran hasta 6 KB de memoria Flash
Código con certificación USB probado y validado para reducir el riesgo en el desarrollo
Clases de dispositivo compatibles: almacenamiento masivo, dispositivo de interfaz humana
Gestor de arranque USB host sin controladores también en chip
Controlador ROM binario que evita posibles problemas de transferencia al distribuidor de la herramienta Periféricos seriales: I2C Fast-mode Plus, SSP/SPI, UART ADC de 8 canales y 10 bits
Bajo consumo de energía: ~ 200 μA/MHz
GPIO de hasta 42 pines
Programación Flash
Compatibilidad con las herramientas LPCXpresso de bajo costo de NXP
Los dispositivos LPC134x ofrecen compatibilidad de pines con la serie LPC11U00 de CortexM0.
UNIVERSIDAD TECNOLOGICA NACIONAL FACULTAD REGIONAL HAEDO Departamento de Electrónica
LPC1700: MCU completos con USB, Ethernet y LCD
La serie LPC1700 funciona a velocidades de hasta 120 MHz. Cada dispositivo cuenta con 512 KB de memoria Flash, hasta 96 KB de memoria SRAM, hasta 4 KB de EEPROM, conversores A/D de 12 bits y D/A de 10 bits y oscilador interno. La serie también cuenta con periféricos avanzados como Ethernet, dispositivo/OTG/host USB 2.0, controlador LCD y CAN 2.0B.
UNIVERSIDAD TECNOLOGICA NACIONAL FACULTAD REGIONAL HAEDO Departamento de Electrónica
Núcleo ARM Cortex-M3 de hasta 120 MHz
Hasta 512 KB de memoria Flash
Hasta 96 KB de memoria SRAM
Hasta 4 KB de memoria EEPROM
La incorporación de un bus multicapas avanzado ofrece un nivel alto de rendimiento sin obstáculos.
Dirección MAC Ethernet 10/100T con interfaces MII y RMII
Controlador de dispositivo/OTG/host USB 2.0 FS
PWM de control de motor con interfaz para la codificación de cuadratura
Dos controladores CAN 2.0B
Periféricos seriales: hasta tres I2C, hasta tres SSP/SPI, hasta cinco UART y I2S
Periféricos analógicos: ADC de 12 bits, DAC de 10 bits
Otros periféricos: RTC de bajo consumo, oscilador interno de RC preciso
GPIO de hasta 165 pines
Compatibilidad con las herramientas LPCXpresso de bajo costo de NXP
UNIVERSIDAD TECNOLOGICA NACIONAL FACULTAD REGIONAL HAEDO Departamento de Electrónica
LPC1800: USB de alta velocidad y periféricos avanzados
La serie LPC1800, que funciona a velocidades de hasta 150 MHz, es el núcleo ARM Cortex-M3 más rápido del mercado. Estos dispositivos de alto rendimiento presentan periféricos avanzados como Ethernet, dispositivo/OTG/host USB 2.0 de alta velocidad, controlador de LCD y CAN 2.0B, más dos periféricos únicos de NXP: un temporizador configurable según el estado para la generación flexible de formas de onda y una interfaz periférica serial Flash cuádruple (SPIFI) para Flash serial con mapeado de memoria. La arquitectura de la memoria Flash de 256 bits de ancho reduce el consumo de energía al minimizar las búsquedas de memoria y maximizar el rendimiento del procesador de núcleo. La serie LPC1800 ofrece compatibilidad de pin a pin con la serie LPC4300 de Cortex-M4.
UNIVERSIDAD TECNOLOGICA NACIONAL FACULTAD REGIONAL HAEDO Departamento de Electrónica
Núcleo ARM Cortex-M3 de hasta 150 MHz
Hasta 1 MB de memoria Flash de banco dual
Hasta 200 KB de memoria SRAM
Hasta 4 KB de memoria EEPROM
Dirección MAC Ethernet 10/100T con interfaces MII y RMII
Dos interfaces HS USB 2.0 con HS PHY en chip
Dos controladores CAN 2.0B
Controlador de memoria externa
Interfaz periférica serial Flash cuádruple (SPIFI) innovadora
Subsistema de temporizador configurable según estado (SCT)
Descifrado en AES con memorias OTP de seguridad de 128 bits para almacenamiento de claves. Cuatro modos de consumo reducido: reposo, reposo profundo, apagado y apagado profundo
GPIO de hasta 164 pines
Proceso de fuga ultrabaja de 90 nm
Compatibilidad de pines con serie LPC4300 de Cortex-M4
UNIVERSIDAD TECNOLOGICA NACIONAL FACULTAD REGIONAL HAEDO Departamento de Electrónica
LPC4300: primeros DSC de doble núcleo en el mundo
En la serie LPC4300, el procesador Cortex-M4 combina los beneficios que ofrece un microprocesador con características de procesamiento de señal digital de alto rendimiento, como MAC de ciclo único, técnicas de Una Instrucción y Múltiples Datos (SIMD), aritmética de saturación y una unidad de punto flotante. El coprocesador CortexM0 se libera de gran parte del movimiento de datos y de las tareas de manipulación de E/S que pueden reducir el ancho de banda del núcleo Cortex-M4. La arquitectura de la memoria Flash de 256 bits de ancho reduce el consumo de energía al minimizar las búsquedas y al maximizar el rendimiento del procesador de núcleo. La serie LPC4300 ofrece compatibilidad de pines por pines con la serie LPC1800 de Cortex-M3. Arquitectura de núcleo doble de 180 MHz
Núcleo ARM Cortex-M4 con unidad de punto flotante para hardware
Coprocesador asimétrico ARM Cortex-M0
Hasta 1 MB de memoria Flash de doble banco, hasta 264 K B de memoria SRAM, hasta 4 KB de memoria EEPROM
Dirección MAC Ethernet 10/100T con interfaces MII y RMII
Dos interfaces HS USB 2.0 con HS PHY en chip
Controlador de memoria externa
Unidad de protección de memoria
Interfaz periférica serial Flash cuádruple (SPIFI) innovadora
Subsistema de temporizador configurable según estado (SCT)
Descifrado en AES con memorias OTP de seguridad de 128 bits para almacenamiento de claves.
Cuatro modos de consumo reducido: reposo, reposo profundo, apagado y apagado profundo
GPIO de hasta 164 pines, con GPIO serial configurable (SGPIO)
Compatibilidad de pines con serie LPC1800 de Cortex-M3
UNIVERSIDAD TECNOLOGICA NACIONAL FACULTAD REGIONAL HAEDO Departamento de Electrónica
Unidad III – El microprocesador Cortex-M3
Características y funcionalidades.
Fundamentos
Registros
Modos de operación
Controlador de interrupciones vectorizadas anidadas
Mapa de memoria
Bus Interfaz
Unidad de protección de memoria
Conjunto de instrucciones
Interrupciones y excepciones
Soporte de depuración
Resumen de características
Lenguaje Assembler.
El lenguaje C en los microcontroladores.
UNIVERSIDAD TECNOLOGICA NACIONAL FACULTAD REGIONAL HAEDO Departamento de Electrónica
Fundamentos
Cortex M3 es un microprocesador de 32 bits Posee una ruta de acceso de datos de 32 bits, un banco de registros de 32 bits e interfaz de memoria de 32 bits La arquitectura del procesador es Harvard, tiene buses separados de instrucciones y de datos. Esto permite accesos simultáneos de instrucciones y datos; resultando en aumento de rendimiento de procesador. Esta característica se plasma en varios buses interfaz, c/u optimizado para su uso y con capacidad de ser usado simultáneamente Sin embargo, los buses de instrucciones y datos comparten el mismo espacio de la memoria (sistema unificado de memoria). En otras palabras, usted no podrá tener 8 GB de espacio de memoria sólo porque tiene interfaces de bus separadas
UNIVERSIDAD TECNOLOGICA NACIONAL FACULTAD REGIONAL HAEDO Departamento de Electrónica
Fundamentos
Para aplicaciones complejas que requieren prestaciones adicionales del sistema de memoria, Cortex-M3 tiene una MPU opcional, y de ser necesario es posible utilizar memoria caché externa Soporta ambos sistemas de memoria (little-endian & bigendian) El procesador de Cortex-M3 incluye un número de componentes de depuración de internos fijos Estos componentes proporcionan soporte a la operación de depuración y características tales como breakpoints y watchpoints Componentes opcionales proporcionan características de depuración como instruction trace así como diversos tipos de interfaces de depuración
UNIVERSIDAD TECNOLOGICA NACIONAL FACULTAD REGIONAL HAEDO Departamento de Electrónica
El procesador ARM Cortex™-M3
El mercado de los micros es inmenso, con una producción estimada de más de 20.000 millones de unidades para 2010 Una basta matriz de proveedores, dispositivos y arquitecturas hoy compiten en el mercado El requerimiento de micros de mayor rendimiento ha sido impulsado a nivel mundial por las necesidades cambiantes de la industria (hoy se necesitan micros para manejar más tareas sin aumentar la frecuencia o el nivel de consumo de un producto) Además, se incrementa la conectividad de los micros, ya sea por Universal Serial Bus (USB), Ethernet, WiFi, etc. (se incrementa el procesamiento necesario para soportar estos canales de comunicación y periféricos avanzados)
UNIVERSIDAD TECNOLOGICA NACIONAL FACULTAD REGIONAL HAEDO Departamento de Electrónica
El procesador ARM Cortex™-M3
Del mismo modo, la complejidad de la aplicación general va en aumento, impulsado por más sofisticadas interfaces de usuario, requerimientos de multimedia, velocidad del sistema y convergencia de funcionalidades El procesador ARM Cortex-M3, el primero de la generación de procesadores Cortex lanzado por ARM en 2006, fue diseñado principalmente con destino al mercado de micros de 32 bits El procesador ARM Cortex-M3 ofrece un rendimiento excelente en cuanto al bajo número de compuertas e incorpora muchas características nuevas anteriormente sólo disponibles en procesadores de gama alta
UNIVERSIDAD TECNOLOGICA NACIONAL FACULTAD REGIONAL HAEDO Departamento de Electrónica
El procesador ARM Cortex™-M3
Cortex M3 aborda los requisitos para el mercado de procesador embebido de 32 bits de la siguiente manera:
Mayor eficiencia de rendimiento, permitiendo realizar más tareas sin aumentar lo requisitos de frecuencia o potencia en juego Bajo consumo de energía, permitiendo mayor duración de batería, especialmente crítica en los productos portátiles, incluidas las aplicaciones de redes inalámbricas Mejorado determinismo, garantizando que las tareas críticas y las interrupciones son atendidas lo más rápidamente posible (en un número conocido de ciclos) Mejorada densidad de código, garantizando que el código se ajusta incluso a pequeñas porciones de memoria Facilidad de uso, proporcionando más fácil programación y depuración para el creciente número de usuarios de 8 bits y 16 bits que intentan migrar a 32 bits
UNIVERSIDAD TECNOLOGICA NACIONAL FACULTAD REGIONAL HAEDO Departamento de Electrónica
El procesador ARM Cortex™-M3
Soluciones de menor costo, reduciendo los costos de los sistema basado en 32 bits, muy cercano al de los dispositivos de 8 bits y 16 bits, compitiendo en la gama baja (micros de 32 bits a un precio menor al US$1) Gran variedad de herramientas de desarrollo, desde compiladores de bajo costo, software libre, hasta paquetes de desarrollo con amplias prestaciones de diversos proveedores de herramienta de desarrollo Los diseñadores buscan cada vez más a reducir el costo del sistema, a diferencia de los costos de los dispositivos tradicionales. En tal sentido las organizaciones han implementando el agregado de recursos a estos micros, para que un dispositivo único y más poderoso pueda reemplazar a tres o cuatro dispositivos tradicionales de 8 bits
UNIVERSIDAD TECNOLOGICA NACIONAL FACULTAD REGIONAL HAEDO Departamento de Electrónica
El procesador ARM Cortex™-M3
Ahorros de costos adicionales pueden lograrse mediante la mejora de la cantidad de código reutilizable en diversos sistemas Dado que los micros basados en el procesador ARM Cortex-M3 se pueden programar fácilmente usando lenguaje C y se basan en una arquitectura adecuada, el código de la aplicación puede ser portado y reutilizado fácilmente, reduciendo así tanto el tiempo de desarrollo como el costo de las pruebas Es de destacar que el procesador ARM Cortex-M3 no es el primer procesador ARM utilizado para crear micros genéricos El procesador ARM7 ha sido muy exitoso en este mercado, con socios como NXP (Philips), Texas Instruments, Atmel, OKI y muchos otros proveedores de robustos micros de 32 bits (MCU)
UNIVERSIDAD TECNOLOGICA NACIONAL FACULTAD REGIONAL HAEDO Departamento de Electrónica
El procesador ARM Cortex™-M3
Hasta ahora ARM7 es el más ampliamente utilizado procesador de 32 bits de la historia, con más de 1.000 millones de procesadores producidos por año, aplicados en una gran variedad de productos electrónicos, desde teléfonos móviles hasta automotrices Cortex-M3 se basa en el éxito del ARM7 como para ofrecer dispositivos considerablemente más fáciles de programar, depurar y además con mayor capacidad de procesamiento Cortex-M3 introduce además algunas características y tecnologías que cumplan los requisitos específicos de las aplicaciones de micros, tales como interrupciones de noenmascarables para tareas críticas, vectores de interrupción anidados altamente determinista, manipulación atómica de bits y una unidad de protección de memoria (opcional)
UNIVERSIDAD TECNOLOGICA NACIONAL FACULTAD REGIONAL HAEDO Departamento de Electrónica
El procesador ARM Cortex™-M3
Estos factores hacen al procesador Cortex M3 atractivo para usuarios de procesadores ARM existentes, así como para muchos nuevos usuarios que contemplan el uso de MCUs de 32 bits en sus productos El procesador Cortex-M3 vs MCU basada en Cortex-M3
El procesador Cortex-M3 es la Unidad Central de Procesamiento (CPU) de un chip microcontrolador. Se necesitan además algunos otros componentes para completar un microcontrolador basado en el procesador Cortex-M3 Luego de licenciar el procesador Cortex-M3 los fabricantes de chips pueden disponer del procesador Cortex-M3 en sus diseños de silicio con el agregado de memoria, periféricos, entrada/salida (I/O) y otras prestaciones Chips basados en el procesador Cortex-M3 de diferentes fabricantes tendrán características, periféricos, tipos y tamaños de memoria diferentes, nosotros nos enfocaremos en la arquitectura del núcleo (core) del procesador Para obtener más detalles sobre chips específicos deben referirse a la documentación del fabricante del chip en particular
UNIVERSIDAD TECNOLOGICA NACIONAL FACULTAD REGIONAL HAEDO Departamento de Electrónica
El procesador ARM Cortex™-M3
UNIVERSIDAD TECNOLOGICA NACIONAL FACULTAD REGIONAL HAEDO Departamento de Electrónica
ARM® y arquitectura ARM
Una breve historia
Veamos un poco de historia ARM a fin de entender tanto las variantes de procesadores ARM como las versiones de arquitectura ARM se formó en 1990 como Advanced RISC Machines Ltd., una emprendimiento conjunto de Apple Computer, Acorn Computer Group y VLSI Technology. En 1991 ARM introdujo la familia de procesadores de ARM6 y VLSI se convirtió en el licenciatario inicial. Posteriormente, otras compañías, incluyendo Texas Instruments, NEC, Sharp y ST Microelectronics licenciaron diseños de procesador ARM, extendiendo las aplicaciones de procesadores ARM a telefonía móvil, discos rígidos de PC´s, PDA´s sistemas de entretenimiento hogareño y muchos otros productos de consumo Hoy partners de ARM despachan más de 2.000 millones de procesadores ARM al año A diferencia de muchas empresas de semiconductores ARM no fabrica procesadores vende chips directamente. En cambio ARM licencia sus diseños de procesadores para asociados de negocios, entre los cuales se incluyen a la mayoría de las compañías de semiconductores del mundo
UNIVERSIDAD TECNOLOGICA NACIONAL FACULTAD REGIONAL HAEDO Departamento de Electrónica
ARM® y arquitectura ARM
Basado en los diseños de procesador ARM de consumo eficiente y de bajo costo, estos socios crean sus procesadores, microcontroladores y soluciones System-OnChip (SoC) Este modelo de negocio es comúnmente llamado concesión de licencias de Propiedad Intelectual (IP) Además de diseños de procesador, ARM también licencia IPs a nivel de sistema y diversas IPs de software Para apoyar estos productos ARM ha desarrollado una fuerte base de herramientas de desarrollo, hardware y productos de software que permite a sus socios de negocios desarrollar sus propios productos
Versiones de la arquitectura
Durante años ARM ha venido desarrollando nuevos procesadores y bloques de sistema. Estos incluyen al popular procesador ARM7TDMI y más recientemente ARM1176TZ (F)-S que se usa en aplicaciones de altas prestaciones como teléfonos inteligentes
UNIVERSIDAD TECNOLOGICA NACIONAL FACULTAD REGIONAL HAEDO Departamento de Electrónica
ARM® y arquitectura ARM
La evolución de las características y mejoras a los procesadores con el tiempo ha llevado a sucesivas versiones de la arquitectura ARM. Tenga en cuenta que los números de versión de arquitectura son independientes de los nombres de procesador. Por ejemplo, el procesador ARM7TDMI se basa en la arquitectura de ARMv4T (la T es para soporte de instrucción de modo Thumb) La arquitectura de ARMv5E se introdujo con las familias de procesadores de ARM9E, incluidos los procesadores ARM926E-S y ARM946E-S. Esta arquitectura añadió instrucciones para el procesamiento digital de señales “mejorado" (DSP) útiles en aplicaciones multimedia
Con la llegada de la familia de procesadores de ARM11, la arquitectura se extendió a la ARMv6. Las nuevas características de esta arquitectura incluyen prestaciones de Single Instruction –Multiple Data (SIMD). Procesadores basados en la arquitectura de ARMv6 incluyen ARM1136J(F)-S, ARM1156T2(F)-S y ARM1176JZ(F)-S
UNIVERSIDAD TECNOLOGICA NACIONAL FACULTAD REGIONAL HAEDO Departamento de Electrónica
ARM® y arquitectura ARM
Tras la introducción de la familia ARM11, se decidió que muchas de las nuevas tecnologías tales como el set de instrucciones de Thumb-2 optimizado eran sólo aplicables a los mercados de micros de bajo costo y componentes de automoción También se decidió que a pesar que la arquitectura necesaria para ser coherente, desde la más modesta MCU al procesador para aplicaciones de más alto rendimiento, era necesario ofrecer un procesador cuya arquitectura se adaptase mejor a las aplicaciones, permitiendo contar con procesadores muy deterministas, de baja cantidad de compuertas para mercados sensibles al costo, ricos en prestaciones y de alto rendimiento para aplicaciones de alta gama
UNIVERSIDAD TECNOLOGICA NACIONAL FACULTAD REGIONAL HAEDO Departamento de Electrónica
ARM® y arquitectura ARM
En los últimos años, ARM amplió su cartera de productos diversificando el desarrollo de CPU´s, lo que resultó en la versión 7 de la arquitectura o ARMv7. En esta versión, el diseño de la arquitectura se divide en tres perfiles:
Perfil A, diseñado para plataformas de aplicación abierta de alto rendimiento Perfil R, diseñado para sistemas embebidos de alta gama, en las que es necesario el rendimiento en tiempo real Perfil M, diseñado para los sistemas tipo microcontrolador profundamente embebidos
UNIVERSIDAD TECNOLOGICA NACIONAL FACULTAD REGIONAL HAEDO Departamento de Electrónica
ARM® y arquitectura ARM
Echemos un vistazo a estos perfiles con un poco más de detalle:
Perfil A (ARMv7-A): para ejecutar aplicaciones complejas tales como sistemas operativos embebidos de alta gama (OSs), tales como Symbian, Linux y Windows Embedded, que requieren mayor poder de procesamiento, soporte de sistema de memoria virtual con unidades de administración de memoria (MMUs) y opcionalmente soporte Java mejorado y entorno de ejecución de programa seguro. Por ejemplo teléfonos móviles de alta gama y monederos electrónicos p/transacciones financieras Perfil R (ARMv7-R): para procesamiento en tiempo real y de alto rendimiento, dirigidos principalmente al extremo superior del mercado de tiempo real. Aplicaciones, tales como “breaking systems” de alta gama y controladores de disco
rígido, en el que es esencial tanto el alto poder de procesamiento como la alta confiabilidad y donde es muy importante la baja latencia
Perfil M (ARMv7-M): para aplicaciones de bajo costo, donde es importante la eficiencia de procesamiento y facilidad de uso, interrupciones de baja latencia, en los que consumo de energía y costo son críticos, así como aplicaciones de control industrial, incluidos los sistemas de control en tiempo real
UNIVERSIDAD TECNOLOGICA NACIONAL FACULTAD REGIONAL HAEDO Departamento de Electrónica
ARM® y arquitectura ARM
Las familias de procesadores Cortex fueron los primeros productos desarrollados en arquitectura v7. El procesador de Cortex-M3 se basa en uno de los perfiles de la arquitectura v7 llamada ARMv7-M (especificación de arquitectura para micros) Esta presentación se centra en el procesador Cortex-M3, que es sólo uno de la familia de productos Cortex que utilizan la arquitectura ARMv7. Otros procesadores de la familia Cortex incluyen Cortex-A8 (procesador de aplicación) que se basa en el perfil de ARMv7-A o Cortex-R4 (procesador en tiempo real) basada en el perfil de ARMv7-R
UNIVERSIDAD TECNOLOGICA NACIONAL FACULTAD REGIONAL HAEDO Departamento de Electrónica
ARM® y arquitectura ARM
Se da un gran debate sobre si podemos tener un sistema de "tiempo real" mediante procesadores de propósitos generales. Por definición, "tiempo real" significa que el sistema puede producir una respuesta o reacción en un plazo garantizado. En un sistema basado en el procesador ARM, usted puede o no ser capaz de obtener esta respuesta debido a la elección de sistema operativo, la latencia de las interrupciones o el tiempo de acceso de la memoria, tal como si la CPU ejecutase una interrupción de mayor prioridad
UNIVERSIDAD TECNOLOGICA NACIONAL FACULTAD REGIONAL HAEDO Departamento de Electrónica
ARM® y arquitectura ARM
UNIVERSIDAD TECNOLOGICA NACIONAL FACULTAD REGIONAL HAEDO Departamento de Electrónica
ARM® y arquitectura ARM
Los detalles de la arquitectura ARMv7-M se documentan en el ARMv7-M Architecture Application Level Reference Manual (REF 2). Este documento puede accederse en el sitio web de ARM mediante un simple proceso de registro La arquitectura ARMv7-M contiene las siguientes áreas claves:
Modelo del programador
Set de instrucciones
Modelo de memoria
UNIVERSIDAD TECNOLOGICA NACIONAL FACULTAD REGIONAL HAEDO Departamento de Electrónica
ARM® y arquitectura arquitectura ARM
Arquitectura de depuración
Información específica del procesador, tales como los detalles de interfaces y de temporización están documentados en el Cortex-M3 Technical Reference Manual (TRM) (ref1). Este manual puede accederse libremente en el sitio web de ARM. El TRM Cortex-M3 también abarca una serie de detalles de implementación no cubiertos por las especificaciones de la arquitectura, como la lista de instrucciones compatibles, pues algunas de las instrucciones que se tratan en la especificación de la arquitectura ARMv7-M son opcionales en dispositivos dis positivos ARMv7-M.
UNIVERSIDAD TECNOLOGICA NACIONAL FACULTAD REGIONAL HAEDO Departamento de Electrónica
ARM® y arquitectura arquitectura ARM
Nomenclatura del procesador
Tradicionalmente, ARM utiliza un esquema de numeración para nominar a sus procesadores. En un principio (década de los 90s) también utilizó sufijos para indicar las características de los procesadores. Por ejemplo con el procesador ARM, la T indica soporte de instrucción de modo Thumb, D indica depuración por JTAG, M indica multiplicador rápido e I indica i ndica módulo ICE integrado Posteriormente se decidió que estas características deben convertirse en características estándar en futuros procesadores ARM; por lo tanto no es necesario agregar estos sufijos a los nuevos nombres de una familia de procesadores. En su lugar las variaciones en la interfaz de memoria, memoria caché y Tightly Coupled Memory (TCM) han creado un nuevo esquema de nomenclatura de procesador Por ejemplo, procesadores ARM con memoria caché y MMUs ahora reciben el sufijo "26" o "36", mientras que los procesadores con c on unidades de protección de memoria (MPUs) reciben el sufijo "46" (por ejemplo, ARM946E-S). Además, en que se agregan otros sufijos para indicar sintetizable (S) y la tecnología de Jazell e(J). La Tabla 1.1 presenta un resumen de los nombres de procesador.
UNIVERSIDAD TECNOLOGICA NACIONAL FACULTAD REGIONAL HAEDO Departamento de Electrónica
ARM® y arquitectura arquitectura ARM
UNIVERSIDAD TECNOLOGICA NACIONAL FACULTAD REGIONAL HAEDO Departamento de Electrónica
ARM® y arquitectura ARM
Un diseño de núcleo sintetizable está disponible en forma de lenguaje de descripción de hardware (HDL) como Verilog o VHDL y puede ser convertido en un netlist de diseño mediante software de síntesis Con la versión 7 de la arquitectura, lejos de estos complejos esquemas de numeración que necesitan ser decodificadas, ARM ha migrado hacia una nomenclatura coherente para sus familias de procesadores, obviamente con el prefijo Cortex Además de ilustrar la compatibilidad entre procesadores, este sistema elimina la confusión entre la versión de la arquitectura y el número de procesador de la familia (por ejemplo, el popular ARM7TDMI no es un procesador versión v7 pues se basa en la arquitectura v4T)
UNIVERSIDAD TECNOLOGICA NACIONAL FACULTAD REGIONAL HAEDO Departamento de Electrónica
Set de instrucciones
El mejoramiento y ampliación del set de instrucciones usado en los procesadores ARM ha sido clave para la evolución de la arquitectura Históricamente (desde ARM7TDMI) el procesador ARM soporta dos diferentes set de instrucción:
Instrucciones ARM de 32 bits
Instrucciones Thumb® de 16 bits
Durante la ejecución del programa, el procesador puede conmutar dinámicamente entre estado ARM o Thumb para utilizar uno u otro set de instrucciones. El set instrucciones Thumb proporciona sólo un subconjunto de las instrucciones de ARM, proporcionando mayor densidad de código. Es útil para los productos que requieren poca memoria
UNIVERSIDAD TECNOLOGICA NACIONAL FACULTAD REGIONAL HAEDO Departamento de Electrónica
UNIVERSIDAD TECNOLOGICA NACIONAL FACULTAD REGIONAL HAEDO Departamento de Electrónica
Por su alto rendimiento, alta densidad de código y bajo footprint de silicio, el procesador Cortex-M3 es ideal para una amplia variedad de aplicaciones:
Microcontroladores de bajo costo: es ideal para el mercado de micros de bajo costo usados en productos de consumo, desde juguetes a aparatos eléctricos. Mercado altamente competitivo debido a la gran oferta de reconocidos microcontroladores de 8 bits y 16 bits. Su menor consumo de energía, alto rendimiento y la ventaja de su facilidad de uso permiten a los desarrolladores de embebidos migrar a sistemas de 32 bits y desarrollar productos con arquitectura ARM Automoción: Es ideal para la industria automotriz. Por su alta eficacia y rendimiento, así como por su baja latencia de interrupción, lo que permite aplicarlo en sistemas en tiempo real. Admite hasta 240 interrupciones externas vectorizadas, integra un controlador de interrupciones con soportes de interrupciones anidadas y opcionalmente una unidad de protección de memoria, lo que lo hace idealmente útil para aplicaciones de automoción con alto grado de integración y sensibles al costo
UNIVERSIDAD TECNOLOGICA NACIONAL FACULTAD REGIONAL HAEDO Departamento de Electrónica
Thumb®-2 Instruction Set Architecture (ISA)
La ISA de Thumb 2 es un set de instrucciones de altamente eficiente y poderoso que ofrece importantes beneficios en términos de facilidad de uso, tamaño del código y rendimiento El set de instrucciones de Thumb-2 es un superset del anterior set de instrucciones Thumb de 16-bit, con el agregado de instrucciones de 16 y de 32 bits Thumb-2 permite realizar operaciones más complejas, logrando así una mayor eficiencia al evitar la conmutación de estados entre ARM y Thumb La familia Cortex-M3 se orientó a dispositivos de poca memoria como microcontroladores y a la reducción del tamaño del procesador
UNIVERSIDAD TECNOLOGICA NACIONAL FACULTAD REGIONAL HAEDO Departamento de Electrónica
UNIVERSIDAD TECNOLOGICA NACIONAL FACULTAD REGIONAL HAEDO Departamento de Electrónica
Thumb®-2 Instruction Set Architecture (ISA)
Sólo soporta el modo Thumb 2 (y Thumb tradicional) en lugar de utilizar instrucciones de ARM para algunas operaciones, como en los procesadores ARM tradicionales Por ende el procesador de Cortex-M3 no es compatible con los procesadores ARM tradicionales (no se puede ejecutar una imagen binaria para procesadores ARM7 sobre Cortex-M3) Aunque Cortex-M3 puede ejecutar casi todas las instrucciones Thumb 16-bit, incluyendo todas las instrucciones de Thumb de 16 bits soportadas por la familia ARM7, haciendo fácil portar aplicaciones Al soportar operaciones de 16 y 32 bits en el set de instrucciones Thumb-2 no es necesario conmutar al procesador entre estados Thumb (instrucciones de 16 bits) y ARM (instrucciones de 32-bit)
UNIVERSIDAD TECNOLOGICA NACIONAL FACULTAD REGIONAL HAEDO Departamento de Electrónica
Thumb®-2 Instruction Set Architecture (ISA)
En las familias ARM7 o ARM9, se usaba el modo ARM para cálculos complejos, para gran número de operaciones condicionales que necesiten buen rendimiento; mientras que en la familia Cortex-M3 es posible mezclar instrucciones de 32 y 16 bits sin conmutar el estado, logrando código alta densidad y rendimiento sin agregar complejidad Thumb-2 es una característica importantísima de la arquitectura de ARMv7. Comparado con las instrucciones soportadas por la familia ARM7 (ARMv4T) el set de instrucciones del Cortex-M3 incorpora gran número de nuevas prestaciones Por primera vez un procesador ARM posee instrucción división por hard y más de multiplicación, mejorado el rendimiento en operaciones de cálculo. Además soporta accesos a datos no alineados, característica anteriormente sólo disponible en procesadores de gama alta
UNIVERSIDAD TECNOLOGICA NACIONAL FACULTAD REGIONAL HAEDO Departamento de Electrónica
Set de instrucciones
Al actualizar la versión de la arquitectura se agregaron instrucciones ARM y Thumb. Con importantes cambios en el set de instrucciones Thumb. ARM anunció en 2003 el modo Thumb-2, nuevo superset de instrucciones Thumb con instrucciones de 16 y 32 bits Los detalles del set de instrucciones están en el documento: “The ARM Architecture Reference Manual”, que ha sido actualizado para las arquitecturas ARMv5, ARMv6 y ARMv7 Para la arquitectura de ARMv7, debido a su crecimiento en diferentes perfiles, la especificación también se dividió en diferentes documentos Para Cortex-M3, el documento: “ARM v7-M Architecture Application Level Reference Manual (Ref 2)” cubre todos los detalles del set de instrucción
UNIVERSIDAD TECNOLOGICA NACIONAL FACULTAD REGIONAL HAEDO Departamento de Electrónica
Comunicación de datos: El bajo consumo y alta eficiencia, junto con instrucciones Thumb-2 para la manipulación de campo de bits, lo hacen ideal para muchas aplicaciones de comunicaciones, tales como el Bluetooth y ZigBee Control industrial: La simplicidad, rápida respuesta, y fiabilidad son factores claves en este campo de aplicación. Lo sostiene las características de sus interrupciones, la baja latencia de interrupción y características mejoradas de manejo de fallas Productos de consumo: en muchos de los productos de consumo, se utiliza un microprocesador de alto rendimiento (o varios de ellos). El procesador de CortexM3, es un pequeño procesador de alta eficiencia y bajo consumo que permite ejecutar software complejos proveyendo una robusta proporciona protección de memoria.
Ya hay muchos productos en base al procesador Cortex-M3 disponibles en el mercado, incluidos productos de baja gama con precio menor al US $ 1, haciendo al costo de micros ARM igual o menor que el de muchos micros de 8 bits
UNIVERSIDAD TECNOLOGICA NACIONAL FACULTAD REGIONAL HAEDO Departamento de Electrónica
Registros
UNIVERSIDAD TECNOLOGICA NACIONAL FACULTAD REGIONAL HAEDO Departamento de Electrónica
Registros
El procesador de Cortex M3 tiene registros de R0 a R15. R13 (stack pointer) banqueado, con sólo uno visible a la vez R0 a R12: Registros de propósito general de 32 bits para operaciones de datos. Algunas instrucciones de Thumb de 16bit sólo pueden tener acceso a un subconjunto de estos registros (R0 a R7) R13: Stack Pointer, Cortex-M3 tiene dos stack pointers R13 banqueados, con sólo uno visible a la vez:
Main Stack Pointer (MSP): Es el puntero a la pila predeterminado; utilizado por OS Kernel y los manejadores de excepciones Process Stack Pointer (PSP): Utilizados por código de la aplicación de usuario
Los dos bits menos significativos de los stack pointers siempre son 0, lo que significa que siempre están alineado a word (4 bytes)
UNIVERSIDAD TECNOLOGICA NACIONAL FACULTAD REGIONAL HAEDO Departamento de Electrónica
Registros
R14: Link Register, al llama a una subrutina, la dirección de retorno se almacena en este registro R15: Program Counter, almacena dirección de programa en ejecución. Se puede escribir este registro para controlar el flujo del programa Registros especiales: Cortex-M3 además tiene registros especiales:
Program Status Registers (PSRs)
Interrupt Mask Registers (PRIMASK, FAULTMASK, BASEPRI)
Control Register (CONTROL)
Los registros tienen funciones especiales y se pueden acceder sólo por instrucciones especiales. No se pueden utilizar para el procesamiento de datos normal
UNIVERSIDAD TECNOLOGICA NACIONAL FACULTAD REGIONAL HAEDO Departamento de Electrónica
Registros
UNIVERSIDAD TECNOLOGICA NACIONAL FACULTAD REGIONAL HAEDO Departamento de Electrónica
Modos de operación
Cortex M3 tiene dos modos de operación y dos niveles de privilegio
Los modos de operación (Thread y Handler) determinan si el procesador ejecuta un programa normal o un manejador excepciones tal como un manejador de interrupción o de excepciones del sistema Los niveles de privilegio (Privileged y User) proporcionan un mecanismo para salvaguardar los accesos a regiones críticas de memoria brindando un modelo de seguridad básico
UNIVERSIDAD TECNOLOGICA NACIONAL FACULTAD REGIONAL HAEDO Departamento de Electrónica
Modos de operación
Cuando el procesador ejecuta el programa principal (modo Thread), puede hacerlo en estado privilegiado o usuario, pero los manejadores de excepciones sólo pueden hacerlo en estado privilegiado El procesador sale de Reset en modo thread con derechos de nivel privilegiado. En este estado el programa tiene acceso al rango completo de memoria (excepto la prohibida por la configuración de MPU) y puede ejecutar todas las instrucciones soportadas El programa ejecutando en nivel de acceso privilegiado puede cambiar a nivel de acceso de usuario escribiendo el Control Register Cuando una excepción tiene lugar, el procesador vuelve al estado privilegiado y retorna al estado anterior al salir el manejador de excepciones
UNIVERSIDAD TECNOLOGICA NACIONAL FACULTAD REGIONAL HAEDO Departamento de Electrónica
Modos de operación
El programa de usuario no puede cambiar al estado privilegiado escribiendo el Control Register. Puede hacerlo mediante un manejador de excepciones que modifique Control Register para devolver al procesador al nivel de acceso privilegiado retornando al modo Thread
UNIVERSIDAD TECNOLOGICA NACIONAL FACULTAD REGIONAL HAEDO Departamento de Electrónica
Modos de operación
La separación de los niveles de privilegio y usuario mejora la confiabilidad del sistema evitando que registros de configuración de sistema sean accedidos o cambiado por algunos programas no confiables Pudiendo utilizarse los niveles de privilegios para proteger regiones de memoria crítica tales como programas y datos del OS. Por ejemplo con accesos privilegiados generalmente utilizados por el OS Kernel, todas las posiciones de memoria son accesibles (excepto la prohibida por la configuración de MPU) Cuando el OS inicia una aplicación de usuario, es probable que se ejecute en el nivel de acceso de usuario para proteger el sistema de falla debido al fallo de programas de usuario no confiables
UNIVERSIDAD TECNOLOGICA NACIONAL FACULTAD REGIONAL HAEDO Departamento de Electrónica
Controlador de interrupciones vectorizadas vectorizadas anidadas
Cortex M3 incluye un controlador de interrupciones llamado Nested Vectored Interrupt Controller (NVIC), incorporado al núcleo del procesador y ofrece las siguientes características:
Soporte de Interrupciones Anidadas
Soporte de Interrupciones Vectorizadas
Soporte de Cambio Dinámico de Prioridades
Reducción de latencia de interrupción
Enmascaramiento de Interrupciones
El NVIC soporta de interrupciones anidadas. Todas las interrupciones externas y la mayoría de las excepciones del sistema puede ser programada a niveles de prioridad diferentes
UNIVERSIDAD TECNOLOGICA NACIONAL FACULTAD REGIONAL HAEDO Departamento de Electrónica
Controlador de interrupciones vectorizadas vectorizadas anidadas
Cuando se produce una interrupción, el NVIC compara la prioridad de esta interrupción para el nivel de prioridad de ejecución actual. Si la prioridad de la interrupción nueva es más alta que el nivel actual, el manejador de interrupción de la interrupción nueva anulará la tarea de ejecución actual El NVIC soporta interrupciones vectorizadas. La dirección de inicio de la rutina de servicio de una interrupción (ISR) se almacena en una tabla de vectores en memoria No es necesario utilizar software para determinar y saltar a la dirección de de inicio de de la ISR, por ende se tarda menos menos tiempo para procesar un pedido de interrupción
UNIVERSIDAD TECNOLOGICA NACIONAL FACULTAD REGIONAL HAEDO Departamento de Electrónica
Controlador de interrupciones vectorizadas vectorizadas anidadas
El nivel de prioridad de una interrupción puede cambiarse por software en tiempo de ejecución. La activación de la interrupción que están siendo atendida se bloquea hasta haber finalizado su rutina de servicio pudiendo cambiar su prioridad sin riesgo de reingreso accidental Cortex-M3 incluye características avanzadas para reducir la latencia de interrupción. Incluye salvado y recuperación automático del contenido de algunos registros, reduciendo la demora en el cambio de una ISR a otra (encadenamiento en cola) y el manejo de interrupciones de llegada tardía Se puede enmascarar interrupciones y excepciones de sistema en función a su nivel de prioridad o bien por completo mediante los registros de máscara de interrupción BASEPRI, PRIMASK y FAULTMAS (para garantizar que las tareas críticas para el tiempo puedan termina a tiempo sin que se las interrumpa)
UNIVERSIDAD TECNOLOGICA NACIONAL FACULTAD REGIONAL HAEDO Departamento de Electrónica
Mapa de memoria
Cortex M3 tiene un mapa de memoria predefinido de 4 GB dividido en regiones Esto permite que los periféricos integrados, tales como controlador de interrupciones y componentes de depuración, sean accedidos con simples instrucciones de acceso a memoria Por lo tanto, la mayoría de los recursos del sistema son accesibles programando en C El mapa de memoria predefinidas también permite que el procesador de Cortex-M3 ser altamente optimizado para la rápida y fácil integración en diseños System-on-a-Chip (SoC)
UNIVERSIDAD TECNOLOGICA NACIONAL FACULTAD REGIONAL HAEDO Departamento de Electrónica
Mapa de memoria
UNIVERSIDAD TECNOLOGICA NACIONAL FACULTAD REGIONAL HAEDO Departamento de Electrónica
Mapa de memoria
Cortex M3 tiene una estructura de bus interno optimizada para el uso de memoria El diseño permite que estas regiones sean utiliza de forma diferente. Por ejemplo, memoria de datos puede disponerse como región de código y puede ejecutarse código desde una región externa de RAM La región de memoria System Lavel contiene el controlador de interrupciones y los componentes de depuración (en direcciones fijas) Al haber establecido direcciones fijas para estos periféricos, es posible portar muy fácilmente aplicaciones entre diferentes productos Cortex-M3 (hasta de diversos fabricantes)
UNIVERSIDAD TECNOLOGICA NACIONAL FACULTAD REGIONAL HAEDO Departamento de Electrónica
Bus Interface
El procesador Cortex M3 posee varias interfaces de bus que permiten llevar simultáneamente búsqueda de instrucciones y acceso a datos Las interfaces de bus principales son:
Code Memory Buses: Acceso a la región de memoria de código, físicamente consiste en dos buses, I-Code y D-Code (optimizado en la búsqueda de instrucción para lograr a la mejor velocidad de ejecución de instrucciones) SystemBus: Acceso a memoria de datos y periféricos SRAM, periféricos, RAM externa, dispositivos externos y a parte de la región de memoria System Level Private Peripheral Bus: Acceso a parte de la región de memoria System Level dedicada a periféricos privados tales como componentes de depuración
UNIVERSIDAD TECNOLOGICA NACIONAL FACULTAD REGIONAL HAEDO Departamento de Electrónica
Unidad de protección de memoria
Cortex M3 tiene una unidad de protección de memoria opcional (MPU) que permite configurar reglas para el acceso privilegiado y de usuario. Al violar una regla de acceso se genera una excepción de error, es tarea del manejador de excepciones de errores analizar el problema y corregirlo de ser posible El MPU puede utilizarse de diversas formas
Usualmente es configurada por un sistema operativo, permitiendo que los datos utilizados por código privilegiado (OS Kernel) esté protegido de programas de usuario no confiables no confiables También puede utilizarse para generar regiones de memoria de sólo lectura (evitar el borrado accidental de datos), o para aislar regiones de memoria entre diferentes tareas en un sistema operativo multitarea En general, puede ayudar a hacer sistemas embebidos más robustos y confiables
La función MPU es opcional (a tener en cuenta al implementar el SoC)
UNIVERSIDAD TECNOLOGICA NACIONAL FACULTAD REGIONAL HAEDO Departamento de Electrónica
Características y funcionalidades
MPU
NVIC
WIC
Acelerador de Flash
DMA
15 comunicaciones serie
Muy bajo consumo (Múltiples modos)
UNIVERSIDAD TECNOLOGICA NACIONAL FACULTAD REGIONAL HAEDO Departamento de Electrónica
Características Principales
MPU: Permite la protección de zonas de memoria de la acción indeseada de programas NVIC: permite la generación y priorización de interrupciones y minimiza la latencia de las interrupciones. WIC: permite la rápida entrada en ejecución de programa luego de un estado de bajo consumo. Acelerador de flash: Que permite ejecutar el programa sin wait states superando las limitaciones tecnológicas de las memorias Flash. DMA: Muchos dispositivos pueden acceder a realizar transferencias entre sí o con memoria.