SSI编码器通信

BISS绝对值编码器_TI方案_线路延迟补偿

大概总结了一下,之前学习和开发SSI绝对值编码器的东西。之后也可以分享一下其他的一些编码器协议或者原理。


绝对值编码器协议还挺多的,比如常用德国公司的一些协议SSI,BISS,ENDAT,HIPERFACE协议等等,还有日系的多摩川。当然还有一些基于modbus的,can的,模拟量的。

绝对值编码器的好处就在于,编码器掉电能保存编码器的位置信息,重新上电后不会丢失。不像光编编码器,上电无法知道绝对位置,需要找到z信号。不过绝编使用起来会相对麻烦点,需要通信协议,其成本也会贵一点。

它内部的实现方式也有很多种。感兴趣的可以网上查一查。


一、SSI协议介绍

SSI通讯协议为缩写,其全称为同步串行接口( Synchronous Serial interface ),是一种广泛使用的位置传感器之间的串行接口和一个控制器。

SSI是RS-422上的单向串行协议。单向时钟由主频产生,并从80khz指定到2mhz。接收数据也是单向的,SSI不支持传播延迟补偿。

不活动时时钟为高电平。 为了启动数据传输,时钟变低并存储位置。在时钟信号的第一个上升沿,MSB 在 SSI 编码器处移出。 在第二个上升沿,MSB-1 被移出,依此类推,直到最后一位 (LSB) 被移出。 另一个时钟周期后,时钟保持高电平,直到下一个数据传输开始。 根据超时,当前锁存位置或新位置值将在下一次传输中传输。

二、硬件接口

请添加图片描述

采用的是422的差分接口与绝对值编码器连接,一般SSI编码器必须有6根线,一般的编码器可能是8根线(方向和置零)。

  1. 时钟CLK+
  2. 时钟CLK+
  3. 数据DATA+
  4. 数据DATA-
  5. GND
  6. VCC(5V-30V)

三、通信时序

随便拿了个SSI编码器的datasheet:
请添加图片描述

数据手册上对时间的描述:
t1>0.45us
t2<0.40us
t3=12us~30us
T=1us~11us

四、协议特性

  1. 时钟在80khz-2mhz
  2. 协议是单向的
  3. 空闲态时钟为高
  4. 时钟个数等于数据个数+1:第一个时钟是触发编码器,数据是从第二个时钟开始。
  5. 时钟上升沿触发编码器,下降沿锁存数据
  6. SSI没有传播延迟检测补偿
  7. 一帧通信结束后,需要空闲10-30us。(看编码器)

五、驱动器与编码器通信

额外提一下,好一点的驱动器架构,都是双核的,一般都使用DSP+FPGA,或者是MCU+FPGA的方式.

为什么要使用FPGA?
一部分原因就是因为处理编码器的信号,通用驱动器需要支持的编码器协议有很多种,单个dsp或者mcu,并不能都支持。

MCU如何与SSI通信

IO模拟

如果自己想熟悉一下协议,做做测试,可以用MCU的IO口模拟一下SSI协议,读取编码器的信息。

SPI

一般使用MCU的SPI接口。MCU作为Master主机,编码器作为Slave从机。

  • SPI的CLK经过差分电路后连接到编码器的时钟信号线上。
  • SPI的MISO经过差分电路后连接大编码器的DATA信号线上。
SPI有四种模式

SPI的相位(CPHA)和极性(CPOL)分别可以为0或1,组合构成了SPI的4种模式(mode)。

时钟极性CPOL: SPI空闲时钟信号CLK的电平

  • 1:高电平
  • 0:低电平

时钟相位CPHA: SPI在CLK哪个边沿开始采样

  • 0:第一个边沿;
  • 1:第二个边沿
模式时钟极性相位
模式0CPOL=0(低电平)CPHA=0(第一个边沿:上升沿)
模式1CPOL=0(低电平)CPHA=1(第一个边沿:下降沿)
模式2CPOL=1(高电平)CPHA=0(第一个边沿:下升沿)
模式3CPOL=1(高电平)CPHA=1(第一个边沿:上升沿)

根据SSI的协议是时钟空闲是高电平,在下降沿采样。所以我们需要把SPI配置成模式2,CPOL=1,CPHA=0的模式。

根据编码器位数,设置SPI的通信长度,通信后得到的数据,掐头掐尾,丢掉第一个bit,丢掉尾巴的多余的bit。就得到了SSI的数据。

时序要求,最后也要给编码器一个空闲超时时间,让编码器准备下一次传输数据。
假设400k时钟,一个时钟2.5us, 14位编码器则需要15个时钟*2.5us = 37.5us + 20us = 57.5us。通信一次。

编码器的多圈值和单圈值

什么是单圈编码器?
编码器记录的信息只记录一圈内的绝对位置。

什么是多圈编码器?
编码器除了记录一圈内的位置信息,还会记录圈数。

SSI的数据格式
  1. 一般有二进制格式,以及格雷码格式。
  2. 二进制,即是通信data。
  3. 格雷码,是一种错误最小化的编码方式。需要解码,将格雷码转换成二进制。

被抛弃的写随笔公众号改写技术文章了,感兴趣的可以关注公众号:王崇卫
在这里插入图片描述

  • 19
    点赞
  • 167
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值