The famous saying “Change is the only constant” means everything should go through changes. This applies more to the technology world is changes frequently. Something not digital or not meeting the expectations of this generation is not appreciated. Technologies should keep up or change to meet the demands of this digital world. Internet of Things (IoT) is rapidly digitizing everything, where embedded systems technologies plays a very key role. As IoT is transforming the world, Embedded Systems and programming them is changing too! Let us talk about top-3 changes that is happening right in front of us in the world of Embedded Systems.
For years together Embedded System developers have been using C or C++ as the primary programming language. Invented in 1970s, C programming language is a structured, procedural language with great set of features to deal with hardware (ex: memory management). Apart from this C offers the best optimized machine code, which is suitable for resource constrained Embedded Systems. In the similar lines C++ offered some of the key Object Oriented Programming (OOP) features which helped to write re-usable Embedded Systems code.
Change#2: The “Things” OS
After programming language, the next change is coming in form of Embedded Operating System. In traditional embedded systems developers need to put lot of efforts to bring up OS in the target hardware. This include board bring-up, customizing course code, porting an existing application etc. They had choices between bare metal OS (RTOS) and OpenSource Linux.
The growth of IoT is leading to a lot of changes in Embedded OS. Major players are heavily investing in open source based highly customizable and easy to use IoT OS – Amazon Free RTOS, Android Things, Arm Mbed and Mongoose OS are some of the examples. An IoT OS is an operating system that is designed to perform within the boundaries that are particular to IoT devices, along with the restrictions on memory, size, power and processing scope. IoT operating system area category of embedded OS but by interpretation are designed to enable data transfer over the internet.
These OS have pre built in features that are essential for IoT along with easy to customize tools and mechanisms.
- Security: End-to-End security mechanisms to ensure data is transferred safely
- Device protocols: Inbuilt support for a range of protocols to connect with devices and cloud
- Libraries support: Reusable components to make development faster
- Firmware Upgrade: Support for OTA in a secure manner to keep the device updated
All the above mentioned factors make the development faster and easier, which was not very evident in case of traditional Embedded Systems development. From customizing vanilla OpenSource Linux, the Embedded OS development has gone through sea of changes thanks to IoT.
Change#3: Network and Protocols
The traditional Embedded Systems was not having a mandatory need of networking and protocols. It was only required if the device has to connect with a network. In case of IoT networking and connectivity is a mandatory need. Hence traditional embedded systems developer need to transition into IoT by giving more serious look into networking part. This is another change caused in Embedded Systems thanks to IoT.
Here are the key networking aspects:
|REST APIs||Representational State Transfer is an architectural approach for developing web services. This is used as a mechanism to transfer data between IoT gateways and cloud by binding Embedded and web technologies together|
|IoT protocols||REST APIs and JSON operate at data level. At lower level it requires lightweight, web-scale protocols that can seamlessly connect gateways with IoT cloud. Here developers are provided with options such as HTTP, CoAP, MQTT, XMPP etc.|
|Websockets||Web socket is a computer communication protocol giving full duplex interaction channels over a single TCP connection. Web socket protocol facilitates communication between a web browser and a web server with lower overheads, which makes is suitable for IoT.|
Between IoT devices and gateway much more protocol choices are available. From IoT devices to cloud choices are limited. So choosing the right set of protocol for IoT device is one of the most important change that embedded system developer need to adapt.