8 o 32 bits Estat actual dels microcontrol·ladors · 8 o 32 bits Estat actual dels...
Transcript of 8 o 32 bits Estat actual dels microcontrol·ladors · 8 o 32 bits Estat actual dels...
8 o 32 bitsEstat actual dels microcontrol·ladors
Jordi Mayné
Enginyer d’aplicacions
02
Historia dels microcontrol·ladors - 1
CPU de 1 bit Motorola MC14500 (1981)
CPU de 4 bitsIntel 4004 (1970)
Nec uPD75x
CPU de 8 bitsIntel 8080 (1974), 8085, 8051 (1980)
MOS Tech 6502 Rockwell (1975)
Zilog Z80 (1976), compatible 8080 de Intel
Motorola MC6800 (1975), 6802, 6805,, 68HC08, MC9S08
Hitachi H8/300
Microchip PIC16 (1975)
03
Historia dels microcontrol·ladors - 1
CPU de 16 bitsIntel 8086 (1976), 8088, 80286
Motorola 6809(1978), MC68HC11, MC68HC12
Mitsubishi
Hitachi SH (1990) Renesas = Hitachi + Mitsubishi
Texas Instruments MSP430
04
Historia dels microcontrol·ladors - 1
CPU de 32 bitsIntel 80186 Atom
Motorola 68000 ColdFire y PowerPC
Freescale ColdFire
Microchip PIC32 MIPS
Hitachi
Mitsubishi
NEC
ST
Atmel
05
Taula Comparativa entre Fabricants
R8C/R16C
SH
H8
No tools or pin compatibility
No tools or pin compatibility
Cortex M0
Cortex M3
MSP430
06
Nucli ARM - 1
ARM (Advanced RISC Machines)Es una família de microprocessadors RISC dissenyats per Acorn Computers (1983) i desenvolupats per Advanced RISC Machines Ltd (1990)
ARM1 amb arquitectura similar al 6502 (1985)
ARM2 amb bus de dades 32 bits, bus d'adreces 26 bits, 4MIPS a 8MHz (1986)
ARM3 inclou una memòria “caché” de 4K, bus d'adreces de 32 bits, 12 MIPS a 25MHz
ARM6 utilitzat per Apple, 28 MIPS a 33MHz (1991)
ARM7 8K de “caché”
ARM7 TDMI el mes utilitzat en l'època en telèfons mòbils i videojocs portables (1994). 60MIPS a 60MHz
07
Acrònims i d’altres
Cache: Accelera la velocitat d'accés a memòria, guardant la informació accedida recientment de memòria mes lenta en RAM d'accés mes ràpid.
MMU (Memory Management Unit): Permet memòria virtual y es generalment requerida per plataformes amb sistemes operatius com Windows CE o Linux.
MPU (Memory Protection Unit): Administra l'accés a certes àrees de emmagatzemen per aplicacions de seguretat.
Jazelle: per executar JAVA.
VFP (Vector Floating Point) para accelerar l'aritmètica en punto flotant d’acord amb l'estàndard IEEE754.
TDMI (Thumb+Debug+Multiplier+ICE)
08
Nuclis ARM - 2
Strong ARM 16K caché MMU, 200MHz
ARM8 8K MMU, 84 MIPS a 72MHz
ARM9 TDMI 16K caché MMU, 200MIPS a 180MHz
ARM9 E instruccions DSP, 220MIPS a 200MHz
ARM10 32K caché MMU, VFP
Xscale
ARM11 Thumb2, MMU, VFP, Jazelle, 740 MIPS a 600MHz
Cortex M3 sense caché, Thumb2 125 DMIPS a 100MHz
Cortex A8 VFP, Thumb2, Jazelle, MMU
Cortex M0 sense caché, Thumb2,
Cortex M4 Thumb i Thumb2, FPU, MAC,
09
Instruccions ARM
Amb els comandaments originals ARM totes les instruccions són de 32-bit. La majoria de les instruccions poden implementar-se condicionalment, evitant salts Branch associats amb les sentències IT/THEN/ELSE.
Amb la introducció del nucli ARM7TDMI es desenvolupar el joc d’instruccions THUMB, de 16-bits. Les instruccions Thumb són una abreviació de les instruccions ARM 32-bits mes freqüentment utilitzades. Encara que es requereix un nombre lleugerament superior d’instruccions per escriure un programa, el tamany del codi es redueix en un 30-40% aproximadament.
TUMB2 complementa Thumb amb la majoria de les instruccions ARM mes populars i a més permet execució condicional. Addicionalment s’ha optimitzat el joc d’instruccions per compiladors d’alt nivell (C/C++) i exigències comuns en sistemes encastats com la manipulació de bits i divisió per hardware.
Resumin, Thumb2 combina el comportament aritmètic de ARM amb la densitat de codi del joc d’instruccions Thumb.
010
Avantatges de fer servir arquitectura ARM
La continuïtat del joc d’instruccions entre els conjunts, ARM i THUMB, facilita una proposició única dintre de l’industria del microcontrol·lador. Un usuari pot qualificar i reutilitzar llibreries de software validades d’un projecte a altre en el mateix entorn. Aquesta reutilització pot reduir notòriament els costos de manteniment a lo llarg de múltiples projectes i aplicacions i optimitzar d'inversió en software en la companyia.
L’arquitectura ARM també està suportada per varis projectes open source, com compilador GNU, depurador GDB i distribucions Linux.
011
Fabricants de Semiconductors ARM
ARM7 TDMI NXP (LPC2xxx i LH754xx)
ARM9 TDMI Freescale (iMX1), NXP (LH7A40)
ARM9E Texas (OMAP1xx), Freescale (iMX21, iMX27), STM (STR91x) , NXP (LPC29xx i LPC3xxx)
ARM11 Texas (OMAP2420), Freescale (iMX31)
Cortex M3 NXP (LPC17xx), STM (STM32), Texas (Stellaris)
Cortex A8 Texas (OMAP3xxx), Freescale (iMX51)
Cortex A9 Texas (OMAP44xx)
Cortex M4 Freescale (Kinetis)
Cortex M0 NXP (LPC11xx),
012
Resumen de nuclis ARM i Cortex
013
Cortex M0
El nou processador ARM Cortex-M0 amb arquitectura Von Neumann consumeix tan sols 85 µW/MHz i va ser pensat per ser utilitzat amb aplicacions d’ultra baix consum (jocs, dispositius inalàmbrics....)
Ofereix prestacions de 32 bits, a preu de 8 bits, amb modes sleep integrats, pipeline de 3 etapes i pot processar dispositius analògics i digitals a la vegada. Pot ser usat per sensors intel·ligents.
Les companyies NXP Semiconductors i ST Semiconductor són les dues llicenciades de la tecnologia del nou processador.
Instrucció Multiplicació 32x32 en un sols cicle.
Latència d’Interrupció en 16 cicles
Depuració/Programació JTAG (5 pins)
o Serial Wire Debug (2 pins)
Augmenta les prestacions dels 8/16bit fins x10
Entre un 40/50% menys de codi que un 8/16bit
Preus a partir de 0.65$
014
Cortex M0 - NXP
015
Cortex M3
Arquitectura Harvard
Thumb/Thumb2 (alta densitat de codi)
Pipeline de 3 etapas
Millora en les interrupcions NVIC (Nested Vectored Interrupt Controller), baixa latència.
Latència d’interrupció 12 cicles
Nivells de prioritat d’interrupció: fins a 256 nivells
Manipulació de bit: Instruccions integrades i bit banding
MUL i DIV per hardware, en un sols cicle
Depuració: JTAG (5 pins) o Serial Wire Debug (2 pins),
8 breakpoints y 4 wachpoints. Traza.
016
Cortex M3 - NXP
017
Cortex M3 - ST
Flash
(bytes)
128 K
100 pins LQFP/BGA(2)
32 K
64 K
64 pins LQFP/BGA(1)
48 pinsLQFP
256 K
512 K
144 pins LQFP/BGA(1)
36 pinsQFN
384 K
16 KSTM32F101R4
STM32F103R4
STM32F102R4
STM32F101R6
STM32F103R6
STM32F102R6
STM32F101RD
STM32F103RD
STM32F101RE
STM32F103RE
Access line
Connectivity line
USB Access line
Performance line
STM32F101R8
STM32F103R8
STM32F102R8
STM32F105R8
STM32F101RC
STM32F103RC
STM32F105/7RC
STM32F101RB
STM32F103RB
STM32F102RB
STM32F105/7RB
STM32F101C4STM32F101T4
STM32F103C4STM32F103T4
STM32F102C4
STM32F101C6STM32F101T6
STM32F103C6STM32F103T6
STM32F102C6
STM32F101C8STM32F101T8
STM32F103C8STM32F103T8
STM32F102C8
STM32F101CB
STM32F103CB
STM32F102CB
STM32F101V8
STM32F103V8
STM32F101VB
STM32F103VB
STM32F101VC
STM32F103VC
STM32F101ZC
STM32F103ZC
STM32F101VD
STM32F103VD
STM32F101ZD
STM32F103ZD
STM32F101VE
STM32F103VE
STM32F101ZE
STM32F103ZE
STM32F105/7VC
STM32F105/7VB
STM32F105V8
018
Comparativa ARM7TDMI – Cortex M3
ARM7TDMI-S Cortex-M3Architecture v4T v7M
ISA Support ARM (32-bit) & Thumb (16-bit) Thumb-2 (Merged 32/16-bit)
DMIPS/MHz 0.74 Thumb / 0.93 ARM 1.25 Thumb-2
Pipeline 3-Stage 3-Stage + Branch Speculation
Interrupts FIQ / IRQ NMI, SysTick and up to 240 interrupts. Integrated NVIC Interrupt Controllerup to 1-255 Priorities
Interrupt Latency 24-42 Cycles(Depending on LSM)
12 Cycles (6 when Tail Chaining)
Memory Map Undefined Architecture Defined
System Status PSR. 6 modes.20 Banked regs
xPSR. 2 modes.Stacked regs (1 bank)
Sleep Modes No Three
019
Depuració/Programació
JTAG SWDMes pins disponiblesper l’aplicació
4 o 5 fils (JTAG Interface Reset pin (nTRST) opcional)Conector estàndard 2x5 50mil
020
Arquitectura HarvardThumb/Thumb-2DSP i SIMD (una instrucció, múltiples dades)
MAC en un sols cicle (fins 32 x 32 + 64 -> 64)Optional single precision FPU NVIC configurable Compatible amb Cortex-M3
Pipeline de 3 etapes
Deep Sleep Mode, Wakeup Interrupt ControllerPower down features for Floating Point Unit
Control·lador d’interrupcions configurable (1-240 Interrupcions i Prioritats)Memory Protection UnitDebug & Trace
Cortex M4
021
Cortex M4 - Freescale
Core reading code from flash
DMA reading from UARTAnd writing to RAM on FlexBus
DMA fetching graphic bufferFrom SDRAM
Core reading code from flash
DMA reading from UARTAnd writing to RAM on FlexBus
DMA fetching graphic bufferFrom SDRAM
022
Flex Memory
Memoria Programa Principal
FlexMemory
EEPROM:► Elimina components externs
• Menys cost del sistema
► No requereix recursos del sistema
• Fàcil implementació sobre emulació
► Alta durabilitat• Fins 10 Milions de cicles
► Altes prestacions• Temps escriptura = ~100 µSeg• Borrat + escriptura = 1.5mSeg
Configurable pel usuari com…
EEPROMFlash
Programa/Dades
Programa adicional o Flash de Dades:
► Flexibilitat• Espai per futures expansions
► Efficient• Llegeix mentres escriu en la Flash
del programa principal
► Alta durabilitat de les dades en la memoria
o combinació de les dues
023
Flex Memory
Attribute Traditional Embedded EEPROM FlexMemory
Read-while-write with program memory
Yes Yes
Granularity Byte write/erase Byte write/erase
Write time~1-5msec
(byte write only)
~100usec(word or byte program, brown-outs w/o
loss or corruption of data)
Erase + write time ~5-10 msec ~750 usec + ~750 usec (1.5 msec)
Endurance 50-300K cycles (fixed)SoC implementation and user configurable, can
exceed 10M cycles
Minimum write voltage ≥ 2.0V 1.71V
Flexibility Fixed by part numberProgrammable trade-off - quantity vs.
endurance
024
DevelopmentTools
Bundled IDE
w/ Processor Expert
Bundled OS
USB, TCP/IP, Security
Modular Tower H/ware
Development System
Application Software Stacks,
Peripheral Drivers & App.
Libraries
(Motor Control, HMI, USB)
Broad 3rd party ecosystem
CommonDigital IP
CRC
I2C
SSI (I2S)
UART/SPI
ProgrammableDelay Block
External Bus Interface
Motor ControlTimers
eSDHC
RTC
CommonAnalog IP
16-bit ADC
ProgrammableGain Amplifiers
12-bit DAC
High-speedComparators
Low-powerTouch Sensing
CommonSystem IP
32-bit ARM
Cortex-M4 Core
w/ DSP Instructions
Next Generation
Flash Memory
High Reliability,
Fast Access
FlexMemory w/ EEPROM capability
SRAM
MemoryProtection Unit
Low Voltage,
Low Power Multiple Operating Modes,
Clock Gating
(1.71V-3.6V with 5V tolerant I/O)
DMA
-40 to 105C
K70 Family 512KB-1MB, 196-256pin
K60 Family 256KB-1MB, 100-256pin
K50 Family 128-512KB, 64-144pin
K40 Family 64-512KB, 64-144pin
K30 Family 64-512KB, 64-144pin
K20 Family 32KB-1MB, 32-144pin
K10 Family 32KB-1MB, 32-144pin
DRAM C
ontro
ller
(120
MHz,
150M
Hz, on
ly)
Hardw
are
Tampe
r Det
ect
Dual C
AN
Encry
ption
(CAU+RNG)
Ether
net (
IEEE 1
588)
Floatin
g Poin
t Unit
(120
MHz,
150M
Hz, on
ly)
NAND Flas
h Con
trolle
r
(120M
Hz, 15
0MHz,
only)
LCD (S
egm
ent/G
raph
ics)
USB OTG (F
S & H
S)
Cortex M4 - Freescale
025
Preus familia Kinetis de Freescale
K10 Family
Low power, analogue, CAN
$0.99
$6.82
K20 Family
K10 + USB OTG (FS/HS)
$1.58
$7.22
K30 Family
K10 + Seg. LCD
$2.30
$4.67K40 Family
K10 + USB OTG (FS) + Seg. LCD
$2.60
$4.97
K60 Family
K10 + USB OTG (HS), + Ethernet +
Encryption + Tamper Detect, + DRAM Ctrlr
$3.98
$8.65
Preus per 10Kpcs
026
Eines Freescale
A modular development platform for 8/16/32-bit MCUs & MPUs
Quickly combine Tower Modules to build a prototype of your application
Modules sold individually or in kits
Open Source: Build your own Tower Module to integrate your IP
Cost-optimized hardware
Software support from Freescale and Third Parties
Growing community of Third Party hardware support
On-line community: www.towergeeks.org
Primary Elevator
Board Connectors
MCU/MPU Module: • Tower controller board
• Standalone or in Tower System
Secondary ElevatorPeripheral Module:
• Up to 3 per system: Serial, Memory, LCD,..
• Mix & match with different MCU modules
Support for all ColdFire+
and Kinetis MCUs!
TWR-SENSOR-PAKTWR-LCDTWR-MEM
027
Texas
32-bit ARMCortex™-M3
MCUs
16-bit ultra-low power
MCUs
High-performance
DSPs
ARM Cortex-A8
MPUs
Stellaris®
ARM® Cortex™-M3
MSP430™Sitara™
ARM® Cortex™-A8& ARM9
Microcontrollers (MCUs) ARM®-Based Processors
OMAP™
ARM +DSP
Up to 100 MHz
Flash64 KB to 256 KB
USB, ENET MAC+PHYCAN, ADC, PWM, SPI
Connectivity, Security,Motion Control, HMI,Industrial Automation
$1.00 to $8.00
300MHz to >1GHz
Cache, RAM, ROM
USB, CAN,PCIe, EMAC
Industrial computing, POS & portable data terminals
$5.00 to $20.00
Up to 25 MHz
Flash1 KB to 256 KB
Analog I/O, ADCLCD, USB, RF
Measurement,Sensing, General
Purpose
$0.49 to $9.00
300MHz to >1GHz+Accelerator
CacheRAM, ROM
USB, ENET, PCIe, SATA, SPI
Test & Meas., Video, audio, security,
imaging, infrastructure
$5.00 to $200.00
32-bit real-time
MCUs
C2000™
Delfino™
Piccolo™
40MHz to 300 MHz
Flash, RAM16 KB to 512 KB
PWM, ADC, CAN, SPI, I2C
Motor Control, Digital Power,
Lighting, Ren. Energy
$1.50 to $20.00
028
Cypress – Cortex M3
029
Cypress – Familia Cortex M3
CY8C5588• 80 MHz• 256 KB Flash• 64 KB SRAM• FS USB
CY8C5585• 80 MHz• 32 KB Flash• 8 KB SRAM• FS USB
CY8C5586• 80 MHz• 64 KB Flash• 16 KB SRAM• FS USB
CY8C5587• 80 MHz• 128 KB Flash• 32 KB SRAM• FS USB
CY8C5488• 80 MHz• 256 KB Flash• 64 KB SRAM• 2x 12-bit SAR• FS USB
DIGITAL
ANALOG
12-bit
SC/CTBlock
SC/CTBlock
SC/CTBlock
SC/CTBlock
Digital FilterBlock
20-bit
OP
OP
OP
OP
CY8C5485• 80 MHz• 32 KB Flash• 8 KB SRAM• 2x 12-bit SAR• FS USB
CY8C5486• 80 MHz• 64 KB Flash• 16 KB SRAM• 2x 12-bit SAR• FS USB
CY8C5487• 80 MHz• 128 KB Flash• 32 KB SRAM• 2x 12-bit SAR• FS USB
CY8C5386• 80 MHz• 64 KB Flash• 16 KB SRAM• 1x 12-bit SAR
CY8C5385• 80 MHz• 32 KB Flash• 8 KB SRAM• 1x 12-bit SAR
CY8C5388• 80 MHz• 256 KB Flash• 64 KB SRAM• 1x 12-bit SAR
CY8C5387• 80 MHz• 128 KB Flash• 32 KB SRAM• 1x 12-bit SAR
CY8C5246• 40 MHz• 64 KB Flash• 16 KB SRAM• 1x 12-bit SAR• VREF 0.9%
CY8C5247• 40 MHz• 128 KB Flash• 32 KB SRAM• 1x 12-bit SAR• VREF 0.9%
CY8C5248• 40 MHz• 256 KB Flash• 64 KB SRAM• 1x 12-bit SAR• VREF 0.9%
12-bit
20 UDBs 24 UDBs
030
Eines adicionals de fer servir micros actuals
Llibreries:Grafiques: Control i grafics per pantalles TFT.
Touch control: teclats sensitius, deslliçadors, circulars.
Funcions de control de motor.
Control de memories: Flash serie, tarjes SD
PLC
Dali
DMX512
Etc..