The traditional design process of embedded DSP system usually consists of two stages: from concept to algorithm and from algorithm to product. Usually these two stages are independent of each other and completed by different design teams.
In the traditional design process, manual conversion and connection between the two stages are required, which is prone to errors and delays the time to market. This article introduces an integrated tool that can make design and verification testing more automated and more efficient, thereby reducing product defects.
Over the past few years, products and systems have become increasingly powerful in terms of software functionality, with more and more intensive real-time requirements. For design engineers, in order to compete with competitors and bring new products to market faster, efficient system development methods have become a top priority, especially for engineers developing digital signal processor algorithms. In addition, factors such as the continuous shortening of product development cycles and life cycles have also prompted engineers and design managers to comprehensively re-evaluate development methods and software tool processes.
Product vulnerabilities can lead to a rapid decline in market share, and if a company sacrifices quality, its reputation will be immediately affected. Product engineers encounter many difficulties when implementing algorithms designed by R&D engineers, one of which is to manually transfer system parameters, test vectors, and other data from development tools based on the host PC concept to DSP code development tools based on target hardware. This manual conversion often causes errors that can only be discovered during confirmation and testing, resulting in longer development time. Market research shows that more than 50% of customer product development time is often spent on product integration and testing. At this stage, time-saving tools have a great impact on product functional reliability, time to market, and ultimate success.
In today's market environment, traditional product development processes are no longer able to develop engineers' development processes from concepts to algorithms and ultimately to product launches. New development processes require extensive tool integration to ensure that data and other information can be dynamically shared to achieve higher work efficiency.
Traditional DSP development process
The traditional design process of embedded DSP systems usually includes two main stages, namely the concept to algorithm stage (implemented by the R&D team, which includes algorithm development and system design) and the algorithm to product stage (implemented by the product development team, which includes actual product implementation, target programming and testing), as shown in Figure 1.
Since the above two stages are often independent of each other and completed by different design teams, and the goals of each team may not be consistent, there will be some problems within this structure. In addition, the tools used by the design team may be incompatible with each other and cannot be integrated together.
In most cases, R&D engineers use digital computing environments that allow them to fully exploit algorithm development, analysis, and visualization capabilities for a variety of scientific, mathematical, or engineering applications. R&D engineers often create algorithms in M or C code, and can also create test vectors (usually data files in text or binary format) for their algorithms. They then run the algorithm in simulation on a host PC to analyze and visualize the algorithm response, with the goal of ensuring that the algorithm works not only independently of a specific platform, but also independently of any physical memory, speed, or real-time limitations. When they want to transfer the design to a product development group, they will submit written specifications or actual C or M code and ask the development group to implement the algorithm for a specific DSP target.
In product development, most DSP work groups use an integrated development environment (IDE). The team's goal is to implement the algorithm using written specifications, test the algorithm, and confirm it in the final product to ensure that it meets the system's real-time, speed, power, and memory constraints. Product development teams often rely on manual methods to perform the above tasks because there is usually no easy way to test the product directly based on specifications or algorithm test vectors. When encountering complex systems, manual conversion and confirmation will delay product development and affect product success.
Some manual methods that product engineers use to prevent disconnection include:
1. Manually copy and paste the M-file test vectors (e.g., an array of 100 values) into the C code (or assembly) file of the IDE. However, the engineer must be careful to copy all data without omission and to add the correct syntax to ensure compatibility (e.g., commas, brackets, parentheses, etc.);
2. Manually load the entire data file from the PC hard disk into the DSP memory using the "load data" command in a typical IDE. The engineer must be careful to reformat the data manually or through a script (which needs to be written and debugged) to ensure that the file format and subsequent syntax match;
3. You can use the IDE's file I/O functions (such as the fscanf() function) to load files in an automated manner like the second method above, but the problem of file format and syntax type still exists. Another major problem with traditional file I/O is that engineers must run a large and inefficient C library on the DSP itself, which will lead to code bloat, not only wasting memory, but also slowing down the DSP and making it lose real-time performance;
4. Use external hardware to generate signals as input to the system (such as music or sine waves) to observe whether the system can respond in real time. Unlike the test vectors and data mentioned above, which are already digitized, the data here is analog and must pass through an A/D converter, which will bring more errors and inconsistencies because it is no longer a pure digital signal, resulting in inherent analog distortion. In addition, it will bring additional variables, causing more uncertainty and making it more difficult to find the root cause of the problem.
Integrated tools increase efficiency and productivity
A more integrated development process can automate these tasks in a more dynamic way.
Let's take a real-world example, implementing an adaptive noise cancellation system on a DSP. The first step is to design an adaptive filter (i.e., filter coefficients, filter response, etc.), and the development engineer develops C code using commonly used DSP algorithm design and analysis tools (such as MATLAB from MathWorks) and runs it on the DSP, then synthesizes the input signal and tests the performance of the filter.
By integrating MATLAB with a common DSP IDE such as Texas Instruments’ Code Composer Studio, engineers can use the same front-end tools to design, visualize, analyze, and optimize algorithms in simulation, then implement the design on a DSP target, run it again, and compare the actual results with the simulated design.
In the example we present, developers can use MATLAB to directly access the DSP target memory, control the DSP program as it runs on the target, and gain access to MATLAB visualization, simulation, and optimization capabilities. The connection is enabled by a high-speed, real-time, two-way data communication mechanism, such as TI's high-speed Real-Time Data Exchange (RTDX). Figure 2 shows the MATLAB code, demonstrating how to use MATLAB to perform comprehensive testing of a signal, connect to the DSP implementation of the executable filter in real time through RTDX, and visualize the results.
The algorithm running on the target DSP receives the noise signal and the white signal as input and performs the LMS algorithm to remove the noise. Figure 3 shows the DSP output signal, filter tap, and filter response sent back to MATLAB in real time via RTDX, which means that when the code is executed, we can dynamically optimize the parameters in MATLAB, adaptively adjust the filter, and run Monte Carlo simulations to visualize the results. While the algorithm is running on the DSP, users can also call specific functions on the DSP directly from MATLAB and execute them in batch mode or interactive mode.
Therefore, the test and validation team can use the original MATLAB-based design or specification directly as part of the test setup. The test team can then directly compare the actual system output with the expected output generated by the original MATLAB design and make appropriate changes in real time.
Conclusion
By integrating the tools used by R&D and product development groups, we can greatly improve productivity, making design and verification testing not only more automated but also more efficient. Design teams that develop DSP algorithms and implement those algorithms on real targets can use a design environment front end that is integrated with the IDE and hardware back end without changing their development process methods. They can also automatically transfer data in real time to iterate product designs more quickly and efficiently without introducing new errors.
Design and development tool integration can promote testing and verification early in the development cycle, helping engineers to identify and solve problems more efficiently. Engineers need to build and launch new DSP products with more powerful functions faster and to market more quickly, and most importantly, to reduce product defects. Tool integration will help the ultimate success.
Previous article:Design of multi-channel data acquisition system based on DSP and MAX147
Next article:Design of a dual-motor synchronous control platform based on DSP
- Huawei's Strategic Department Director Gai Gang: The cumulative installed base of open source Euler operating system exceeds 10 million sets
- Analysis of the application of several common contact parts in high-voltage connectors of new energy vehicles
- Wiring harness durability test and contact voltage drop test method
- Sn-doped CuO nanostructure-based ethanol gas sensor for real-time drunk driving detection in vehicles
- Design considerations for automotive battery wiring harness
- Do you know all the various motors commonly used in automotive electronics?
- What are the functions of the Internet of Vehicles? What are the uses and benefits of the Internet of Vehicles?
- Power Inverter - A critical safety system for electric vehicles
- Analysis of the information security mechanism of AUTOSAR, the automotive embedded software framework
Professor at Beihang University, dedicated to promoting microcontrollers and embedded systems for over 20 years.
- Innolux's intelligent steer-by-wire solution makes cars smarter and safer
- 8051 MCU - Parity Check
- How to efficiently balance the sensitivity of tactile sensing interfaces
- What should I do if the servo motor shakes? What causes the servo motor to shake quickly?
- 【Brushless Motor】Analysis of three-phase BLDC motor and sharing of two popular development boards
- Midea Industrial Technology's subsidiaries Clou Electronics and Hekang New Energy jointly appeared at the Munich Battery Energy Storage Exhibition and Solar Energy Exhibition
- Guoxin Sichen | Application of ferroelectric memory PB85RS2MC in power battery management, with a capacity of 2M
- Analysis of common faults of frequency converter
- In a head-on competition with Qualcomm, what kind of cockpit products has Intel come up with?
- Dalian Rongke's all-vanadium liquid flow battery energy storage equipment industrialization project has entered the sprint stage before production
- Allegro MicroSystems Introduces Advanced Magnetic and Inductive Position Sensing Solutions at Electronica 2024
- Car key in the left hand, liveness detection radar in the right hand, UWB is imperative for cars!
- After a decade of rapid development, domestic CIS has entered the market
- Aegis Dagger Battery + Thor EM-i Super Hybrid, Geely New Energy has thrown out two "king bombs"
- A brief discussion on functional safety - fault, error, and failure
- In the smart car 2.0 cycle, these core industry chains are facing major opportunities!
- The United States and Japan are developing new batteries. CATL faces challenges? How should China's new energy battery industry respond?
- Murata launches high-precision 6-axis inertial sensor for automobiles
- Ford patents pre-charge alarm to help save costs and respond to emergencies
- New real-time microcontroller system from Texas Instruments enables smarter processing in automotive and industrial applications
- The WeChat group of the switching power supply study group has been established~ Welcome everyone to join the study
- A novice’s question is, how to find the most suitable chip when making hardware?
- How to create beam-forming smart antennas using FPGAS
- The problem that the microcontroller reset circuit cannot burn the program when connected to the battery
- 64 details that must be paid attention to in switching power supply design
- Domestic voltage regulator device
- How does a “temperature gun” measure your temperature?
- CC2650 launchpad and msp432 launchpad
- Switching Power Supply Interest Group 19th Task
- LED power supply not working