基于FPGA光栅位移测量系统的设计

时间:2022-10-15 06:03:42

基于FPGA光栅位移测量系统的设计

摘 要介绍一种基于FPGA光栅位移测量系统。说明光栅信号细分和测量原理,运用最小二乘法,设计一个具有测量点、线、圆等功能的光栅测量系统,解决目前光栅测量系统速度慢、实时性差、功能单一、界面不友好等问题。通过Verilog实现该系统的辨向电路、计数电路等,并运用EDA综合仿真软件进行仿真试验。试验表明:此系统简化仪器电路,降低仪器的成本,提高仪器可靠性。

【关键词】FPGA 光栅信号 Verilog 辨向电路 计数电路

1 概述

光栅位移传感器是基于光栅莫尔条纹信息变换原理的模C数传感器[1],光栅信号由于不受时间影响、抗干扰力强等优点,光栅传感器位置测量技术在医疗设备、精密现代化加工设备等方面得到了广泛的应用。目前光栅位移测量系统方案主要包括:光栅位移信号处理电路(滤波、降噪等)、控制单元、LCD显示电路及功能键。这些方案实现的方法各不相同,也各有不足[2,3]。例如:刘翠玲,赵权等人[2]提出运用单片机作为处理芯片,存在控制速度慢,精度低等不足;谢敏[3]提出使用一片FPGA芯片完成细分、辨向计数等功能,提高了数据处理的实时性,但存在人机界面不友好等不足。

针对目前光栅测量方案的不足,本文以FPGA为主芯片,采集光栅信号并对光栅进行细分,运用Verilog HDL语言对FPGA进行硬件编程,使FPGA实现细分、辨向、计数等功能,大大减轻单片机的负担,并运用单片机读取计数器的值并进行数学处理,使系统实现点、线、圆的测量等功能,最后用液晶显示屏显示结果或通过USB口将所测的元素上传到上位机后在屏幕上描绘出来,形成一个高速、人机界面友好、低成本、高精度的多功能测量系统,满足机床测量的需求。

2 系统总体设计

该测量系统选用低成本的新天光电50线/mm的光栅传感器,当它正常工作的时候,输出相差为900的TTL方波信号A+、B+和它的反信号A-、B-,以及R+和其反信号R-即参考点信号三组信号。

X轴、Y轴、Z轴分别连接3路光栅传感器,光栅传感器输出的三路信号经过FPGA里的四细分及辨向后,输出正向或反向脉冲信号并对其进行计数,然后单片机通过读取FPGA中数字量,并通过运算,得出光栅移动的位置,最后用LCD显示结果或通过USB口与PC机进行双向通讯。系统总体设计框图,如图1所示。

3 硬件设计

本系统硬件电路主要由光栅传感器、差分放大器MC3486、74HC14、LCD、单片机C8051F341和A3P030等组成。运用Flash架构FPGA的速度快、密度高、可在线修改等的特点,完成对光栅信号的处理,并实现对X轴、Y轴、Z轴光栅信号的细分、辨向、计数、位移测量的功能,其计数频率高达到200MHz,分辨率达26位。

3.1 FPGA模块设计

通过电子学细分提高光栅的精度,则必须要实现细分、辨向、计数的功能。本系统的设计主要是运用FPGA来实现细分、辨向和计数的逻辑电路,核心芯片采用的是actel公司的 A3P030,此芯片系统门电路多、运行速度极快、功耗低、掉电不易失、价格不错,克服了用DSP和单片机导致的运算速度慢的缺点。故常作为首选芯片。

3.1.1 四倍频细分原理

FPGA里的四细分电路的设计思路是:FPGA接收来自经过差分放大器、整形器后的2路相差900的A、B相信号,然后如果对A、B相信号的上升沿和下降沿都进行计数,从而实现四细分计数,使测量精度提高4倍。本文选用触发器D来获取A、B相信号的边沿脉冲,是因为D触发器的输出只有在时钟上升沿的时候才能随输入端D变化的特点。

3.1.2 辨向计数原理

D触发器能消除输入信号的尖脉冲影响,所以为了提高系统的抗干扰性能,选用经过第一个D触发器产生与时钟同步的信号A1、B1,再经过第二个D触发器产生与时钟同步的信号A2、B2。A2、B2与A1、B1分别延时一个时钟周期。

