Development Tools for the IoT

HW/SW Platform Simplifies and Accelerates IoT Product Development

Designing new product or redesigning product for the world of the Internet of Things involves a set of challenges that can cost engineers the advantage of time to market. A new generation of tools that aids and abstracts many of these issues can speed innovative and accurate product development.


  • Page 1 of 1
    Bookmark and Share

Article Media

By now we’re all aware of the growth expected for the Internet of Things market. Industry analyst Gartner estimates that 4.9 billion connected devices will be in use by the end of 2015, up 30 percent from 2014. Numbers like these have captured the attention of embedded device OEMs and IDHs alike, and much of their new product development efforts are now focused on creating IoT-enabled devices. But the IoT is having a profound effect on the way companies design new products, and to successfully bring new IoT designs to market, engineers need to adopt a new approach to product development.

But why? What is it about designing a product for the IoT that makes it necessary to move to a new design model? There are many factors, but they can all be put into one of three areas of concern: time to market, total cost of ownership, and barriers to entry.

Time to Market

One of the toughest challenges the IoT market presents is its impact on the pace of development. Today everyone understands that those who bring their product to market first reap the largest profits. But the advantage of beating the competition to market doesn’t end there. For the most part, today’s IoT market lacks accepted industry standards. Those who get to market first will have the greatest opportunity to influence those standards and gain an edge over the competition.

Additionally, the IoT market forces embedded developers to reconsider their definition of system-level design. They have to stop thinking of their application as a discrete unit. Instead, they must think in a broader sense about how their application fits into an interconnected world. That, in turn, will force developers to adopt new technologies. As new communications, security, user interfaces and sensor technologies become increasingly commonplace, embedded designers building products for the IoT market must enhance their skills and knowledge of connectivity, the Cloud, and portable applications. Adding support for these technologies to an embedded device increases overall complexity, which can negatively impact a new product’s time to market.

Total Cost of Ownership

For most embedded devices, the design process starts with the selection of a microcontroller (MCU) to serve as the hardware platform for the product. Following that, most OEMs and IDHs then mix and match various software components (design software, drivers, middleware, etc.) to build their product’s core system software. However, this process fails to account for much of the hidden costs that come into play when designing a new product. A great deal of time and expense can be required to find and qualify the proper software for the product, getting trained to use it, porting it to the MCU, and qualifying and debugging it. Furthermore, much of this software is open source or comes from vendors with limited support resources. So if a software problem arises it can slow development to a crawl while the design engineers wrestle with vendors as they attempt to get one of them to take ownership of the problem.

Barriers to Entry

In addition to time to market and cost of ownership issues, design engineers must also overcome different barriers to entering the IoT market that can take many forms, but are all detrimental to progress. For example, in addition to the technical challenges involved in working with embedded software from different vendors, there are usually struggles around negotiating licensing and pricing terms for using the software. Many software vendors require large upfront fees and the purchase of seat licenses in order to use their products. Design teams may also want to leverage legacy software they’ve developed in their new product, which will need to be ported to the new system and tested for compatibility with any new software or hardware. All of these issues can add unwanted cost and monopolize valuable engineering resources to an IoT design.

As we look at the design challenges described above, it becomes apparent that much of the work required for designing an IoT device involves software and hardware configuration, licensing, technical support, debugging and qualification. While these issues must be addressed if the product is going to function properly, ultimately they detract from the design team’s ability to develop application software or other device features that will help differentiate the IoT device from the competition. An IoT development platform that addressed these concerns and challenges upfront would free design engineers to spend more time focusing on developing a product’s unique value added features and less time on basic device functionality, while still allowing them to get to market quickly, efficiently and cost effectively.

For an IoT Platform, Software is Key

To address these concerns around time to market, total cost of ownership and barriers to entry, design engineers need access to easy-to-use, integrated hardware and software platform for IoT product development. That said, there are many embedded and IoT design solutions available today that claim to be highly integrated hardware and software platforms, so let’s examine exactly what a truly integrated IoT development platform should look like.

A core requirement of this integrated IoT platform is a software package that provides all the key software components necessary for most embedded systems and IoT applications, including a real time operating system (RTOS). For example, Renesas recently announced a new IoT development platform, Renesas Synergy, and bundled with it is a premium quality, high-performance and low foot-print RTOS, Express Logic’s ThreadX, along with various middleware components from Express Logic’s X-Ware suite of embedded software. These elements have been tested and verified by Renesas against a published set of specifications, a first in the MCU industry. This eliminates much of the time required to configure basic device functionality and accelerate the IoT product design cycle (Figure 1).

Figure 1
By providing preconfigured drivers, middleware and RTOS integration, a truly integrated IoT platform shortens the design time required for new IoT product development.

