Synchronous Serial Interface
Synchronous Serial Interface (SSI) is a widely used serial interface standard for industrial applications between a master (i.g. controller) and a slave (i.g. sensor).
The clock is driven by the master (controller) the data line is driven by the slave (sensor). When non-operational the clock as well as the data line is high. The position value is transmitted synchronously to the clock signal of the control system starting with the most significant bit (MSB). As soon as the clock signal of a clock sequence changes for the first time from high to low (Figure 1 A), the sensor data is frozen (latched) to prevent it from changing within the transmission. With the following rising edge (Figure 1 B) transition of the clock signal the transmission begins with the most significant bit (MSB). With each following rising edge transition of the clock signal, the next bit is set on the output of the data line.
After the least significant bit (LSB) was shifted out, the last rising edge transition of the clock signal (Figure 1 C) switches the data line to low (transmission end).
After the last falling edge of the clock, the data line stays low for a period of time, called transfer timeout (in older publications also referred as monoflop time). It is the minimum time required by the slave to realise that the data transmission is complete. After tm, the data line is set to idle (Figure 1 D) and the slave starts updating its data. If a clock signal (data-output request) is received within that time, the same data will be transmitted again (see multiple transmission). The minimum pause time is 20 us, the maximum pause time is not limited.
Figure 1: SSI Transmission
The transmission can be interrupted anytime by stopping to sent clock signals to the encoder. After the Pause Time is passed, the data value will be updated and the encoder is ready to sent out the data. There is no further stop command necessary, neither is it possible to corrupt the interface by sending wrong commands, etc.
SSI Transmission Binary Data Representation
The data representation is not standardized through the encoder manufacturer. The most common data representation for Binary Code is the left aligned data. This means the data starts with the MSB, which is the highest Bit for a multiturn encoder (Figure 2 top) or the highest bit for a singleturn encoder (Figure 2 bottom).
Figure 2: SSI Transmission Data Representation Binary Code
Mxx – Represents Revolution Data for Multiturn Encoder 25 Bit
Sxx – Represents Angular Data for Singleturn Encoder 13 Bit
Gray Code Data Representation
Encoder Data is sometimes represented in Gray Code. In this code a representation called “Tannenbaum - format” is still quite common. In this representation the first 12 bits represent the multiturn data (revolutions), the second 13 bits represents the singleturn data. The data is centered to the 13 Clk cycle, please find a examples in (Figure 3).
Figure 3: SSI Transmission Data Representation Gray Code
Multitransmission / Ringshift
To ensure the integrity of data, one can transmit the identical data several times and compare the received values. This procedure is often also referred as as multiple transmission or ringshift. The sequence to achieve Multitransmission is to continue sending clock signals after receiving the full data word (Figure 4 A). After a Single “0” Byte the data starts with the MSB again. The multiple transmissions is ended the same way as the single transmission just by stopping to sent clock signals. Be aware: not all encoder models support multiple transmission feature.
Figure 4: SSI Multiple Transmission
Physics and Cabeling
The physical transmission is realized according the EIA-422 (RS-422) standard which ensures the availability of components and ensure a reliable transmission even in industrial environments. The benefits are :
- Long transmission distances up to 1200m (4000 feet)
- Differential transmission increases noise immunity
- Wide common mode range allows for differences in ground potential between master and slave
It is recommended to use twisted pair cables which comply with the RS422 Standard. The Maximum Baud rate depends on the cable length, as a guide following values can be used :
|Cable Length in m (ft)||13 (42)||44 (144)||85 (278)||300 (984)||750 (2460)|
|Maximum Clock Rate||2 MHz||1 MHz||600 kHz||200 kHz||80 kHz|
Tips and Hints
- How to connect encoders with more than 13 bits singleturn resolution?
Controller are often limited to 13 Bit singleturn resolution. If one would like to connect encoders with higher Singleturn resolution (i.e. 16 Bit) one can try to use the controller in 25 Bit multiturn mode and use the scaling functionality of the controller.