Embedded Systems Design

Embedded Systems Design

Modern digital devices that are used in homes, industries and manufacturing industries contain increasingly sophisticated computing capabilities. This has been made possible by the use of embedded systems. These embedded systems generate, receive and process digital data streams at rates that exceed many gigabits per second. Until the late 1980s, information processing was associated with large mainframe computers and huge tape drives. Later, miniaturization allowed information processing with personal computers (PCs). As chips grew smaller, main frames and PCs began to prove unwieldy too. The miniaturization of chips, ICs, RAM and in general all the electronic gizmos that made processing and computing possible made devices smaller and smaller. Miniaturization also enabled the integration of information processing and the physical environment using computers. This type of information processing has been called an embedded system. There is a difference that separates them from computers though. While they possess the computing power, embedded systems are usually characterized by the fact that they include a microprocessor but do not have the typical components of a computer like keyboard, monitor or mouse.

Today, the majority of microprocessors are employed in embedded system and they are ubiquitous. Embedded devices and systems are found in home gadgets like microwaves, digital clocks, smart TVs and so on. They are very much needed in cellphones, and the modern car has in excess of 50 microprocessors as well. They are required for GPS, for controlling lights, for detecting motion, and for many other purposes.

The defining factor of an embedded computing system is the integration of digital processing within a device that does more than merely compute. Any device that does not process digital data of any sort is not an embedded system. Using that definition, a desktop computer however fast it may be, is just a computing machine. A car on the other hand is an embedded system as it processes some sort of digital data on the fly, depending upon how sophisticated the model is.

Embedded systems typically comprise of:

Power source
All electronic digital devices require some sort of power to operate, and embedded systems are not an exception. From button cells to solar power, they need some form of energy to keep them going.

Digital Processing
By their very definition, embedded systems contain some form of digital processor. Be it microcontroller based or microprocessor based, embedded systems have one or the other to give the system computing power.

Clocks
Embedded systems need timers and counters to keep track of the actions they take. Some events (like the going off of a clock alarm) are time based events, and systems need to perform at a specific time.

Memory
They also need memory, either as RAM or ROM to store executable program code and other necessary information such as static databases. The memory can be divided into primary and secondary, and can be further classified as SRAM, DRAM, Flash memory, Masked ROM, etc.

Software
Embedded systems need some kind of programming software to make them do the tasks they are supposed to do. While the complexity of the software depends on the nature of the application, in many cases it is not very demanding. For example, industrial-grade microcontrollers and embedded IoT systems usually need very simple software that requires little memory.

Peripherals
Apart from these major components, they also need other electronic components like diodes, transistors, ICs, PCB, resistors and so on. One important component needed for IoT / IIoT include sensors. These convert physical sense data into an electrical signal. On the same lines, actuators, which are mechanical or electro-mechanical devices which provide either linear or rotary motion coupled with some movement, are useful in embedded systems that work for IoT / IIoT.

Designing of Embedded Systems
Embedded devices and systems need to operate under varied conditions. Embedded devices such as those in automobiles are often exposed to more rugged conditions, including extreme weather conditions. In addition, space is typically a constraint. A microprocessor for a cellphone needs to be extremely small, so that the device becomes easy to handle. An embedded system is a combination of hardware and software as well as other component that serves a specific function. There are three basic kinds of computing engines embedded into a system: microprocessor, microcomputer and microcontrollers. The microcomputer and other hardware are connected via a system bus, which is nothing but means of connecting the major components of a computer system.

An instruction set architecture is part of the computer architecture related to programming, including the native data types, instructions, registers, addressing modes, memory architecture, interrupt and exception handling, and external I/O. It includes a specification of the set of opcodes (machine language), and the native commands implemented by a particular processor. To run the application, when power is first turned ON, the microprocessor addresses a predefined location and fetches, decodes, and executes the instruction one after the other. The implementation of a microprocessor based embedded system combines the individual pieces into an integrated whole.

The design steps involved in embedded systems contain the following steps: abstraction, refinements, specifications, hardware and software architecture, component design and system integration. Needless to say, there are many design considerations that are not mentioned here, which include costs, performance, size limits, power and energy requirements, and environmental considerations.

The major aspects in the development of embedded systems are:

  • Designing of the software architecture and hardware
  • Conceptual design, development, optimization and prototyping process
  • Designing of the actual software / firmware
  • Interface design, if any
  • Safety, security and reliability
  • Debugging, troubleshooting and testing of the design

It is quite challenging to design embedded systems as they are quite complex. For example, the cost may matter more than speed for a customer. In other cases, a long life cycle may dominate design decisions. Yet others may want reliability / safety to override cost considerations. There are instances where the functioning of an embedded system just cannot be compromised – for example in a pacemaker. It is for this reason that institution like C-DAC, Pune have come up with an entire course devoted to the designing of embedded systems. As we enter Industry 4.0, embedded systems are destined to play leading roles in IoT and IIoT. A practical grounding will give a boost should you seek a job in this challenging field.