单控制器方式,在一定程度上降低了硬件成本和开发难度。用该方案采集BiSS协议编码器数据的实物平台,使用显示对读取的数据,并与电机自带增量编码器值进行对比,同时记录BiSS协议编码器实际数据波形图,结果表明,该方案具有较高的采样速率和较好的读取效果,具有一定参考价值。

作者简介:李绍军(1989—),男,硕士,从事光电转台伺服控制技术研究。Email:。

BiSS 协议是一种快速双向通信协议,具有通信速率高、抗干扰能力强、硬件电路简单等优点,在伺服系统位置传感器领域得到了越来越广泛的使用[1-2]。BiSS通信协议物理接口采用全双工差分RS422 方式,但由于其时序较为独立及长度不定,难以使用常用的通用异步串口直接对BiSS 协议编码器数据解码读取。实际使用中,BiSS 协议的编码器数据可通过编码器厂商提供的专用解码芯片、微控制器或FPGA读取[3]。编码器厂商提供的专用解码芯片一般价格较高且功能单一;文献[4]中提出使用CY8C29466 微控制器对BiSS 协议编码器数据进行解码,以读取正确的解码值,但受限于微控制器功能及性能,只能实现较低的采样速率,难以满足高速、高性能伺服控制系统的要求;文献[5] 提出使用A3P400 型FPGA 对BiSS 协议编码器数据进行解码,以准确读取解码值且具有较高采样速率,但FPGA 只用于编码器数据采集,实际伺服电机由DSP驱动,即伺服系统电路结构采用DSP+FPGA 方式实现。这种双控制器方式通过高性能DSP 实现控制算法的快速准确计算,同时利用FPGA 的并行机理完成信号采集[6]。如果可以使用较为简化的硬件电路实现对BiSS 协议编码器数据准确的解码,并具有较高的数据采样速率,这样的方式显然具有更高实用价值。

BiSS-B 在BiSS 协议中应用最为广泛,由于涉及专利保护问题,随之开发出BiSS-C 协议,BiSS-C 与BiSS-B 可实现物理接口兼容[7],不同点在于两者时序定义略有差异,文中编码器使用BiSS-B 协议。BiSS 协议具有传感器模式和寄存器模式两种不同工作模式,前者可实现编码器数据的快速读取,后者可实现编码器寄存器数据的读写双向访问[8],文中基于传感器模式对方案的可行性进行了验证。

BiSS 协议编码器使用Hengstler 公司的AD36-1213AF.0RBI 多圈绝对式光电编码器,其具有500 kHz 带宽,适合作为无刷伺服电机位置传感器。BiSS-B 协议传感器模式时序如图1 所示。

MA 为BiSS 总线的时钟线,SLO 为Biss 总线的数据线。当MA 和SLO 同为高电平状态时,总线处于空闲时间,不进行数据传送。非空闲时间BiSS-B 协议编码器数据线SLO 上的数据帧格式如图2 所示,图中括号内的数字表示该段数据所占用的MA 时钟个数,不带括号的表示与MA 时钟个数无关。

根据3 种不同BiSS 协议编码器数据解码方式特点和BiSS-B 协议编码器时序的分析, 文中采用XMC4500微处理器实现对BiSS-B 协议编码器数据的解码,该方案硬件电路组成如图3 所示。

XMC4500 是Infineon 公司推出的基于Arm Cortex-M4内核的微控制器,主频可以达到120 MHz,其内部集成多种专用电机控制外设,有多达6 个通信接口方面,分别用于UART、SPI、IIC 和IIS 等4 种不同功能的通用串行接口。本文使用其SPI 功能接口实现对BiSS-B 编码器数据的解码。XMC4500 的SPI 接口MOSR 引脚作为输出引脚,输出BiSS 协议编码器时钟线MA 信号;MRSO 引脚作为输入引脚,采集BiSS 协议编码器数据线SLO 上的信号。LabVIEW是一种图形化编程的数据采集软件,具有数据读取、数据分析、数据管理等功能,可减少程序代码编写,缩短设计时间[9]。为方便对BiSS编码器数据的观察,使用LabVIEW设计了对应的上位机,显示XMC4500 通过UART 接口定时发出的编码器解码数据。

