Hardware Softwarization

作者:Rich Miron

投稿人:DigiKey

Great strides have been made in the last two centuries in making hardware programmable. The Jacquard loom system, developed in the early 1800s, could be the first example of industrial scale hardware programming. By using a chain of punch cards, weave patterns could be defined for the loom (Figure 1).

Image of a chain of punch cards used by a Jacquard loom machine

Figure 1: A chain of punch cards is used by a Jacquard loom machine to simplify the manufacture of textiles with complex patterns. (Image source: Embedded Computing Design)

Today, the trend toward more programmable hardware is accelerating. First to make the transition to programmability was mechanical automation. This was followed by electromechanical logic, electronic logic, and embedded control via microprocessors, microcontrollers, and software. The programmability of machines today varies depending on the application and industry ranging from fully programmable and upgradable devices (e.g., smartphones) to fixed-function devices with no programmability.

The design of programmable hardware traditionally is derived from a strong mechanical engineering legacy using embedded devices to mimic what used to be done mechanically or electromechanically somewhat. A good example of this approach are utility meters. Initially, replacing the numbered wheel with an LCD display, which offered greater cost optimization and reliability, were a simple replacement. As more functionality was deemed necessary, additional functions such as automated meter reading were added without altering the purpose or use cases of the meters to improve operating costs.

Devices such as these require embedded and/or real-time software to be developed and these specific skills are rarely taught by colleges. Consequently, these skills are usually developed on the job. Expertise in embedded software development is just as important as hardware development expertise for two reasons. First, it is expensive to fix embedded software errors and devices can be difficult to upgrade. Second, stringent safety regulation compliance is required for many embedded devices. This requires knowledge and time resources to ensure adherence to regulations including IEC 61508, IEC 62304, UL 60730-1 H, CSA E60730-1 H, IEC 60730-1 H, UL 60335-1 R, and IEC 60335-1 R, UL 1998.

However, there is silent revolution, driven by the Internet of Things (IoT), in the embedded software development paradigm that is advancing every day. As device connectivity becomes more prevalent, the whole world is opened up. Developers must be able to access an IoT device with a well-defined API such as applications like Fitbit, NEST, and Withings (Nokia) Digital Health. A result of this is that connected devices now have access to virtually unlimited cloud resources, opening up possibilities such as voice recognition, artificial intelligence, and personal assistant functions (similar to those associated with Amazon Alexa).

With these new possibilities opening up, the Internet developer community is now starting to play these devices. Beginning with maker boards, they developed with the tools they know such as APIs, Object Oriented programming, scripts, and frameworks like Python, Java, JavaScript, Lua, JSON, and REST API. Demonstrating new levels of simplicity in embedded development, the Arduino platform (based on Wiring and C++) has popularized object language concepts like methods and attributes. Additionally, Raspberry Pi has made Python and Linux accessible to everyone, teaching the use of integrated tools with predefined frameworks that make writing an application simple.

The result of all of this is that this new developer community is taking the embedded world and reshaping it by crafting a “softwarization” of hardware. Embedded engineers are now being pushed to think like modern software developers and look at other technologies that have been efficient for IT systems and web applications. To this end, IoT startup company MediumOne, a partner of Renesas, can field program devices with Python scripts in the cloud.

Because of all of these new developments, the embedded industry can now change the way it defines and designs products completely. Since markets today are highly competitive, engineers have to become more proficient at reusing proven, productized software components with high levels of abstraction. Traditionally, these components have been sourced from specialized companies and have been expensive. However, the recent emergence of some lower-cost options has made them more accessible. Although it comes with unknown quality and other risks, open source is one approach. Another option would be to work with chip manufacturers that can integrate professional software with their hardware devices. This enables them to be offered as part of a single platform cost structure.

The trend towards softwarization is going to transform traditional firmware developers into a very specialized community, similar to how hardware developers are now a specialized part on embedded teams. The role of these specialized firmware developers will be to ensure that a complete board support package runs on the hardware. This will give software developers the ability to create applications with frameworks and high-level languages and scripts.

Furthermore, this trend will make it possible for embedded developers to expand their career opportunities. The following list presents some education essentials to help developers take advantage on this shift:

  • Familiarization with the use of middleware and RTOS. These will soon be the baseline knowledge for engineers that expect to be working with hardware.
  • Pick an appropriate framework to start working with. For instance, automotive developers use Autosar while industrial developers can start with embedded Linux for a good base. Developing an Android or iOS app are good ways to understand framework development.
  • Tinker with the maker boards. Even though they may seem like toys today, they do offer some amazing possibilities.
  • If cultivation of software abilities is desired, consider playing with object languages such as C++, Objective C, and Java. Also consider trying to use markup languages like XML as well as script languages like JavaScript, Python or Lua. Start out with mobile app or web development.
  • Familiarity with the RESTfull API and the JSON data format are also desirable as they are the basic components of Internet communication with most IoT services using one or the other.

Additionally, investigating developer communities is very helpful. These communities provide interactive peer-to-peer forums to hone software skillsets. In particular, one can work with communities focusing around new embedded frameworks such as the Renesas Synergy platform as shown in Figure 2 (many kits are available for this), or the IoT Sandbox (which can be used with the Renesas IoT Sandbox kit), that was developed with MediumOne.

Image of Renesas Synergy Platform

Figure 2: The Renesas Synergy Platform is a complete and qualified platform with fully integrated software, a scalable family of MCUs, unified development tools, and easy to use kits and reference software. (Image source: Renesas)

In joining the revolution, developers could become application software developers who interact with higher-level frameworks. Choosing to stay on the hardware/firmware side, it is essential for embedded engineers to understand a software developer’s needs in the IoT era.

 

免责声明:各个作者和/或论坛参与者在本网站发表的观点、看法和意见不代表 DigiKey 的观点、看法和意见,也不代表 DigiKey 官方政策。

关于此作者

Rich Miron

Rich Miron 是 DigiKey 的高级技术内容编撰人,自 2007 年以来一直在技术内容小组工作,主要负责撰写和编辑文章、博客和产品培训模块内容。在加入 DigiKey 之前,他曾从事核潜艇仪表和控制系统的测试、验证工作。Rich 拥有美国北达科他州立大学的电气和电子工程学位。

关于此出版商

DigiKey

DigiKey 总部设在美国明尼苏达州锡夫里弗福尔斯市,是一个同时针对原型开发/设计提供小批量供应、针对生产提供大批量供应的全球电子元件综合服务提供商,在 DigiKey 上提供 750 多家优质制造商品牌、六百多万种产品。