FastTrack To Embedded Systems
The word ‘computer’ usually conjures up images of a desktop, a laptop, a server or perhaps if you’re a really big thinker, even a mainframe. In reality computers are not just dumb boxes which just sit around on tables. As a matter of fact, computers are embedded into everything ranging from your microwave to the Boeing 777, your smartphone to the Curiosity Mars Rover. All in all we’re surrounded on all sides by these small wonders; about 90% of the processors manufactured across the world are powering what are also called embedded systems. Such systems despite being small and seemingly non-existent are the reason for the rapid growth and advancement in other areas of technology. These devices are responsible for powering everything from mundane home appliances, traffic lights and simple robots to bewilderingly complex systems deployed for process and production control at automated manufacturing plants, power stations and telecommunication systems. They’re also used heavily in avionics and air traffic control. Apart from this, embedded systems find use in space applications – Space X Dragon, Mars Pathfinder and Curiosity all carried such systems.
What are Embedded systems
All these functions are carried out by the help of embedded systems. Why should you know about them? Well, normally users frolic in the joy that these technologies bring without ever understanding their intricacies. Don’t you want to stay one step ahead of the rest? Also, as cited before, your home is probably full of them, and wouldn’t it be a good idea to understand these little pixies of the electronics world?
Applications of Embedded technology
The Traffic Light Controllers (TLC) used now are based on microcontrollers and microprocessors. This TLC uses predefined hardware, and so can only function according to the program and does not have the intelligence to be flexible on a real-time basis. Ever had to wait at a crossroad when there is absolutely no vehicles incoming from the adjoining roads but still you have to wait for the timer to count-down to zero because someone thought that was a pretty neat idea? Ever found yourself philosophising about your life because there is nothing really else to do except inhale exhaust fumes? All this in addition to the fact that there is so much petrol being wasted for absolutely nothing. That horrid experience could soon never have to be experienced by anyone again.
It doesn’t matter how great or optimised the algorithms, they’re useless without the hardware. You can’t make a program written for PowerPC run on an Intel machine or vice versa. While the hardware is also nothing but a piece of junk without the software, it is the hardware which forms a system’s base, the bed on which software sleeps. Interestingly, the word ‘embedded’ is built around the word ‘bed’.
Challenges in hardware design for Embedded systems
Wi-Fi router is up and running as soon as you switch it on, it’s because someone probably worked very hard to ensure that it behaves flawlessly. Designing hardware for embedded systems requires a deep understanding of the real-world scenarios within which electronic systems are used.
Software running on embedded systems is vastly different from those that we run every day on our desktops and/or laptops. Since software in most cases is customised for the hardware on which it is to be deployed, software for embedded systems must be designed keeping in mind the limitation and capabilities of the platform. Embedded systems impose constraints of time and resources. Due to the timing constraints, embedded systems are often referred to as real-time systems i.e. the correctness of a computation not only depends on the logical correctness of the result but also the time at which the result is produced. The system is said to have failed if it doesn’t meet the timing constraints. Resources on such systems can vary from 6KB ROM and 4KB RAM with a CPU operating at 8MHz to specifications that can rival modern computers but which are limited by the power available.
Programming Embedded systems
Developing for an embedded system is an entirely different ball game as compared to a tradition non-embedded system. This is due the constraints imposed by these systems that we mentioned in the previous chapter - hardware, resources and time. A program has to be usually customised for the platform that has to be deployed on i.e. cross-compiled for each of the platforms you want it to work on. Another thing to consider is that you’ll also have very limited functionality in terms of what one refers to as a standard library, only the most important functions find there way there. There may also be a limitation in the memory which affects the size of program that you can deploy to most systems.
Future of Embedded systems and career options
With growth and advancements in the field of electronics, wireless communications, networking, cognitive and affective computing and robotics, devices around you communicate in more ways than you ever imagined. Those times are not very distant when every object around us will have a small processor/sensor embedded within itself, invisible to us but still communicating with all other devices around, making our lives more connected and accessible than ever before.