精密光栅微位移检测实验装置的研究

2019-03-01 08:17段可王彩霞牟畅刘鹏姜浩
关键词:光栅尺参考点读数

段可,王彩霞,牟畅,刘鹏,姜浩

(1.长春理工大学 电子信息工程学院,长春 130022;2.中国华录·松下电子信息有限公司,大连 116023)

随着科技的进步,社会的发展,人类测量技术也随之变强,而作为先进测量技术之一的光电位移测量技术也在不断地进步,光栅编码器、光栅尺等高精度的测量仪器也在随之不断地开发、完善[1]。而在不同的平台中均有对绝对式光栅尺与增量式光栅尺相关性能参数的对比研究调查,那么如何能够精确无误的通过增量式光栅尺实现绝对式光栅尺的功能,就成了一个颇具研究价值的问题[2-3]。

1 光栅尺简介

光栅尺由光源、透镜、光栅(标尺光栅和指示光栅)、光敏元件四大部分组成,光栅尺是基于莫尔条纹进行工作的。将光栅常数完全一致的标尺光栅和指示光栅叠合在一起,并使两者的栅线间有一微小夹角,当光线照射时,由于干涉作用在两光栅的刻线重合处就会形成亮带,在两光栅的刻线错开处会形成暗带,这种亮带和暗带就是明暗相间的莫尔条纹[4],如图1所示。

图1 莫尔条纹

若设相邻莫尔条纹的间距是B,则表达式为:

式中,w为光栅常数,θ为两光栅刻线的夹角。

光栅尺即利用光敏元件将莫尔条纹移动所产生的光强变化转化为近似正弦的电信号输出[5],从而间接测量位移量。

本课题采用了长春光机数显技术有限责任公司的SGC4N型光栅尺,如图2所示,其为一种典型的增量式光栅尺,该尺体长度为400mm,栅距为0.02mm,参考标记间隔为50mm,全量程任意位置设置一个绝对位置参考点(ABS),对于这种光栅尺常规的做法是将上电位置作为每次测量的相对零点,每次测量的位移量均为相对的,而本课题则利用这种尺体中的参考标记来作为寻零的一个基准,从而在增量式光栅尺之上实现绝对式光栅尺寻零测距的功能。

图2 SGC4N型光栅尺

2 系统方案

2.1 设计思路

本课题采用光栅尺接口为传统的DB9接口,使用了前五个接头,分别为:VCC(5V)、GND、A、B、Z,后三路为光栅尺输出的TTL方波信号,高电平为5V,低电平为0V。其常规波形如图3所示。

在读数头正向移动的过程,A、B两路输出的波形中,A波形相位超前B波形90度,而在负向的移动过程当中B波形相位会超前A波形90度,而这也是本课题中辨向的基础,读数头每移动0.02mm,A、B两路会输出一个周期的完整方波,作为测距的基础。Z波形脉冲则对应着光栅尺中的参考标记点,读数头每移动到一个标记点,Z路会输出一个脉冲,其脉宽为A波形周期的一半,常规的该脉冲用于矫正误差,而本课题则将其作为寻零的基准点。

图3 光栅尺三路信号输出波形图

2.2 系统框图

针对本课题的需求,设计了如图4所示的一个系统来实现寻零、测距、辨向以及显示等功能。

图4 系统总体结构框图

表1 EP2C5Q208C8芯片资源图

3 硬件电路设计

本课题采用的核心处理芯片为Altera公司的Cyclone II系列EP2C5Q208C8的FPGA芯片,其资源丰富,足以满足需求,且价格适中,该芯片使用手册中的资源表[6]如表1所示。

根据所需实现功能,系统硬件电路主要部分可以根据功能分为两个大模块,将信号预处理的部分作为一个模块,即包括输入信号处理,寻零以及细分辨向等主要功能,而将测距显示控制集成为另一个大模块,其RTL仿真图,如图5所示。

图5 RTL仿真示意图

3.1 输入信号预处理

光栅尺输出信号为TTL电平,高电平5V、低电平为0V,这里需要做一下特殊的说明,由于FPGA为3.3V TTL信号,而光栅尺输出为5V,需要做一个电平转换,将5V TTL转换为3.3V TTL电平,在实验中,利用了TLP521-N系列的光耦芯片,主要有TL521-1、TL521-2以及TL521-4等等,N代表了该芯片光耦通路的个数,原理图如图6所示。

图6 输入信号处理电路原理图

