Embedded Systems Design

When we look around the world we live in, we find many man-made machines running round-the-clock. Have you ever wondered what makes them run continuously? What is the unique system inside these machines that make these devices so user-friendly and reliable? Sometimes we refer these devices as embedded systems? What is that embedded in these devices? In this chapter, we try to address such common doubts that arise in anyone who is newly subjected to these systems and terms.

Embedded systems

In this section, we discuss what an embedded system is all about.

Embedded systems are self-contained control systems or computer systems designed for particular purpose with bare necessary peripherals needed to run it. In the contemporary world, billions of embedded system devices including telephones, automobiles, electronic appliances and other digital devices are working around us, round the clock.
It contains processor, memory, peripherals, and sensors etc.

While general purpose systems are meant for multiple purposes, embedded systems are designed for specific ones. Embedded systems may not have generic interfaces in most of the cases. Even if they have, it will have a specific purpose such as displaying output, giving input etc. Since they are used for a single purpose, the cost of implementing it will be less. Most of the time, embedded systems are time-critical applications which are not possible in general purpose systems.

Uses and applications

With the advent of electronics and related technology, embedded systems have cast their presence almost everywhere. Embedded systems are widely seen in consumer devices, medical equipment, industrial instruments, transportation systems, military equipment etc.

Characteristics

  • Embedded systems are designed for specific tasks and are single functioned
  • Some of them don’t have any external interface at all, some may contain complex interfaces. It’s based on the requirements of the system
  • Some systems may provide user interfaces directly or through serial or network connection which reduces the overall cost of the system by avoiding displays and input interfaces
  • Embedded systems are typically designed to meet real-time constraints
  • They are designed with high optimization for memory, power usage, execution time, dimensions, weight, and cost
  • Embedded system use a few resources, so developing a system will be a challenging task
  • The system should be highly reliable; it is not designed for repairs and cannot be shut down for safety reasons.

Embedded system architecture

Embedded system is a combination of hardware and software. Hardware is designed for the specific purpose and likewise the software. The resources will be very scarce as the application of the system is limited. The hardware and software are interlinked to each other so that the system reduces the burden of cost, time (to bring the product in the market) and tools.
The core part of the embedded system is the processors. Different interfaces and peripherals are interfaced to the system based on the requirements. The architecture of an embedded system can be simply picturized as below.

embedded systems - block diagram
An Embedded system – Block diagram

Processor

There are many options while choosing a processor. These include

  • General purpose microprocessor
  • Microcontroller
  • Digital signal processors
  • Field programmable gate array (FPGA)
  • Complex programmable logic devices (CPLD)
  • System on chip (SoC)

Each of these devices has their own advantages and disadvantages, they are used based on the complexity of the application.

Interfaces

Each device will use the interfaces to connect with outside world. There are a bunch of interfaces including serial, parallel, digital and analog interfaces to choose from. As like others, it also depends on the application and particular use. Some of the interfaces available to embedded systems are

  • Serial communication interfaces, e.g: RS-232
  • Synchronous serial communication interface: e.g: I2C
  • USB
  • Networks: E.g: WiFi
  • Debugging, E.g: JTAG
  • Field buses, E.g: CAN

Peripherals

Peripherals are connected to the embedded system to implement specific features. These may include various sensors, displays, input devices, output devices and actuators. Most of the peripherals may need an interface described above.
Some of the peripherals used in embedded systems are

  • Displays, E.g: Graphic LCD
  • Multimedia cards, E.g: SD Card
  • Timers, Counters
  • Analog to Digital converters
  • Input devices, E.g: keypad
  • Output devices, E.g: LED

Software

Another important part of the embedded system is the software. The embedded system software, generally called firmware, defines how the hardware behaves in each circumstance. The system should be capable of taking account of all the available conditions in a system and should predict the output. In some applications, it may need real-time processing of the data, which is called real-time applications and it may need specialized operating systems called real-time operating system.

Designing embedded systems

Embedded system design is an interesting area of work. Each embedded system is designed for a particular application, and it is also a product. So the development of the embedded systems is defined by the embedded development life cycle (EDLC).

While designing embedded systems, we need to consider the hardware and software part of the systems. It involves the same product development pipeline like requirement analysis, market survey and customer feedback, but in later development & implementation and integration stages, one needs to follow the below steps.

  • Define system specifications based on the requirement analysis
  • Co-design – decide which system should be implemented with hardware and which through software
  • Technology selection – select main parts and associated technologies
  • Resource allocation – decide the resources needed for the design and testing for this product, this includes budget and people
  • Component selection and tools identification
  • Hardware design – schematics, layout, PCB manufacturing and board bring-up
  • Firmware development and testing
  • System integration and testing
  • Testing, certifications