APP下载

一种基于FPGA的BiSS编码器解码器设计

2021-01-16李绍军陈国胜范俊玲夏伟光王国右

电子产品世界 2021年8期
关键词:编码器

李绍军 陈国胜 范俊玲 夏伟光 王国右

摘?要:BiSS协议是一种高速同步串行通信协议,使用BiSS协议的编码器有利于提高伺服控制系统的动态性能,在高精度绝对式编码器中应用广泛。本文在分析BiSS协议数据帧特点的基础上,利用FPGA设计了BiSS协议编码器解码器,采集了BiSS协议编码器位置数据和总线波形,通过与DSP联合使用,基于BiSS协议编码器对永磁同步电机的动态性能进行了验证,结果表明该设计的合理性。

关键词:BiSS;FPGA;编码器;DSP

0 引言

BiSS协议是一种时钟频率高达10 MHz的串行通信协议,物理上采用RS422差分总线方式,使用BiSS通信协议的光电编码器具有数据线占用少、抗干扰性强、通信速率快等优点,在机器人、数控机床、雷达转台等领域应用广泛[1-2]。

一些新型微控制器已经具备了物理上支持BiSS通信协议的外设接口,如Infineon公司的XMC4000系列使用SPI接口可完成BiSS协议解码功能[3],但当进行伺服电机控制时需要CPU在执行FOC算法的基础上实时通过较复杂的软件实现BiSS协议解码,增加了CPU的负担;TI公司的TMS320F3837x系列使用CLB模块配合SPI外设接口实现对BiSS协议的解码[4],可以减轻CPU的负担,但CLB外设数量有限。且这些方式均难以达到BiSS协议最高时钟频率,综合比较使用FPGA解码可降低CPU负担同时可充分发挥BiSS协议时钟频率高的优点。

文中针对BiSS协议数据帧格式,设计了BiSS協议解码器状态机和CRC校验器,并使用Moldisim对校验过程进行仿真,FPGA将解码数据发送给DSP,通过驱动永磁同步电机对该设计的解码效果进行了验证。

1 解码器硬件设计

1.1 BiSS协议分析

旋转编码器是伺服电机常用的一种位置传感器,常见外部接口形式有RS422、SSI、BiSS等。使用RS422或者SSI接口时时钟频率一般低于1 MHz,且受限于总线协议单帧传输位数限制,当需要传输的位置数据位数较多时会导致编码器位置采样频率偏低。另一种常见位置传感器是旋转变压器,随着技术的不断发展,当前旋转编码器更容易实现比旋转变压器更高的分辨率,而BiSS协议由于时钟频率高,传输位数多,可以轻松实现对位置数据20 kHz的采样频率,因此使用BiSS协议的旋转编码器十分适用于动态性能要求高的伺服控制领域。

BiSS协议最初由德国IC-Haus公司提出,是一种较为新型的开放式同步串行通信总线协议,在提出后很快开发出BiSS-B协议并得到广泛应用,后由于海德汉公司对BiSS-B协议的专利诉求,导致很多编码器厂商联合开发出BiSS-C协议[5-6]。

根据工作模式,BiSS协议可分为传感器模式和寄存器模式,寄存器模式便于使用者掌握更多编码器状态信息,传感器模式与寄存器模式相比传输信息少,因此具有更高的位置采样频率。图1所示为亨士乐公司BiSS-B协议编码器时序和雷尼绍公司BiSS-C协议编码器时序对比图,见文献[7-8]。

由图中可见,BiSS-B和BiSS-C协议高度相似,均由2条信号线构成,其中一条为时钟线,另一条为数据线。数据线上均有Ack位、Start位、位置数据位、error位、Warn位、CRC校验位和Timeout位;不同点在于BiSS-C协议在Start位和位置数据位间还有额外的1 bit 0位。

文中就BiSS-B协议的旋转编码器传感器模式展开讨论。

1.2 硬件电路设计

电机控制模块采用DSP+FPGA双控制器方式,FPGA负责采集与永磁同步电机同轴安装的BiSS编码器位置数据,提供给DSP用于FOC算法计算。FPGA通过内部定时器定时执行BiSS数据解码周期,每个周期内BiSS时序解码模块产生BiSS总线MA时钟,直到该帧数据时序完成,同时接收BiSS总线SLO数据线数据,根据BiSS时序定义从中提取出有用的位置、错误位、警告位、CRC校验位数据段送至CRC校验模块进行处理,根据BiSS编码器的时序长度可以灵活调整定时器采样频率,以实现最大采样频率。CRC校验模块按照协议规定的校验规则计算出收到有效数据位所对应的CRC校验码,并与收到数据中的CRC校验位段进行对比,若两者一致则判断该帧数据校验正确,为有效数据,并将经过校验的正确数据存入FPGA内RAM单元,DSP通过XINTF接口定时从FPGA内部RAM读取解析到的编码器位置数据,完成BiSS-B协议编码器数据解码;若两者不一致则判断校验错误,将该帧数据丢弃,并对错误次数进行计数,连续数次检验到错误数据则发出报警信号触发DSP启动保护措施,防止电机飞车。

硬件电路框图如图2所示。

BiSS-B协议编码器物理接口为RS422电平标准,使用TI公司的高速全双工RS485收发器SN65HVD77将FPGA的MA时钟信号和SLO数据信号将电平转换为两组差分信号线,连接至BiSS协议编码器。该收发器支持信号传输速率>50 Mbit/s,可涵盖BiSS协议最高传输速率。接口电路图如图3所示。

解码器软件设计

软件设计主要涉及通过FPGA完成对BiSS-B协议数据帧的解码以及对解码结果的校验,以下从状态机设计和CRC校验器设计两方面进行介绍。文中编码器使用亨士乐公司的AD36-1213AF.0RBI型多圈绝对式编码器。

