Announcement: Some electric appliances use embedded software, while others rely on firmware. In this article, we will compare the two types of programs and provide real-life examples of their usage.
If you are curious about how electrical appliances function, you might have come across the term “firmware”. Judging by its name, you may guess that it is a specific category of software that is related not to computers but simpler devices. This word was originally coined in the 1960s, long before PCs and smartphones become commonplace. In this article, we will try to investigate what is the difference between software and firmware and see how these two notions are interconnected.
What is Firmware
This term refers to simple, single-purpose programs that are built-in devices to perform low-level operations. You can find them in external hard drives or printers as well as diverse components of computers (disk drives, video adapters and so on).
Back in the day, the firmware was stored on either EPROM or EEPROM chips. The former abbreviation stands for “erasable programmable read-only memory”, the latter — for “electrically erasable”. This means the following: to erase all the data stored on an EPROM chip and reprogram it; you should have exposed it to ultraviolet light. To do the same to their EEPROM counterparts, you should have resorted to external circuitry.
Historically, firmware programming did not involve regular updates. Since the storage capacity of a chip counted just a few kilobytes, it was impossible to save a long and complicated program on it. Now that the amount of available memory has considerably grown, this problem is not relevant anymore.
Today, firmware can be modified to boost the speed and efficiency of the device. This happens due to the fact that it is stored not on EPROM chips but in flash memory, which is much easier to erase and reprogram. This is the same technology that is used in solid-state disk drives and USB drives. However, there is a flipside too: as the Forte Group experts rightfully point that long code entails the risks of bugs and errors.
Mind that not every firmware can be updated. To modify the program, you need to access it through an interface. But what if the device lacks an interface? In this case, the only way to upgrade its firmware would be to take the object apart and replace its circuit boards. This might change in the next few years when the Internet of Things becomes pervasive. Then, we should be able to fine-tune the program of any device through the interface of another one that is connected to it.
What is Embedded Software
Now, let’s discuss the difference between firmware vs embedded software. The latter, too, is a program created for a particular device — but unlike the former, it is more sophisticated. It can be compared to an app on your smartphone. To run embedded software, a device needs to be equipped with a microprocessor or microcontroller.
The program files are placed in the file system of the appliance and are not used until someone sends a relevant command. As soon as the command is received, the executable code is sent to RAM (random access memory of the appliance), and the microprocessor executes it.
For such purposes as managing communication protocols or converting analog sensor signals to digital data, it would be enough to have firmware. There will be no need to install an operating system on the device.
Though times change and the difference between the two types of programs become less drastic. The tasks that were traditionally carried out by firmware are now performed by embedded software and vice versa. Again, with the advent of the Internet of Things, the borderline between the two might blur even further.
To illustrate the discrepancy between firmware and embedded software, let’s have a look at robots. The simplest industrial models function with the help of firmware, which interprets the sensor data and makes the device respond to it.
Now, let’s look at a general-purpose machine with multiple sensors and actuators — this one would require embedded software. But if we consider any of its sensors separately, it will rely on firmware.
TV can also serve as a good example. HDTV devices use microprocessors to receive the incoming signal and generate coloured pixels on the screen. Also, the digital audio signal needs to be converted into an analogue one before being sent to speakers. These operations can be performed by firmware.
Embedded software is a prerequisite for smart TVs that feature operating systems. Such devices normally have pre-installed apps, and users can download additional ones from the Internet. Smart TVs allow their owners to carry out many more operations rather than just adjusting the volume or changing channels. However, they still rely on firmware when it comes to processing signals or using the remote control.
Hopefully, this article came in handy, and now you clearly understand the essence of the two terms. Both types of programs help electric appliances to perform their primary functions and differ mostly in their level of sophistication. It should be mentioned, though, that the difference between firmware and software is not too drastic today. The functions that were traditionally carried out by the former might be successfully performed by the latter and vice versa.