工控网首页
>

应用设计

>

基于FPGA的光栅信号智能接口模块

基于FPGA的光栅信号智能接口模块

2007/6/27 9:20:00
摘要:在高精度数控机床中,常由直线电机和光栅尺构成闭环系统,如果光栅尺的信号直接由CPU来处理,则占用CPU的很多软硬件资源,而且其实时性不能保证。利用现场可编程门阵列(FPGA)的高速、高密度、可在线修改的特点,设计一智能接口模块。不但实现了X-Y轴光栅信号的细分、辨向、位移测量,还能准确测量并显示速度,最后,通过接口电路把位移、速度等信号传到上位机。仿真结果证明该设计的实时性好、位置控制误差小于2μm。 1 引言 在高精度数控机床中,通常采用直线永磁电机来驱动,它消除了旋转电机齿轮间隙带来的误差,减小了系统的惯性。从而改善了系统的动态性能。但电机能否精确定位,还取决于位置反馈是否精确,光栅尺精度高、价位低、性能优良,成为首选的位置传感器。但光栅尺的栅距很小,只有几个或几十个μm,输出频率很高,并且是多路的(2轴的4路、3轴的6路),如果用普通微处理器来直接读取,则其实时性难以保证,如果采用高性能微处理器,虽然能够实现,但也需要编制大量程序。我们设计的接口模块,不但实现了信号的细分、辨向、位置的计算,还实现了速度的计算与显示,模块是独立工作的,上位机什么时候需要数据,通过8位数据总线直接读取即可。既保证了控制系统的实时性,提高了系统的反应速度,又降低了设计难度。本课题采用SR-1-75-20Z01J3-5F05E光栅尺,栅距20μm。用ALTERA的FLEX10K10为其设计了一接口电路。 2 系统整体结构图 整个系统由细分、辨向、可逆计数、测速、显示、接口等组成。如图1所示。
整个模块由X和Y两部分构成,分别用来测量X轴和Y轴的光栅信号,以X轴为例,光栅尺输出两路正交的方波信号A和B,经过细分后送到可逆计数器计数,由辨向电路来决定是增计数,还是减计数,计数器所计数乘以光栅距即为直线电机所走的位移。当上位机读数时,则把计数器的当前值进行锁存,然后连同速度的8位信号一起送到接口电路,接口电路的输入为48位,输出为8位,根据上位机给出的地址读取相应的数据,本模块还具有速度显示电路,可以把X轴和Y轴的速度信号实时显示出来,该部分采用动态显示,节约了硬件资源。 2.1 细分与辨向 为了提高控制精度,通常需对输入的光栅信号进行细分,即对输入信号进行倍频,我们设计一4倍频电路,原来的分辨率为5μm,倍频后分辨率变为1.25μm。直线电机的运动方向由辨向电路来实现。辨向的原理是根据光栅尺两正交脉冲的相对关系。当A为上升沿时,如果此时B为高电平,则电机正向运动;反之,当A为上升沿时,如果B是低电平,则电机在反向运动。辨向模块用VHDL程序来设计。细分辨向电路如图2所示。图3为其仿真波形图。
2.2 速度的测量与显示 高精度直线电机数控机床,通常需要对其速度进行精确控制,而通过对光栅尺信号的处理,可以精确得到直线电机的速度。计算公式为 υ=s/t=nd/t=df 式中:d为栅距;n为光栅尺所给出信号的个数;n/t为光栅尺输出信号的频率f,因此只要测出光栅尺的频率即可。 通常频率的测量有测频法和测周期法两种,测频法就是在确定的闸门时间Tw内,记录被测信号的周期数Nx,则被测信号的频率为:fx=Nx/Tw。测周期法需要有标准信号的频率fs,在待测信号的一个周期Tx内,记录标准频率的周期数Ns,则被测信号的频率为:fx=fs/Ns。这两种方法的计数值会产生±1个字误差,测试精度与计数值Nx或Ns有关,一般对于低频信号采用测周期法;对于高频信号采用测频法,因此测试很不方便。本设计采用一种等精度测试方法。它的闸门时间不是固定的,而是被测信号周期的整数倍,即与被测信号同步,因此,排除了对被测信号计数所产生±1个字误差,并且达到了在整个测试阶段的等精度测量。其测频原理如图4所示。
在测量过程中,有两个计数器分别对标准信号和被测信号同时计数。设在一次实际闸门时间t中计数器对被测信号的计数值为Nx,对标准信号的计数值为Ns。标准信号的频率为fs,则被测信号的频率为 fx=Nx/Nsfs 测量频率的相对误差与被测信号频率的大小无关,仅与闸门时间和标准信号频率有关,即实现了整个测试频段的等精度测量。闸门时间越长,标准频率越高,测频的相对误差就越小。本课题采用16进制计数器对被测信号进行计数,因计数器的输入脉冲采用4倍频后的脉冲,因此相当于每采集4个光栅脉冲就计算一次电机的速度,保证了电机的动态性能;标准时钟选用10MHz,当闸门时间为0.01s时,根据公式
,得到测量的相对误差只有10-5。可见其精度很高。测频波形图如图5所示。图5中,tclk为同步时钟,clk为标准时钟,mc为细分后的被测信号,L[8..1]为频率输出。由于输入mc的频率没变,所以,输出速度显示始终为19。
速度显示模块用来显示X轴和Y轴的速度,每轴用两位数码管来显示,共4位,为了节省硬件资源,我们设计了动态显示模块。波形图见图6。
图6中,sm[6..0]为经过7段译码后所显示的速度,例如,01表示“0000001”,即显示“0”;20表示“0100000”,即显示“6”;00显示“8”。 3 接口模块 接口电路实现FPGA和上位机的通信,FPGA实现X轴Y轴的位移、速度的计算,上位机在需要数据时就发出读命令,然后根据给定的地址,读取相关的数据。波形图如图7所示。
图7中,d0为X轴位移低8位,d1为X轴位移高8位,d2为X轴速度,d3,d4为Y轴位移,d5为Y轴速度。Sel为地址总线,do为数据总线,当sel为“0”时,输出d0的数据,当sel为“1”时,输出d1的数据,等等。当读信号r为高电平时输出高阻“ZZ”,这时数据总线开始执行其他的任务。 4 仿真结果及结论 智能接口模块仿真波形图如图8所示。
图8中,clk为标准时钟模块,clk1为同步时钟,r为读数据有效命令,a,b为X轴光栅尺输出的正交脉冲,c,d为Y轴光栅尺输出的正交脉冲。 从波形图中知道,当读有效r为“低”时,按地址总线提供的地址输出对应的数据。b1,b2,b3,b4为数码显示的位选择信号,sm[6..0]为对应显示位的显示数据。由于动态显示的频率较高,因此,成为“黑带”,其放大波形图如图6所示。 针对精密数控机床直线驱动伺服系统对位置反馈要求精度高、实时性好的特点,利用Altera的FELX10K10芯片,设计一智能接口模块,该模块速度快、集成度高,出色地完成了X轴、Y轴的位移、速度的计算与显示。不但计算精度高、速度快、不占用上位机的资源,而且,稍做修改即可完成X轴、Y轴、Z轴的测量,也可用来测量高速光电编码器的信号。最后把设计的电路下载到EPF10K10芯片中,仿真结果证明了该模块实时性好、精度高、可独立工作而不占用上位机软硬件资源。
投诉建议

提交

查看更多评论
其他资讯

查看更多

智光节能内蒙古阿拉善左旗瀛海建材余热发电机组首次启动成功

智光电气台州电厂给水泵系统节能改造项目成功投运

智光节能荣登2014年度全国节能服务公司百强榜第五位

索引程序编程凸轮表

奥越信300系列PLC手册