基于FPGA与有限状态机的高精度测角系统的设计与实
激光跟踪测量系统(Laser Tracker System)是工业测量系统中常用的一种高精度的测量仪器,是近十年发展起来的新型大尺寸空间测量仪器,不仅对静止目标可以测量,而且对运动目标也可以进行跟踪测量。它集合了激光测距技术、光电技术、精密机械技术、计算机及控制技术等各种先进技术,对空间运动目标进行跟踪并实时测量目标的空间三维坐标。它具有快速、动态、精度高等优点,适合于大尺寸工件配装测量。在航空航天、机械制造、核工业、现代军事等测量领域得到广泛的应用。该系统的跟踪精度在很大程度上依赖于转台的旋转角度的测量精度。
本文引用地址://www.cazqn.com/article/189624.htm为了提高系统转台旋转角度测量的精度,本系统采用高分辨率的光电编码器来测量角度。光电编码器是利用光栅衍射原理实现位移数字变换的,光电编码器作为一种高精度的测角传感器已普遍应用于伺服跟踪系统中,它具有精度高、响应快、性能稳定可靠等优点。光电编码器按编码方式主要分为两类:增量式与绝对式。由于增量式光电编码器成本低、测角的精度高,因此本系统的增量式光电编码器选用Renishaw公司的高精度圆光栅。
然而,由于机械振动或抖动等原因,增量式编码器的输出脉冲会出现抖动毛刺的现象,因此需要在对编码器输出脉冲进行计数的过程中采取有效的方法来去掉抖动干扰。本文介绍的有限状态机方法,在FPGA上可以有效消除抖动引起的计数干扰,提高计数的精度[1]。
1 方案设计
1.1 系统组成
激光跟踪测量系统的核心处理模块主要由ARM处理器,FPGA组成。为了充分利用ARM9微处理器的运算能力和FPGA的高速逻辑处理能力,在设计中对功能的实现进行了划分。ARM9 用于运动控制平台的控制并且与FPGA一起形成一个完整的应用平台。FPGA主要完成编码器的精确计数功能、与ARM9处理器数据通信、与激光测距仪数据通信功能。系统的组成框图如图1所示。本文重点介绍在FPGA上实现编码器的输出脉冲计数与角度测量。
1.2 增量式编码器原理
增量型编码器通常有3路信号输出:A、B和Z,每路都是差分信号,共6路信号,信号采用TTL电平,A脉冲在前,B脉冲在后,A、B脉冲相差90°,每旋转一圈发出一个基准脉冲Z,作为参考机械零位。Z相的波形中心对准A相输出的波形中心。利用A相B相的相位差来进行判相,A超前B 90°为正转,反之B超前A 90°为反转。
由于增量式编码器不带记忆功能,因此对外界因素引起的干扰非常敏感,在实际应用中,由于机械振动、工作环境,电机负载等都无可避免地会产生震动,编码器会在某一相的脉冲边缘的地方出现抖动的情况,因此有效滤掉脉冲的抖动和毛刺,是提高计数精度的关键技术。编码器输出真实信号的波形如图2所示[2-3]。
2 理论分析与算法
2.1 有限状态机原理
在编码器的一个输出周期内,A、B两相输出信号共产生4个跳变沿,在A、B方波信号的上升沿和下降沿分别计数,从而实现四倍频计数的操作。本文通过有限状态机FSM,对原始信号进行四倍频采样控制,状态机外加的一路高速同步时钟信号作为状态机的驱动时钟信号,从而有效滤掉抖动干扰。
有限状态机FSM(Finite State Machine)是一种时序电路,是数字系统中实现高效率可靠性逻辑控制的重要方法。标准状态机可分为摩尔型Moore和米利型Mealy两种类型。Mealy状态机的输出是当前状态和输入信号的函数。在本设计中,对编码器输出信号进行计数,采用的计数器是双向计数器,既与当前编码器所处于的电平组合有关,又与前一个状态有关。因此本设计采用Mealy状态机。Mealy状态机比Moore状态机在状态切换时提前一个同步时钟, 因而具有较高的实时性。A、B两相信号转换状态如图3所示[4]。
在理想情况下, 若编码器正向旋转,A、B 电平的值为:00-10-11-01-00 ; 若编码器反向旋转, 则A、B 电平的值为:00-01-11-10-00 。但是在实际应用中, 输入脉冲含有抖动和毛刺,A、B 相脉冲的电平状态会在状态机中有效地跳转, 抖动之后, 由于计数器能够正反向计数,因此最终的计数值会保持不变, 输出的结果也保持不变, 达到了去抖动的效果。有限状态机设置了5 个状态:IDLE (S0) ,ALBL (S1) ,AHBL (S2) ,AHBH (S3) ,ALBH (S4) 。其中IDLE 为初始状态, 用于初始化计数器的计数器状态。状态机的状态空间跳转图如图4 所示[5]。
fpga相关文章:fpga是什么
脉冲点火器相关文章:脉冲点火器原理
评论