sistemas embebidosfsantiag/embebidos/01_introduccion_se.pdf · inteligentes, algunos periféricos...
Post on 08-Aug-2020
3 Views
Preview:
TRANSCRIPT
¿Qué es un Sistema embebido?
Un sistema embebido (SE) es un sistema electrónico que contiene
elementos de Hardware y Software estrechamente acoplados para
desempeñar una función simple o formar parte de un sistema más
grande.
2
Características de los SE
1. Desempeñan una función simple.
2. Pueden ser parte de un Sistema más grande.
3. No están orientados a ser programados por el usuario.
4. Se espera que trabajen con intervención humana mínima.
5. Poseen una operación reactiva (tiempo real).
6. Fuertemente restringidos.
3
Sistema Tradicional + Nuevas Características
Posibles características:
• Reloj de tiempo real.• Encendido programable.• Auto-apagado.• Análisis de seguridad.• Factores de preparación
seleccionables por el usuario.
+
Microcontroller Unit - MCU
5
Estructura de un SE
Componentes de Hardware:
Infraestructura electrónica.
o CPU
o Memoria
o Sistema de E/S.
Componentes de Software:
Funcionalidad del sistema
o Firmware.
o Sistema operativo
o Programas de aplicación.Vista general de un SE
7
Componentes de Hardware
Unidad central de proceso
o Registros, ALU, CU.
Memoria
o Memoria de Programa
o Memoria de datos
Dispositivos de E/S
o Puertos de comunicación.
o Interfaz de usuario
o Sensores y actuadores
o Administración de potenciaElementos de Hardware de un SE
8
Componentes de Software
Sistema de tareas
o Acciones de usuario
o Determinan la operación de un sistema
Kernel del sistema
o Administra los recursos
o Coordina las tareas
Servicios
o Rutinas con tareas especificas
Estructura de Software en un SE
9
Clasificación de los SE
Pequeñoso Basados en un MCU
o Pocos componentes.
o Alto volumen, bajo costo.
o Tareas simples
o Poco mantenimiento
Distribuidos
o Multi-chip
o Multitarea
o Volumen y costo medio
o Mantenimiento, actualizable
Alto desempeño
o Tarjeta de hardware dedicada.
o Tareas intensivas.
o Basados en RTOS.
o Bajo volumen, alto costo.
o Alto mantenimiento
10
Es un Circuito Integrado con tecnología VLSI que contiene una Unidad Centralde Procesamiento (CPU), memoria para código, memoria para datos, ademásde otros recursos necesarios para el desarrollo de aplicaciones, comotemporizadores, ADC, puertos I/O, etc.
¿Qué es un Microcontrolador?
Un microcontrolador es de hecho una computadora completa situada en unúnico chip.
12
Aunque los microprocesadores y microcontroladores sondispositivos con algunas similitudes, existen diferencias importantesentre ellos:
Microprocesadores y Microcontroladores
• Microprocesadores
• Es una Unidad Central de Procesamiento en un circuito integrado.
• Microcontroladores
• Además de la CPU, contiene: RAM, ROM, interfaz serial, interfaz paralela, manejo de interrupciones, temporizadores, etc. Todo en un circuito integrado.
13
MCU (gama baja) µP
Velocidad de procesamiento
20 MHz ~ GHz
Capacidad de direccionamiento
8 kB (instrucciones)1 kB (datos)
~Terabytes
Tamaño de los datos8 bits
Manejo directo de 1 bit
Palabras de 32 o 64 bits
Limitantes en un Microcontrolador
14
Aplicaciones
• Los microprocesadores son comúnmente usados como CPU en las computadoras.
• También se encuentran en sistemas con procesamiento intensivo, como consolas de juegos o equipo de video de alta definición.
• Además, se encuentran en las SBC (Single Board Computer).
• Generalmente están en sistemas multitareas.
• Los microcontroladores desempeñan actividades orientadas a control.
• Son la base para los Sistemas Embebidos.
• Sistemas con un proceso único o tarea principal bajo ejecución.
• Sus limitaciones no son una restricción para este tipo de aplicaciones.
• Microprocesadores • Microcontroladores
15
Organización de un microcontrolador
Ent/SalDigitales
Bus de Datosde 8 bits
Vcc
Gnd
Oscilador
CPU
Ent/SalAnalógicas
Temporizador/Contador
Perro guardián(Watchdog timer)
Puerto Serie(UART)
OtrosRecursos
Memoriade Programa
Memoriade Datos
16
La Unidad Central de Procesamiento
Administra todas las actividades en el sistema, mediante la configuración y manejode recursos.
Se encarga de interpretar y ejecutar las instrucciones del programa que determinasu comportamiento.
Cada instrucción contiene un código de operación (opcode) y uno o másoperandos sobre los que se realizará la operación. Las instrucciones usualmente seorganizan por grupos e incluyen:
– Aritméticas: suma, resta, producto, división, etc.
– Lógicas: AND, OR, NOT, etc.
– Transferencia de datos.
– Bifurcaciones o saltos (condicionales o incondicionales)
Un grupo de instrucciones para un procesador particular forma su repertorio deinstrucciones.
Una familia de computadoras o de microcontroladores comparte un repertorio deinstrucciones, aunque sus integrantes pueden variar en costo y rendimiento.
17
La Unidad Central de Procesamiento(Visión simplificada)
También conocido como Camino de datos (Data Path)
Unidad de
decodificación y control
ALU
(Unidad Aritmético
Lógica)
REGISTROS
De propósito general
IR
(Instruction Register)
Contiene los bits de la
instrucción bajo ejecución
PC
(Program Counter Register)
Contiene la dirección de la
instrucción bajo ejecución
SP
(Stack Pointer Register)
Contiene la dirección del tope
de la pila de datos
18
CPU
NProgramCounter
OPCODE
OPCODE
InstructionRegister
Clock
Read
Control Bus
AddresBus
DataBus
NN + 1
N - 1
N + 2
Tareas de la CPU1. Captura de una instrucción: El PC contiene la dirección de la
instrucción que se obtendrá de la memoria.
El PC de manera automática se debe preparar para la siguiente instrucción.
19
2) Decodificación: consiste en descifrar el opcode para generar lasseñales de control necesarias, dependiendo del tipo de instrucción.
3) Ejecución: consiste en la habilitación de la ALU para obtener algúnresultado, cargar datos desde memoria, almacenar datos enmemoria, modificar el valor del PC, etcétera (según las señalesgeneradas por el control).
Un programa consiste en una serie de instrucciones combinada de manera lógica para realizar alguna tarea significativa.
El grado en el cual las tareas son realizadas eficiente y correctamente depende en mucho del software, no de qué tan sofisticada sea la CPU.
Tareas de la CPU
20
Tipos de CPU
CISC : Complex Instruction Set Computers
RISC : Reduced Instruction Set Computers
• En las primeras computadoras se buscó que el programador escribiera programas compactos. Consecuencias: hardware complejo y un bajo rendimiento (CISC).
• Para aumentar el rendimiento se simplifica el hardware, las instrucciones hacen tareas simples (RISC)
• RISC: Pocas instrucciones y generalmente del mismo tamaño.
• CISC: Demasiadas instrucciones con diferentes tamaños y formatos, que pueden ocupar uno o varios bytes.◦ La tarea realizada por una instrucción CISC puede requerir de varias instrucciones RISC.
21
La simplicidad de un procesador RISC hace que:◦ Ocupen un espacio en un chip mucho menor del requerido por un
CISC.
◦ Pueden operar a frecuencias más altas de reloj.
La organización de un procesador RISC permite la aplicaciónde técnicas como la segmentación, solapando diferentesinstrucciones en cada etapa del procesador.◦ La capacidad de procesamiento de un RISC es de dos a cuatro veces
mayor que la de un CISC.
Tipos de CPU
22
Sistema de Memoria
• Una computadora (y por lo tanto, también un MCU) debe contar
con memoria de código y memoria para datos.
• Existen 2 modelos o Arquitecturas, de acuerdo con la organización de la memoria:
Arquitectura Von Neumann
ArquitecturaHarvard
23
• La mayoría de MCU utilizan una Arquitectura Harvard.
• La memoria de código (de instrucciones o de programa) almacena lasinstrucciones que forman al programa.
• Para acomodar programas grandes, en algunos microcontroladores,la memoria de código se divide en memoria interna y memoriaexterna.
• La memoria de programa es No Volátil y puede ser del tipo EPROM,EEPROM, Flash, ROM enmascarable u OTP (one-time programmable).
• Para la memoria de datos los microcontroladores pueden contenerRAM o EEPROM, para el uso de variables o de una pila.
• Todos los microcontroladores tienen memoria interna de datos, endiferentes magnitudes, algunos además cuentan con la capacidad deexpansión usando una memoria externa.
Sistema de Memoria
24
Periféricosincorporados
a un MCU
• El circuito de oscilación determina la frecuencia a la que la CPU vacapturando, decodificando y ejecutando instrucciones.
• El oscilador es temporizado por un cristal de cuarzo externo o uncircuito RC (interno o externo).
• El oscilador inicia su operación tan pronto se energiza al sistema.
25
• El temporizador es un registro de n-bits que se incrementaautomáticamente en cada ciclo de reloj (timer) o con eventos externos(counter).
• Sus desbordamientos indican que ha transcurrido un intervalo de tiempoo cierto número de eventos.
• Empleado en tareas periódicas.
Periféricos incorporados
a un MCU
26
• El Watchdog Timer (perro guardián) también es un temporizadorpero con una función especial.
• Sus desbordamientos reinician al procesador (aplican un reset).
• Si se utiliza, en posiciones estratégicas del programa debe incluirseuna instrucción que lo reinicie para evitar que desborde.
• Sirve para terminar con ciclos de ejecución inesperados.
Periféricos incorporados
a un MCU
27
• Los Microcontroladores cuentan con una UART (UniversalAsynchronous Receiver Transceiver), para comunicación serial condispositivos o sistemas externos, bajo protocolos y velocidades detransmisión estándar.
• La comunicación serial puede ser síncrona o asíncrona.
Periféricos incorporados
a un MCU
28
• Los puertos digitales de Entrada/Salida sirven para intercambiar datoscon el mundo exterior, generalmente son de 8 bits.
• Si el puerto es entrada se pueden conectar botones, interruptores,sensores con salida a relevador, etc.
• Si el puerto es salida sirve para el manejo de LEDs, displays de 7segmentos, activación de motores, etc.
Periféricos incorporados
a un MCU
29
• Entradas analógicas: los microcontroladores incorporan ConvertidoresAnalógico a Digital (ADC) o comparadores analógicos. Sin recursosadicionales permiten monitorear parámetros como temperatura,velocidad, humedad, etc.
• Salidas analógicas: No es común que un MCU incluya un ConvertidorDigital a Analógico (DAC) pero, generalmente incluyen salidas conModulación por Ancho de Pulso (PWM), para manejar circuitosanalógicos desde salidas digitales.
Periféricosincorporados
a un MCU
30
• Reloj/Calendario
• Interfaces SPI e I2C
• Puerto USB
• Interfaz JTAG
• Módulos para Control con Encoders y PWM
• Etc.
Periféricosincorporados
a un MCU
31
Organización de un microcontrolador (revisión)
Ent/SalDigitales
Bus de Datosde 8 bits
Vcc
Gnd
Oscilador
CPU
Ent/SalAnalógicas
Temporizador/Contador
Perro guardián(Watchdog timer)
Puerto Serie(UART)
OtrosRecursos
Memoriade Programa
Memoriade Datos
32
32
Clasificación de los MCU
• Pueden clasificarse por la arquitectura del procesador como RISC oCISC.
• Por el tamaño de los datos, se tienen microcontroladores de 8 bits,de 16 bits y hasta de 32 bits.
• Con base en cómo se puede tener acceso a la memoria de código ydatos, se tienen 2 modelos Arquitectura Von Neumann yArquitectura Harvard.
• Por su capacidad de expansión: Un MCU puede tener unaArquitectura Abierta (acondicionado para el uso de memoriaexterna) o una Arquitectura Cerrada.
33
34
Otra clasificación proviene de la forma en que los datos internos sonalmacenados y manipulados por la CPU. Es decir, la forma en como la CPU tieneacceso a los datos y ejecuta cada instrucción. Bajo este esquema, se tienen lossiguientes modelos básicos:
• Pila
• Acumulador
• Registro-Memoria
• Registro-Registro (Carga-Almacenamiento)
Operación: C = A – B A, B y C son variables que se encuentran en memoria.
Pila:
Push APush BSubPop C
Acumulador:
Mov Acc,ASub Acc,BMov C,Acc
Registro-Memoria:
Load Rx, ASub Rx, BStore C, Rx
Registro-Registro:
Load Rx, ALoad Ry, BSub Rx, RyStore C, Rx
Elección de un Microcontrolador
Primera Consideración: Prestaciones del dispositivo.
• Gama baja: Los MCU de 8 y 16 bits están dedicados fundamentalmente atareas de control (electrodomésticos, cabinas telefónicas, tarjetasinteligentes, algunos periféricos de computadoras, etc.).
• Gama media: Los dispositivos de 32 bits se orientan a tareas de controlcon cierto grado de procesamiento (sistemas embebidos automotrices,algunos dispositivos móviles, etc.). También puede utilizarse unmicroprocesador más memoria externa y periféricos.
• Gama alta: En sistemas con procesamiento intensivo (computadoras,videoconsolas, Smartphones, etc.), lo más conveniente es emplearmicroprocesadores de 32 o 64 bits más memoria externa y circuiteríaperiférica.
36
Referente a la tecnología de fabricación, debe considerarse:
• La frecuencia de operación es un factor importante aconsiderar, dado que los dispositivos pueden operar desdekHz a GHz.
• Consumo de energía, algunos dispositivos cuentan conmodos de ahorro de energía que les permiten un consumode algunos micro-Watts.
• Voltaje de alimentación, además de operar con 5 V, algunosMCU pueden trabajar con 3.3 V, 2.5 V o 1.5 V, este aspectoes fundamental si el sistema se alimentará con baterías.
Elección de un Microcontrolador
37
Otros criterios bajo consideración:
• Costo: Hay microcontroladores desde 2 dólares hasta tarjetas deevaluación y desarrollo que cuestan cientos de dólares,
• Herramientas de desarrollo: Muchas veces son gratuitas.
• Experiencia: Resulta conveniente acondicionar un MCUconocido, antes de aprender a usar otro.
• Tiempo de desarrollo: Minimizar para mantener competitividad.
• Compatibilidad: Pocos ajustes en hardware y software paramigrar a otro dispositivo.
Elección de un Microcontrolador
38
top related