随着汽车的普及和维修业的不断发展,人们对汽车车身在维修中的检测系统提出了越来越高的要求。传统的机械式测量系统已经不能满足现代汽车测量和维修检测的要求。在国外,意大利的Spanesi公司、瑞典的Caroliner公司开发的车身电子测量系统在测量精度、操作性方面虽有一定的优势,然而它们不能进行同时多点测量,已不能适应现代汽车维修业对检测技术的要求。利用激光扫描技术可实现对车身三维尺寸的测量,满足了现代汽车维修业对检测技术的新要求。对于激光扫描测量的方法,国内还鲜有相关的报道[1-2]。
基于合作靶标的激光扫描车身坐标测量系统,是运用四光束激光扫描测量原理,综合运用激光、光电、精密测量等技术进行非接触二维或者三维坐标测量的检测系统。它具有非接触测量、不易损伤表面、结构简单、测量距离大、测量点小、抗干扰性强、速度快、实时性好、精度高、能同时进行多点测量等特点。该系统主要应用于汽车维修业,通过测量保证维修后的事故车车身状况达到原车出厂时的技术要求。本文对激光扫描车身坐标测量系统的数据采集与处理部分作了详细介绍。
1 测量系统结构
测量系统结构框图如图1所示,检测系统由特征靶标、连接头、电机扫描装置、激光器及其驱动电路、光路转折系统、霍尔传感器、光电转换及信号预处理模块、数据采集与AVR处理及上位机组成。每个电机扫描装置由电机及其驱动电路、反射镜、反射镜固定托盘和安装于反射镜固定盘侧面的小磁铁组成。工作时,电机带动平面镜旋转,当扫描激光束经由旋转的平面镜反射到特征靶标上时,由于特征靶标上面贴有原向回归反射膜,投射光束经过反射膜反射后按原光路返回,激光束经过靶标反射后经由平面镜反射至激光转折光路中;经两个平行的45°角平面镜反射后,光信号经过光电转换及预处理进入数据采集系统,和霍尔传感器产生的电机旋转同步脉冲信号一起控制数据采集电路,经过数据处理得到初步的测量点在传感器系统内的三维坐标后,送入上位机。计算机把送来的数据进行计算及坐标变换得出车身三维坐标测量结果,并进行显示或打印输出。
2 CPLD信号逻辑处理
数据采集与处理电路包括逻辑控制电路、缓存器电路、单片机接口电路等。它们的关系结构如图2所示。逻辑控制电路采集各个传感器的信号,然后将信号经4个缓存器缓存后传送给单片机;单片机结合软件实现对靶标的识别、三维坐标计算,通过串行通信与上位机连接,接收上位机的命令并将处理后的数据送入上位机打印显示[3-4]。其中传感器的信号总共有6路,包括4路由光电模块采集进来的光电信号和2路霍尔信号。逻辑控制电路选用CPLD,缓存器选用FIFO芯片,单片机选用ATmega128型AVR单片机。
2.1 PIN数字脉冲信号预处理
首先以霍尔传感器输出波形为粗定位(波形1),从PIN输出的数字脉冲信号(波形2)中提取出采样周期定位波形,然后以此定位波形为基础定位出数据采样周期,在整个数据采样周期内对数字脉冲信号进行计数填充。采样周期定位脉冲(波形3)的下降沿是以PIN输出信号的定位脉冲的下降沿来定位的,其上升沿是以霍尔传感器输出脉冲的上升沿来定位的。提取出来的采样周期定位波形如图3中波形3所示。
2.2 采样数据周期产生电路
由于扫描器在不停地旋转,为了保证AVR获得正确的扫描数据,采样数据应该是一个完整周期内的数据,因此必须严格控制采样周期的完整性。为此设计了由AVR输出信号控制的采样周期产生电路。此电路以采样周期定位脉冲和AVR控制信号为输入,采样周期信号和采样周期终止信号为输出。在QUARTUSII9.0中进行仿真之后的波形如图4所示,图中tb为采样周期定位脉冲输入,clear为AVR输出的控制使能信号,tout1为产生的采样周期信号,flag为采样周期结束信号。
2.3 CPLD对FIFO芯片的直接控制
CPLD的主要作用是将数字脉冲信号计数填充后,在控制信号使能控制下将数据写入FIFO芯片中,因而CPLD中设计了对FIFO进行直接控制的功能模块,包括FIFO清空和写入。
2.3.1 FIFO数据清空
当FIFO中数据满时或AVR启动数据采集周期时都要先将FIFO中的数据清零,以防止FIFO溢出造成数据丢失或采集到错误的数据。针对FIFO清零时序,设计了由AVR控制的清零电路模块。执行清零FIFO命令时,首先向CPLD中写入清零信号MR电平拉低命令,命令字为0xF0;然后向CPLD中写入清零信号MR电平拉高命令,命令字为0x0F(任何非0xF0均可)。由于AVR单片机的时钟脉冲为8 MHz,因而这一过程必定能够满足清零脉冲的持续时间要求,FIFO即被清空。
2.3.2 单路FIFO数据写入
光电二极管接收的信号经前置放大及整形后频率比较高,由于系统一共有4路信号,AVR来不及直接去读取每个跳变沿的计数值,因而通过FIFO暂时缓存,待采样周期过后,AVR再从FIFO中读出计数值。要把计数值写入FIFO中,必须有正确的写信号,CY7C433对读写信号的时序有要求,写信号脉宽tPW≥15 ns,数据建立时间tSD≥8 ns,数据保持时间tHD无最小值要求。据此本文设计了图5所示的FIFO数据写信号产生电路,这一电路实质上是一个跳沿提取电路。输入的数字脉冲信号首先经过三个触发器延时三个时钟周期,之后对原信号进行异或,这样在信号的每个跳沿到来时便能产生一个3个时钟脉冲宽度的低电平脉冲。当CPLD时钟选为40 MHz时,此低电平脉冲的脉宽为75 ns,足以满足FIFO对写信号的要求。
在此低电平写信号产生后还要经过一级触发器进行时钟同步,以避免CPLD设计中经常出现的竞争与冒险问题[5],同时将其上升沿同步于时钟脉冲的下降沿,正好满足FIFO写入时序中对数据建立时间的要求。
2.3.3 4路FIFO数据处理
在整个系统中共有4个激光扫描传感器,即会产生4路信号,且每路信号都会生成独立的FIFO写信号,因而共产生4路写信号。当4路写信号中有2路或多路信号同时到来时,写入FIFO中的数据会产生紊乱,而造成数据写入错误或数据丢失。因此,设计了一个多路写信号处理电路,当只有某一路信号中有写信号产生时,写信号处理电路中产生一个与之对应的写信号脉冲;当某两路或多路信号中有写信号产生时,只产生一个与之对应的写信号脉冲。为了避免数据丢失,为数据加上4位的数据来源标志位,当多路信号同时到达时,对应于有写信号产生的标志位置“1”。多路写信号处理电路如图6所示。
#p#分页标题#e#
多路写信号处理电路在QuartusII9.0环境下的仿真结果如图7所示,图中sgg为输入的单路写信号脉冲,wrout为输出的多路写信号[6-7]。
3 AVR数据采集
3.1 FIFO地址译码电路
CY7C433芯片的数据宽度为9 bit,因而本系统中采用了4片FIFO芯片进行扩展。AVR的数据总线位宽为8 bit,为了降低外围电路的复杂性,每个FIFO芯片只用其中的8位,在读取时按照从高8位到低8位的顺序进行数据读取。因此,共需要4个读信号才能将一个数据完整地读入AVR中。数据的读取方式为,给每个FIFO芯片配置一个唯一的数据地址,数据按址读取。为此本文设计了相应的FIFO读信号地址译码电路,输出信号控制FIFO芯片的读信号使能端。首先地址信号通过一个2-4译码器进行译码,译码结果与写信号同步后输出即得到4个FIFO芯片的读使能信号。
3.2 数据采集程序流程图
综合前文所有的分析说明,编写了AVR+CPLD+FIFO信号的C语言程序,图8是程序流程图。该程序中包含了FIFO清零、采集周期启停控制、FIFO状态判断、数据来源分析、数据有效性判断等多个子项,最终采集得到一个扫描周期的准确、有效的数据以供后续电路进行处理。通过试验证明,程序达到了预期目的。
本文对激光扫描车身坐标测量系统的数据采集部分进行了深入研究,设计了基于“AVR+FIFO+CPLD”的数据采集及处理模块;解决了当多路信号有数据同时传输时,如何将数据完整地写入FIFO的问题,实现了数据的有效采集;编写了完整的CPLD控制程序和AVR数据采集程序,为准确测量待测点的坐标提供了可靠的数据来源。
转载请注明出处。