Embedded Systems Frequently Asked Questions (FAQs)
1. What is embedded system?
General definition of Embedded System is a system designed for some specific purpose or to achieve some specific task. But in particular when we say embedded system what we mean is a computerized or electronic system designed for particular purpose.
a. Our wrist watch is an embedded system. Its job is to provide the time.
b. Washing machine is an embedded system, set top box is embedded system, mobile phones are embedded system so is the missile. The list is unlimited.
2. What are various types of Embedded Systems?
There are 3 categories in embedded system –
a. Small scale embedded system: This kind of systems contain typically small electronic circuitry, some electro mechanical units, input, output and a battery or power source. There is not much intelligence in this and no software is required. However design of the circuit is crucial. Physical size is small.
Examples – Wrist watch, water level controllers etc.
b. Medium scale embedded system: This kind of systems is more complex than small ones. It has a microcontroller or microcomputer, small memory typically ROM or flash, input, output units, analog to digital and digital to analog converters if inputs are analog , sensors, electro mechanical units etc.
These systems are hardware and software based. Programming is very important aspect along with hardware.Physical size varies; can be from match box size to some meters.
Examples – Mobile phones, control systems, washing machines, Cars, Robots etc.
c. Large scale embedded system: These systems are very complex. They may contain more than one computers or controllers, large electro mechanical units, many input – output interfaces, many types of sensor units. This system is combination of multiple medium scale systems. Software is complex and programming has to meet stringent requirements. Physical size is large.
Examples: Missile launchers, Space crafts, Submarines etc.
3. What are the skills required for design and development of Embedded System?
A requirement of skills depends on what kind of embedded system is involved. To generalize embedded system engineer should have knowledge of microprocessors and micro-controllers electronic circuits and operating system programming. Programming language ‘C’ is very popular in embedded domain. Modern embedded systems are often OS based, this makes the need of operating system internals as a mandatory skill.
4. It is often said that embedded system developer must have knowledge of the Hardware. Is it true?
This is very vague. Here knowledge of the hardware means knowledge of the components involved in embedded system and some knowledge of the domain where this system is being used. Let’s say we are developing temperature control system. Then you need knowledge of thermocouple which is used as sensor to get temperature. You would also need an ADC to get digital input to your circuit. So you need to know interfacing of the ADC to your microcontroller. In this case software program is required to take input from ADC, then to take decisions based on temperature and then send output to DAC to drive output circuitry. If multiple tasks are involved and need attention at a time then it may involve microkernel or embedded OS.
5. What is RTOS?
RTOS stands for real time operating system. This type of OS guarantees timeliness in performing task. General purpose operating system does not guarantee in how much time it can transfer block of data, however real time OS guarantees that. I will cover details of RTOS in next article.
6. What is hard real time and Soft real time?
For some application or devices time requirements are very critical. E.g. Missile launcher. It must do the firing at exact time otherwise results will be disastrous. In such case we need hard real timeliness. In other applications we might need the timeliness but we can afford to have some tolerance these are soft real time tasks.
7. Is Embedded OS and RTOS means same thing?
Most often yes. However Embedded OS can be general purpose multitasking OS customised as per the need. Embedded Linux is necessarily Linux customised and may involve some real timeliness.
8. What kind Operating system programming is needed in embedded?
Embedded system generally involves custom devices like HMIs or peripherals. So writing device drivers for them is needed. Secondly embedded application may require operating system services or system calls for talking to peripherals.
9. What is embedded System development environment?
Embedded System development environment involves one development host (PC), cross compilers, debuggers, optionally IDEs like keil or eclipse, host to target connectivity etc.
10. What are popular embedded platforms?
There is no such thing as a popular. However ARM with Linux has gained lot of momentum.