Another key component of an integrated IoT platform’s software offerings is the API, which gives design engineers access to the platform’s RTOS, middleware and libraries, and hardware peripherals as easy-to-use, feature-oriented functions. This approach allows the developer to begin building applications almost immediately without spending considerable time learning detailed MCU hardware peripherals, device drivers, specific register definitions, or RTOS integration. A complete set of low-level peripheral driver modules should also be available for a wide array of functions including memory, connectivity, analog, timing, power management, security and encryption, safety and human machine interface. Since some embedded developers will require direct access to individual peripheral drivers from outside the API framework, they should also be able to make direct calls from the application to meet application-specific requirements or to operate within time-critical bounds. Furthermore, since the drivers abstract hardware registers by using logically defined values, the API must provide a consistent experience across different MCUs within the product family, so application code is easily portable to faster, more robust MCUs if the device’s performance demands increase over time.

In addition to the APIs, the platform should support an application framework that integrates with the platform APIs and abstracts MCU hardware features to provide a uniform and consistent interface for application programmers to access and utilize most major features in platform without having to worry about complexity of the underlying low-level device interfaces in the platform. This helps speed the development of common applications used in IoT designs. The application framework should consist of a collection of system level services that are integrated with the RTOS’s features to manage resource conflicts between applications and synchronize between multiple user threads. This would be particularly useful as many of the framework’s modules utilize the services of other application framework modules and have mutual dependencies. The primary purpose of these framework components is to relieve the application developer from having to reinvent commonly used services across applications (Figure 2).

Figure 2
A well-integrated API and application framework gives design engineers direct access to key hardware and software components for easy application development.

An example of this can be seen in the Renesas Synergy Platform’s Serial Peripheral Interface (SPI) Framework, which provides ThreadX-aware API functions for communicating with SPI peripherals from application threads. The SPI Framework makes use of lower level SPI driver modules to communicate with SPI peripherals and the framework handles the integration and synchronization of multiple SPI peripherals on a single SPI bus. For example, in an IoT-connected thermostat or environmental controller application, its temperature and humidity sensors would communicate over a common SPI bus, which would require separate threads communicating asynchronously with temperature and humidity sensors on the same SPI bus. This would create resource conflicts between threads, which the application developer will need to manually resolve by blocking the peripheral at a low level when one thread is accessing it. However, using the Synergy SPI framework this task is automated and streamlined using the thread-safe APIs of the SPI Framework module to handle these resource conflicts and ensure only one application thread gets access to the hardware resource at any time during execution. The SPI Framework also takes care of automated chip select handling, so designers don’t have to enable and disable chip select signals in their applications.

To complement this highly-integrated software offering, the IoT platform should also offer a selection of compatible and scalable 32-bit MCUs based on an industry standard CPU core like the ARM Cortex-M architecture. These MCUs should be designed for IoT requirements and with the objective of maintaining compatibility with the platform’s software components for as long as possible to minimize maintenance. This means that across the board, all MCUs used in the IoT platforms have the same or similar peripherals to minimize the learning curve and maximize re-use of software. Moreover, the pin definitions should also remain same or similar for all like-packages across the entire family to facilitate easy migration to higher- or lower-function devices. Scalability also requires that peripheral capabilities scale from lower to higher and higher to lower while keeping the same register footprint. For example, a simple 16-bit version of a timer peripheral and a complex 32-bit version of the same timer have the same basic control registers, but the 32-bit version adds registers to match the added functions orthogonally which have no effect on the 16-bit version. Also, the register address offsets are designed to simplify the software; if a timer function does not exist, neither does the register, but this does not change the overall register address offset scheme.

An example of such a hardware platform would be the four MCU classes in the Renesas Synergy family (Figure 3). They include four different sub-classes, each with different performance capabilities to meet the needs of a variety of IoT applications. The first class of MCU in the Synergy family, the S1 series, features an ultra-low-power MCU based on a 32 MHz Cortex-M0+ core. Three additional members of the Renesas Synergy MCU family, the S3, S5 and S7 series, use Cortex-M4 cores to support operating frequencies that currently range up to 240 MHz. Designed with industrial automation, motor control, sensor fusion, and similar embedded and IoT applications in mind, the Cortex-M4 features extended single cycle multiply accumulate (MAC) instructions, optimized SIMD arithmetic, saturating arithmetic instructions and a single precision Floating Point Unit (FPU).

Figure 3
To accommodate scaling performance demands, an integrated IoT development platform should offer a range of MCUs with different memory and performance capabilities, with all devices in the product family having pin and peripheral compatibility for easy code portability.

Finally, to eliminate many of the challenges around time to market, cost of ownership and barriers to entry described above, the software and hardware included in the IoT platform should be supported as a single, unified product, with one vendor assuming all responsibility for the development and integration of the platform’s components, so design engineers only have one point of contact to deal with when sourcing licensing agreements or technical support.

Renesas Electronics America
Santa Clara, CA
(408) 588-6000