What Is an Embedded Computer? A Developer-Friendly Guide
If you write software, you've most likely used the term "embedded" hundreds of times without taking time to consider its definition. So have I. I started paying attention to the myriad meanings associated with that term: a small chip in a hobby board, a gateway in a control panel, and a locked-in box in a factory setting.
Let us take our time and respond to the question in detail. What is an embedded computer? What sets it apart from a microcontroller? And what matters to a developer when an embedded system has to operate for years in a harsh environment?
What is an embedded computer?
Embedded computers are small computers that are installed in large machines to perform one particular task. They consist of a processor, memory, ports, an operating system or lack thereof, and one major program. There is no desktop and no browser. The device is not used like a laptop in any way. It gets information from sensors, communicates with other devices, takes minor decisions, and reports the results.
The best-known example of an embedded computer is your home router. In industry, the gateway in a pump station that collects information through Modbus and relays it to the control room would be such an example.
Embedded computer vs embedded system
There is much confusion about these two terms. The embedded systems concept includes everything together: the hardware and the software for one particular task. Thermostat controllers and boards in washing machines fall into this category. Embedded computer is the hardware part of the embedded system.
In practice, the term "embedded computer" is associated with a purchased and configured product: a board, a box, or a gateway. The embedded system is the solution around it. To get more information on what an embedded system design is, see the Wikipedia article on embedded systems.
Embedded computer vs microcontroller
And here comes the crucial issue in developers' mind – what is the difference between these two concepts? First of all, a microcontroller combines the functionality of CPU and other components including small memories and peripherals into a single chip. Such device is affordable, consumes minimal amount of energy and can be used for simple tasks such as measuring sensors or controlling relays. Embedded computer is a full-fledged computer system, which is equipped with strong processors, memories, ports and has an operating system installed – Windows IoT or Linux, for example.
And the best tip is that if you write code from scratch – it means you are working with microcontrollers. When deploying a container or service, you are more likely to have an embedded computer, especially Python script. Single board computer such as Raspberry PI lies between the two and are widely used for prototyping projects.
Embedded systems examples
Examples of everyday embedded systems: routers, microwaves, car dashboards, traffic lights, and card terminals. In the industrial world, they can be found in oil and gas monitoring, water treatment facilities, power substations, building management, and transportation.
The flow of data is typically as follows:
Field Device / Sensor -> Embedded Gateway -> SCADA / Cloud
(Modbus, serial) (filter, convert) (OPC UA, MQTT)
The embedded gateway collects data from the field devices, filters and/or converts them, and sends the results further. Many embedded gateways use MQTT and OPC UA to do that. If you are interested in how it relates to industrial controllers, here is a good background reading on PLC vs DCS.
What "ruggedized" means for developers
This is where the typical software developer misses the boat. Ruggedized PCs are designed to operate in environments characterized by heat, dust, humidity, and vibration. This impacts the approach you should take when developing your software.
Consider the following factors. First, hardware may not have fans, and is sealed. This implies that there will be thermal limitations, and heavy loads may cause throttling. The temperature ranges will differ from one ruggedized computer to another, but standard industrial computers have a temperature range of -10°C to 60°C, while wide-temperature models extend beyond. The flash storage will wear down, and therefore, avoid frequent small writes to the flash memory. The power supply may fluctuate, hence the need for your software to be able to restart safely.
For a UAE-focused view of rugged options, including industrial PCs and IoT gateways, C3 Automation’s guide on what is an embedded computer goes into more detail.
Security: the part that bites later
The computers being embedded often reside on the perimeter of an operational network, thus they are a great point where things can go wrong. There are three reasons why this happens and these are legacy firmware, default password and open port. You as a developer can help with the problem by providing non-existent default credentials, signed updates and locking down all the other unused ports.
There is more to it when it comes to network design. C3 Automation has a guide for industrial network security that deals with the network aspect of it while IEC/ISA 62443 standard does with industrial security overall.
A short checklist before you choose hardware
First, the environment: temperature, dust and mounting. Second, the communication ports you require: serial, Ethernet, CAN, or digital I/O ports. Third, the OS and protocol support required, as compared with your SCADA and PLCs. Fourth, the actual computing power required, and nothing more. Fifth, the support for the same: the response time in case of any issues, the lifetime of the product line, and the warranty provided.
If you wish to get an industry-focused view along with industrial PCs and IoT gateways, C3 Automation’s “What is an Embedded Computer” article serves as a good accompaniment to this blog post.
Conclusion
An embedded computer is a small computer with one job. The best ones are quiet, reliable and easy to forget. If you are writing software for one, build as if nobody will touch it for years, because that is exactly what will happen.
What was the first embedded device you worked on? Tell me in the comments.
Top comments (0)