With the increasing commercial interest in Internet of Things (IoT) the question about a reasonable hardware configuration surfaces again and again.
Peter Aldworth, a hardware engineer with more than 19 years of experience, discusses this topic in a presentation given to the IETF community.
How to Select Hardware for Internet of Things Systems?
1. 1
How to Select Hardware
forVolume IoT Deployment?
Peter.Aldworth@arm.com
2. How to Select Hardware forVolume IoT Deployment
Very broad topic!
Let’s start by focusing on MCU selection: 8/16-bit vs ARM Cortex-M processors
We need to think beyond the processor HW
2
Think at the IoT product level and consider complete BOM costs including sensors, radio and PSU
Consider tools/ecosystem too
I’m hoping that this presentation is a starting point for our conversation on this topic
Material presented here is preliminary/incomplete
Please ask questions
If there is interest I can run another presentation in the future to focus on your areas of interest
3. What Does Processor Selection Impact?
HWproduct BOM
3
Direct cost of silicon area to implement 8/16-bit or 32-bit processor gives tiny contribution to BOM
Indirect costs more important: Code density, Clock speed needed to meet required
performance/latency, power management features,MCU parts available with appropriate integrated
features
Lifetime costs
Operation period between battery replacement/recharge
Ability to adapt to mid-life upgrade/update (firmware updates needing increased
performance/memory)
Development and Deployment costs
Modern development tools, languages, ease of code reuse, availability of comprehensive debug/trace
features
4. 8/16-bit vs ARM Cortex-M:Aren’t 32-bit Instruction Bigger?
Most architectures have a range of
instruction sizes
For Dhrystone:Average Cortex-M0
instructions size is only 17-bits
4
Application code density depends on
richness of instruction set & CPU arch
Multi-transfer data operations
Rich set of addressing modes
Rich set of arithmetic operations
Size of internal register bank
Conditional execution
Combined compare and branch
Automated function entry/exit (stack)
Size of directly addressable memory
Example of Dhrystone code size in bytes
8051 3186 bytes vs M3 900 bytes
5. 8/16-bit vs ARM Cortex-M:Aren’t 8/16-bit More Efficient?
5
8/16-bit processors require more clock
cycles to perform an equivalent operation
More cycles to fetch instructions
More instructions to perform an operation*
More cycles for multiplies, divides etc
More cycles to transfer data (narrower bus)
Using aARM Cortex-M core enables
Lower frequency (and lower voltage)
Higher (maximum) performance
Greater overall efficiency
* Better code density
6. 8/16-bit vs ARM Cortex-M: 32-bit MCUs are more expensive?
Quick survey on http://www.newark.com/ (electronics component distributer):
6
Search for 8, 16, and ARM MCUs with
◦ 128KB – 256 KB of “Program Memory”
◦ 16KB – 32KB of “SRAM”
◦ Results only show prices for low volume purchase so not representative of high volume BOM cost
22 results for 8-bit MCU: Price range $3.40 - $9
120 results for 16-bit MCU: Price range $3 - $40
370 results for ARM MCUs: Price range $1.80 - $19
If you compare MCUs with similar features ARM based designs are the same price or
cheaper than 8/16-bit devices
Lowest IoT product BOM will use modern MCUs integrating radio etc.
7. 8/16-bit vs Cortex-M:What About Power Consumption?
7
Cortex-M processors have architecturally
defined power modes
Complete operation then sleep
Code density saves power
NOR Flash reads are a large part of power
budget
Better code density means fewer reads to
execute application
Cortex-M + cache saves more power
Few cycles and shorter execution time
means that MCU spends more time in low
power state
8. ARM® Cortex®-M Product Line
8
Lowest cost
Low power
Lowest power
Outstanding energy efficiency
Performance efficiency
Feature rich connectivity
Digital Signal Control (DSC)
Processor with DSP
Accelerated SIMD
Floating point (FP)
Digital Signal Control application space
‘16/32-bit’Traditional ‘8/16-bit’Traditional application space application space
Low power implementation
Sleep mode support
Wake-up Interrupt Controller
Increased intelligence at node
Broad tools and OS support
Binary compatible roadmap
CMSIS support
Pure C target
32-bit RISC architecture
High efficiency processor cores
Integrated Interrupt Controller
Thumb®-2 code density
Area optimised designs
CoreSight™ support
9. ARM® Cortex® Processor feature set comparison
9
Cortex-M0 Cortex-M0+ Cortex-M3 Cortex-M4
Instruction set architecture Thumb, Thumb-2 System
Instructions
Thumb, Thumb-2 System
Instructions
Thumb + Thumb-2 Thumb + Thumb-2,
DSP, SIMD, FP
DMIPS/MHz 0.84-1.21 0.93-1.31 1.25-1.89 1.25-1.95
CoreMark/MHz 2.33 2.42 3.32 3.40
Bus interfaces 1 1 (+1 opt.) 3 3
Integrated NVIC Yes Yes Yes Yes
Number interrupts 1-32 + NMI 1-32 + NMI 1-240 + NMI 1-240 + NMI
Interrupt priorities 4 4 8-256 8-256
Breakpoints, Watchpoints 4-0, 2-0 4-0, 2-0 8/2/0, 4/1/0 8/2/0, 4/1/0
Memory Protection Unit (MPU) No Yes (Option) Yes (Option) Yes (Option)
Integrated trace option (ETM or MTB) No MTB (Option) ETM (Option) ETM (Option)
Single Cycle Multiply Yes (Option) Yes (Option) Yes Yes
Hardware Divide / Saturated Math No No Yes Yes
WIC Support Yes Yes Yes Yes
Bit banding support System option System option Yes (Option) Yes (Option)
Single cycle DSP/SIMD No No No Yes
Floating point hardware No No No Yes(Option)
Bus protocol AHB Lite AHB Lite AHB Lite, APB AHB Lite, APB
Systick Timer Option Option Yes Yes
CMSIS Support Yes Yes Yes Yes
10. ARM® Cortex ® -MTools Ecosystem
ARM has an exceptionally broad ecosystem of 3rd parties supporting the Cortex-M
profile processor family.
Real-time Operating Systems
10
26+ of the world’s leading vendors
IDEs and C/C++ compilers
13+ of the world’s leading vendors
Debugger vendors
21+ of the world’s leading vendors
… and these numbers are growing all the time
11. RTOSs IDEs and Compilers
Cortex-M profile cores are supported by all of
the world’s major Real-time Operating System
vendors
Many of these have uITRON-compliant
interfaces
Many certified to international standards
Many of these also sell software stacks covering
USB,CAN,TCP/IP, File Systems, GUI…
Available at a variety of price points and
business models:
11
Free, open source
Royalty-free
Royalty per product family
Safety-certified, safety-critical
Cortex-M profile cores are supported by all of
the world’s major vendors of IDEs, including
C/C++ compilers, debuggers etc.
Variety of C and C++ compilers targeting and
optimising for the Thumb-2 instruction set.
Some based on Eclipse IDE, some proprietary
GUIs.
Available at a variety of price points and
business models:
Low-cost, based on open source
Atollic, Code Red,CodeSourcery, Coocox,
Crossware, Raisonance, Rowley Associates
Higher price, proprietary:
Altium, GreenHills, IAR, Keil, Mentor,Wind River
12. Debug and Trace
Cortex-M profile cores are supported by all of the world’s major debugger vendors
Most of these support low-cost solutions using 2-pin SerialWire Debug (SWD).
Many also support non-intrusive program trace using the EmbeddedTrace Macrocell
(ETM).
All vendors support debugging of code compiled usingARM’s RealView compiler.
Fully supported by key debug vendors in Japan.
Wide variety of price points:
12
Low-cost “wiggler” type devices
Mid-range full debug via JTAG
Full system debug and trace at higher price point
13. ARM® Cortex®-M Software interface standard specification
Abstraction layer for all Cortex-M processor based SoCs
Provide quick software enablement for your design
13
with CMSIS compliant firmware, RTOS or stacks
easy debug support of customer IC in tool chains
CMSIS-CORE
Abstraction Layer
CMSIS-DSP
61 DSP functions
CMSIS-RTOS
Integration API
CMSIS-SVD
System Viewer
CMSIS-DAP
Std Debug IF
Application/Firmware/Stacks
DEBUG
14. ARM® Sensinode™ NanoStack
http://www.sensinode.com/
Field-proven communication stack for
IP-based wireless sensor networks
14
Key Features
RF interface support
2.4 GHz (IEEE 802.15.4)
Sub-1GHz (IEEE 802.15.4g)
Supported IEEE and IETF standards
6LoWPAN (ND, HC, RPL), UDPv6, ICMPv6,TCP
Self-healing Mesh network
Self-configurable
Support for Multicast forwarding
128-bit AES security support
Network processor and library versions
Support for 6LoWPAN Bootstrap and link-local
operation modes
14
15. ARM® mbed™ - Accelerating IoT Deployment
http://mbed.org/
15
Rapid, professional IoT device development
An open source platform and libraries for Cortex® -M
microcontrollers
Modern C/C++ platform and ecosystem for developers
Consolidating fundamental embedded building blocks
Microcontrollers,Radios, Sensors, Software stacks
Bluetooth®, 802.15.4/6LoWPAN,WiFi,Cellular
Open Hardware reference designs
Enable transitioning from prototype form
factor to custom product
MCUs
radios
sensors
16. HW Prototyping Platforms for IoT Devices
NOTE:Cost of development systems is not representative of product costs!
Low costARM based boards are available (e.g. FRDM-KL25Z ~$13 low volume)
Increasing availability of MCU dev boards with integrated radio (e.g. Arch BLE ~$40)
Higher end development boards also available (e.g. SAM4C-EK, STK3700)
A good place to start:
16
http://mbed.org/platforms/
17. 2014 ARMTechCon – 10thYear!
http://www.armtechcon.com/
ExpectedAudience – 4500 people
Outstanding program agenda this year with more than 100 sessions
Keynotes:
17
ChrisAnderson,CEO of 3D Robotics
Erica Kochi, founder of the Innovation Labs at UNICEF
ARM CEO Simon Segars
ARM CTO and co-founder Mike Muller
ARM EVP and President of Product Groups Pete Hutton
75 technical sessions
Software DevelopersWorkshop
ARMAccredited Engineer Program
ARM mbed Zone
Expo floor features more than 90 exhibiting companies
18. Questions and Next Steps
Why on earth would anyone want to develop IoT products with 8/16-bit MCUs?
I’m very happy to follow up in more detail and respond to your questions/issues
Please do come along to ARMTechCon
19