Preface
Digital signal processor (DSP) is a microprocessor with a special structure. It is specially designed to implement various algorithms for digital signal processing, so it has special hardware structure. TS201 is a high-speed DSP in the TigerSHARC series of ADI that integrates fixed-point and floating-point computing functions. This processor is widely used in the video, communication market and defense military equipment, and is suitable for the application field of real-time processing of large amounts of data.
The loading method of the TigerSHARC series DSP boot program is very flexible and can be flexibly selected according to the actual system requirements. A radar signal processor adopts a 6U board shape, and the CPCI bus adopts the European card size standard. Data communication with the host is carried out through the CPCI bus. For the hardware system of the signal processor, this paper proposes a boot scheme that uses the CPCI bus to transmit the boot code to the board card, and then relies on the FPGA to boot the DSP through the link port.
1 ADSP-TS201 boot mode
DSP booting is the process of loading algorithm program code from DSP external memory when DSP system is reset. TS201 supports two boot modes: Master Boot mode and Save Boot mode.
In the master boot mode, TS201 acts as the active party, using the external port to output the address, read the boot mode selection and other control signals to load the code from the EPROM or FLASH. In the slave boot mode, TS201 acts as the passive party, does not output control signals to the outside, and the external host or other device transmits the code to be loaded to the host or link port of TS201. TS201 only starts several DMA channels and executes the loading core received by the first DMA.
In addition, FS201 can also select a "non-boot" mode, or use TS201's (emulator) USB-ICE to load the program. This method can directly load the program into TS201's internal RAM or external RAM. The DSP runs the program directly from the RAM, which is often used in the DSP debugging process.
By setting the pins of TS201, the boot process of DSP can be set to master boot mode or slave boot mode. During DSP reset, if the pin is low, the master boot mode is selected, and DSP loads the program from the external EPROM or FLASH; if the pin is high, it enters the slave boot mode, and DSP is in idle state, waiting for the host or link port to load the program. Both boot modes have the same loading process, and the specific steps are as follows:
(1) TS201 automatically starts a DMA and automatically transfers 256 words (32 bits) to the internal memory at addresses 0x00 to 0xFF.
(2) TS201 executes the above 256-word instructions (loading core), and the loading core starts other DMAs to load subsequent instructions and data into internal and/or external memory.
(3) Load the core self-overlay and execute the DSP algorithm program.
The boot scheme of this system adopts the slave boot mode, which transfers the code from the host to the FPGA through the CPCI bus, and then uses the FPGA to start the DSP through the link port.
2 Guidance Design Scheme of a Radar Signal Processor
Based on a radar signal processor hardware processing platform, a multi-DSP guided design scheme as shown in Figure 1 is adopted.
The algorithm program codes (.LDR files) of the four DSPs are transferred to the FPGA through the host computer software, and the FPGA loads the program to the DSPA through the link port with the DSPA. After the DSPA is loaded successfully, it guides DSPB, DSPC, and DSPD to start respectively.
The advantages of loading DSP in this way are: JTAG emulator is not required when debugging DSP; at the same time, when DSP starts itself, FLASH or E2PROM is not required to store program code. There is no limit on the size of DSP program, which also saves circuit board space and hardware design complexity.
The difficulties of loading DSP in this way are: correct data transmission between CPCI bus and FPGA and communication between FPGA and TS201 link port. These two difficulties have been solved in actual projects. The CPCI bus and FPGA interface can use PLX9656 chip to complete data transmission, so the design of this loading mode is feasible.
2.1 Design ideas of automatic boot program
In order to design the loading (automatic boot) program, we must first understand the software design process of ADSP-TS201, the flow chart of which is shown in Figure 2.
The link description file (.LDF) defines the memory configuration of the entire system and the specific storage location of data and code in the program. The loading core file (.DEX) refers to the loading boot core program, which is used to synthesize the executable file (.DXE) compiled successfully by the user project into a link port loading mode output file (.LDR). The loading output file is used to define how the internal and external memory of TS201 is initialized during the loading process.
In the ldr subdirectory of the VisualDSP++ installation directory, ADI provides standard loading core files and corresponding source programs (.ASM) and link description files. Generally, you can directly use the provided standard loading core files or simply modify the corresponding source programs, recompile and link the generated loading core files. The loading file is generated by the boot loader (elfloader) by changing the executable file to a certain format and attaching the loading core file to the starting position.
Since TS201 has three boot modes (not considering non-boot mode), ADI provides three different loading and files accordingly, namely: TS201_prom.dxe, TS201_li-nk.dxe, TS201_host.dxe. The core ideas and functions of the three programs are exactly the same, but there are slight differences in the specific code implementation due to the different loading ports and methods used. Since this system uses the link port to start, and different link ports are used to start DSPA, DSPB, DSPC, and DSPD, the link port loading core file is used, and the loading core file needs to be slightly modified to meet the needs of starting with different link ports.
2.2 Reset boot design process of this signal processor
As shown in Figure 1, the programs to be run by the four DSPs are finally read by the host computer and transmitted to the FPGA through the CPCI bus. The four DSPs are in link port boot mode. After the DSP is reset, DSPA loads the program from the FPGA. After DSPA is loaded, DSPB, DSPC, and DSPD are loaded through the link port respectively. After loading, the four DSPs execute their respective programs normally.
Combining the analysis of the above parts, it can be seen that to achieve the correct guidance of the four DSPs in the signal processor, the required work consists of the following steps:
(1) The program to be executed by DSPB (DSPB.dxe) is combined with the link port loader core program to generate the DSPB loading file (DSPB_bin.ldr). It should be noted that the link port loader core program cannot directly use the provided standard link port loader program. The LINK constant in the provided link port loader core file (TS201_link.asm) must be changed to 1 (#define LINK 1), that is, DSPB is guided by link port 1.
(2) Similar to (1), generate the DSPC loading file (DSPC_bin.ldr), except that the LINK constant in the link port loading core file (TS201_link.asm) needs to be changed to 2 (#define LINK 2), that is, DSPC is booted by link port 2. Similarly, DSPD is loaded by link port 2, and the DSPD loading file (DSPD_bin.ldr) is also generated.
(3) Since DSPA needs to use the link port to guide the program of DSPB, DSPC, and DSPD, when programming DSPA, it is necessary to add the boot program of all the following ADSPTS201 at the beginning of the program. The program of each ADSP-TS201 consists of boot code and user program, so when DSPA transmits the program to other DSPs, it will transmit the data of the complete .1dr file. [page]
The DSPA program flow chart is shown in Figure 3.
(1) DSPA turns off all interrupts, all link ports and all DMA channels, and performs initialization;
(2) Open link port 3, 2, 1, 0, set link port 3 receive interrupt, link port 2, 1, O send interrupt;
(3) Set link port 3 to receive 128 b data via DMA mode;
(4) Determine the currently loaded DSP, set the corresponding link port, and send the received 128 b data;
(5) Determine whether DSPB, DSPC, and DSPD are loaded, otherwise continue to receive data through link port 3 until all DSPs are loaded;
(6) After loading is completed, DSPA runs its own DSP program.
3 System Test Results
The above guidance design has been verified in a radar signal processor. Through the host computer software, the guidance code can be flexibly loaded, making debugging more convenient. The test host computer software is shown in Figure 4.
The digital signal processing algorithm of the radar system was modified and the algorithm code was successfully loaded into the signal processor, thus verifying that the guidance design scheme was correct and feasible.
4 Conclusion
This paper uses a radar signal processor as a platform to design and implement a multi-DSP boot scheme based on the CPCI bus link port, introduces the software design process and the idea of the boot scheme, and finally successfully verifies the correctness and feasibility of this boot scheme. This boot scheme does not use FLASH or E2PROM to store code, making the software writing of multiple DSPs more flexible and debugging more convenient, while making the hardware circuit design more concise.
Previous article:Design of electronic anti-skid device for fast truck based on single chip microcomputer
Next article:Design of single-chip microcomputer performance system based on Proteus
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
- How do I design a circuit with such input and output?
- Board burning problem
- X-NUCLEO-IKS01A3 driver for Arduino
- Nexperia Award-winning Live Broadcast: Introduction and Application of Automotive Power MOSFET and GaN Devices in Electric Vehicles
- Nordic Bluetooth sensor monitors guitar temperature and humidity
- EEWORLD University Hall - Altium Designer 22 Electronic Design Introduction Practice 56 Lectures
- ztool cannot connect
- IEEE Spectrum Top Programming Language Rankings April 2022
- #Idle Market# Exchange Downloader
- ADS1278 data acquisition chip data distortion problem