基于DSP和FPGA提高增量式光电编码器精度的研究

基于DSP和FPGA提高增量式光电编码器精度的研究
陶仁浩;罗福源
【摘 要】To research on the method of the accuracy improvement of incremental optical encoder based on digital signal processor (DSP) and field programmable logic array (FPGA). Firstly, the output signals of low - precision (500 puls/r) and high - precision (2 500 puls/r) the incremental optical encoder were filtered and level shifted respectively, then the signal of low accuracy incremental optical encoder and DSP' s output sampling pulse were input to FPGA,the time difference (error of 0. 67ns) between the two pulses was calculated bytime - to - digital converter (TDC), the time difference was input to the DSP by data bus real - timely, the position of sample was obtained by algorithm processing which compare with DSP's high -precision optical encoder position, the analysis showed that its accuracy increases five - fold.Optical encoder; time - to - digital%研究一种基于数字信号处理器(DSP)和现场可编程门阵列(FPGA)增量式光电编码器精度提高的方法.首先分别对低精度(500 puls/r)和高精度(2 500 puls/r)的增量式光电编码器的原始输出信号进行滤波和电平转换处理,
然后将低精度光电编码器和DSP输出的采样脉冲信号输入到FP-GA中,通过数字时间转换(TDC)方法测出2个脉冲信号之间的时间差值(误差为0.67 ns),将时间差值利用数据总线实时送入到DSP中进行算法处理,得出采样处的位置,并与输入到DSP中的高精度光电编码器位置进行比较,分析表明精度提高了5倍.
【期刊名称】《机械与电子》
【年(卷),期】2012(000)004
【总页数】4页(P25-28)
【关键词】光电编码器;TDC;数字信号处理器;现场可编程门阵列
【作 者】陶仁浩;罗福源
【作者单位】南京航空航天大学机电学院,江苏南京210016;南京航空航天大学机电学院,江苏南京210016
【正文语种】中 文
【中图分类】TP211;TN762
0 引言
光电编码器在军事、航天、机器人工业、医学和生物工程等领域的精密测量与控制设备中得到了广泛应用[1]。然而,目前通过进一步增大编码器的刻线密度来提高编码器的检测精度的方法变得越来越困难。现有的提高光电编码器精度的方法大致可分为光学细分、时空坐标转换法和电子学细分3大类[2-5]。
利用了DSP运算速度快、处理数据能力强和FPGA的电路可编程性、实时性好等优点,针对越来越高的细分倍数和精度要求,提出的一种新的电子学方法,该方法具有读数快,易于实现测量和数据处理过程的自动化,并能用于动态测量等优点。
1 增量光电编码器的工作原理
光电编码器的基本组成如图1所示。
图1 光电编码器的基本组成
增量式光电编码器
增量式光电编码器中LED灯产生光源通过透镜照射到刻有等间距的光栅码盘上,当码盘转动时,光源在光栅码盘的透光部分和隔光部分相互转换。由于光栅的衍射作用,光源的强度呈周期性变化,透过鉴向盘传给光电传感器,其电流随着光源的强弱也呈现周期性变化,然后通过电阻转化成电压,经过运放、电压比较器形成如图2所示的矩形波。
增量式光电编码器的方向是通过鉴向盘进行判断,由于鉴向盘的A,B相位相差90°,这样就可以通过A,B 2路输出波形相位的前后来判断光电编码器的旋转方向,如图2所示,若A比B相位超前90°,则为正转,反之反转。
图2 光电编码器2路输出波形
2 提高光电编码器精度的方法研究
2.1 基于FPGA的时间数字转换的设计
时间数字转换方法有很多种[6-7],这里采用的是时钟内插法,利用FPGA中的锁相环PLL核对50 MHz的时钟进行5倍频,占空比为50%,然后依次移相120°,输出3路频率为250 MHz,相位差为120°的时钟。对于时间数字转换的误差,如图3所示,一个周期被虚线部分
均匀分成6份,每一个周期都是二进制数据100,110,010,011,001,101的重复,就是把4 ns分成了6等份,所以每一个二进制数据对应的时间宽度约为0.67 ns,可以得出其精度约为0.67 ns。
图3 利用锁相环实现3路脉冲信号输出
对脉冲信号时间的计数由“细计数”和“粗计数”2部分组成。如图4所示,分别用低精度光电编码器输入的脉冲信号lp和DSP输入的采样脉冲信号sp作为2个D触发器的时钟信号。当光电编码器的脉冲信号和采样脉冲信号上升沿到来时,锁存clk0,clk120,clk240的电平值,相应输出data[5∶3]和data[2∶0],这里的值为“细计数值”;粗计数部分用clk0与上升沿计数器up-counter的时钟信号相连,lp作为上升沿计数器的使能端,sp作为清零端,输出data[15∶6],这里的值为“粗计数值”。
图4 细计数和粗计数模块
如图5所示,可以得出基于FPGA的时间数字转换主要有锁相环PLL模块、粗计数模块、细计数模块、数据运算模块和通信模块,其中数据运算模块是将粗计数和细计数组合为一个1
6位的数据,并产生与之同步的时钟信号,通信模块是和DSP进行通信的FPGA端的相关协议。
图5 基于FPGA的TDC模块
2.2 光电编码器的去误码鉴向方法
光电编码器本身并无锁定装置,在外力的作用下,主轴容易产生小幅度的正反摆动。光电编码器的局部放大图如图6a所示,当光电编码器主轴在B相输出电平由高到低的边缘点R时,产生左右摆动,则输出波形如图6b所示,这样如果采用在B相的上升沿来检测A相脉冲电平的方法,会产生换向误码。反之,如果在A相的边缘点产生摆动,采用在A相的上升沿来检测B相脉冲电平的方法,同样会产生误码。
图6 编码器局部放大图及主轴摆动输出的波形
为了解决鉴向中的误码现象,在传统鉴向电路的基础上进行改进,给出了一种新的鉴向方法。光电编码器的A相脉冲信号lpa和B相脉冲信号lpb加非门进行取反,加上2路原始信号,一共4路信号分别输入4个D触发器DFF中,这里实现了A相(B相)的上升沿和下降沿来检
测B相(A相)脉冲电平;然后对D触发器输出信号相异或;进而输入到误码处理模块FT中,A相脉冲信号和B相脉冲信号输入矩形波RECT模块,取A,B相中矩形波作为误码处理模块FT的时钟信号,时钟信号采样2路异或结果,结果为1时则未产生误码,输出相应的电平值到dir,结果为0时,时钟上升沿dir自身取反,其中dir为零时,光电编码器反转,反之正转。
将上述的鉴向电路,利用EDA设计工具QuartusⅡ8.1原理和Verilog HDL语言方法进行设计,然后得出时序仿真波形,其仿真结果如图7所示,验证了该鉴向电路的正确性,并下载到特定的FPGA目标芯片中,进行硬件测试。
图7 鉴向电路仿真波形
2.3 基于DSP的光电编码器的位置计算
由于物体在运动的过程中具有惯性,根据质点运动学原理,在极短的时间内,其速度具有稳定性。当光电编码器转动时,在较小的时间内,可以认为它的速度几乎是不变的。
将低精度光电编码器的脉冲信号输入到DSP中,利用DSP时间管理器EV捕获单元CAP1对
脉冲信号进行捕捉,当脉冲信号上升沿到来时,DSP产生中断,并记录当前的时间值。如图8所示,DSP分别记录下脉冲信号i-1时间值Ta和脉冲信号i的时间值Tb,DSP通过16位总线接收FPGA的数据作为采样时间Tp,采样脉冲信号的周期为4μs。
图8 脉冲信号的时间与位置关系
这里要对FPGA传输过来的16位数据标准化,其中高10位为“粗计数值”,存储的是时钟为250 MHz的脉冲信号数,由此可得“粗计数值”为:
data[15∶6]为“粗计数值”。
细计数时间分别为data[5∶3]和data[2∶0],对照表1中data取相对应的值。
表1 细计数时间的校准data 001 010 011 100 101 110 XT 1 (ns)1.00 2.34 1.67 3.67 0.33 3.00 XT 2(ns)1.00 2.34 1.67 3.67 0.33 3.00
其中XT 1 对应data[5∶3],XT 2 对data[2∶0],单位为ns。
则低精度光电编码器脉冲和采样脉冲信号之间的时间Tp为:
低精度光电编码器1圈360°,输出500个脉冲信号,可得1个脉冲信号为0.72°,可以得出脉冲信号i-1和脉冲信号i单位时间的度数为:
其中,37.5为事件管理器的时钟;Dj的单位为°/μs。

本文发布于:2024-09-22 04:26:34,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/3/353441.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:编码器   信号   脉冲   时间   进行   方法
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议