位移传感器串行通信接口研究与设计*
2012-11-24杨艺勇唐小琦
杨艺勇,唐小琦,宋 宝
(华中科技大学机械科学与工程学院,武汉 430074)
0 引言
在运动控制系统中,位移传感器一般采用光电编码器或者光栅尺[1],早期位移传感器信号输出为TTL电平或者正余弦脉冲串[2]。在电机高速运行时,若采用传统脉冲串的方式传输信号,容易出现计数误差,从而影响控制性能[3]。为了提高位置反馈精度和控制性能,在运动控制系统中,位移传感器与控制装置之间逐渐采用数字式串行通信接口。目前,国内外位置测量器件接口大部分采用数字式串行通信协议[4],如 EnDat、SSI、BISS,HIPERFACE、多摩川等[5-7]。但是这些串行通信方法存在下述问题:串行同步通信方式采用数据和时钟两组信号进行传输,对数据和时钟信号二者相位同步要求高,因此对传输速率和传输距离有严格要求,需要额外添加同步补偿功能,否则容易导致数据接收错误;另外串行通信采用电平的方式表示数据,容易受到干扰[8]。
本文根据位移传感器与控制装置之间强实时性、高可靠性特点,针对现有串行通信接口存在问题,设计一种位移传感器串行通信协议——CPE-Bus(Communication Protocol of Encoder Bus),在基于现场可编程逻辑阵列(FPGA)和RS485接口芯片硬件平台上实现位移传感器与控制装置之间数据通信,解决了现有串行通信中数据与传输时钟同步性和抗干扰性差等问题。
1 CPE-Bus通信结构
在运动控制系统中,位置传感器与控制装置之间数据传输是点对点的形式,因此CPE-Bus协议采用点对点串行通信结构。CPE-Bus通信结构由控制装置和位移传感器通过电缆连接构成,如图1所示,在CPE-Bus通信两端都包含FPGA和RS485接口芯片,其中FPGA用于CPE-Bus协议的处理和数据读写,RS485接口芯片用于接收或者发送差分信号。在CPE-Bus结构中,控制装置对位移传感器进行供电,在位置传感器与控制装置之间通过一对双绞线进行数据传输。
图1 串行通信结构示意图
CPE-Bus通信协议以差分信号形式进行数据传输,增强对外界信号的抗干扰能力,同时在CPE-Bus的RS485收发器上采用终端匹配电路,在高传输速率或者长传输电缆下可以减少信号反射,改善信号的质量,提高传输可靠性。另外CPE-Bus的RS485收发器上还添加偏置电阻,在线路进入空闲状态后,把总线上没有数据时(空闲时)的电平拉离0电平。这样一来,即使线路中出现了比较小的反射信号或干扰,挂接在总线上的数据接收器也不会由于这些信号的到来而产生误动作。
2 CPE-Bus通信协议设计
CPE-Bus通信协议是在基于FPGA和RS485接口芯片硬件平台实现的,所以重点在于CPE-Bus协议IP核设计。在设计CPE-Bus协议IP核时,采用模块化设计方法,自顶而下划分成不同子模块,分别为数据读写模块、数据处理模块、模式处理模块、曼彻斯特编解码模块和通信控制模块五个模块,如图2所示。其中,数据读写模块用于位移传感器、控制装置以及存储器数据读写,数据处理模块用于对数据进行CRC校验和组帧,曼彻斯特编解码模块用于数据的曼彻斯特编解码,模式处理模块用于数据通信过程中模式产生或者模式判断处理,通信控制模块用于通信中各个模块的工作的协调控制。在CPEBus通信两端的IP核由于功能相似性,所以在设计时采用模块划分方式,利用IP核的复用性简化设计。
图2 CPE-Bus模块组成示意图
根据CPE-Bus模块划分以及通信需要,CPE-Bus工作模式分为数据模式和配置模式。数据模式是由位置传感器向控制装置传输位移传感器实时数据和传感器相关参数,而配置模式是由控制装置向位置传感器传输配置参数。在每一次数据通信开始时,控制装置根据运动控制系统使用要求,发出模式信号,位置传感器接收模式信号并对其进行模式判断。
当CPE-Bus串行通信工作在配置模式时,控制装置向位移传感器发送配置数据帧,位移传感器接收配置数据帧后,回传接收到的配置数据帧,控制装置接收并检验位移传感器回传的配置数据帧,若数据校验正确则结束一次数据通信,退出配置模式,若数据校验错误则可以选择重传参数或者结束数据通信,其工作流程如图3所示。
图3 串行通信配置模式流程图
当CPE-Bus串行通信工作在数据模式时,控制装置向位移传感器发送数据帧,位移传感器回传位置数据帧,控制装置接收并校验回传的位置数据帧,若数据校验正确,根据系统要求选择继续数据传输或者结束数据通信;若在数据通信过程中出现数据传输超时或者数据校验错误时则可以选择报警并结束数据通讯或者继续数据传输,其工作流程如图4所示。
图4 串行通信数据模式流程图
3 CPE-Bus可靠性通信措施
为了保证CPE-Bus协议能够在位移传感器和控制装置之间可靠地传输,需要采用一些处理措施。下面从数据的编码和差错检测两方面讨论数据高可靠性通信措施。
目前位移传感器的串行通信协议中数据基本采用单极性不归零(NRZ,Non-return to Zero)编码形式,即用高低电平表示分别传送数据1和0。采样不归零编码形式进行双向串行同步传输时存在数据和时钟同步问题,如图5所示,信号在电缆传输需要t/2时间,且t/2正比于电缆长度。控制装置向传感器发送时钟信号,由于信号传输时间造成在传感器端接收到的时钟有t/2的延迟,传感器根据接收时钟信号发送数据,同样控制装置接收的数据也有t/2的延迟。对控制装置来说,接收的数据相对时钟信号有t的延迟。当t小于或等于T/2时,控制装置在时钟下降沿能正确采样到数据,否则就需要额外添加同步补偿功能才能正确采样的数据,因此对传输时间频率和传输距离有严格要求,传输距离远时,就会限制传输的最高时间频率,反之,传输时钟频率越高时,也会限制最大传输距离。
图5 串行同步传输时钟与数据波形图
曼彻斯特编码(Manchester Encoding)是一种同步时钟编码技术,时钟和数据包含在数据流中,具有自同步能力[9]。采用曼彻斯特编码进行串行传输时可以从数据流中提取时钟和数据信号,所以不存在时钟与数据同步问题,只要信号在传输中能够保持完整性前提下,对传输时钟频率和传输距离没有限制。
EnDat、BISS、SSI协议采用不归零数据编码形式,在双向串行传输通信时需要时钟和数据两对差分信号,存在时钟与数据同步问题。而CPE-Bus协议采用曼彻斯特编码,方便接收模块提取时钟和数据信息,解决了数据与时钟同步问题,而且位移传感器和控制装置之间数据通信仅需一对差分双绞电缆,简化了传输装置,同时提高传输的可靠性。
此外在串行数据通信过程中会遇到线路本身电气特性造成的随机噪声、电信号在线路上反射到造成的回音效应、相邻线路间的串扰以及外界因素干扰而造成信号幅度、频率和相位的失真或者畸变,导致传输信息改变、通信不可靠。因此需要差错检测(Error Detection)来探测传输信息是否改变,以保证数据通信的可靠性。常用差错检测方法有奇偶检验(Parity Checking)、校验和(Checksum)、循环冗余校验(CRC,Cycle Redundancy Check)、海明码(Hamming code)[10]。奇偶检验位主要适用于单比特差错检测,只能检验大约50%的突发错误,对串行通信来说,是远远不够的。校验和比奇偶校验要准确一些,但也是达不到数据通信的要求。海明码不仅能检测到错误,还能对错误进行纠正,对单比特查错纠正相对比较容易,但对多比特查错纠正需要很大的开销而且很复杂。而CRC校验检测准确度高、效率高,因而在网络和通信领域被广泛使用。CRC校验能够通过循环移位的方法实现,特别适合于FPGA中处理。鉴于CRC检验的优点,CPE-Bus采用CRC校验进行通信差错检测。
4 实验平台及测试
本文设计串行通信实验测试平台如图6所示,主要实验设备包括:西门子永磁同步电机(型号1FT6062-6AC71-3AA0,额定转速 2000r/min,最高转速3200r/min,其编码器输出信号为1Vpp正余弦信号,2048线)、高倍正余弦细分盒以及华中数控HC5819伺服驱动器。高倍正余弦细分盒内部主要采用Altera公司FPGA芯片:CycloneIII EP3C10E144C8N和Maxim公司 RS485接口芯片:MAX14841E,伺服驱动器内部FPGA芯片则采用Altera公司 FPGA芯片:Cyclone II EP2C8Q208C8N,RS485接口芯片与细分盒一样。
图6 实验测试平台
实验测试方法如下:伺服驱动器控制西门子电机转动,电机通过编码器接口反馈位置信息,高倍正余弦细分盒对编码器输出1Vpp正余弦信号进行高倍细分处理,高倍正余弦细分盒的另外一端与伺服驱动器通过双绞线相连接。利用CPE-Bus串行通信协议将细分处理后数据传输给伺服驱动器,伺服驱动器接收细分盒上传位置数据,完成闭环控制。
图7为伺服驱动器与高倍细分盒之间一次数据通信实验中,通过Quartus II软件的SignalTap II工具抓取驱动控制器FPGA内部信号波形图。其中Rece_data_485为RS485接收的数据,Tclk_Rece为提取的时钟信号,Postion为接收到细分后位置数据,CRC_Err_Num为CRC校验错误数。从图中可以看出伺服驱动器与高倍细分盒之间通过CPE-Bus串行通信协议能够正确地通信,验证了CPE-Bus串行通信协议的可行性。
图7 驱动控制器FPGA内部信号波形图
下面从实时性、通信电缆长度、误码率三个方面的实验测试串行通信协议的性能。
实时性测试实验是通过在运动控制系统速度环下,设置不同传输时钟传输速率,观察对应转速波动值。图8为电机速度环设定在2500r/min转速下,传输时钟频率从100KHz到10MHz变化时,对应转速波动值统计结果。从实验结果可以看出传输时钟频率越高,速度波动逐渐减少,时钟频率在4MHz以上时,速度基本稳定。说明传输时钟频率越高,串行通信实时性越好,反馈位置数据越准确,控制性能越好。
通信电缆长度测试实验在不同电缆长度测试传输时钟频率最高频率。图 9为 Endat2.2协议与CPE-Bus串行通信协议时钟频率与电缆长度关系对比,在Endat2.2中如果无传输延迟时间补偿,时钟频率取决于电缆长度,频率可在100 kHz到2 MHz之间,随电缆长度增加,最高时钟频率相应降低。如果在后续电子设备中对传输延时进行补偿,时钟频率可提高到16MHz,电缆长度最长达100m(fclk≤8MHz)。而CPE-Bus串行通信协议无需增加延迟补偿,电缆长度最长可达100m,最大传输频率为10MHz。
图8 在2500r/min转速下,不同传输时钟频率对应速度波动值
误码率测试实验是通过多次长时间运行测试平台,统计不同传输时钟频率下,CRC检验出错次数、通信次数,计算通信误码率。图10为在多次运行测试平台,每次运行时间不少于5个小时,传输时钟频率从100KHz到10MHz变化时,统计的通信误码率结果,从实验结果中可以得知所设计串行通信协议误码率达10-12,可靠性较高,能够满足位移传感器与控制装置数据通信要求。
图9 两种通信协议传输时钟频率与电缆长度关系对比
图10 不同传输时钟频率下误码率
5 结束语
本文采用曼彻斯特编码以及循环冗余校验技术,设计一种位移传感器串行通信协议,分析了其通信结构、IP核模块划分,工作模式以及可靠性通信措施。通过实验验证了串行通信协议的可行性,同时从不同实验测试串行通信协议实时性、通信电缆长度、误码率。实验结果表明串行通信协议具有较高的实时性、可靠性,在运动控制系统中位置传感器与控制装置之间长距离数据通信方面具有很广泛的应用价值。
[1]王列虎,皮佑国.数控机床中直接位置闭环控制系统的研究[J].组合机床与自动化加工技术,2011(2):50-52.
[2]卢国纲.位移测量技术及其传感器的最新发展[J].世界制造技术与装备市场,2005(4):72-73.
[3]阮毅,陈维钧.运动控制系统[M].北京:清华大学出版社,2006.
[4]卢国纲.世界制造位移传感器的主要企业概况[J].世界制造技术与装备市场,2007(2):114-118.
[5]HEIDENHAIN Corporation.EnDat Specification[DB/OL].www.mazet.de.
[6]IC-Haus Corporation.BISS Interface Protocol Description[DB/OL].www.biss-interface.com.
[7]Jens Onno Krah,Reiner Berger et al.Resource Optimized BiSS Master Interface for High Resolution Encoders[R].PCIM EUROPE 2006,PROCEEDINGS:479-484
[8]焦亚冬.总线编码方法研究及其FPGA验证[D].西安:西安电子科技大学,2011.
[9]董健,董会宁,陈虎,等.基于FPGA的曼彻斯特编解码器研究[J].无线通信技术,2010(3):5-8.
[10]William A.Shay著,高传善,等,译.数据通信与网络教程[M].北京:机械工业出版社,2005.