Testing embedded control systems
A summary of some of the key steps involved when testing embedded control systems.
What is an embedded control system?
An embedded control system is generally a single physical device comprising a compute engine such as a microcontroller or FPGA and supporting electronics for power supply and interfacing requirements.
In most cases, there will be one or more communications buses used to integrate the functions provided by the electronic control system with the rest of the system.
So how do you go about testing such a system?
There are many stages where testing can be performed to help deliver a correctly functioning unit. Depending on whether you have specified, designed or are simply integrating the control unit, you should get involved at each stage of the design life cycle, often referred to as the V-Model or V-Cycle.
Traditionally, testing takes place after the implementation stage. However, you should aim to cover the entire life cycle by testing specifications, software designs at functional levels and electronics sub-systems, prior to completion of the initial samples. Functional testing in the latter stages will then be more successful and will require fewer iterations of the ‘V’ shown above.
Are there techniques that can improve this process?
Most certainly. For example, the use of a model-based design can greatly improve the design process and open up more opportunities to enable testing earlier in the design cycle (the left side of the ‘V’).
Model-based design brings testing advantages
By implementing your specification in a modelling language, such as Simulink from The MathWorks, you can improve the level of readability and allow early simulation of your sub-system’s top level functionality.
Taken to its extreme, you can specify your system – which may be an entire vehicle – in this manner, making simulation of the system or sub-systems possible.
Once you have a model-based specification, the design can be taken and implemented in a number of ways.
Testing techniques available
Commonly used testing stages are available to fulfil product testing requirements throughout the ‘V’ cycle:
- Model-in-the-loop testing (MIL)
- Software-in-the-loop testing (SIL)
- Rapid Control Prototyping (RCP)
- Hardware-in-the-loop testing (HIL)
- Robustness testing
The above techniques involve testing at various stages, largely using the model, software generated by the model, and then fully implemented code written or autocoded for the target hardware.
Rapid Control Prototyping is a further technique that can take the model-based design and target a general purpose controller, such as our MICROGen product; designed to execute the model in real-time hardware early in the design life cycle, allowing earlier use-case testing.
How can we help?
In general the above techniques all enable testing to be performed earlier in the design life cycle, and thus can help detect flaws in the design earlier too, improving your time-to-market and the quality of the delivered product.
We offer a range of products and services to help you test your products more effectively – including test automation software, hardware-in the loop test systems, supporting tools for model and software-in-the-loop testing and a complete range of Rapid Control Prototyping solutions.
Our new range of robustness testing products will also help you to gain confidence that your delivered systems will perform reliably in the field for years to come.
Additionally, we can help you at the manufacturing stage. We offer a range of bespoke solutions for test during manufacture.
Genix is a range of technologies for hardware-in-the-loop simulation that allow engineers to re-configure and scale test environments quickly as requirements change.
The LVTGO-VBS help you to develop electrical systems that are more robust, and achieve the necessary industry compliance standards, by delivering sequences of waveforms.
The MICROGen allows you to develop control models, test them, and make amendments quickly in an iterative process. This allows for efficient RCP or gateway implementation.