Embedded System Design

This article explains the key principles of an Embedded System, typical applications, and why they are a reliable solution for modern technology.

Systems are programmable, running code (i.e., C/C++) that is dedicated to performing a set of specific tasks or functions. The behaviour of these systems is analogous to the function of the ‘brain’ in humans and provides a centralised point of control generally answerable to nothing except for itself—typically untethered from any external source of intelligence, making decisions basically, performing operations independently.

Embedded systems have grown in use over the years and are now used in a variety of applications requiring standalone functionality. For instance, when a product is required to perform a multitude of functions, then it can be easier to incorporate an embedded system and write the necessary code to create these functions rather than trying to achieve required functionality by developing hardware.

Moreover, if the operation of a piece of equipment or product needs to be modified for any reason, then in most cases this can simply be achieved by changing lines of code in the software and reprogramming the system as opposed to modifying hardware.

This is very advantageous as it avoids having to modify the underlying hardware, which can be costly both in terms of time and money. Software updates can even be carried out remotely, which most of us have had experience of.

As chip technology has advanced over the years, systems have become much more integrated, resulting in chip designers being able to squeeze much more functionality onto a single chip, occupying a single piece of silicon. With this in mind, the natural path of evolution is to bring (integrate) the functionality of some peripheral chips into the same package as the microcontroller, allowing full systems to be created on a single chip. With this approach, many benefits are shown as follows: –

  • Cost Savings (lower component count)
  • Printed Circuit Board Space Savings
  • Performance enhancements (i.e. speed)
  • Lower manufacturing costs
  • Environmental benefits

When designing a system, it’s important to consider the following factors:

  • Power Requirements
  • Coding Experience
  • Space Constraints
  • Processor speed (more speed = more power)
  • Math advantages – 16-bit or 32-bit (level complex math calculations)
  • Device cost (volume purchases)
  • Decide whether to go for high or low levels of integration
  • Functional needs of the system
  • Future obsolescence

For a free consultation to discuss how we can tailor a design that meets your needs contact us today or call 01865 408 352.