TI Sitara™ microcontrollers offer two types of Programmable Real-time Unit (PRU) subsystems: PRU-Industrial Communication Subsystem (PRU-ICSS) and PRU-Industrial Communication Subsystem - Gigabit (PRU_ICSSG). PRU-ICSS is available for the AM335x, AM437x, AM57x series and K2G devices. PRU_ICSSG is available on AM243x, AM65x, and AM64x, and can be independently programmed to achieve some custom requirements with high real-time requirements to achieve product differentiation.
In industrial applications, multiple devices are often required to communicate with each other in a fast, low-latency, and synchronized manner. For example, this requirement exists in the multi-axis servo control system architecture. The Fast Serial Interface (FSI) is a new communication peripheral created for TI's real-time control microcontrollers (MCUs) to extend the reliable high-speed communication capabilities to multiple devices in a system. This application report describes how to use PRU to increase FSI communication bandwidth, provides test performance based on FSI high-speed communication in different configurations and modes, and applies these concepts in a multi-axis servo control system.
Sitara™ and LaunchPad™ are trademarks of Texas Instruments.
Arm® is a registered trademark of Arm Limited.
All trademarks are the property of their respective owners.
FSI bus topology is often used in multi-axis servo applications.
The key requirement for FSI handler is the Low Latency for the communication cycle. Motor drive applications normally use a 20-kHz cycle time and a maximum of eight axes.
Figure 1-1 shows the FSI bus connection schematic diagram.
In terms of the amount of data sent and received by the FSI bus, the host device exchanges data with N target nodes in sequence according to the communication cycle. The Sitara AM243x is selected for the host device. For typical applications, the controller node sends 32 bytes and the device nodes reply with 32 bytes in one communication cycle. Considering the maximum of eight axes, the controller node needs to send 8 × 32 bytes through the FSI bus, and receive 8 × 32bytes of response data from the device nodes.
The known design challenges include the following:
Use PRU_ICSSG as the FSI handler (< 5µs with data transfer per axis) for communication to achieve low latency on the FSI data transfer and mapping of FSI data to multiple Arm® cores.
Figure 1-2 shows the communication path and latency estimation.
To reduce the overhead of manual data filtering of device nodes, the Frame Tag 4-bits that comes with the FSI bus is used to distinguish eight device nodes. The host device modifies the frame tags in turns in each communication cycle to achieve automatic filtering of the device axis data. Figure 1-3 shows the frame format.
To realize FSI bandwidth optimization, design a mechanism for FSI data transfer using the ICSSG module with multiple channels as shown in Figure 1-4.