Courtesy: Micrium Inc.
In the previous episodes in this series, we’ve covered a lot of ground. In this video, we’re discussing the software that runs on embedded devices.
At Micrium, we think of IoT devices as embedded systems that transmit and receive information over a network. And networked devices need a capable operating system. The software for your IoT device must be scalable, to accommodate a wide range of devices. The software should be modular, so you can choose only the components you need. It has to have a variety of connectivity options, such as Wi-Fi, Ethernet, USB, and Bluetooth. And it must be reliable, so your device can be certified for safety-critical applications.
So why a real time operating system? Why not something like Linux?
Linux has a disadvantage when compared to a real-time operating system: Memory footprint. Even though you can trim it down by removing tools and system services, it simply will not run on 8-bit or 16-bit chips. And even many 32-bit MCUs don’t have enough onboard RAM to run the Linux kernel.
Of course, Linux has many uses in embedded devices, particularly ones that provide graphically rich user interfaces. But there are thousands of applications for which Linux is not the right choice.
There are two broad categories of IoT devices: industrial and consumer. And the middleware needed by their applications can be radically different.
For example, take a wireless sensor device. This is a low-power, low-cost device that may run for years entirely on battery. It might typically use a Cortex-M chip. It would need an efficient wireless protocol such as 6LoWPAN to reduce transmission time and save power.
Compare this with a consumer IoT device. It typically might use a Cortex-A processor. And it might need a Java virtual machine. It might need to support different kinds of connections, such as data over power lines. Or specialized networking protocols for vertical markets like medical devices.
These requirements will drive your choice of operating system, because you don’t want the features of your device limited by your choice of platform. A flexible, scalable RTOS that runs on a variety of 16 and 32-bit chips will allow you to meet tight memory requirements and reduce processor demands.
An important way to reduce the amount of RAM and flash memory needed in your device is to use modular software. By separating the kernel from middleware, protocols, and applications, you can pick and choose only the components you need. And it simplifies your development process, especially if you are developing a family of devices.
Your device must be able to connect to IP networks using efficient protocols such as 6LoWPAN. A modular operating system will allow you to select the specific protocol stacks you need, saving memory on your device, and reducing your costs.
Something else to consider: A lot of embedded devices are deployed in fields that demand perfect safety and reliability. So you may need your RTOS to be pre-certified for safety-critical jobs. Fields that require certification include aviation, industrial controls, medical devices, transportation, and nuclear systems. Software that is already certified can reduce certification time for your device, and reduce your costs. And even if you don’t require certification for your device, knowing that the OS running within it has been certified can provide confidence and peace of mind.
This brings us to Micrum’s IoT solution, called Spectrum: A pre-integrated suite of embedded software for IoT devices. It includes a kernel, protocol stacks, and cloud services, and provides end-to-end support from your device to the cloud.
The components of Spectrum include: A RTOS, either µC/OS-II or µC/OS-III; local networking with support for Ethernet, Wi-Fi, and Bluetooth. It provides support for IoT protocols, including HTTP client and server with REST API, and MQTT; it has a Java VM designed for deeply embedded systems; and it features Web services such as cloud-server interfaces, data brokering, and cloud storage.
Spectrum gathers all the components you need into one portfolio of software. It runs on a huge number of MCUs. And it had flexible licensing terms.