Do you know 70% of intelligent computing devices are surrounding us? One of the facts is our world will connect to more than 50 billion devices by 2020.
Embedded System is also known as integrated system due to its combination of hardware and software (also known as Firmware).
Many of the newbies want to know the working of the embedded system and its development life cycle?
If you are one of them, this beginner’s guide gives you a complete idea of Embedded systems. Let’s start.
Before going to know the working, it is important to know the difference between General purpose computer and embedded device.
Embedded System VS General Purpose System
Many of you confuse between the two words, but there is a primary difference between embedded system and general purpose system.
Computing device like microprocessor has external peripherals (Real time Clock, USB, Ethernet, WiFi, Bluetooth etc.) connected to it and are visible outside. But an embedded device contains few or all the peripherals inside the module, i.e. SOC (System On Chip).
Here are some of the differences I have listed out.
General Purpose Operating system
- Multi Tasking Environment
- Generic algorithms had been implemented for performing parallel tasks. They are meant for faster processing.
- Complex operations like 32 bit and 64 bit addition and subtraction can be done.
- Cannot respond and interact with the outside analog world.
- The cost is high due to memory (RAM,ROM) availability.
- Power consumption and Size are not a major design constraint.
- Not real time and reactive in harsh environment.
- User friendly.
Examples: Windows, Linux, Apple.
What is Embedded System?
As the name implies, it may be hardware or software integrated to perform a particular function. It uses a Microcontroller/Microprocessor to perform a single job. It is a stand-alone device with no operating system.
Examples may be washing machine, Music player, ATM, Vending machine, Data Logger etc.
Nowadays, Most of the devices run on the operating system. So, what is the need of an OS?
- The user needs smarter devices capable of doing multiple jobs in less time.
- Supports enough memory to run multiple applications.
- Reusable and Stable with more software updates.
The best example is your Smart Phone.
Where are they present?
Embedded Systems are present everywhere. Doesn’t believe? Most of the people use without knowing. The beauty is that it is unseeable to the user, delivering a wealth of experience.
Most of the products in your home are embedded which give excellent experience and comfort to the user.
Examples: Home Security system, Setup Box, Digital Camera, Television, Microwave Oven, Air Conditioner, Refrigerator and much more.
They are also into the commercial enterprise solutions for internet working business clients.
Examples: Router, Modem, Printer, Gateways.
The automotive industry is well competing worldwide. Some of the Embedded subsystems in automobiles are Anti-lock Braking system (ABS), Air conditioning control, Ignition control, Airbag control, Rain sensing wipers.
The medical field is a critical one, and use of embedded systems is a nightmare. The odd design may lead to a disastrous effect on the society or an individual.
Examples: Blood pressure monitors, Heartbeat monitors, pacemakers, Telesupervision and surgery, Scanners.
The recent challenges of embedded systems extended its scope towards automation. Automation is the process of doing a task repetitively. Automation increases machine productivity, reducing development cost and design time.
Examples: Industrial machinery and control, Temperature monitoring, 3D printing machines.
Aerospace and Defense
Aerospace and Defense is a rugged area where security and performance are most important. To achieve this reliable firmware and embedded software has to be built.
Examples: Flight control systems, Actuation, Air and Thermal Management, Engine power, Vehicle turbochargers, Navigation system.
Every complex system in the world can be made based on two ideas, Software and Hardware. To achieve that you have to start building smaller modules and integrate them to create an efficient subsystem.
The embedded system can be partitioned into software and hardware components.
The core of any embedded target is the electronic hardware – which resides on Printed Circuit Board. If you consider any embedded development board it has five modules, Processor, Memory subsystem, Input devices, Output devices and Bus controllers for the interconnection of these modules.
Software components are essential building blocks of embedded systems. They are Device drivers, Operating system, Application Software, Error handling and debugging software.
Hardware is the fundamental resource of any embedded device and choosing a particular component depends on the requirement and specification of the designer. In the global market, there are many variants of hardware produced for different applications. Some of them are:
Microprocessor and Microcontroller
Microcontroller/Microprocessor is preferred to build small applications with precise calculation. Indeed, they have a limited amount of ram and less reliable. Some of the famous manufacturing companies are Altera, Atmel, Renesas, Infineon, NXP and much more.
System on Chip (SoC)
SoC comprises a CPU, Peripheral devices (Timers, counters), Communication interfaces (I²C, SPI, UART), and Power Management Circuits on a single IC.
If your application should be more reliable with higher performance and low cost SoC is the best choice. It supports one or more processor cores.
ASIC means Application Specific Integrated Circuit.
Firstly the chip was designed to use for a particular application and owned by a single company. So no copyrighting of the product is allowed. Secondly, it consumes little power.
You may wonder, these are the most used processors for Audio and video applications. DSP Processors removes the noise and improves signal quality for your DVD player, Music player, and Gaming consoles.
Note: There may be hundreds of Microcontroller/Microprocessor present in the embedded computing system.
Favorable Embedded Programming languages
Most people do not know about programming languages used for embedded systems and technology is changing every day. So, you need to update yourself in this competitive world.
Most of the hardware platforms support multiple languages. For ease of development, it is required to learn other technologies.
Dennis Ritchie in the year 1972 developed an operating system using C. Embedded C is the most widely used languages for embedded systems.
Why C for Embedded Systems?
- Performance wise better.
- Easy to use.
- More reliable.
- Directly interacts with the hardware.
There is not much difference between C and C++. However, here are some of the extra features included in C++.
Why Embedded C++?
- Security wise better than C.
- Much closer to real world applications.
- Easy to use.
However, it is entirely in the hands of the developer to choose C or C++ for a given application.
How an Embedded System Works?
Every Embedded computing device may it be your computer or mobile has some inputs and corresponding outputs.
Here is an example of how integrated embedded device works.
- It takes the analog/digital input from the user.
Examples: Push button switch, Keypad, Sensor, Touch Screen.
- Process the given input. Processing may be calculation or conversion. For example, an ADC (Analog to digital converter) converts a sensor analog input to digital output.
- After converting the analog value to digital output, you need to control using output devices.
Examples: Motor, LCD, Touch screen.
# Interesting Facts
- Real time and reactive.
- The system is always ready to accept input, process the input and give the correct
- Low Power consumption, Compact in Size, Low cost.
- Expected to work without human involvement.
- Ability to observe, react and control the external environment within a deterministic period.
Embedded Software Development Life Cycle
Need for Product Development Life Cycle
- To meet the requirement of the customer.
- To bring high quality products to the market.
Here are the seven steps to building an embedded product.
Seven steps to make your Embedded Product
Step1: Understand the requirements
First of all, you need to know and understand the end user specifications.
Step 2: Examine
Analyze the components (software and hardware) required to make the product.
Step 3: Design
It is the most critical phase of the development cycle. The developer needs to develop the embedded hardware and software individually and integrate both.
Step 4: Develop
The Programmer develops the Prototype using available hardware and software tools to match the customer specifications.
Note: Prototype is the sample version drawn up to test a concept.
Step 5: Test
The developer examines the application by running test cases to prove the possible potential of the prototype.
Step 6: Deploy
After testing the product, the developer checks the result in a real environment to realize the Proof Of Concept.
Note: Proof Of Concept is a technique used to validate an idea, but it may not be deliverable.
Step 7: Support and Upgrade
Depending on the user requirement, support and upgrade have to be provided to add new features at regular intervals.
I hope, this beginners guide makes you understand the components of the embedded system and its software development lifecycle.
Do you want to kick start your career in embedded world? Doesn’t know where to start? Then, Explore the article on Career in Embedded Systems: Worldwide Opportunities.