蔡吴磊,梁显荣,赵云峰,晋 刚
(聚合物新型成型装备国家工程研究中心,聚合物成型加工工程教育部重点实验室,华南理工大学,广东广州 510640)
旋转流变仪因其适用范围广、测量精度高等优点而被广泛应用于流体研究,其测量原理为通过一对相对旋转的测量几何向样品施加特定的应力或应变信号,依据样品产生的应变或应力响应,从而获取样品的流变特性[1]。为了提高自主开发的旋转流变仪测控系统精度,实现聚合物材料流变特性的准确测量,故选用绝对式圆光栅完成内外筒驱动电机的闭环控制。
绝对式圆光栅利用码盘编码确定机械位置,无需“归零”操作即可完成位置读取与控制,具备优异的抗干扰性及可靠性[2]。由于输出的位置信息精度高、位数多,并且还要遵循一定的通讯协议,光栅输出的数据量大而复杂,因而数据的传输速度及其稳定性是影响应用性能的关键因素[3]。
针对该问题,BiSS(bidirectional synchronous serial)协议可以作为解决方案。该协议是开放式同步串行协议,使用该协议通信波特率可达到10 Mbps,超出同类通信协议的4倍以上[4]。此外,BiSS-C是BiSS协议最新的版本,该协议可自由调整总线连接方式、报警位、协议长度,并可进行延时补偿,工业应用灵活,无协议产权成本,通信传输安全可靠[5]。
目前最常用的BiSS协议解码是通过BiSS Master芯片实现,但官方解码芯片的数据处理方式单一,难以进行接口模块的功能拓展,因而无法满足旋转流变仪测控系统的整体控制要求[6]。因此,本文基于Compact RIO嵌入式平台设计BiSS协议解码方案,并加入CRC校验模块以实现解码检错及纠错功能。
本文首先对BiSS-C协议进行介绍,其次阐述了通信接口的硬件、软件设计,最后在绝对式圆光栅上完成了实验测试并说明了接口的准确性及可靠性。
BiSS-C协议是一种新型的可自由使用的开放式同步串行通信协议,其连接方式分为点对点(point to point)模式和总线(bus)模式2种[7]。
在点对点模式中,主控接口只连接1个设备,该设备可配有1个或多个从接口(Slave)。主控接口通过MA信号线向从接口提供时钟信号,从接口通过SL信号线由第1个从接口(First Slave)直接向主控接口传送传感器数据。在点对点模式中,BiSS-C接口与SSI接口硬件兼容,最后一个从接口(Last Slave)的输入信号SLI为“0”,其结构如图1所示。
在总线模式中,设备的连接呈首尾链状结构,每个设备还可包含多个从接口。因此每个从接口都有2个端子,即SLI和SLO,分别负责前端信号接收和后端信号发射。每个从接口向后端发送数据时,自身数据的优先级是最高的,而从前端接收的数据则放置在发送队列末尾。在总线模式中,BiSS-C主控接口连接的从接口数量是不受限制的,并且可通过MA信号线向所有从接口提供时钟脉冲,其结构如图2所示。
BiSS协议存在2种工作模式,分别为传感器模式(sensor mode)和寄存器模式(register mode)。当只需要获取传感器测量数据时,使用没有寄存器通信的单向BiSS-C(BiSS-C unidirectional)协议版本,可极大提高数据获取速度[8]。
图3为点对点模式的时序图。BiSS帧由产生时钟MA(master clock)信号的主机启动,MA的第1个上升沿用于所有从接口的同步,以此确保传感器数据的等时扫描和执行器数据的等时输出。在MA的第2个上升沿,所有的从接口生成“Ack”(acknowledge)信号,该状态持续至开始(Start)位出现。每个从接口的开始位都以时钟MA为同步标准,持续1个时钟脉冲完成传输,而后紧随CDS(control data slave)位,数据传输的范围是从开始位后的第二位至最后的停止位。BiSS帧以BiSS超时(BiSS-timeout)完成终止判断,主机不再向MA发送时钟脉冲,此时MA的逆状态为CDM(control data master)状态位。
实验系统的架构如图4所示。硬件系统基于CompactRIO 9038嵌入式平台,选用NI 9401 I/O模块采集并发送信号,并对RA32BAA052B30A绝对式圆光栅读头进行通信接口电路设计,最终在上位机用户界面显示采集的位置信息。该系统使用LabVIEW完成图形化编程,其灵活性高、可移植性强,具备优异的拓展能力。
CompactRIO集成了实时控制器(RT)、可重配置的FPGA(现场可编程门阵列)和热插拔I/O模块[9]。在信号处理的硬件电路中,光栅读头与CompactRIO平台通过DB9接口实现连接,FPGA发出的MA时钟脉冲通过NI 9401(发送)输出给读头,同时返回的位置信号又通过NI 9401(接收)输入至FPGA。该过程中,这2个I/O模块分别负责将MA时钟脉冲由TTL电平转为差分信号,并将位置信号由差分信号转为TTL电平。FPGA经过解码校验,通过PCI总线将数据传输至实时控制器,最终由实时控制器将数据传输至上位机实现位置显示。
绝对式圆光栅的数据格式如图5所示[10]。
由图5可知,在不工作时,时钟MA和信号SLO都保持高电平;当主接口请求位置采集时,MA开始传输时钟脉冲,此外光栅在MA第2个上升沿将SLO置低表示响应。结束“Ack”周期后,SLO生成一位“Start”高电平和一位“0”低电平,随后开始传输32位的位置信息。紧接着出现一位“Error”和一位“Warn”,用于判断位置数据是否可信,当两者都处于高电平时,则代表数据校验成功。之后的6位CRC码提供检错及纠错功能。CRC多项式为G(x)=x6+x1+x0,转换为校验码元即为1000011。当数据传输结束后,主接口将MA设为高电平,此时光栅将SLO置低,表示进入超时周期。而当SLO再次设为高电平时,主接口开始下一次位置采集。实际上光栅每1 ms完成一次位置采集,而这1 ms是指两个请求循环开始之间的时间,若数据传输时间小于1 ms,光栅则通过将SLO置低直至1 ms过去的方式再向主接口发送信号,这就是超时阶段。
根据BiSS协议特点,基于CompactRIO硬件平台,利用LabVIEW完成上位机、实时控制器、FPGA机箱的VI设计[11]。其中,FPGA VI是光栅通讯解码程序的核心部分,按照功能进行模块化可分为时钟驱动模块、解码模块和CRC校验模块,其中解码模块VI程序如图6所示。
时钟驱动模块负责时钟发送。由于光栅规定的MA时钟速度为0.25~10 MHz,而NI 9401输出脉冲在低于1 MHz时质量较好,因此利用FPGA完成程序设计,将CompactRIO机箱提供的40 MHz时钟频率降低至1 MHz,从而支持解码模块及CRC校验模块的使用。
解码模块通过状态机实现数据解码,解码模块状态机框图如图7所示[12]。状态机在启动或者复位之后,检测光栅SLO是否处于空闲(idle)状态,并就此进入等待状态。若检测到空闲状态,则开始发送MA时钟脉冲。此时,SLO从高电平转为低电平,状态机进入“Ack”应答状态;随后SLO出现2次电平转换,状态机依次进入“Start”和“0”工作状态。若在运行过程中未检测到该工作时序或检测超时,状态机直接进入超时状态,结束超时等待后再次开始工作循环;若检测通过,则进入接收状态,完成接下来32位位置信息、2位检测信号和6位CRC校验码的接收。等待数据发送完毕,状态机停止MA时钟脉冲进入超时状态,等待下一次位置采集循环。
CRC校验模块负责接收数据的差错校验[13]。解码模块首先将32位位置信号及2位检测信号进行拓展,拓展位数比CRC多项式少1位且全部置零。然后以CRC校验码元“1000011”作为除数,完成与40位拓展数据的除法运算,而其中用到的减运算全部变为XOR(异或)运算。之后将得到的6位余数作为CRC码,加至原始数据之后完成数据发送。接收端将接收的40位数据除以CRC校验码元,若计算得到的余数为0,说明数据接收正确,并将数据输出至上位机;若余数不为0,则输出前一次的正确值,同时发送“Error”信号至上位机并记录出错个数。
按以上设计进行光栅的位置读取实验。通过示波器检测并显示通信信号,如图8所示。并将实验检测波形与理论波形进行对比。由图8可以看出,测得的MA时钟信号、SLO数据信号与图7所示的原理时序相吻合,说明了系统内部时序执行正确。因此,基于CompactRIO的BiSS-C协议接口设计可正常实现光栅的位置数据解码及传输。
为了验证基于CompactRIO平台解码的准确性,利用官方解码芯片BiSS Master对流变仪外筒位置同时进行测量,并比较2组数据的一致性。实验过程中,将外筒的1个旋转周期均分为20个位置,在同一位置记录下CompactRIO解码与BiSS Master解码获得的读数值,此后不断旋转外筒,得到多组数据。最后将所获数据转换为弧度制,然后以BiSS Master解码得到的位置数据为横坐标,CompactRIO解码得到的位置数据为纵坐标,进行线性拟合,如图9所示。
图9中直线为线性拟合结果。实验分析可知,拟合曲线得到的方程为y=x-1.015×10-6,其相关度R2为1,说明这2组数据完全线性相关。此外,截距误差范围为(-1.015×10-6±4.411×10-7)rad,据此可认为基于CompactRIO解码与基于BiSS Master解码得到的位置数据一致。
同时,为了验证基于CompactRIO解码的可靠性,即在测量过程中是否会出现跳动现象,针对以上每个位置进行20次重复读数,并计算相应的标准偏差。实验发现,位置读数的标准偏差固定在1×10-6rad以下,说明基于CompactRIO解码具备良好的稳定性及可靠性。
本文根据自主开发的旋转流变仪对于测控系统准确度要求,分析了绝对式圆光栅通过BiSS-C协议实现数据通讯的特点,并针对测控系统的整体同步控制要求,选用CompactRIO嵌入式平台完成光栅读头的通讯接口设计。该设计还采用LabVIEW图形编程实现了上位机、实时控制器、FPGA机箱的VI设计。实验结果表明,基于CompactRIO的BiSS-C协议接口设计可实现光栅的位置数据解码及传输,其误差控制在2×10-6rad之内,重复测量的标准偏差在1×10-6rad之内,可靠性及稳定性完全满足旋转流变仪测控系统要求。同时该设计具有良好的移植性和拓展性,可适用于多编码器的同步控制,结合位置控制器可实现电机的闭环控制,是解决旋转流变仪测控问题的理想方案。