2.1 状态机设计

BiSS-B协议时序具有数据帧长度不固定、数据帧信息复杂的特点,状态机是FPGA设计中常用的一种设计方法,基于状态机的设计可大大提高设计的灵活性和通用性,因此文中设计了基于状态机的BiSS-B协议时序解码模块。

根据图1中BiSS-B协议时序,FPGA作为主设备,BiSS编码器作为从设备,FPGA解码模块初始状态为超时状态,应将时钟线MA状态拉高,并确认数据线SLO状态为常高。当超时状态准备就绪后,通过将时钟线MA状态拉低1个时钟启动1次BiSS协议编码器数据转换,并将状态机状态切换为空闲状态,等待数据线SLO上从设备应答响应。正常情况下从设备将数据线SLO状态拉低一段时间,状态机将转入应答状态。待从设备将数据线SLO状态再次拉高时,状态机转入开始状态,并检测SLO高状态时长,若时长为1个MA时钟则转入读取状态,否则将回到初始超时状态。在读取状态中,将对数据线SLO上的数据进行读取,直到数据位数达到时序协议中规定的位数,然后将时钟线MA状态拉高转入超时状态,等待开始下一次循环。整个流程如图4所示。

2.2 CRC校验模块设计

CRC校验全称为循环冗余校验,是一种常用于检测通信协议或存储设备中原始数据是否发生数据位意外变动的错误检测算法[9]。其基本思想是对实际有用数据位按照一定的计算方法提取出对应的唯一一组特征值,将特征值附加在有用数据后发送至数据接收端,接收端将读取到的数据按照同样的计算方法得到一组特征值,若两组特征值一致则表示读取数据有效。

CRC校验模块输入数据从最高位开始逐位与CRC校验结果字段最高位bit5进行异或运算,异或结果作为CRC校验结果字段的最低位bit0,并同时与bit0异或,其结果作为bit1,其他bit位依次为低1 bit位移位结果。

按照上述方式,应对AD36-1213AF.0RBI型编码器的位置数据位、error位、Warn位和CRC校验位进行CRC校验,并将校验结果与CRC校验位进行对比。使用Modelsim对CRC校验模块设计的合理性进行验证。验证结果如图6所示。

在图6中,I_Rx_Data为33位经BiSS时序解码模块提取的数据,CRC_Result为CRC校验结果,连续3组CRC校验结果和对应的三组输入数据末6位CRC位一致,表明CRC校验正确。

3 实验验证

以EP4CE30型FPGA和TMS320F28335型DSP构成的硬件电路为基础,对BiSS-B编码器数据进行了采集解析,图7所示为FPGA端BiSS-B编码器数据时序监测结果,通道1为MA时钟线波形,频率为5 MHz,通道2为SLO数据线波形,由图中可见完成1次数据解析时间约30 μs,可满足至少20 kHz的编码器数据采样速率。

电机驱动模块速度环给定转速为1 000 r/m,连续采样多个周期的AD36-1213AF.0RBI型编码器未经滤波处理的原始数据并解析出对应单圈和多圈位置数据,如图8所示。

编码器单圈/多圈数据值分布情况如表1为所示。依据多个连续周期里编码器数据计算出的平均转速与给定转速差异较小,可知编码器数据值采样正确,一致性较好。

采集速度环反馈转速响应曲线,如图9所示。由图中可见,使用BiSS编码器作为位置传感器时电机速度环响应较快,超调量小于8%,稳态误差小于0.6%,具有较好的动态和稳态性能。验证了该BiSS解码器设计的合理性。

4 结束语

通过对BiSS协议的分析基础上,文中提出了BiSS协议编码器解码方案,通过实物试验验证了该方案的合理性,具有解析准确、采样速度快的特点,对不同的BiSS协议具有适用性,适合应用于BiSS协议编码器数据解析场合中。

参考文献:

[1] 王列虎,皮佑国.基于BISS协议的编码器接口技术研究及应用[J].机床与液压,2011,39(8):121.

[2] 王希远,成荣,朱煜,等.基于FPGA的BiSS-C协议编码器接口技术研究及解码实现[J].液晶与显示,2016,31(4):386.

[3] 孙彦超.基于XMC4500的PMSM控制系统的设计[D].沈阳:沈阳航空航天大学,2016.

[4] Texas Instruments Incorporated.TMS320F2837xD Dual-Core Defiino Microcontrollers Technical Reference Manual[R/OL].https://www.ti.com.cn/product/cn/TMS320F2 8379D?keyMatch=TMS320F2837&tisearch=Search-CNeverything.

[5] 商怀昊,韩基鹏,肖鹏,等.基于BiSS-C协议的编码器的接口技术研究及其在伺服驱动系统中的应用[J].工业技术创新,2014,1(2):211.

[6] 霍海龙.基于BiSS协议的编码器及其在伺服驱动系统中的应用[J].电气自动化,2011,33(3):12.

[7] HENGSTLER.Technical Manual SSI_BiSS_ACURO_ en[R/OL].http://hengstler.com.cn/product/AD36.

[8] RENISHAW.biss_encoder_9709-9007-03-b(zh)[R/ OL].https://www.renishaw.com.cn/zh/resolute-encoderseries--37823

[9] 朱正鹏,朱旭鋒,李宾,等.一种位宽可变的CRC校验算法及硬件实现[J].航天控制,2019,37(2):42.

猜你喜欢

编码器
基于FPGA的同步机轴角编码器
基于PRBS检测的8B/IOB编码器设计
JESD204B接口协议中的8B10B编码器设计
多总线式光电编码器的设计与应用