01 介绍
伺服控制中,为了满足获取更高的位置精度、完成更精细的绝对定位的要求,通常采用绝对式光电编码器作为位置反馈传感器。
但也由于绝对式编码器输出位数较多,为了增强信息传输可靠性,编码信息一般采用串行方式输出,通过特定的通讯协议控制。
本文介绍的多摩川绝对值光电编码器就是绝对式编码器的一种,其通讯协议是日本多摩川公司定义的一套协议。
多摩川协议是基于485硬件接口的标准NRZ协议,通讯波特率为固定的2.5MHz,所以其硬件接口也就只有数据线(data wire)和电源线(supply wire),不需要时钟线(clk wire)。
此外,多摩川绝对值编码器一般具有17bit或23bit的单圈绝对分辨率、16位的多圈圈数计数(可外接电池使电机在断主供电后依旧可以记录移动的圈数)、多种故障报警(如电池故障、过温、过速等)以及读写内置EEPROM的功能。
注意即使同为多摩川旗下的编码器,其通讯协议也有可能不同,但万变不离其宗,本文主要以多摩川23bit多圈绝对值编码器为例,文章内大部分框图和数据都参考此编码器手册TS5700N8401,更加详细的内容请直接参考文档,这里提供一个初步的理解和记录,方便开发查阅。
02 接口
多摩川编码器的硬件接口如下:
图1
其典型连接电路如下:
图2
接口芯片与485芯片的连接除了Tx和Rx还有个方向选择引脚,要注意收发数据的时候方向脚也要相应的拉高拉低。实际调试时,可用示波器直接抓485总线上的差分信号,总线上其同时具有请求和返回的数据信息。
03 协议
多摩川协议的典型发送返回帧格式如下:
图3
发送帧仅由一个字节的控制字CF组成,CF的内容决定了请求命令的类型 。
控制字CF的结构如下:
图4
CF中的Data ID字段决定了请求命令的类型,详情如下:
图5
可以看出,ID6 和 IDD 是对编码器自带EEPROM的操作命令,ID0~ID3是读取编码器反馈位置数据的命令,ID7、ID8、IDC是对编码器位置、圈数或故障复位的命令。
数据字根据相应的Data ID返回的内容如下(除ID 6、ID D):
图6
通过发送不同Data ID组成的控制字CF可以获得单圈位置、多圈位置、单圈+多圈位置等不同信息。由于波特率固定,获取更多的信息则意味着需要更多的传输时间,当应用场景对控制周期有要求时开发者要自行取舍。
除了控制字CF和数据字DF,读编码器数据操作返回的报文还包括状态字SF和CRC校验码。
状态字SF的结构如下:
图7
主要是包含一些编码器故障报警信息,具体的故障内容和触发条件等可参考手册TS5700N8401的第6.5小节,此处不逐一分析。
CRC部分的结构如下:
图8
开发者可以将接收到的全部报文数据模二除以上述多项式G(X)再与CRC code进行对比判断是否发生CRC校验错误,此处不再赘述,读者可另查询CRC校验相关文章。
在控制字发送ID3的情况下485总线上抓取的实际波形如下:
图9
多摩川协议对EEPROM操作的发送返回帧格式如下:
写EEPROM操作(Data ID 6):
图10
读EEPROM操作(Data ID D):
图11
值得注意的是,可操作的EEPROM地址是有限的,且不同型号的编码器可操作的地址范围不同。
04 小结
多摩川绝对值协议还是较为简单的,实际使用中会考虑更多的问题。数字域的操作包括是否读取多圈数据、何时清除故障等;对EEPROM的操作则要考虑实际的读写时间(并不一定写一拍就写进EEPROM了),是否处于busy状态等因素。更多的本文中未提到的诸如编码器故障详解、故障复位等操作细节可参考多摩川TS5700N8401文档。
转自-----电机及控制