LabVIEW Robotics Documents

cancel
Showing results for 
Search instead for 
Did you mean: 

LV FPGA SSI (Synchronous Serial Interface) Protocol

The attached example is an implementation of the SSI (Synchronous Serial Interface) protocol in LabVIEW FPGA. It is used to read data from sensors and other devices that communicate using SSI. Synchronous Serial Interface is different from the Simple Sensor Interface protocol which uses the same acronym.

The attached example is an implementation of the SSI protocol in LabVIEW FPGA on a PCI/PXCI-7811 card. The same code will port directly to any R series card or most other LabVIEW FPGA targets including CompactRIO. The example includes code for generating and reading the SSI protocol. In a typical system the SSI data is sent by a sensor and will be read by the FPGA device for use in the application. The signal connections are given in the LabVIEW project.Many sensors convert their data value to Gray Code before transmitting on SSI to improve communication reliability. This example does not perform any Gray Code encoding or decoding. If your sensor sends data as a Gray Code you need to add the conversion of Gray Code back to the sensor value.SSI is described in more detail in this DevZone article

Comments
Member Argonne_National_Lab
Member

A couple of issues in the sample code. 1. The Boolean Array to Number conversion converts the first element of the array to the least significant bit in the number. While the SSI sepcifys the 1st bit as the most significant bit. So a Reverse ID Array is needed to reverse the array before conversion. 2. In real world, the SSI interface uses RS-485 physical layer protocol. Therefore, you need to program the data inverse channel as well. Otherwise it will not work. I have a working version for reading the Fagor SA ablolute encoder that has an SSI interface. Took me two days to learn the lesson in a hard way . Email me if you are interested.

Member Argonne_National_Lab
Member

Forgot to post my email address: a@anl.gov

Member jzxu
Member

I have been receiving so many requests. Please send email to x@anl.gov

Member ZarArt
Member

Thanks for the post, very useful

Member afpim00
Member

I have an absolute encoder from Kübler, its resolution is 10bit, the output is Gray code, this is its Datasheet, I use the LVFPGASSI program provided by BetaCommunityCo to compile and execute on my myRIO, and found some problems can not be used correctly. 1. When the received Boolean array is converted to decimal, the result displayed by the oscilloscope is just reversed. For example, if the oscilloscope displays 1101, the binary value obtained by the program is 1011. 2.clock input requires the differential signal of clock+ and clock-, but the program output The clock signal only outputs single-ended. After the modification, I will provide the modified code here, I can perform SSI communication and Gray code decoding on myRIO, and also thanks to the program example provided by BetaCommunityCo, so that I can understand how to use Sybase to establish SSI communication from scratch.


@BetaCommunityCo  is writed:

 

The attached example is an implementation of the SSI (Synchronous Serial Interface) protocol in LabVIEW FPGA. It is used to read data from sensors and other devices that communicate using SSI. Synchronous Serial Interface is different from the Simple Sensor Interface protocol which uses the same acronym.

 

The attached example is an implementation of the SSI protocol in LabVIEW FPGA on a PCI/PXCI-7811 card. The same code will port directly to any R series card or most other LabVIEW FPGA targets including CompactRIO. The example includes code for generating and reading the SSI protocol. In a typical system the SSI data is sent by a sensor and will be read by the FPGA device for use in the application. The signal connections are given in the LabVIEW project.Many sensors convert their data value to Gray Code before transmitting on SSI to improve communication reliability. This example does not perform any Gray Code encoding or decoding. If your sensor sends data as a Gray Code you need to add the conversion of Gray Code back to the sensor value.SSI is described in more detail in this DevZone article

 


 

Contributors