How to integrate position encoder master protocols into Sitara™ processor applications

If you have been following my multiprotocol Industrial Ethernet blog series, you already know that I am a big fan of the programmable real-time unit and industrial communication subsystem (PRU-ICSS), a programmable peripheral inside Sitara™ processors. In this post, I want to talk about another application where PRU-ICSS helps integrate your chosen digital position encoder master interface into the Sitara processor.

First, let’s look at a system-level diagram that includes position encoders – see Figure 1. Applications like servo drives often have motors with integrated digital position feedback encoders. The position encoder is a type of sensor that precisely measures the angle (in degrees) of a motor shaft or the distance (in micrometers) of a linear axis.

In such systems, the position encoder reads the angle of the motor shaft and provides this information through a digital position encoder protocol to a position encoder master. The field-oriented control (FOC) algorithm on the application processor processes the angle further, along with the motor-phase current measurement, in order to calculate new values for the pulse-width modulation (PWM) peripheral.

Figure 1: Integrated servo drive with position encoder master interface

The distance between the position encoder and the position encoder master can be as long as 100m. Digital position encoder protocols, operating through an RS-485-based interface, establish a robust communication channel.

Once again – similar to industrial Ethernet – different encoder vendors have developed many position encoder protocol standards that you can use to transfer the position data. The challenge for single-chip drive developers is to select and integrate the right digital encoder protocol standard based on encoder and motor vendors. The three most popular position encoder protocol standards are EnDat 2.2, BiSS C and High-Performance Interface Digital Servo Link (HIPERFACE) DSL.

Let’s look at the history and characteristics of these three position encoder protocol standards.

  • EnDat 2.2: The EnDat interface was developed by German company Heindenhain. The initial version of EnDat used analog interface signals. With EnDat 2.2, the encoder interface became a digital, bidirectional interface for incremental and absolute encoders. It uses the RS-485 standard for differential signal transmission. EnDAT uses two differential signals to transmit position data: clock (unidirectional) and data (bidirectional). Six wires are required to establish communication between the EnDat master and EnDat encoder device, including the encoder power supply.
  • HIPERFACE DSL: Another German company, Sick, developed HIPERFACE DSL, which also uses the RS-485 standard for differential signal transmission. It operates at a fixed frequency of 9.375MHz and supports cables up to 100m. HIPERFACE DSL’s advantage is its two-wire interface with bidirectional communication between the HIPERFACE DSL master and HIPERFACE DSL encoder device. These two wires are also transporting the encoder power supply; therefore, only two wires in total need wiring between the master interface and the encoder device, which reduces the wiring cost significantly.
  • BiSS C: iC-Haus developed the open-source bidirectional BiSS interface in 2002. The BiSS interface is compatible with the unidirectional serial synchronous interface (SSI). It supports a maximum of 10MHz over the RS-485 interface. The BiSS C standard supports point-to-point between BiSS master and encoder device, but it also allows multiple sensors and actuator buses connected to one BiSS master. The interface consists of a shared clock and control data (MA+/MA-) signal from the BiSS master to the encoder device and a shared sensor data and control data (SL+/SL–) signal from the encoder device to the master. In total are six wires between BiSS master and encoder device when including the encoder power supply.

Each digital position encoder protocol standard traditionally requires a specific hardware implementation in terms of a field-programmable gate array (FPGA), programmable logic device (PLD) or application-specific integrated circuit (ASIC). However, you can eliminate those external device components when integrating the position encoder master protocol into the Sitara processor application by using the PRU-ICSS peripheral. The AM437x processor has two PRU-ICSS peripherals. You can use one for digital encoder master protocols like EnDAT 2.2, HIPERFACE DSL and BiSS C, and the second to run an industrial Ethernet protocol.

The multiprotocol position encoder master interface has been released as  Multiprotocol Digital Position Encoder Master Interface Reference Design with AM437x processor on PRU-ICSS (TIDEP0057), where the ARM with PRU-ICSS peripheral detects the type of position encoder attached. See Figure 2.


Figure 2 : Multiprotocol position encoder master interface with PRU-ICSS

A second reference design, Single Chip Drive for Industrial Communications and Motor Control (TIDEP0025), integrates the system approach of a single-chip drive, as shown in Figure 1. In this reference design the position encoder master interface uses EnDat 2.2, running on one PRU-ICSS of AM437x, to communicate with the position encoder while the other PRU-ICSS is used for EtherCAT slave communication support.

The PRU-ICSS is very versatile peripheral that can integrate complex functionality that  was previously provided in external ASICs and FPGAs. As you learned in this blog post, the PRU-ICSS in the Sitara processor family integrates the position encoder master interface for many position encoder protocols and therefore eliminates those external components. You will save board space, component cost and establish a high-performance throughput system when integrating the position encoder master interface with PRU-ICSS into the Sitara processor.

Additional resources

  • Hi Aaron,

    Thank you for letting us know about your situation. Let’s discuss more offline and on your previous discussion on the E2E forum about the specific challenge with integrating the BiSS C encoder vs. what’s available with the reference design highlighted in the blog post.



  • Hi Tom;

       I have a problem on my desk to integrate a BiSS C encoder to a real time test system. I went for the kool aide and bought into the 437 "solution". Well I won't go so far as to say your propaganda is a pure pack of lies, but I can say that after 6 months of focused development with this junk it doesn't look promising. Among the problems, poor and misleading documentation, just plain broken functionality and no real support. It might be acceptable if I were a one man show developing in my garage, but for a supposedly "industrial" solution it falls way short. I suggest that TI use a more robust marketing approach if they intend to make something of this crap.