Vous êtes sur la page 1sur 36

Circuitos Digitales y

Microcontroladores
2018

Introducción a los Sistemas Embebidos

Ing. José Juárez


Introducción a los Sistemas Embebidos
• Definición de Sistema Embebido* (Embedded System):
Es el nombre genérico que reciben los equipos electrónicos que incluyen un
procesador de datos, pero que a diferencia de una PC, están diseñados para
satisfacer una función específica, como en el caso de un reloj, un reproductor de
MP3, un router wifi, un jostick de Play, o pueden ser componentes de un sistema
de control de un electrodoméstico, de un automóvil, de un avión, etc.

Es un sistema electrónico que está contenido o “embebido” dentro de un equipo


completo que incluye además, por ejemplo, partes mecánicas o
electromecánicas.

*SASE: SIMPOSIO ARGENTINO DE SISTEMAS EMBEBIDOS ( http://www.sase.com.ar )

Marzo 2018
Introducción a los Sistemas Embebidos
• El cerebro de un sistema embebido es típicamente un microprocesador o
microcontrolador, y su diseño está optimizado para reducir su tamaño, el
consumo y costo, y maximizar su confiabilidad y desempeño.

http://www.proyecto-ciaa.com.ar/

• El diseño de sistemas embebidos es un motor clave de la industria y del


desarrollo tecnológico, y es un campo que en los últimos años ha crecido
notablemente en la Argentina.
Marzo 2018
Diferentes Aplicaciones de los S.E.
• Audio & video
• Conectividad (IoT)
• Medicina
• Instrumentación Electrónica
• Control Industrial/Automatización
• Electrónica de consumo
• Industria Aeroespacial
• Industria Automotriz

Por mencionar algunas…

Marzo 2018
Componentes de un Sistema Embebido
• Componentes de Hardware:
• Microprocesador, Microcontrolador, otros...
• Memorias
• Periféricos analógicos y digitales
• Componentes Electrónicos Activos (diodos, transistores) y pasivos
(resistencias, capacitores, inductores)
• Interfaces Eléctricas (conectores)
• Placa de circuito Impreso (PCB)

Computadora
Industrial
Abierta
Argentina

http://www.proyecto-ciaa.com.ar/
Marzo 2018
Componentes de un Sistema Embebido
• Componentes de Software:
• Capa de Manejadores de dispositivos (Drivers)
• Capa de componentes intermedios como pila de protocolos
• Capa de Planificación y ejecución de tareas en tiempo real (RTOS)
• Capa de aplicación de usuario

Firmware

Marzo 2018
Microprocesador (MPU) o Microcontrolador (MCU)

• P(MPU): Unidad de procesamiento de propósito general


• gran capacidad de computo, 16 , 32 y 64 bits, FPU, reloj de GHz,
• múltiples núcleos, con diferentes niveles de memoria cache
• Poseen MMU pero requiere memoria externa (y glue logic para
decodificación),
• sin periféricos I/O integrados,
• Casos: Intel 8086, Intel Pentium, Sun SPARC, Motorola PowerPC, MIPS,
ARM7, ARM9,ARM11, ARM-Cortex A

• C (MCU): Sistema de procesamiento completo destinados a


aplicaciones específicas
• moderada capacidad, 8, 16, 32bits, ALU de punto fijo, reloj <200MHz
• con periféricos I/O integrados en el mismo chip.
• Encapsulados entre 6! y 100 terminales,
• Bajo consumo, bajo costo.
• Casos: Intel 8051, Freescale HC08, Microchip PIC, Atmel AVR, Texas MPS430,
Freescale HC12, Microchip PIC32, Atmel AVR32, ARM-Cortex M.

• En la actualidad esta diferencia se hace cada vez menos notoria en la gama de


arquitecturas de 32bits
Marzo 2018 • MCU 32bits, ALU con FPU, núcleos asimétricos, Arquitecura Superescalar
Microprocesador (MPU) o Microcontrolador (MCU)

MCU

MPU

Marzo 2018
Otras tecnologías utilizadas en S.E.
• ASIC: Application Specific Integrated Circuit
Diseñado específicamente para una aplicación particular (Digital, Analógico, mixto).
Provee la mejor performance pero el costo es muy elevado.
Restringido a producciones de mucho volumen

• DSP/DSC: Digital Signal Processor / Digital Signal Controller


16 o 32 bits, FPU o punto fijo, Instrucciones optimizadas para operaciones
matemáticas , periféricos específicos.
Procesamiento de señales de Audio, Video, comunicaciones…

• FPGA: Field Programmable Gate Array


Circuitos lógicos reconfigurables
Diseños específicos, diseños propietarios (IP)

• SoC: System on Chip


Procesador de 32 o 64bits + FPGA para periféricos
Soluciones específicas de altas prestaciones.
Marzo 2018
CPU (Central Processing Unit)

• Diagrama en Bloques de una CPU

Marzo 2018
Ejecución secuencial de instrucciones
• Supongamos que la ejecución de una instrucción requiere de 5 etapas:
• Fetch (F), Decode (D), Read Registe File (R), Execute (E), Writeback (W)
• La siguiente figura muestra el flujo de ejecución de instrucciones en un
procesador genérico sin pipeline

• El procesador requiere completar la ejecución de una instrucción antes


de proceder con la siguiente
• Casos MCU: Intel 8051, Freescale 08

Marzo 2018
Ejecución de instrucciones con pipeline

• La siguiente figura muestra el flujo de ejecución de instrucciones en


un procesador genérico con pipeline

• El procesador no espera completar la ejecución de una instrucción, si


no que comienza con la siguiente a medida que las etapas van
completando su función ciclo a ciclo
• Casos MCU: Microchip PIC18F y Atmel AVR (2-etapas), ARM cortex M
(3-etapas c/predicción de salto)
Marzo 2018
Arquitectura Superescalar

• La siguiente figura muestra el flujo de ejecución de instrucciones en


un procesador superescalar de 2 vías.

• El procesador ejecuta más de una instrucción por etapa del pipeline.


• Caso MCU: ARM cortex M7
Marzo 2018
Registros de CPU

• CPU Basadas en Acumulador

Acc + Op1  Acc

• Ejemplo: Registros CPU S08

• Otro Ejemplo: Microchip PIC

Marzo 2018
Arquitecturas de CPU
• CPU Basada en Registros

R2 + R3  R3

• Ejemplos:
• Atmel AVR : 32 GPR de 8 bits , 3 registros apuntadores de 16 bits (X,Y,Z)
• ARM cortex-M: hasta 16 GPR de 32 bits

Marzo 2018
CPU: RISC
Reduced Instruction Set Computer

• Pocas instrucciones, Operaciones Simples


• Ejecución en su mayoría en 1 ciclo de reloj
• Longitud de instrucción fija
• Pocos modos de direccionamiento
• Ejecución de instrucciones en Pipeline
• Opera sobre un gran número de registros no especializados (datos o
direcciones)
• Las instrucciones de Load/Store son las únicas que acceden a memoria
• Requiere mayor cantidad de instrucciones para un código determinado
comparado con la arquitectura CISC
• Por esta misma razón el código binario ocupa mayor cantidad de
memoria
• El compilador es menos complejo
• Casos: MIPS, ARM, SUN sparc y MCUs AVR, PIC.
Marzo 2018
CPU: CISC

Complex Instruction Set Computer

• Muchas Instrucciones , Operaciones Complejas


• Ejecución en varios ciclos de reloj
• Longitud de instrucción variable
• Gran numero de modos de direccionamiento
• Opera sobre un número acotado de registros
• Además de las instrucciones de Load/Store, posee otras instrucciones que
acceden a memoria
• Requiere menor cantidad de instrucciones para un código determinado
comparado con la arquitectura RISC (menos memoria)
• Requiere compiladores mas complejos
• Casos: Intel x86, Freescale Power PC, Coldfire, MC6800 y MCU 8051, HC08.

Marzo 2018
Estructura de Buses
• Bus de Direcciones: Controlado por la CPU para direccionar los demás
subsistemas. Es unidireccional. El tamaño determina la cantidad de memoria
direccionable: N bits2N, direcciones.
• La mayoría de los MCU de 8 o 16 bits poseen bus de direcciones de 16 bits lo
que permite direccionar 65536=64KB o 64KiB posiciones de memoria distintas.
Caso del HCS08 (evolución del 6800) o el MSP430 de Texas
• Los MCU de 32 bits poseen bus de direcciones y datos de 32 bits con lo que es
posible direccionar hasta 4GB.
• En su gran mayoría, los MCU no poseen Unidad de manejo de Memoria (MMU)
y tratan a todo el espacio direccionable como una única entidad. Si embargo, la
familia HCS12 permite direccionar hasta 8MB mediante MMU y paginado.
• La ausencia de páginas o bancos de memoria hace a las arquitecturas más
simples de usar.

• Bus de Datos: comunicación paralela entre los subsistemas y la CPU. Es


bidireccional. Está definido por la capacidad de operación de la ALU y la
memoria de datos.

• Bus de Control: líneas de control para la comunicación y el acceso a los


subsistemas. Puede ser unidireccional o bidireccional. Ejemplo: señales de CS:
chip select, señales de R/W: read/write, señal de Reloj.
Marzo 2018
Estructura de Buses
Von Neumann

• El sistema contiene un solo subsistema de memoria. Esto es, un solo bus


de direcciones se utiliza para acceder a todo el espacio de memoria
disponible (datos y programa).
• El mapa de memoria indica donde está alojado cada tipo de memoria.
• Es menos eficiente ya que puede requerir de varios ciclos para acceder a
instrucciones completas (varios bytes) sin embargo el sistema es más
simple y no hay diferencia entre acceder a una constante o un dato.
• Casos HS08, MSP430, ARM7

Marzo 2018
Estructura de Buses
Hardvard

• La memoria de programa y la memora de datos se tratan como


subsistemas diferentes. Cado uno posee su propio bus de direcciones y
su propio bus de datos.
• Las principales ventajas son:
• Permite acceso simultanea a instrucciones y datos. La CPU puede leer un
operando al mismo tiempo que esta leyendo la siguiente instrucción.
• Cada subsistema se optimiza por separado. Por ejemplo PIC posee un bus de
datos de 8 bits, con 9 bits de direcciones y una memoria de programa de 14
bits (una instrucción completa por palabra) con 13 bits de direcciones.
• Una desventaja se presenta con el acceso a datos constantes (tablas de
lookup por ejemplo). Se requiere de instrucciones especiales para
manejo de tablas o del mapeo de un bloque de memoria de programa
en el espacio de datos.
• Casos: PIC, 8051, AVR, ARM cortex M.
Marzo 2018
Mapa de Memoria
• Si con 16 bits de direcciones
se pueden direccionar 64KB
posiciones de memoria ¿Cómo accedemos
a cada subsistema independientemente?

• A cada subconjunto se le asigna


un bloque de direcciones.

• Mediante decodificadores de dirección


puede construirse un “mapa” de
la memoria total direccionable.

• Este direccionamiento se
aplica a memorias de programa
y datos como así también al conjunto
de registros I/O y registros de
funciones especiales.

Marzo 2018
Tipos de Memoria

RAM (Random Access Memory)

• es volátil, provee almacenamiento temporal de datos, variables globales y


pilas
• Cualquier posición de la memoria se puede acceder para leer o escribir con
el mismo tiempo de acceso.
• La escritura sobre escribe el dato anterior
• Encontramos mayoritariamente 2 tipos:
• SRAM (static RAM): que significa que mantiene su contenido incluso si se
detiene la señal de reloj. Estas memorias poseen celdas basadas en F.F. de 6
transistores lo que hace difícil integrarla en gran volumen.
• DRAM (Dynamic RAM): La memoria RAM de una PC es del tipo DRAM. Cada
elemento contiene un transistor y un capacitor para almacenar 1 bit, pero
requiere de un refresco periódico para mantener su valor. Esto es impráctico
en los MCU.

Marzo 2018
Tipos de Memoria
ROM ( Masked ):
• Es realmente una memoria de solo lectura y no volatil. Los datos son escritos en el proceso de
fabricación del dispositivo mediante máscaras y fotolitografia.
• Se utiliza en la fabricación de productos con gran volumen de producción y cualquier cambio en
los datos requiere de la utilización de una nueva máscara lo que hace encarecer el proceso.
• Muchos fabricantes de MCU ofrecen dispositivos con este tipo de memoria a pedido.

PROM o OTP (One Time Programmable ROM):


• Cada bit es un fusible que se “quema” mediante un equipamiento adecuado. Aún se encuentran
opciones en el mercado.

EPROM (Electrically Programmable ROM):


• Como su nombre lo indica se puede programar pero no se puede borrar eléctricamente. Hay que
exponer varios minutos el dispositivo bajo luz UV para borrarlo, lo que requiere de un
encapsulado con ventana más caro que el tradicional. Es necesario un borrado completo si se
quiere reprogramar, así sea un solo bit. Ya no se usan.

EEPROM (Electrically Erasable Programmable ROM):


• Mediante un circuito controlador se puede borrar de a un byte, de a bloques o completa. Esta
característica limita la densidad de integración. Pero este tipo de memoria no requiere de la
remoción del chip del circuito donde se encuentra.
Marzo 2018
Tipos de Memoria
FLASH:

• Se pueden escribir y borrar eléctricamente más rápido que sus antecesoras


EEPROM. Es la tecnología dominante en la actualidad.
• La escritura requiere de una tensión de alimentación mayor que la de operación
normal. Por esta razón, se requieren dispositivos externos para programarlas
(programadores o grabadores).
• En el caso de los MCU la memoria FLASH contiene un sistema de programación
que permite su programación sin retirarla del circuito (In System Programming).
• La gran diferencia con la EEPROM es que posee mayor capacidad de integración
aunque no se puede borrar de a bytes individuales, solo por bloques o total.
• Las memorias FLASH y EEPROM posees un número de ciclos finito de escritura y
borrado. Actualmente del orden de los 100.000 ciclos.
• La memoria FLASH en un MCU es diferente a la utilizada en dispositivos de
almacenamiento masivo como Discos, pendrives, tarjetas SD. En el primer caso
son de tecnología NOR FLASH que permite acceso aleatorio a baja velocidad. En
el otro caso son tecnología NAND y se accede de manera secuencial.

Marzo 2018
Periféricos integrados

• Puertos de Entrada Salida (I/O


Ports)
• Los puertos de entrada / salida nos
permiten ejercer acciones digitales
sobre el medio exterior o leer
estados o condiciones de
dispositivos externos.

Marzo 2018
Periféricos integrados
• Serial Comunication Interface (SCI) o UART:
• Este módulo permite una comunicación de alta velocidad asincrónica con
dispositivos periféricos, una PC u otros MCU.
• Se pueden configurar tasas estándar de transmisión desde 1200 bps hasta
115200 bps.

MCU

Marzo 2018
Periféricos integrados
• SPI (Serial Peripheral Interface):
• Este módulo permite una comunicación serie de alta velocidad
sincrónica (hasta 13Mbits/s) con dispositivos periféricos u otros uC. Por
ejemplo, memoria flash externa, acelerómetros, conversores AD/DA,
tarjeta SD. Utiliza una línea de selección de chip x cada dispositivo
esclavo.

Marzo 2018
Periféricos integrados
• I2C (Inter Integrated Circuit):
• Este módulo esta diseñado para la comunicación entre el MCU y otros dispositivos
I2C (memorias seriales, acelerómetros ,conversores AD). Es una interfaz serie de dos
cables sincrónica bidireccional.
SDA: datos
SCL: clock (hasta 3.4Mbits/s)
• Dirección de 7bits única para cada dispositivo
• Multimaestro

Marzo 2018
Periféricos integrados

• CAN (Controller Area Network)

• USB (device, Host, on-the go)

• Ethernet

• Touch Interface

• Display Interface

• Wireless Comunications Interface


• Zigbee, wifi, bluetooth

Marzo 2018
Algunos fabricantes

• Atmel (Ahora Microchip Company)


32 bits
• ARM-Cortex M0+,M3,M4
• AVR32
8bits
• 8051
• AVR

https://www.microchip.com/design-centers/8-bit/microchip-avr-mcus

Marzo 2018
Algunos fabricantes

• Microchip
• PIC
8/16bits
• DSPIC
16/24bits
• PIC32
32bits

https://www.microchip.com/design-centers/8-bit/pic-mcus

Marzo 2018
Algunos fabricantes

• Freescale (ahora NXP company)


• HCS08 8bits
• HCS12 16bits
• DSC 16bits
32bits
• ColdFire
• Kinetics ARM Cortex-M0+,M4

https://www.nxp.com/products/processors-and-microcontrollers/additional-processors-and-mcus/8-
16-bit-mcus/8-bit-s08-mcus:HCS08
Marzo 2018
Algunos fabricantes

• NXP (http://www.nxp.com/products/microcontrollers/)
• Cortex-M (32-bit) Other ARM (32-bit)
• Cortex-M0/M0+ ARM7
• Cortex-M3
ARM9
• Cortex-M4/M4F
8/16-bit
• Dual core 80C51
• Cortex-M0 & M4F
• Cortex-M0+ & M4F

Marzo 2018
Mercado actual*

* Choosing a MCU for your next design; 8 bit or 32 bit? Ingar Fredriksen, Atmel.

Marzo 2018
Mercado actual*
Algunos datos:

• Performance: (Dhrystone MIPS)

(Mejor en DMIPS/MHz)

• Consumo:

Marzo 2018
*Extraído de : Choosing a MCU for your next design; 8 bit or 32 bit? Ingar Fredriksen, Atmel.
Mercado actual

Más datos relevantes sobre el mercado actual en:


• 2017 Embedded Markets Study: Integrating IoT and Advanced
Technology Designs, Application Development & Processing
Environments. EETimes.com/Embedded.com
• https://m.eet.com/media/1246048/2017-embedded-market-study.pdf

Marzo 2018

Vous aimerez peut-être aussi