Often for a single application, low price, highly reliable, resource efficiency

Embedded system pipeline


Intellectual Property Core (IP Core): Reusable unit of logic/functionality (eg. network / video / bus protocol / … chip) produced in high volume
Field-Programmable Gate Array (FPGA): Reconfigurable/programmable integrated circuit for specific functionality better performance
MicroController Unit (MCU): Scaled-down microprocessor sending/receiving commands to connected components needs to be programmed
Sensors: Measure physical properties - convert them to electric signals

  • Specifications: accuracy, sensitivity, sensing range, sampling interval, type (digital / analogue)

Actuators: Cause events to occur in the environment

  • Driven by embedded system’s signals, often require extra power

Conversions

Analogue-Digital Converter (ADC)

Analogue input (eg. sensor) digital output
Limited number of bits quantization error:

ADC sampling rate - frequency of conversion and sending data - needs to be high enough

Digital-Analogue Converter (DAC)

Digital input (from processor) analogue output (eg. actuator)
Pulse-Width Modulation: simulating analogue output











Designing Embedded System Applications

Selecting hardware

Datasheets for complex components
MCU selection based on requirements: word length, clock speed, IO pins, timers, …

  • storage (cost vs speed tradeoff)
  • registers (fast, single location)
  • register file (a set of registers)
  • memory:
    • cache: fast, cheaper than registers (used for data and instruction cache)
    • main memory: connected to CPU via bus slow but large
    • EEPROM: survives power off, but small and slow (used for configuration data)
    • flash: large, faster reads but slower writes than EEPROM, survives power off

Programming MCU

MCU (machine language) vs programmer (high level language)

  • Cross compilation: programme on PC, deploy to MCU
  • Toolchain: development tools

Embedded operating systems

Communication, managing tasks/processes and resource allocation
Process: abstraction of processing tasks, usually 1 process per app

  • Separate memory space slower inter-process communication

Task: smallest unit of execution, multiple tasks per process - fast switching

  • Shared memory space direct inter-task communication (shared variables)

OS is optional: embedded devices are often single-purpose

  • consumes resources (processing, memory, energy)

OS is useful:

  • easier programming and deployment (provides libraries)
  • task-resource allocation support (for complex apps)

Real-Time Operating System (RTOS): event driven OS with a scheduler for time sharing (eg. round-robin / priority preeemptive scheduling / … )