While embedded systems hardly constitute an emerging market for development, they are a platform that is hugely on the rise but often goes unnoticed.
Embedded systems are application-specific, reactive technology built into everything — from digital cameras, video players and washing machines to lifts and traffic lights. Modern cars have about 20 in their security systems alone.
Christchurch-based Simon Glass has built up a worldwide customer base for his services as an embedded ARM technology specialist. ARM is a UK designer of microprocessor technology for Samsung, Intel, Philips, NEC, Texas Instruments and Motorola. Its technology can be found in most mobile phones as well as gaming devices, networking equipment, ABS brakes, portable music players and printers.
Glass’ company, Bluewater Systems, designs products based around embedded ARM technology and sells and supports ARM tools.
Glass, who worked for ARM in the UK and the US for five years in technical marketing, returned to New Zealand intending to promote ARM technology here and in Australia. Bluewater Systems mainly works for overseas companies including ARM itself and its semi-conductor partners.
Glass says the market for embedded applications is huge and growing — ARM sells many millions of its 32-bit micro-controller, while worldwide sales of 16-bit micros are in the billions. Micros cost $1 to $20 compared to hundreds of dollars a piece for a computer processor.
Past projects he has worked on range over a variety of applications for numerous different devices. For set-top boxes: serial comms drivers, streaming MPEG2 over ethernet along with stream encryption and algorithm benchmarking; a video and sensor surveillance system with internet facilities based on StrongARM using Linux v2.2, various drivers and a web-based control interface; a Linux kernel port for a gaming machine; designing and implementing hardware and software for a laser controller to display text and graphics on the side of a building or in a nightclub; Nintendo source-level debugging; implementing basic AT command interfaces as used by standard modems; modifying ARM toolkit components to support Windows CE; and optimising image processing algorithms for StrongARM, a project which involved careful hand-optimisation of C-generated code.
Embedded systems are more closed than most systems as products are usually designed to work standalone. The big exception is mobile phones. Power efficiency is another issue as many products run on batteries. Even appliances that are plugged in must be quiet and power-efficient; few people would put up with PC-like fan noise coming from their Sky decoder or cellphone, so microprocessors are 10 to 100 times more power-efficient (MIPS per watt) than PC chips.
While embedded systems are high volume and so huge pressure is exerted on unit cost, development cost is less important: a dollar saved on the build cost can translate to millions of dollars of extra profit, says Glass.
A challenge of developing for this platform is that embedded systems typically require high efficiency. Users — that’s basically all of us — have far higher expectations than users of computers. No one is going to wait for more than two seconds for their washing machine to turn on.
Reliability is paramount as people won’t put up with crashing microwaves or phones, and for cars it can be a matter of life or death. Software must handle faults as no technical person will immediately come and fix things. Embedded systems typically have to run for years without service.
Another issue, Glass says, is that developers are more constrained for resources. For example, an embedded systems programmer typically has 32MB of RAM to work with versus 256MB in a PC or gigabytes in a large server. A 32-bit microprocessor might run at 50MHz to 400MHz but for 8-bit and 16-bit micros the numbers are even smaller— maybe 2MB of RAM and 10MHz.
Lower Hutt-based Clayton Gumbrell agrees, saying that as there is usually no operating system to take care of hardware issues and you are programming the hardware directly, you need to be more aware of timing issues.
“Many of the facilities available on a traditional platform are simply not there and the processing power available or memory size is very limited.”
Gumbrell is an electronics engineer who develops hardware and embedded software, mostly for his company, CamSensor Technologies, developing image sensing equipment.
He also works on other contract jobs, such as one-off development of industrial control devices. This involves developing hardware then writing the software to work in it. Most of his customers are in New Zealand. Gumbrell, who gained a BE in electronics engineering before getting involved in software development for both PC and embedded systems and starting up CamSensor, has also worked on software for communications equipment and on Eftpos systems through CE Solutions. He says the market is growing because more and more products are getting smarter.
Usually the electronics component suppliers (for example with Motorola, Mitsubishi, Hitachi, Philips, Altera and Atmel) provide the tools such as cross-assemblers, cross compilers and software simulators for the platform being worked on. GNU tools are becoming much more widely used, says Gumbrell. A hardware background definitely helps but developers also have to understand digital signal processing and software. Engineers can be easily trained in hardware description languages such as VHDL and Verilog.
Since the software works closely to the hardware he uses various types of electronic test equipment. Development is usually done on a PC before being loaded into the target system.
“An understanding of electronics is necessary and many of those working in the industry have an engineering degree rather than a computing degree. I have had trouble finding skilled people, and having employed people for a few years I am now back on my own since I cannot find suitable staff.”
Auckland University’s Partha Roop, who teaches embedded systems at the engineering school, says jobs abound overseas for computer science graduates who have majored in electrical engineering. Roop says most of his students are approached by companies in the US, Australia and Singapore. Those who stay locally are employed by Navman, Fisher & Paykel and Tait Electronics.
Roop would like to see more interaction and exchange of ideas between commercial developers and universities. He recently ran an IEEE workshop (IEEE is a global engineering professional body) on embedded systems which was attended by about 50 people, from single-person development shops to big name companies such as Navman, F&P and AgResearch.
He says understanding the complexity of the systems is currently one of the biggest issues in embedded systems, especially when coupled with shorter time frames for development.
Since 1997, however, there has been some relief in the form of components such as communication, digital signal processor (DSP), microprocessor and bus interface cores.
These can be plugged into an application and tools such as SOPC (system-on-a-programmable-chip) Builder by Altera let users put them together to produce a final design.
Neil Scott, says the US is the land of opportunity for New Zealand embedded systems developers.
Scott, a former head of Wellington Polytechnic’s school of electrical engineering (now part of Massey University), has been in the US since the 1980s, heading a project at Stanford University in California.
“In the US little money is going into embedded systems,” says Scott. “This is what we’re good at in New Zealand.”
Scott pays regular return visits to New Zealand, actively trying to help New Zealand developers establish links with US customers.