Embedded System
Embedded Systems: G P Computer System:
Electronics system that contains Contains general purpose (GP)
embedded processor (MCU/DSP/ microprocessor, primary & secondary
ASIP etc.) and peripherals which are
configured to perform specific function memories, keyboards, monitor etc. It
performs variety of tasks such as
It has single unified software called word processing, accounting,
Embedded Software scientific computing, email,
multimedia, database system etc.
It ensures performance and it
guarantees timing It runs variety of softwares and uses
general purpose OS
Most embedded systems are tightly
constraint.
Offers average performance and
cannot guarantee timing
Characteristics of Embedded
Systems
Single functioned – doing dedicated task repetitively
Tightly Constrained – in area, power, cost
Reactive and Real time – Airbag control, Automatic braking, Missile tracking
Safety critical (Dependable) system – Flight control, Fire control, Atomic
power plant etc.
Availability (Deliver service when requested), Reliability (Deliver service
as specified), Safety (Must operate without failure), Security (Protect
against intrusion)
Interacting with harsh physical environment
(vibrations, shock, supply variations etc.)
Other desirable characteristics:
Maintainability
Time to Market
Characteristics of Embedded
Systems
Design Metrics:
Cost
Power, Performance, Size
Flexibility
Classification of Embedded
Systems
Small scale
electronic toy, digital watch, home security system, barcode reader, data
acquisition system, lighting control, elevator control
Medium scale
audio/video compression, image processing, digital camera, portable
video games, ATM, TV set top box, medical instruments
Complex (Sophisticated)
High speed routers, Flight control, Sophisticated industrial control &
Automation, Mobile phones
What skills and knowledge required in each case?
Example (Telegraph) :
Embedded software has to handle many real-world issues such as
Network Data may be out of order, lost or arrive twice
Other computers on Network also want to print
Need to provide status of printer to computers
It need to respond quickly and keep track of time
Design Metrics => throughput (speed), response time, power consumption, flexibility
Example (Digital Camera- Medium
Scale):
Requirement=> Immediately process and store images after Capture, Quick
display of images, Long battery life
Hardware: Microcontroller with other coprocessors and peripherals
Performance: Resolution, image compression time, display latency
Constraints: Power dissipation, cost, size
Typical Components
(1) Embedded Processors:
Microcontrollers : e.g. 8051 family, AVR series, PIC series, ARM series
Moderate Computing but enhanced I/O capability
On chip Memory, Peripherals and Debug hardware
Used for => Control and Communication
DSP : e.g. TMS series, SHARC
Fast Multiply-Accumulate, Multi-access memory, SIMD/MIMD processing
Digital filtering, Image/Audio processing, Cryptography, Noise shaping
ASSP/ASIP :
processor with hardwired logic customized to an application
(graphics processor, network processor, multimedia processor, …)
Typical Components
(2) Memories:
ROM variants (masked ROM, OTPROM, EEPROM, FLASHROM):
Stores firmware (codes for initializing hardware and loading embedded OS),
code for embedded OS and application software
RAM (SRAM, DRAM, NVRAM):
Stack data
Store temporary results generated during program run
Cache Memory:
Small SRAM tightly coupled to CPU
Contains copies of recently accessed instructions and data
Typical Components
(3) Comm. Interfaces:
On board / On chip => I2C, SPI
External => RS232 /RS422/RS423, RS485, USB, Ethernet, CAN etc.
(4) Other Components:
Keypad, LED, LCD, GLCD
Sensors
actuators (motors, relays, valves, solenoids)
ADC/DAC, PWM, Watchdog timer, RTC etc.
Embedded software development
Software development
Assembly Programming
Very compact machine code and hence faster execution
Useful for low level tasks (hardware and bus access)
CPU specific and not portable
Less readable (difficult to understand by others)
C / Embedded C
Looks like high level language. More readable
Short time for code development
Easily portable across many Microcontrollers
Machine code size (after compilation) is larger
System Softwares in Embedded
System soft wares : (1) firmware (2) BSP (3) embedded OS or RTOS
[1] Firmware:
First code that runs upon power on
Deeply embedded and low level operation
Typically, it contains code for hardware initialization and loading OS
For some system, it contains complete software
[2] BSP:
System software library to that is needed to use hardware board
BSP a set of libraries (of h/w specific functionalities) that can be accessed
by application software
[3] RTOS:
RTOS (real time operating system) is one type of embedded OS
It performs low level operations such as servicing interrupts, managing & servicing
I/O devices (keypad, display, timers, communication ports ..), memory management,
scheduling of tasks (processes) etc.
RTOS hides system hardware from user/application
Application software use APIs (system calls) to access RTOS services
Kernel Mode => Embedded system runs RTOS functions