该电路中,D1为发光二极管,以便观察输入信号是否有误,R1,R2,R3主要起一个限流的作用,可以根据实际需求来调整阻值的大小,需要特殊说明的是,本电路输出波形为原输入电路的反相波形,因此在后续FPGA处理信号时,需要在输入的地方额外添加一个反相器,再进行输入信号消抖处理。

3.2 寻零模块

如图7所示,在本课题采用的光栅尺中设有7个参考点,与其相应的每个参考点上在Z路波形中会有一个脉冲,其脉宽为尺头移动一个栅距的时间,即假设尺头在某电机的作用下做匀速运动速度为v,则:

其中,τ就是脉冲的脉宽,d则是光栅尺所采用的莫尔条纹的栅距,也就是说,在人为移动尺头的情况下,如果在经过该参考点位时,尺头没有移动一个完整的栅距,则Z信号会在高电平停留。因此在后续的处理当中以处理上升沿为核心算法,以避免人为操作过程中的各种偶然因素。而对于边沿的处理采用了Verilog中提取边沿的经典算法——布尔运算[7],其运算过程如表2所示。

图7 相对式光栅尺参考零点示意图

表2 布尔运算真值表

上表中信号ZL2H运算公式为:

由此可知,在上升沿出现的时钟周期内,会输出一个脉宽为一时钟周期的脉冲,本课题中采用50MHz的晶振,故而其脉宽为20ns,部分代码如下:

由于需要一个绝对位置的零点,故而选择图7中4号参考点位作为绝对零点,那么尺头的起始位置无论是左边还是右边,只要查询计数器的状态,当存储数据为3'd4时即认为找到了该尺的绝对零点,在产生相应的提示后,开始进行测距操作。需要特殊说明的是,在本课题中,恰好采用了奇数个数参考点的光栅尺。如果采用偶数个数参考点的光栅尺,比如说采用了8个参考点的光栅尺,而光栅尺参考点之间的间隔是固定的,假设为D,那么在寻找到无论从左亦或者从右开始移动的第四个参考点以后,开启测距模式,当距离寄存器存储数据为时,该点即为绝对零点,之后做相应的提示,并清零距离寄存器,再开始进行测距操作。而计数部分只要将上述程序中的isChangeZ_L作为计数使能信号即可进行计数,原理相同。

图8 Z信号计数仿真图

上图为Modelsim的波形仿真图,其中RSTn为复位信号,CLK为时钟信号,Wav_Z为模拟输入的Z信号,ZL2H为Z信号计数使能信号,Count_Z为Z信号上升沿的计数寄存器。由上图中可以看出,Z信号的上升沿均被提取出来,且计数器正常计数,在计数器状态为3'd4时以后停止计数并进行相关操作。

3.3 四细分辨向计数模块

首先来解释一下什么叫做四细分:

图9 四细分辨向计数示意图

在图9中,截取了两个周期的波形,四细分的核心思想就是,在A、B信号的每个边沿,都让计数脉冲去触发一个脉宽为一时钟周期的脉冲,A、B信号对应的周期为两个完整栅距即一对黑白条纹的移动时间,与读数头的移动速度相关,因此A、B信号一个周期的信号,对应着测距中的两个栅距,那么这里假设使用的光栅尺栅距为d,在不细分的情况下,一周期对应距离为2d,而在上图中,两个周期对应距离则为4d,而上图中读数头两个周期的移动距离,有八个计数脉冲,也就是说,每一单位计数对应着距离为:

这里需要做一下说明,计数脉冲脉宽并不像图中这样,该脉宽与Z信号计数脉冲脉宽一样,均为一时钟周期20ns。

接下来阐释一下该模块的辨向功能,如图9中所示一样,正、负向移动A、B信号状态的区别主要为相位超前或者滞后的问题,当读数头正向移动时,B信号相位滞后A信号相位90度,当读数头负向移动时,B信号相位超前A信号相位90度,那么利用这个特性,在每个A的上升沿时,检测B的电平状态,当读数头正向移动时,B为低电平;当读数头负向移动时,B为高电平。

表3 正向移动时A、B信号状态

表4 负向移动时A、B信号状态

结合上面两张表可以得出,只要在采集到A信号上升沿的同时,判断B的电平状态,就可以得出读数头的运动方向,即低电平对应正向移动状态,高电平对应负向移动状态,相关代码如下:

上述代码中Number_Lc信号表示运动方向,正向运动为低电平0,负向运动为高电平1。

图10 辨向波形仿真图

本次仿真,对A波形进行了两次延时,从图10中可以看出,辨向信号初始化为高电平1,在A波形的第一个上升沿时进行了第一次的辨向信号状态变更,此时,辨向电平状态变更为0,B波形的相位滞后于A波形从表3中可以看出,此时运动状态为正向,在一个周期后,对A波形进行了第一次延时,之后进行了第二次的辨向电平状态变更,由图10中可以看出,此时B波形的相位超前于A波形,故而此时运动状态为负向,辨向电平状态变更为1,之后两个周期以后,对A波形进行了第二次的延时,同样的可以看出,此时运动状态变更为正向,辨向电平状态变为0。

接下来介绍计数部分,由于要实现绝对式光栅尺的功能,因此可以将整个尺体看成一个数轴,因此除了运动方向,还要得出读数头的位移方向,但是由于Verilog中并没有负数这个概念,只是在寄存器中,最高位可以作为符号位来看待,但是当该寄存器的数据作为操作数时,只是一个单纯的操作数,并没有正负数的概念,那么数轴相对位移加减出现负数以后就会出现较大的问题,因此,设置一个用于对比的数据寄存器,本次实验中初始化为50000,那么在当该状态寄存器的数值大于50000时,位移方向为正向,当该数值小于50000时位移方向为负向,根据公式(3)可以知道一单位代表的距离是0.5d,那么位移距离即为:

式中,S1即为位移的大小,其中N代表对比数据寄存器的数值。

在实际的Verilog程序中,由于相关逻辑较为复杂,导致这个部分程序偏长,考虑到篇幅问题不在这里例举程序段,而在这里阐述一个在研究过程当中较为典型的问题,在实验当中发现部分光栅尺输入信号在跳变边沿存在一定程度的抖动,而这个抖动对于计数的影响非常大。因此,在程序设计当中设置了一个1us的跳变保护模块,基本的思想就是,在采集到一个跳变以后,会开始一个1us的计时器,当1us内没有出现电平跳变,才认定此次跳变可以作为测距计数的使能,否则该电平跳变采集无效,等待下次跳变采集。

图11 计数模块仿真波形图

4 系统验证

简要介绍一下整个系统的操作流程与系统验证结果。

(1)系统上电,数码管显示五个8,用于检测数码管是否工作正常;

(2)读数头从最左端或者最右端开始移动,分别移动到第1、2、3个参考点是分别显示五个相应的数字,例如第一个点显示五个1;

(3)当读数头移动到第四个参考点也就是本实验的绝对零点时,先显示5个4,保持1s以后显示变为5个0,表示可以开始进行测距操作;

(4)移动读数头进行测距,5位数字分别表示厘米、毫米、百微米和十微米,最高位表示位移的方向,额外还有一个运动方向的指示灯正向运动时亮,负向运动时灭。

实验操作中的部分操作过程如图12所示(其实际距离是利用50分格游标卡尺,通过读数头上三角标的位移前后距离得到)。

图12 测试过程中数码管显示的各种状态

从上面的图d和图e中可以看出,在绝对零点的两侧,最高位分别显示了0和1,正确表示了位移方向的正负,且位移距离与实际位移距离基本相同(由于测试时使用了50分格的游标卡尺,其精确度为0.02mm,测距系统最小精度为0.01mm,故而只存在±0.02mm的误差)。

5 结论

本课题利用FPGA的对波形处理能力优越,并行处理架构等特性,选用Cyclone II系列EP2C5 Q208C8为核心处理芯片,在增量式光栅编码器之上实现绝对式寻零测距的功能,同时在此基础上,成功通过四细分辨向的思想,将测距装置测试精度提高了四倍,精度高,误差小,达到设计初衷,并通过实际验证,结果显示该系统可以将误差控制在±0.02mm的数量级之内。该系统在很多工程应用中具有很强的现实意义,譬如,令测试头由相关的伺服电机来控制,可以在楼宇或者交通工程中去进行相关的测量工作,且具有较高的精确度。

猜你喜欢
光栅尺参考点读数
国产光栅尺在校直机设备上的应用
FANUC 0i-MF数控系统参考点建立与调整
光栅尺在高精度数控机床中的重要性
光栅尺在数控机床中的应用
数控机床返回参考点故障维修
读数
读数
读数
读数
基于参考点预测的动态多目标优化算法