IOT — Getting Started #02
As promised in previous post this post is focused on introducing Embedded Systems.
Embedded systems are the computer based systems that may not appear as computers but have computing hardware with software embedded to it. The complexity is hidden from user and the user doesn’t have to deal with it.
These systems interact with user via simple interface like in Television, digital cameras or interact with other devices invisible to user, like in disk drives, anti locking system where the user doesn’t directly interact with devices.
‘An embedded system is a computer system with a dedicated function within a larger mechanical or electrical system, often with real time computing constraints. It is embedded as part of a complete device often including hardware and mechanical parts. Embedded systems control many devices in common use today. Ninety-eight percent of all microprocessors are manufactured as components of embedded systems.’ — Source: Wikipedia.
By now you would have got bit idea about embedded system. But the question is ‘Why are we learning embedded systems in this series of IOT?’
If so, let me clear your doubt.
Embedded systems are the basics of IOT. The main difference is internet connectivity, IOT devices are always connected to internet whereas an embedded device may or may not be connected to internet. Also due to the easy and cheaper availability of internet most of the embedded devices are now converting into IOT devices. So, it’s very important to first learn about embedded systems them move to IOT.
I hope you got the reason to learn more about embedded systems, let’s now once again get back to it.
An embedded system is specific application oriented i.e. it can repeatedly perform one task or set of related tasks unlike our computers which can run any type of program.
The most important thing which is kept in mind during designing an embedded system is its efficiency. The system needs to serve its purpose but efficiently, be in low cost or low power consumption or in better performance. This efficiency is achieved by designing hardware and software together. The embedded coder should be aware of all the hardware features.
Let me give you an example to show how embedded systems (dedicated systems) efficiency due to hardware and software designing together. Consider a general purpose system say a HP Laptop and we need to open word in it, so we will be using software provided by a third party say Microsoft. There may be some compatibility issues or performance issue which may degrade the efficiency of the system. Whereas if we consider a MAC where the software is provided by Apple itself dedicated specially for MAC. In such a case there will be no compatibility issues and the performance will be better. Mainly this makes Apple products more reliable/efficient as compared to the others.
Lets now move to bit technicality of embedded systems, we will first see structure of embedded systems.
Embedded systems take input from outside world and gives output to outside world.
The structure of embedded system is shown in figure below
- Sensors: These are the physical devices which sense the environment and initiate the chain by providing the input data.
- ADC (Analog to Digital converter): An analog-to-digital converter converts the analog signal sent by the sensor into a digital signal which serves input for microcontroller.
- Microcontroller: Processors process the data to measure the output and store it to the memory.
3.1 IP (Intellectual property): These are the pre-designed chips that perform one function and communicate with microcontroller using communication protocols in-order to enable the process. These chips are cheap in cost and high in volume.
3.2 FPGA (Field Programmable Gate Array): These are the reconfigurable integrated circuits/chips which a user or designer can reconfigure as per requirement after manufacturing.
- DAC (Digital to Analog converter): Converts the digital data fed/generated by the processor to analog data.
- Actuators: These are the action takers similar to sensors, which perform a task/action as per the signal received and processed by microcontroller.
So by now, you have got brief knowledge about embedded systems and microcontrollers. This knowledge is sufficient for us to move on to microcontrollers a step towards learning IOT. In the next blog we will be learning about Arduino a microcontroller and Arduino IDLE a software to used to code Arduino.
If you have any doubts/queries do mention them in comments.
If you have want to follow the series, make sure to follow this account for regular updates.