A1、B1是前一刻的状态,A2、B2是当前状态,分析A1、B1、A2、B2电平状态的关系可知:一个周期内,光栅正向运动时,A1B1A2B2电平值有(0010)、(1011)、(1101)、(0100)四个值,每发生一次这样的变化,可逆计数器进行加1;当光栅反向运动时,A1B1A2B2电平值有(0001)、(0111)、(1110)、(1000)四个值,每发生一次这样的变化,可逆计数器进行减1(四个状态前后相互关联,若状态不连续变化视为无效)。

将以上辑,运用Libero IDE软件、Verilog语言,实现辨向计数的功能。

3.1.3 FPGA软件程序设计

本系统设计的FPGA模块主要采用Verilog语言实现光栅信号的细分、辨向、计数、响应单片机发出测量的功能。其程序流程图,如图2所示。

3.2 单片机C8051F341模块设计

C8051F341单片机通过P0、P2口以读写控制线RD、WR与FPGA相连。通过访问外部寄存器的方式读写A3P030内部的辅助功能寄存器,以及读取计数寄存器的值并进行运算。(单片机按着坐标的顺序先发送X轴方向测得的数据,等 X轴的数据停止发送后,再发送Y轴的数据,最后发送Z轴的数据)。

3.3 通讯模块设计

本系统通讯模块设计采用SP3232E接收器能将单片机TXD脚传来的TTL电平转换成RS-232电平。T1IN脚接单片机的发送端即P1.1端口,PC机的RS-232的接收端口RD接T1OUT引脚。同时,R1OUT接单片机的接收端RXD1引脚即P1.0端口,PC机的RS-232的发送端TXD接R1IN引脚。

串口输出数据的协议设计如下:

GX±*********Y±*********Z±*********

(其中:G―传输这组数据的标志字,X、Y、Z―三个坐标数据标志字,±―数据的符号位,*―传输的具体数据(9个数据中包含一个小数点))。

4 测量原理

系统要测量的平面几何要素包括点、直线、圆的功能。本文综合运算能力及存储空间等因素考虑,曲线拟合算法采用经典的最小二乘法[4]。

4.1 线测量

线测量的功能是通过采集2-50个样点来测量一个线元素。当采集的样点多于2个时,系统会根据采集的样点求出一条最合适的直线。

假设所求的直线模型为:y=b0+b1x,利用n对观测值,求出回归系数b0,b1。采用最小二乘法,记

我们寻找使Q(b0,b1)达到最小值b0和b1。

假设光栅传感器在直线上采样30个点(用户可以设置采样的点数),运用MATLAB将这些点拟合成一条直线:y=2.7843+1.238x。拟合直线图,如图3所示。

4.2 圆测量

测量圆可通过在圆周上采集3-50个样点来测得。当采集的样点数多于3个时,系统会根据采集的样点数据求出一个最合适的圆。假设光栅传感器在圆上采集的一些点。运用MATLAB拟合出这个圆的模型,如图4所示。

4.3 实现方法

系统测量点、线、圆的功能主要运用keil软件编程,按测量键选择进入相应测量界面,单片机检测按键功能,然后调用相应的子程序。

5 结束语

针对本文设计采用FPGA对光栅进行细分,使其精度提高了4倍进行验证。利用仿真软件Libero IDE进行逻辑综合、布局布线、时序仿真测试,系统时钟约束设置为50MHZ,数据的时间说明情况如图10所示。以X[1]值为例,它的需求时间为20.764ns,到达时间为15.716ns,时间充裕量为5.048ns。说明该系统设计满足需求。

选取标准值为35.375mm的圆规,运用本文设计的光栅位移测量系统对该圆规的直径进行测量,得到所测的圆直径结果为35.378mm,偏差为+0.003mm。说明此系统的设计满足精度要求。

参考文献

[1]王庆有.光电技术[M].北京:电子工业出版社,2008.

[2]刘翠玲,赵权,刘天亮.基于AT89C52的多路智能测控仪[J].仪表技术与传感器,2006(01):15-17.

[3]谢敏.基于FPGA的多路光攀据采集系统[D].合肥:合肥工业大学,2013:9-22.

[4]Xu Guowang,Liao Mingchao.A variety of methods of fit circle[J].Journal of Wuhan Polytechnic University,2002(04):104-105

作者简介

汤攀(1990-),女,重庆市人。硕士学位。现为贵州大学计算机科学与技术学院研究生在读。主要研究方向为嵌入式应用技术。

作者单位

贵州大学计算机科学与技术学院 贵州省贵阳市 550025

上一篇:医学样品检验管理软件的开发与应用 下一篇:电子线路自动测试技术