Embedded software - finding the sweet spot!
Author: Siebe Warners - Senior Embedded Software Engineer

Embedded software - finding the sweet spot!

Embedded Software is all around us, running in the majority of electrical appliances in households, businesses, and industries. Often referred to as “firmware”, it is software tailored to specific hardware and the fixed-function or set of functions, it needs to perform.

Hardware platforms running embedded software range from small controllers with limited processing and memory to multi-board, multi-processor systems running sophisticated control and monitoring algorithms.

Some examples of embedded software:

  • Bluetooth controller software in EarPods
  • Tire pressure monitoring software running in modern cars' wheels
  • Management and control software running on switches and routers
  • Control software running inside (Smart)SFPs.

Finding the optimal point to move from hardware to embedded software creates high-speed, feature-rich solutions in an optimal system size
No alt text provided for this image

So, why use embedded software?

Embedded software is used for implementing complex functions which cannot or should not be realized in hardware, be it in board design, programmable logic, or ASIC logic.

The strength of embedded software is the ability to?perform a multitude of different operations on a heterogeneous set of data and inputs, especially when the program flow branches out into many different conditions, each requiring different actions to be taken. Such cases are best implemented in software.

The basis for a good embedded?solution is determined in the design phase of the product where the choice of feature/requirement versus implementation is made.?

The key is finding the sweet spot between performance, power, heat dissipation, maintainability, and flexibility. Electronic circuitry and implementations that use application-specific integrated circuits (ASICs) are very power efficient and fast when a fixed set of operations can be performed on an extensive, homogeneous data set.

However, there is a downside to using hardware and that is flexibility and development cost (NRE). AimValley has expert knowledge in hardware, ASIC/FPGA, and software design and can help find the best fit for any embedded design.

AimValley recommendation for using embedded software

Complexity

When complex processing is required, embedded software is better suited. Some complex processing examples:

  • Management interfaces for configuration and upgrades.
  • Applying configuration items widens the scope of a system’s deployment. Allowing upgrades adds the possibility to get the hardware platform to market quickly with a limited feature set and to add features later through upgrades.
  • Monitoring/reporting. Fault handling and collecting & reporting of performance counters is a typical general-purpose computing task.
  • If a given application requires fault handling and/or performance counters this will be done by embedded software
  • Protocols. Due to their complex nature, (networking) protocols are best implemented in software. Especially when multiple interdependent protocols are running on a single system it is preferable to run these in software unless there are very stringent performance requirements.

No alt text provided for this image

Cost

Combinations of complex electronic and mechanical designs can be simplified or replaced through the use of embedded processors running software programs.


Efficiency

The right combination of hardware, ASIC/FPGA, and software optimizes the embedded solution in terms of real estate, power consumption (heat), and performance.

Flexible & Future Proof

Whereas hard-wired electronics can only be changed prior to manufacturing, embedded software and software in general can be changed, upgraded, and improved through version upgrades.

As can be seen from the points and examples provided, both embedded software implementations and hardware/FPGA implementations have their own strong points. Embedded software is fit to run large sets of conditional instructions on varied datasets where hardware and FPGA/ASIC implementations are better at performing linear, high-speed operations on large uniform datasets.

No alt text provided for this image

Note that hardware is specifically built for one specific data set and is costly to change. An FPGA is somewhat more flexible as it is programmable hardware that can be adapted for various data sets. Depending on cost, complexity, and efficiency, software might be the better solution.

Time-critical steps can best be handled in hardware/ FPGA. Work can be handed off to software for the less time-critical parts

AimValley's proven track record

Find out how AimValley's embedded software solutions help with your next high-tech product development: AimValley Embedded Software.

Michael Ungethuem

?? Von Software bis Service – wir managen Ihre Anlagendokumentation. ?? Effiziente Dokumentation = Erfolgreiche Projekte

2 年

Thanks for posting!

回复

要查看或添加评论,请登录

AimValley的更多文章

社区洞察

其他会员也浏览了