Clase0 Cap1 Introducción 2020-1
Clase0 Cap1 Introducción 2020-1
Clase0 Cap1 Introducción 2020-1
EL6004
Introducción
Clase 0
3
Objetivos del Curso
Competencias ICACIT/ABET:
• b1: Capacidad de diseñar y llevar a cabo experimentos
(nivel 2)
• b2: Capacidad para analizar información (nivel 2)
• c1: Capacidad para diseñar un sistema, un componente o
un proceso para satisfacer las necesidades dentro de
restricciones realistas (nivel 2)
4
Objetivos del Curso
Resultados del aprendizaje
• Entender y analizar las características y funcionamiento de
los microprocesadores y microcontroladores
• Plantear algoritmos que sean implementados en C y
Assembler
• Codificar, simular y depurar programas en lenguajes
Assembler y C para microcontroladores y SoC, usando
periféricos analógicos y digitales.
• Analizar el consumo de energía, tiempo de ejecución, y uso
de recursos de programas ejecutados en un microprocesador
y microcontrolador.
• Desarrollar proyectos controlados por un microcontrolador o
microprocesador en un sistema embebido.
5
Evaluación
• 1 Proyecto del curso que originan una nota P.
• 4 Prácticas Calificadas: se anulará la menor.
• 7 Laboratorios. Se anulará la menor.
• 5 Controles online de 5 puntos cada uno. Se eliminará la nota mínima
• 1 Examen Final
7
Objetivos
• Conocer los conceptos básicos de los
Sistemas Embebidos
• Conocer las herramientas de trabajo
• Entender la dinámica del curso
8
¿Qué es un sistema embebido (SE)?
Lugares remotos:
Carencia de: red
eléctrica, señal
telefónica, difícil
acceso….
12
Sistemas Embebidos en UTEC
Estación Monitoreo de Calidad de agua
meteorológica ríos
Franco Lama
Gustavo Solano
Reducción de consumo
energético
Certificaciones Portabilidad
Necesidad pedagógica Otros metales pesados
FPGA!? Bacterias
Autonomía 13
Sistemas Embebidos en UTEC
El aire que Respiras Monitoreo de ríos Calidad de agua
(Joseph Peña)
Aumentar el rango
Diseño de red
Diseño del equipo
Autonomía Energética
Red de sensores Reducción de consumo
Calibración energético
Diseño Portabilidad
FPGA, Raspberry?
14
Motivación: Salud
http://cseweb.ucsd.edu/classes/wi15/cse237A-a/handouts/8_iot.pdf 15
Computación: genérica vs dedicada
19
Características de los Sistemas
Embebidos
Debe ser confiable (dependable):
• Reliability: Probabilidad que un sistema trabaje
correctamente considerando que comienza en t=0
• Maintainability: Probabilidad que un sistema trabaje
bien luego de un tiempo t luego de un error
• Availability: Probabilidad que el sistema funcione en
el tiempo t
• Safety: No genera daños
• Security: Confidencialidad y autentificación en las
comunicaciones
20
Confiabilidad
Imagen de http://www.ni.com/white-paper/14412/en/ 21
Confiabilidad
λ : Tasa de fallos
MTBF (Mean Time between fail): Tiempo medio entre fallos (reparables). Usado
normalmente durante el tiempo de vida útil
MTTF (Mean Time to fail): Tiempo medio para fallos (no reparables).
𝑡
−𝑀𝑇𝐵𝐹
Confiabilidad: 𝑅 𝑡 = 𝑒 −𝜆𝑡 = 𝑒
Probabilidad de fallo: 𝐹 𝑡 = 1 − 𝑅 𝑡
Ejemplo:
Si un sistema tiene un MTBF de 300000 horas, la confiabilidad del sistema en
el sexto mes será:
6 meses = 4380 horas
4380
−300000
𝑅 4380 = 𝑒 = 0.9855, es decir, 98.55%
Por ello, la probabilidad de fallo será de 1.45%
22
Desarrollo de sistemas
embebidos
…y de cualquier sistema
23
Tener claro el proyecto
• Lista de requerimientos
¿Para qué? ¿quién lo usará?¿en qué contexto funcionará?
• ¿Cómo validaré?
Design for testability, definición de pruebas, check list
24
Etapa electrónica
• Lista de requerimientos
Definir: entradas y salidas, interface, alimentación, test
Señales digitales, analógicos, niveles max/min, protocolo de comunicación,
señales de test, autonomía energética, volumen, peso…
• Nivel de desarrollo
Prototipos para validar idea, validación funcional, tomar datos,
prototipo de producto (prototipado básico)
Diagrama de bloques, diagrama esquemático, simulación, protoboard, diseño y
fabricación de tarjetas, carcasa, diagrama de flujo, firmware, software,
calibración, pruebas de campo, tiempo de vida….
https://www.pardell.es/instrumentacion-medica.html
https://www.analfatecnicos.net/pregunta.php?id=16
26
Diagrama de bloques
Entender de manera clara y simple las etapas del sistema electrónico.
Debe ayudar a delimitar el trabajo, validarlo e integrarlo
https://www.researchgate.net/figure/Block-diagram-of-the-travelling-crane-electrical-drive_fig2_235248905
27
Diagrama de bloques
Entender de manera clara y simple las etapas del sistema electrónico.
Debe ayudar a delimitar el trabajo, validarlo e integrarlo
Sensor CO y
adaptación Interfaz usuario
5v
Control Mod. Bluetooth
central
Sensor CO2 (ATmega328P)
Pantalla LCD
5v
3.3V
Sensor MP Pulsador Led
5v 5v
5v
[7 a 20]v
Alimentación 3.3V
29
Desarrollo de circuitos
• Orden • Ruido
• Cuidado con los cables • Armar y verificar por etapas
30
Desarrollo de circuitos
• Orden • Ruido
• Cuidado con los cables • Armar y verificar por etapas
31
Desarrollo de circuitos
• Cuidar la separación y ancho de pistas. (digital mínimo
0.016, normal 0.024, potencia mayor a 0.032)
• Cuidar pasantes. ¿Metalizado?
• Tipo de empaque, verificar existencia.
• Posición de componentes: potencia, conectores, digital,
analógico, RF
• Herramientas: Eagle, OrCAD, EasyEDA…
32
Componentes y tecnologías
33
Componentes de los sistemas
embebidos
Sensores Procesamiento Actuadores
Comunicaciones
34
Componentes de los sistemas
embebidos
Sensores Procesamiento Actuadores
Comunicaciones
35
Componentes de los sistemas
embebidos
Sensores Procesamiento Actuadores
Comunicaciones
36
Componentes de los sistemas
embebidos
Sensores Procesamiento Actuadores
Comunicaciones
37
Componentes de los sistemas
embebidos
Sensores Procesamiento Actuadores
Microcontrolador
Microprocesador
SoC
FPGA
Comunicaciones
38
Componentes de los sistemas
embebidos
Sensores Procesamiento Actuadores
Microcontrolador
Microprocesador
SoC
FPGA
Comunicaciones
Alimentación ? 39
Elementos de procesamiento
40
FPGA: Field Programmable Gate Array
Xilinx
Altera
Actel (Microsemi)
Lattice
Hardware reconfigurables
Se implementan circuitos, no programas
Algunos con procesador embebido: SoC
41
Procesador
i7-4720HQ: Intel, 64
Cortex-A72: Intel, 32/64 bits, 4 núcleos 2015
bits, 1/4 núcleos 2015
42
Ejemplos de procesadores
• Intel:
– 4004 (4 bits), 8080 y 8085 (8 bits),
– 16 bits: 8086, 80286,
– 32 bits: 80386 (MMU), 80486 …
– Motorola:
• 8 bits: 6800, 6820, 6850 …
• 16 bits: 68000
• 32 bits: 68020 (Apple Macintosh, Sun 3 Workstation, Amiga y Atari ST)
– MOS Technology:
• 6502 (KIM-1, Apple, Atari, Commodore, Acorn, Oric, Galeb...)
– Zilog:
• Z80: compatible con 8080 (Spectrum, Partner, TRS703, Z-3 and Galaxy)
– Motorola + Apple + IBM:
• PowerPC: Apple Macintosh (1994 – 2006), consolas de videojuegos
43
Ejemplos de procesadores
• MIPS Computer Systems:
– Comenzó en la U. Santford
– R2000, R3000, R4000….
– Otorga licencias
– Usados en equipos Cisco, controladoras de impresoras láser,
decodificadores de TV, robots, PlayStation 2…
• ARM
– Acorn RISC Machines, Advanced RISC Machines
– ARM fundado como spin-off de Acorn y Apple
– Licencias de arquitectura, set instructions
– Apple iPods, Apple iPhone, iPod Touch, Apple iPad, Nintendo
DS, Nintendo Game Boy Advance .
44
Microcontrolador
BUSES BUSES
BUSES
BUSES
45
Microcontrolador
Microcontrolador
BUSES BUSES
BUSES
BUSES
46
Sistem On Chip - SoC
System on Chip (SoC)
Microcontrolador
BUSES BUSES
BUSES
BUSES
47
Ejemplo de plataforma: Arduino
• Plataforma basada en microcontroladores Atmel
• Open source hardware
• Programación: denominado “Sketch”, lenguaje Wiring basado en C.
Se puede programar en C o assembler.
• “Bajo costo”
• 3.3 V
ATmega328P Intel Curie ATmega32U4
8 bits 32 bits 8 bits
ATmega2560 SAMD21
8 bits 32-bit ARM Cortex M0+
https://www.arduino.cc 48
Ejemplo: Raspberry Pi Zero
• SoC BCM2835
• 1GHz ARM11 76JZF-S core single-core
• 5V micro-USB power adapter
• 1 micro USB port, 40 GPIO pins, mini
HDMI port
• SDRAM 512MB, Micro SD card slot
• Puede usar Linux
• ≈ 4W
≈$5
Ref: https://www.raspberrypi.org/ 49
Ejemplo: Raspberry Pi 3
• SoC BCM2837
• 1.2GHz 64-bit quad-core ARM Cortex-A53
• 5V micro-USB power adapter
• 802.11n wireless LAN, Bluetooth 4.1
• Bluetooth Low Energy (BLE)
• 4 USB ports, 40 GPIO pins, Full HDMI port
• Ethernet port
• 3.5mm audio jack and composite video
• Camera/ Display interface (CSI)/(DSI)
• SDRAM 1GB, Micro SD card slot
• VideoCore IV 3D graphics core ≈$35
• Puede usar Linux
• ≈ 4W
Ref: https://www.raspberrypi.org/ 50
Elementos de procesamiento
51
Elementos de procesamiento
MICROCONTROLADOR MICROPROCESADOR
FPGA
SYSTEM ON CHIP - SoC 52
Flujo de Desarrollo de sistemas
embebidos
¿Cuáles serían los pasos a seguir?
53
Etapas en el Desarrollo de SEs
• Entender el problema
• Identificar recursos
• Proponer soluciones, TOP-DOWN
– Diagrama de bloques y esquemáticos
– Selección de componentes
• Proponer lógica de funcionamiento
– Diagrama de flujo/algoritmos
• Programación/Desarrollo de HW
– Verificación mediante simulación, prototipos por
separado, test
• Integración
– Verificación, test, optimización
54
Microcontrolador
Microcontrolador
Programación
BUSES BUSES
BUSES Lenguaje
máquina
Assembler
BUSES
C, C++, Lua, …
55
Compilador Assembler Linker Descarga
*.o
*.c *.asm CPU RAM
*.o
*.asm
Periféricos
librerias
Fin
56
Desafíos tecnológicos: mas allá del
limite
• Área
– Mayor densidad
– Tecnología de fabricación (12nm, FinFET)
– 3D
• Velocidad Paper: “An Overview of
– Algoritmos Microcontroller Unit From
– Paralelismo Proper Selection to
– Clocks Specific Application”
• Potencia
– Voltaje (nivel de transistor)
– Clock gatting
– Algoritmos
57
Desafíos tecnológicos: mas allá del
límite
• Confiabilidad
– Susceptibilidad a radiación
– Proceso de fabricación
– Testing (BIST)
– Algoritmos
– Redundancias
TRADE-OFF:
AxVxPxC
58
Flujo de Desarrollo de programas
para sistemas embebidos
¿Cuáles serían los pasos a seguir?
59
Motivación
• Expresar de manera clara y simple la
lógica de un programa.
• Detectar errores de planteamiento
• Evalúa todas las opciones
• Uso de símbolos gráficos estándar
• Independencia del lenguaje de
programación
• Las operaciones tienen resultados no
ambiguos Instrucciones a un robot (min 16:08)
60
Símbolos básicos
Inicio y fin del Subprograma o
diagrama de subrutina
flujo
Conector en la
Entrada y salida misma página
de datos del diagrama
Conector entre
Proceso páginas del
diagrama
Decisión. Sentido o
Relacionada a dirección de la
una operación secuencia de
lógica operaciones
61
Características
• Los DF siempre tienen INICIO
• Los DF siempre tienen FIN o lazo infinito.
• Los conectores son flechas verticales u horizontales.
• Todos los componentes (a excepción del FIN) tienen
salida
• Las entradas son por la parte superior del símbolo.
• Las salidas son por la parte inferior del símbolo.
• Los procesos tienen una salida
• Los rombos de decisión booleana tienen dos salidas
correspondientes a SI y NO, las cuales deben ser
rotuladas.
62
Ejemplos
INICIO
FIN
No
Si
No
Si
63
Ejemplos
INICIO
FIN
INICIO
FIN
Si
A=B
No No
Si
No
Si
64
Ejemplos
INICIO
FIN
INICIO
FIN
Si
A=B
No No
Si
No
Si
65
Ejemplo: ¿Cómo abrir una puerta?
66
Ejemplo: ¿Cómo abrir una puerta?
No Sí
67
Ejemplo: ¿Cómo abrir una puerta?
No Sí
68
Notas a tomar en cuenta en uC
• Identificar entradas y salidas del sistema
• Sensores, actuadores
• Las entradas son leídas, NO SE ESCRIBE
EN ELLAS
• Las salidas son controladas, SE ESCRIBEN
EN ELLAS
• La lógica debe ser escalable: resolver el
problema genérico que resuelva el problema
general
69
Ejemplo: Mantener encendido un LED
mientras se presiona un pulsador
70
Ejemplo: sensor de distancia
71
Ejemplo: sensor de distancia
72
Ejemplo: sensor de distancia
73
Ejemplo: Auto con sensor de
distancia
Requisitos:
30 cm < Distancia ≤ 60 cm: alarma 1
Distancia ≤ 30 cm: alarma 1
74
Referencias
• Computer organization and Embedded Systems, 6th
edition
75