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 logo

면책 조항: 이 웹 사이트에서 여러 작성자 및/또는 포럼 참가자가 명시한 의견, 생각 및 견해는 DigiKey의 의견, 생각 및 견해 또는 DigiKey의 공식 정책과 관련이 없습니다.

작성자 정보

Image of Rich Miron, DigiKey

Rich Miron

DigiKey의 기술 콘텐츠 개발자인 Rich Miron은 2007년부터 기술 콘텐츠 그룹에서 주로 기사, 블로그, 제품 교육 모듈을 작성하고 편집하는 책임을 맡고 있습니다. DigiKey 이전에는 핵 잠수함의 계측 및 제어 시스템을 테스트하고 인증하는 업무를 했습니다. Rich는 노스 다코타 주립 대학교 파고에서 전기 및 전자 공학 학위를 취득했습니다.

게시자 정보

DigiKey

미네소타주 시프리버폴스에 위치한 DigiKey는 전자 부품의 시제품 제작/설계 및 양산 모두를 위한 세계적인 풀서비스를 제공하는 업체로서 DigiKey 웹사이트를 통해 750개 이상의 유수 제조업체에서 공급하는 600만 개 이상의 제품을 제공합니다.