Software is integral to delivering highly functional and safe products
By Steven Servaes, Melexis
When designing hardware products, software is often a differentiator that delivers key benefits for OEMs and end users. Software also offers the ability to upgrade the product during its lifetime, adding new features or adding compatibility with new standards and protocols.
In the automotive arena, safety is a critical concern to component manufacturers, vehicle makers and consumers. Software is at least as important as hardware in ensuring the safety of vehicle drivers, passengers and other road users. As a result, standards define stringent processes that software developers must follow to ensure the safety of automotive systems.
In this article, Melexis looks how software intertwines with hardware and considers the impact of automotive safety standards on design processes as well as giving some insight to the internal processes that ensure their software and products meet the highest standards.
While many companies may, at first, appear to be solely hardware-oriented, software plays a very significant role within the industry in two key areas; development tools and software that is included in their silicon-based products. The embedded software aspect is particularly crucial as it relates to safety-critical applications such as automotive.
High level of design flexibility
One of the key features of many modern semiconductor products is the high level of design flexibility for the end user, and the ability to customize configurations. In order to achieve this, many products have a proprietary microcontroller embedded within them. Although it is a hardware task, performed by the analogue front-end to capture the signals being sensed, the microcontroller relies on software to convert the analogue information into usable data that can be used by the system.
The data may be used internally to drive a connected system such as a pump or an actuator, or it may be processed to be delivered to a communication bus such as LIN, SENT, PSI-5, SPI or any of the other busses commonly used in vehicles. Semiconductor products are generally small and very efficient, meaning that all DSP functions are performed in software, based upon 16-bit signals.
Real time behavior is of the essence in many automotive functions, especially those related to safety where the system may need to make life-critical decisions. As a result, algorithms need to be highly optimized and are mostly coded in the C language to achieve this. Typically these algorithms will reside in the system ROM, but can be stored in Flash for flexibility or to enable software-over-the-air (SOTA) updates.
Sophisticated software diagnostic functions
Many companies create their own software development tools to ensure that they fully meet the business needs and deliver the highest-quality products. However, developing the software itself is only part of the story. Critical system safety is as fundamental to the system operation as the software itself. As a result, sophisticated software diagnostic functions need to be developed, ensuring that in the case of an error or failure, the system is returned to a safe state immediately.
Vehicles are known to be harsh environments with their combination of shock, vibration, heat and electrical noise; any of these factors can create errors within the digital hardware. This then creates vulnerabilities in the software, not least because it is run on a limited silicon area in modern ultra-compact products. Even a very brief issue within a digital processor can have a significant impact on software due to the ultra-fast execution speeds in modern applications.
As electronics content in vehicles increases, so does the embedded software. Just the same as for hardware, there is now a greater potential for software-related recalls. In order to minimise this possibility, a strictly disciplined approach to software design is required.
Universal international approach to software
Two key standards that create a universal international approach to software (and hardware) design are ISO26262 and ASPICE-v3. Each of these standards define a regimented approach to software design that starts at the concept stage. As a result of following the ISO26262 process, a full set of documents (Functional Safety Plan) is generated, ensuring that all necessary processes and actions have been completed to develop a highly resilient, fault tolerant, software package.
ISO26262 is regularly updated to ensure that the latest technologies and applications are covered within its scope. Alongside this, Melexis regularly reviews and updates its own software development process to ensure that it reflects any changes to the standard, new technologies, applications or techniques.
Efficiently and effectively software documentation
As a software development progresses using the latest tools and methods, documenting the software is a very important part of the process. In order to ensure that this is done as efficiently and effectively as possible, Melexis has for example developed a process for software documentation.
A common revision control system and workflow is used to maintain both the source code and related documentation. All of the documentation is written using reStructuredText and Sphinx. This has several advantages. Firstly, the overhead on software developers is relatively low and, as they can use their preferred editor, the documentation is much easier to maintain and parts of it can be automated. Also, by implementing the same branch-commit-merge strategy for documentation and source code, GitLab is able to track review comments and history easily.
Alongside its own in-house developments, Melexis is also a significant contributor to multiple open-source projects.
Melexis has also customized the feature set of the Sphinx documentation technology to allow software requirements to be traced to software design elements, unit tests and integration tests, ensuring full trace-ability throughout the project.
Alongside its own in-house developments, Melexis is also a significant contributor to multiple open-source projects, a stance that has earned them a reputation in the industry as a 'fair player'.
Flexibility and configurability
Embedded software is a vital part of any microcontroller-based hardware and this is especially true at Melexis where their own proprietary microcontroller is used in many of the products to give flexibility and configurability. While standards are well defined, especially ISO26262, the rapid pace of change and introduction of new technologies and applications mean that these standards are under continual review.
Melexis has a policy of always adopting the latest stable and mature software technologies and tools, and has developed customized tools and processes in-house to ensure that the design process is clear, rapid and thorough, assuring customers of the best quality code. Customers buying vehicles containing Melexis hardware and software can be assured that safety has been the principal consideration throughout the design and coding process.
Learn more about Melexis efforts on open sourcing