SSI同步串行接口简介

发布日期:2026-01-12 | 2026-09-20 更新
SSI同步串行接口简介(题图)

SSI(同步串行接口)是绝对值编码器常用的点对点接口,靠一根时钟线、一根数据线,PLC 发时钟、编码器回数据,同步稳定。

它的设计思路很朴素:与其约定一个波特率然后各自数时间(异步),不如干脆把时钟也传过去,接收方按发出去的时钟节拍读数据线。节拍由主站掌握,就不会有累积的定时误差。

一帧数据长什么样

一次完整的读取过程是这样的:主站先发一串时钟脉冲(通常十几个到三十几个,具体位数看编码器分辨率),编码器在时钟的每个有效边沿把数据位依次送到数据线上。时钟发完,一帧就读完了。

  • 数据位宽:常见 13 位、17 位、21 位、25 位等。位数由单圈分辨率和多圈圈数共同决定,两者加起来才是总位数
  • 空闲状态:时钟不发时数据线保持高电平,这是 SSI 的约定。判断线有没有断,可以看这个电平
  • 有的编码器在数据位之后还跟几位状态位或校验位,把全部时钟脉冲读完再读这些位就行

这里有个容易踩的坑:主站发出的时钟脉冲个数必须和编码器的数据位宽对上。发多了会多读几位(多数是补零或错误位),发少了就丢低位——读数看起来「差不多对」,其实是错的,而且很难发现。

格雷码:相邻数只变一位

SSI 编码器内部通常用格雷码表示位置,而不是普通二进制。原因很简单:普通二进制在两个数交界处可能同时变好几位(比如 0111 变 1000,四位全变),任何一个位在读取瞬间出错,结果就偏得离谱。格雷码保证相邻两个数只有一位不同,最多也就错一个最小刻度。

读回来的格雷码要转成二进制才能给程序用。转换有固定算法,一般在 PLC 或运动控制器的 SSI 功能块里已经内置,组态时选一下编码器用的是格雷码还是二进制就行。

如果读出来的数一直是一堆乱跳的大数,先检查是不是把这个选项设错了——把格雷码当二进制直接读,结果就是完全没有规律的数。

时钟频率和线长是绑在一起的

它比异步串口抗干扰强、能跑远,比并行省线,适合单轴高精度角度/位移反馈。

但「能跑远」的前提是时钟频率别贪高。线越长,信号上升沿越钝,时钟频率一高,编码器可能来不及在节拍内把数据稳定送出来,读到的就是错位数据。

实际经验是:线缆短(几米到十几米)可以用比较高的时钟频率,比如几百 kHz;线长上百米,就要降到一百多 kHz 甚至更低。具体限值一定看编码器手册上那条「时钟频率-线长」曲线,不同厂家差异不小。

还有一个反过来的判断:如果一条 SSI 一直报数据错误,先别怀疑编码器,把时钟频率降一半试试。能通就说明是线与频率的匹配问题。

缺点是点对点,一个接口挂一个编码器,多轴要多个口或上总线(如 Profinet)。

这一条决定了 SSI 的适用边界。单轴、高精度、位置绝对、要求简单可靠——这是它最舒服的场景。轴数一多,PLC 要配多少个 SSI 通道就很现实了,布线也要一根一根拉回柜子。这时候工业总线(Profinet、EtherCAT)或者 CAN 就更有优势。

它和 RS485、CAN 差在哪

  • 拓扑:SSI 是点对点,一根线对一台编码器;RS485 和 CAN 都是总线,可以挂多个节点
  • 时序:SSI 由主站发时钟同步,是同步接口;RS485 和 CAN 都是异步的,靠双方约定的波特率
  • 数据内容:SSI 传的是绝对位置;RS485 和 CAN 传什么取决于协议(Modbus、CANopen 等),可以是绝对位置也可以是别的量
  • 布线成本:单轴场景 SSI 最省事,多轴场景总线更省线

选哪条路取决于你的轴数、精度要求和控制系统本身支持什么。三个因素里只要有一个不满足,方案就得换。

接法注意时钟和数据双绞、屏蔽单点接地,时钟频率别超编码器上限,不然数据错位。

再补两条更具体的:时钟线最好和数据的双绞对分属两组绞对,不要走在同一个绞对里;电缆超过几十米时,数据线可以考虑加上拉电阻帮助驱动,具体看编码器的输出能力。

SSI同步串行接口简介 图1

文中提到的相关产品

延伸阅读

← 上一篇编码器ABZ脉冲信号怎么接PLC

选型或调试遇到问题?

把工况、量程和现场现象说清楚,我们工程帮你把参数对一遍再定型号。

← 返回新闻列表