There is a huge growth of of wearables taking place in the IoT world. With it, developers are facing complex requirements for low power, multicore processing, communications and more.
BY WARREN KURISU, MENTOR GRAPHICS
The world in which we live is evolving at a blinding pace. While the concept of Internet-connected products is decades old, and the term “Internet of Things” (IoT) is commonly traced back to 1999 by Kevin Ashton (then, the director of the Auto-ID Center at MIT), it wasn’t until recently that technology has enabled a revolution in connected goods, including wearables. It’s fascinating that the embedded industry once again finds itself at the beginning of an era where the promise of enormous business returns is driving investments and new product development, not unlike the dot-com boom that drove the economy of the late 20th Century.
Before diving into the evolving requirements of wearables in IoT, it is useful to begin by defining some basic foundational terminology. A “wearable” can mean any product that is used for local data collection, storage, processing, and decision-making. Wearables are connected for purposes of data aggregation, data analysis, remote management, and decision-making at a gateway, in the cloud, or in some cases, both. Wearables can also be built for a specific purpose. such as a cardiac monitor. But increasingly, these end products consolidate functions like the heart rate wristband called the Fitbit Charge HR. Others can even be fully featured application platforms like Apple Watch.
Many definitions exist for the “Internet of things” as well. But for our purposes it shall broadly mean an Internet-connected network of physical products that transmit data or information to Internet-connected servers for the purposes of data aggregation and storage, business intelligence, decision-making, and overall management of all things connected.
Connectivity Comes of Age
Connected goods or products have, of course, been around for years. A couple decades ago, we began to experience Wi-Fi connected laptops and home entertainment systems serving content from home-based servers. There were also simple connected products such as heart rate monitors and GPS navigation systems. Smart phones soon appeared and quickly became the first truly ubiquitous connected product. We are now experiencing an explosion of more sophisticated and connected items. The wearables segment alone includes smart watches, fitness and activity trackers, glucose monitors, implantable cardiac monitors, augmented reality goggles, smart helmets, smart insoles, personal location products, and so on (Figure 1). The future is limitless for these increasingly capable and connected wearables. The trend line is clear: wearables will continue to increase in functionality and in end-user expectations – performance, battery life and reliability will also increase.
Wearables have expanded into many different product categories and industries.
To realize the promise of complex and connected wearables, the hardware must be available to meet power and performance requirements. Fortunately, semiconductor manufacturers are working feverishly to create the hardware foundations to enable both current and future generations of wearables. Examples of this type of commitment include Freescale’s Wearables Reference Platform (WaRP) and Ineda’s Dhanush Wearable Processing Unit (WPU). Wearables today are being designed and manufactured with decreasing process geometries for minimal size and low power. They include homogeneous and heterogeneous multicore applications processors and microcontrollers for maximum flexibility that integrate support for graphics and displays, along with a plethora of options for connectivity, memory management, security, and more.
Competitive and time-to-market pressures drive the need for a solution that provides the foundational features and functionality to allow companies to focus their scarce development resources on building differentiated applications as opposed to the software platform on which those applications reside. Software developers see an extremely capable hardware foundation on which to build their wearable end product, but they now face a rather daunting task of structuring, developing, scaling, and testing the very software that enables these products.
As companies work to differentiate their wearable products and to get them to market quickly, software developers are increasingly requiring a more scalable solution with all of the key capabilities built in and with features that range from the very simple to the extremely complex. The overall solution must be able to satisfy small memory and processor requirements, but also be modular to allow the scaling of features for connectivity, graphics, and portability to accommodate more powerful multicore processors with consolidated functionality. A good example of such a solution might be a consolidated home medical unit that monitors not only blood pressure, but also measures and aggregates other vitals, connects to an infusion pump, presents a graphical and audible interface to hospice workers, and communicates to the lab, hospital, and doctors via the Internet or a cellular data network.
The Importance of Power Management
Wearables are battery powered and therefore require capabilities to manage the power states of the CPU and applications. Contemporary system-on-ship (SoC) designs for wearables offer low-power features such as idle modes, sleep modes, dynamic voltage frequency scaling (DVFS), and hibernate. Yet, the complexity of implementing the low-power features in the hardware typically consumes precious developer time and often prevents application developers from generating power-efficient code.
Just as modern software architectures abstract hardware functions through device drivers, a power management framework (Figure 2) provides a structured mechanism for all system devices to be controlled using intuitive application programming interface (API) calls. Any alteration of one device that impacts other devices results in a coordinated transition across all involved subsystems. With a power management framework, embedded software developers developing software for wearable products can effectively write code to meet power requirements without creating code bloat and increased footprint. A power management framework allows developers to consider power specifications early in the software design cycle. Code can be written to minimize both the footprint and power consumption. And it can be tested throughout the development process to ensure power requirements are achieved.
At the core of a power management framework is the “Device Manager” that coordinates the transition of all devices during a change to a low-power state.
Single-core and Multicore Environments
As wearables become more capable and complex, they will require more capable hardware, which drives the adoption of multicore processors into the wearable space. These new multicore processors now include application cores in addition to microcontroller cores for energy-efficient operation. System architectures for wearables are beginning to run heterogeneous operating environments on these heterogeneous multicore processors. Operating systems might include a mixture of general purpose operating systems such as Linux or Android, running alongside a real-time operating system (RTOS) or even bare metal environments. The complexity introduced by these heterogeneous architectures is creating an entirely new category of problems related to the development, debugging, and optimization of the system.
Booting and management of remote cores is one such area of complexity. What developers need is a multicore framework that allows the system architect to designate one core in the system as the master (Figure 3). The software running on the master controls the power states of the other cores in the system, and it can also programmatically and dynamically load and unload software from those cores, depending on the current demands of the system. The multicore framework also requires a system-wide, inter-process communication (IPC) infrastructure, as well as integrated development tools, allowing developers to analyze and debug the entire system of heterogeneous software and cores. Such a framework provides two key benefits to architects. First, a system power management capability is enabled by the ability to control the power states of slave cores from a master core – unused cores and applications do not need to run if the wearable use-case does not require it. Second, this framework allows software to be dynamically loaded and unloaded depending on the use case, allowing the system to run many more applications than the physical hardware can actually support at a given time.
A multicore framework enables system level management of a heterogeneous multicore system.
UI, Communications and Security
Wearables also commonly include a user interface (UI) that can range from simple to very complex. Thus, the solution must have the ability to scale graphics displays from a simple LCD to a sophisticated UI that leverages a GPU rendering 3-D graphics optimized for embedded wearables. Considerations must be made whether a commercial or open source graphics solution is required, and whether those solutions are available for the chosen operating platform. Many graphical UI solutions exist for wearables including the Qt platform, Embedded Wizard (Tara Systems), CGI Studio (SocioNext), Altia, and others.
Wearables can be connected to each other, directly to the cloud, or through a gateway which could be a smart phone or a local Internet-connected gateway. To be connected, wearables must support standards such as Wi-Fi, Bluetooth, and/or Bluetooth Low Energy (BLE), and also standards such as 6LowPAN and Thread. A wearable might also need to support IoT protocols such as CoAP, MQTT, and XMPP for product-to-gateway and product-to-cloud communications (Figure 4). As with other capabilities, these must work out of the box and be scalable in and out of the solution to meet the specific requirements of wearables.
To participate in the IoT, whether product-to-product or product-to-gateway or cloud, wearables must include the latest IoT communications protocols.
Of course, with connectivity there will be concerns about security. As connected wearables become more complex and capable, private information will increasingly flow into and through them. Some examples include medical instruments with secure patient data and consumer wearables that may perform e-commerce along with digital rights management functions. These wearable systems must boot into a trusted state, data must be collected and stored safely, and data communication paths to gateways and to the cloud must also be secured. To minimize code size and maximize performance, the solution should take advantage of secure boot technologies and leverage hardware-enforced security mechanisms such as Trusted Execution Environments (TEEs) and crypto security engines.
The world of IoT wearables is expanding. A perfect environment exists today for unprecedented business opportunity due to the capacity of the Internet and wireless bandwidth, combined with advances in processor and device technologies, standardization of IoT and communication protocols, and embedded solutions that enable the overall solution. These technical capabilities enable the creation of IoT products that can seamlessly gather enormous amounts of data, which can be analyzed to provide valuable information.
The wearable market is driving a wave of innovation and new products to market. Companies building wearables today will benefit from a highly scalable embedded development platform that addresses challenging requirements posed by small, resourced-constrained systems to more complex consumer end-products that support heterogeneous operating environments on homogeneous or heterogeneous SoCs, graphics, connectivity, and security.