Forty years ago, the embedded single-board computer (SBC) became a viable option for OEMs and systems integrators. It took advantage of the rapid increase in performance in personal computer and workstation processors. In turn, the SBC made possible a host of embedded applications from industrial control to medical instruments, supplanting much more expensive systems based on minicomputers and programmable logic controllers (PLC).
The SBC brought with it massive amounts of flexibility supported by a growing base of application software. In the past couple of decades, the pace of innovation accelerated with the adoption of open-source software. This made it possible for integrators to focus more on their own differentiation instead of having to reinvent the wheel with basic system functions.
Today, we are looking at another major change for embedded systems. In contrast to the previous microcomputer revolution, this is a combination of evolutionary steps that taken together will change the way we think about this class of system.
Although the SBC made it possible to bring advanced computing to bear on a wide range of industrial and consumer applications, we often applied the technology in a way that made the world conform to the machine. Automation on production lines was organised to make it easy for rules-based software to operate. We controlled computers using dedicated languages optimised for a task, such as database management or real-time control. These rules-driven approaches are running out of steam. The computer needs to understand the world as it is rather than organising processes to be easier for a computer to understand. Existing technologies are too inflexible to handle these situations.
One of the key technologies for making a new generation of embedded computers understand the world is machine learning. This covers a huge array of techniques. In their simplest form, the algorithms include simple curve-fitting algorithms that can partition datasets into groups. Probabilistic techniques such as Bayesian filtering and Gaussian processes provide more advanced forms of machine learning. Some of the most groundbreaking work in recent years has come through neural networks and deep learning. Relying on huge amounts of computing power, deep learning in an embedded context calls for specialised processing fabrics such as the Movidius engine used in Intel’s RealSense technology and the tiny USB-based Myriad Neural Compute Stick.
The Movidius technology helps give drones such as the DJI Phantom 4 the ability to interpret the 3D scenery they capture with their cameras. The algorithms use a combination of image processing and machine learning that run on the many parallel processors inside the Movidius vision processor unit (VPU). These algorithms let the drone follow predetermined paths or even the drone’s user as they run, ride or ski, yet steer around obstacles such as trees or rocks.
As we place more trust in the computers around us, they become ever more attractive targets for cybercriminals. We don't want them taking control of our drones or any other systems. And practically any system is a potential target, from servers running in the cloud down to humble IoT sensor nodes.
The previous generation of computer systems were built for a more trusting environment. The first computer worm to wreak havoc on the internet, during the 1980s, was partly the product of a network infrastructure that assumed all packets transmitted across it would be benign. Today, we cannot take any chances. Security has to be a core part of the hardware platform so that the software running on it has a root of trust on which it can depend.
The Cypress PSoC 6 is an example of the new class of IoT platform the industry needs. Based on a dual-core ARM processor, the PSoC 6 adds a hardware-based trusted execution environment (TEE) that ensures hackers cannot compromise the boot process and subvert core functions on the device – a common feature of ‘rootkit’ attacks on traditional computers. To let the microcontroller communicate securely, the PSoC 6 includes secure data storage for private keys and a hardware cryptoprocessor that supports encryption and secure-hashing algorithms such as ECC, AES and SHA.
An important aspect of the PSoC architecture is its use of programmable hardware that can be used to build highly optimised peripherals that can operate more efficiently than software running on a general-purpose processor. Similar to the Movidius platform but aimed at a different class of system, it shows how programmability is moving out from general-purpose processors into the hardware domain in order to reduce power consumption and increase performance.
The platforms and software environments now becoming available have tremendous ability. We can simply downfall powerful open-source environments for machine learning through offerings such as Tensorflow and Caffe. But, even though machine learning relieves the developer from the burden of coding strict rules into a system, it does not remove the responsibility to find the most appropriate and efficient solution for a given problem. The choice of machine-learning techniques for a given application is crucial. And the number of techniques to choose from is expanding rapidly.
Even within deep learning, new classes of neural network are arriving at a rapid pace. We have recurrent neural network and memory networks that attack different types of problem in natural language understanding. Various forms of convolutional neural network are being applied to images and video. It will take a highly skilled developer base to make the most of these technologies and ensure they are secured properly against attack or subversion.
Education will be vital to making the most of these platforms. Computing technology is now such a fundamental part of our existence that people should feel comfortable building systems based on processors and software. With the rise of machine learning, people have even more incentive to do so because of the impact these systems can have on their daily lives. As they gain more familiarity with the technology, they can move to more advanced platforms that may extend all the way to Caffe running on a device such as the Movidius USB stick.
Providers of educational platforms have laid the foundations already. The Raspberry Pi and Arduino boards have successfully introduced hundreds of thousands of people to the possibilities of embedded computing. Raspberry Pi, and initiatives like Micro:bit, have extended the reach of these educational environments to a younger audience, opening up the possibilities of the IoT to children under 11 years of age. A generation used to the idea of building computerised, robotic systems to help them in their everyday life will translate into a familiarity that will help support them and society as they move to more advanced systems. And, rather than writing programs that say “hello world”, they will be building systems that understand what “hello” means and wave to you when you say it. It is a revolution waiting for all of us.
Simon Duggleby isTechnical Marketing Manager, RS Components