what is embedded computing

If you try to search at whatis.com, you won't find the answer, because basically there is no such term. But why not ? Are they stupid ? You can actually get the definition of "embedded system" from whatis.com.

And since Embedded system is some combination of computer hardware and software, either fixed in capability or programmable, that is specifically designed for a particular kind of application device. Industrial machines .. thus embedded computing is the process of creating embedded system.

Here is my brief and straight to the point interpretation of Embedded Computing.

Embedded Computing is more like specialized computing. Basically different companies defines it differently, Microsoft defines it using Windows CE/XPe and its development tools.

In a generic sense, Embedded Computing is about creation of a computing system for device (Embedded Device) which serves a specific purpose. Why specific purpose? Because it is a device. Therefore, we are talking about hardware manufacturing; which is actually producing the motherboard or PCB. And if you can develop the hardware, what about software? Usually there can only be firmware, but with Embedded computing, you get to have an OS built-in to the devices and thus having the ability to write application as software instead of firmware.

The following are examples of Embedded Devices:
  1. Gateways.
  2. Instrumental and industrial automation.
  3. Windows Mobile and Windows Embedded devices.
  4. Kiosks / ATM operating system platform.
  5. Medical design and system.
  6. Network consumer electronics.
  7. Points of service terminal.
  8. Projectors and large screen display.
  9. Set-top boxes.
  10. Specialized servers.
  11. Thin client devices.
  12. VOIP devices.
  13. Windows Automotive.

These are taken from http://www.windowsembeddeddevices.com/

Let's take one example, VOIP devices. Let's say you have a CISCO VOIP switch which supports for Windows CE/XPe. If you need to program it so that whenever it detects your girlfriend voice, it will allocate more bandwidth to it. This is made possible by Embedded Computing.

Now the next question is what about JVM, do we need JVM for Embedded Computing?

The fact is that Windows CE/XPe, like Palm OS and Symbian are OS for Embedded Devices. Of course, I know that Cisco routers are running on its own O.S, but there are other VOIP devices which support Window CE/XPe.

Now, JVM is a byte-code specification meant for multi-platform usage. Thus, if you intended to write an application for all platforms mentioned above, the first thing you do is to write a program which generates a binary which is understood by JVM. Then, make sure that device's O.S support JVM. Take a look at the following JVM supported devices.

And how do you make sure that device's O.S support JVM?
-->You need to get a separate installation to do it, by purchasing the software from some vendors or through OSS.

Thus, JVM sits on top of Embedded System's OS which sits on top of the hardware.



Therefore, we should write more application based on JVM specification; for instance, Java byte-code is current the defacto now.
--------------evaluation-----------------------------
1. what is the difference between windows CE and JVM?
2. how does JVM work?
3. what is the connection between JVM and other platform such Palm OS and Symbian?
4. JVM doesn't always means java, it is related to Java Bytecode where Java Bytecode is based on JVM specification.
--------------------------------------------------------

Comments

Anonymous said…
A few years back, I attended a seminar and the speaker was a engineer who worked in a turn-key development environment. He spoke about embedded development using Java and related his years of experience.

What they basically do is develop hardware products such as set top boxes, gizmos and gadgets for the consumer electronics market. As it is very much low level, the key component was the chipset (say Chip Maker A) that is the heart of the gadget's operations and they had to follow the native language of that chipset to build features around the device.

When they were ready to move to mass production (about 6 months down the road) - their client or head office would direct them to redevelop the item on another chipset (say Chip Maker B) as the market has moved and it was cheaper to mass produce it with Chipset B.

You can image the time and resources that have been wasted - they had to chuck away all the code and restart again. This has been the bane of embedded systems development especially in product development where they have to move fast to deliver the product to the market

Embedded Java came as an answer for these engineers. Efforts have been made via the Java Community Process to encourage the development of standards for embedded development using Java and chip makers worked with the JCP to implement standardised JVMs into their products. Some did not follow but most did as they saw the value of having that in place.

This helped to save time and resources for companies and product development engineers as their investment in time and software logic is protected.