sistemas embebidosfsantiag/embebidos/01_introduccion_se.pdf · inteligentes, algunos periféricos...

40
1. Introducción SISTEMAS EMBEBIDOS M. C. Felipe Santiago Espinosa Marzo / 2020

Upload: others

Post on 08-Aug-2020

3 views

Category:

Documents


0 download

TRANSCRIPT

1. Introducción

SISTEMAS EMBEBIDOS

M. C. Felipe Santiago Espinosa

Marzo / 2020

¿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

4

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

Sistema Embebido

6

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

Clasificación de los SE

11

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

Microcontroladores Populares

35

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

39

Ejercicios

40