XMC4500 将BiSS-B 协议编码器MA 线状态由空闲时间的高电平状态置为低电平状态,以启动一次BiSS-B 总线上的数据发送。作为回应,编码器会在一定时间后将SLO 线状态由高电平置为低电平状态,并随后再次置为高电平,以表示开始传输位置数据。位置数据以Start 位开始,后面依次为:12 位多圈计数值用于记录编码器旋转圈数;13 位单圈计数值用于记录编码器单圈位置;1 位错误位用于监测光电编码器LED 工作状态;1 位警告位用于监测编码器内部传感器工作环境温度、6 位CRC 校验位和Timeout 段。

XMC4500 的SPI 接口有长达64 位的FIFO 存储空间,可以一次性存储全部BiSS-B协议数据帧。初始化时,应对SPI 接口的波特率及FIFO 存储空间进行相应设置。文中BiSS-B 协议编码器数据通过定时中断来读取。根据BiSS-B 协议编码器传感器模式时序,XMC4500 的MOSR 引脚先发送若干Ack 位检测时钟,直到MRSO引脚检测到Ack 位为止。由于编码器输出SLO 数据响应MA 时钟和总线传输有一定延迟时间,需要测量并记录Ack 位相对时钟延迟时间以进行补偿。然后,XMC4500 的MOSR 引脚根据数据帧有效位数不断发送其他数据位时钟,同时MRSO 引脚将SLO 线数据逐一存储。当有效数据位数计数完毕后,XMC4500 读取存于FIFO 中的数据帧位,并根据编码器Timeout 延迟时间将MA 线拉高直至数据帧结束。根据前面记录的Ack位延迟时间,对读取的FIFO 数据帧位逐一处理,并采用多数表决方式确定每位的准确值,完成编码器单圈和多圈位置值重组,并定时将通过CRC 校验的正确位置值发送至上位机进行显示。CRC 校验方式为BiSS-B 协议编码器数据帧中的多圈值+ 单圈值+ 错误位+ 警告位。根据编码器CRC 计算等式,将计算出的6 位CRC校验值与数据帧结尾处的6 位动态随机CRC 校验值比较,若两者相同则表示接收编码器数据正确,该读取值可以使用;否则应判定为错误值,予以忽略。编码器数据读取软件程序工作流程图如图4 所示。

使用安川公司SGMM-A2C312 伺服电机配合AD36-1213AF.0RBI 多圈绝对值光电编码器搭建的实物平台对该方案实际效果进行了测试,实物验证平台如图5 所示。

LabVIEW 上位机分别显示编码器上传的单圈和多圈位置值,如图6 所示。编码器单圈位置值为13 位,最大值8 191,多圈值为12 位,最大值为4 195。

将同步采集伺服电机自带的2 048 线增量式编码器位置值与采集到的13位绝对式编码器位置值进行对比,对比效果如图7 所示。

记录连续3 个周期采集到的绝对式编码器和增量式编码器输出的位置值,并计算每个周期的平均速度,对比结果如表1 所示。

采用绝对式编码器和增量式编码器连续3 个周期获得的平均速度相比误差很小,可见采用XMC4500 采集的绝对式编码器值与增量式编码器相比具有较好的准确度和线 的SPI 接口对BiSS-B 协议编码器以传感器模式读取实际时序波形,如图8 所示。图中通道1 为MA 线 为SLO 线波形,与BiSS-B协议传感器模式协议时序一致。

局部波形如图9 所示,图中可见,XMC4500 的SPI接口所提供的MA 线 MHz。

图9 编码器局部时序波形图综合图8 和图9 进行分析,使用XMC4500 微控制器SPI 接口对该型编码器完成一次读取用时少于28 μs,其中包含编码器厂商设定的Timeout 时间约(10~15)μs,可实现较高的采样速率。

文中提出了一种基于XMC4500 读取BiSS 协议编码器数据的方法,试验结果表明,该方法可替代FPGA完成对BiSS 协议的解码,具有较高的数据采样速率。使用该方法可以用XMC4500 单控制器替代DSP+FPGA方式,实现对BiSS 协议编码器伺服系统的控制,简化了硬件电路设计,具有较好的参考价值。

[2] 俞小露,赵志方,卢欣霁.BiSS-C绝对式级联光栅编码器在工业机器人领域的应用[J].世界制造技术与装备市场,2015 (2):119-120.

Tags:
一种BiSS协议的编码器数据读取方法

admin

Leave A Comment