- Data-acquisitie (DAQ) & datalogging
- PXI instrumenten
- VirtualBench all-in-one instrument
- RF & Testen van draadloze systemen
- Embedded systemen
- Alliance Program
- Cursussen en certificering
- Customer solutions
Embedded designers are challenged to deliver high-quality products and services at a faster pace. With the NI approach to graphical system design, realize benefits beyond what was previously capable with traditional design tools.
Below you can read the first 2 chapters of the 'Build vs Buy' white paper.
When developing an embedded system, deciding which portion of the system to design and which to buy off the shelf can be daunting. By designing and building a custom solution, you can customize the end result and optimize costs, but any design specification changes or oversights can cause lengthy and expensive delays. Alternatively, an off-the-shelf platform increases the cost of goods sold (COGS) and you may pay for features that are not necessary for your design. Nevertheless, off-the-shelf systems typically provide a faster design and validation cycle and, therefore, shorter time to market.
A custom embedded design requires a wide range of experts such as hardware digital designers, hardware analog designers, software developers, and mechanical designers. Additionally, there could be other engineers and scientists on the team with application domain expertise focused on the application or industry your company is trying to serve. The end result is a large team for a custom design.
Figure 1. Custom design traditionally takes a large design team with different levels of hardware, software, and application expertise
A custom design team faces the big decision of choosing the processor technology – such as the five listed below – that they use as the design’s central processing or control unit.
1. Microcontroller– Microcontrollers are extremely cost-effective and generally offer an integrated solution on a single chip, including I/O peripherals. They tend to contain very small amounts of on-chip memory, leaving little room for complexity and expansion. In addition, clock rates are typically in the tens of megahertz, and, therefore, you generally cannot achieve high-performance control or signal processing loops.
2. Microprocessor – With a microprocessor, clock rates are higher and there is usually an external memory interface, so performance and expandability are often not a concern. But your applications may require complex driver development because there are usually no on-chip analog peripherals. In addition, high-density packaging techniques such as ball-grid array may lead to a need for more sophisticated manufacturing processes. This adds up to more difficult hardware debugging and manufacturing costs.
3. Digital signal processor (DSP) – A DSP is a specialized microprocessor with additional instructions to optimize certain mathematical functions such as multiply and accumulate. DSPs are extremely useful for computationally heavy applications, but you usually need specialized knowledge to take advantage of this software capability.
4. Application-specific integrated circuit (ASIC) – An ASIC chip is designed for a specific application rather than general-purpose programmability. ASICs are widely considered a superior technology for technical considerations such as power consumption, size, and cost of goods. However, the development and fabrication costs of ASICs are extremely expensive, and these high costs typically deter all except those with the highest-volume products.
5. Field-programmable gate array (FPGA) – FPGAs provide an interesting middle ground between custom ASIC design and off-the-shelf technology. They offer a high level of specialization, but are reconfigurable so you do not have the high fabrication cost that hampers ASIC development. Although you can use FPGAs for a variety of processing applications, complex FPGA design is uncommon because the VHDL programming paradigm is foreign to most embedded software developers who are more comfortable with sequential programming in ANSI C.
In many cases, a single processor technology cannot serve all the needs of an application. Therefore, hybrid architectures have recently become increasingly popular. One such architecture is shown in Figure 2. The real-time processor manages network communication and potentially the user interface while the digital logic manages interfacing to I/O components and high-speed control, timing, and signal processing tasks. This hybrid architecture is becoming common in embedded system design for building control and monitoring solutions.
Figure 2. This ideal hybrid hardware architecture is used within advanced embedded monitoring and control applications
After deciding on the processor technologies and the digital design, you must develop the I/O circuitry. If any of the signals needed for the embedded monitoring or control system are analog, the design requires analog-to-digital converters (ADCs) and/or digital-to-analog converters (DACs). A wide range of microcontrollers and processors have ADCs and DACs built into them, but, for most applications, additional analog components are required to build systems with higher analog quality, performance, and channel count. You also need to create the power supply circuitry to power all of the components on your design.
Additionally, a mechanical design is needed to ensure that the embedded design can operate in the environments in which it is be deployed. Component placement and passive or active cooling should be done to help cool the hotter components of the design.
In addition to the hardware digital and analog hardware design, a custom embedded solution requires software design. This often makes up the largest development expense. Within the software design, there are many steps and techniques to developing a real-time software application to execute on the processing hardware you selected. You can use several different tools and architectures to implement the control or monitoring aspects of your design. Software development within a custom design requires expertise for low-level tasks such as real-time OS board-support package development, device driver development, driver API development, application development, and so on.