王子斌 亢程龙
(电子科技大学清水河校区自动化工程学院1430实验室,四川 成都 611731)
随着电子科学技术的飞速发展,电子电路设计已经逐步走向集成化、小型化。几乎所有的电子产品都是在PCB板[2]上得以实现的。PCB板即印制电路板,是电子元器件电气连接的载体。随着PCB板生产加工需求的增加, PCB板钻孔加工的需求也必然大大增加。不但外观尺寸越来越小,孔的数目也变得越来越多,所以对专用机床的钻头打孔尺寸与质量的要求也越来越高。由于专用机床在PCB板上的打孔都是钻头在高速旋转下进行的,难免会导致钻头出现磨损,改变它的直径,从而影响PCB板上的孔径大小,进而极大地影响PCB板的实际电路性能。因此,能够及时发现钻头直径出现了误差范围以外的磨损甚至断钻就显得尤为重要,甚至直接关系到商业竞争的成败。
当前针对专用机床的直径检测研究主要是在国外,而在国内才刚刚起步。纵观国内外相关方向的文献,发现实现专用机床直径检测的系统大致可以分为两类:CCD检测系统[3]与激光检测系统[4]。
CCD检测系统主要是将被测对象即钻头的光信息通过光学系统,在CCD的光敏面上形成光学图像。CCD器件把光敏元上的光信息转换成与光强成比例的电荷量。用一定频率的时钟脉冲对CCD进行驱动,在CCD输出端得到钻头的视频信号。视频信号中每一个离散电压信号的大小对应着该光敏元所接收的光强强弱,而信号输出的时序则对应CCD光敏元位置的顺序。通过后续处理线路对CCD输出的视频信号进行二值化或者量化处理后,将被测目标从背景中分离出来,从而计算出钻头的实际直径大小。
激光检测系统主要由激光源和接收器组成,利用激光源发出的激光束以一定的角度照射到被测对象上,经过被测对象和接收器之间的多次折射后,最终计算落在接收器上的激光强度,完成对被测系统直径的检测。
由于这两种直径检测系统的核心技术均在国外,并且价格非常昂贵,一整套设备在2万美元左右,这样的价格对于大多数国内的专用机床生产厂商而言是难以接受的。因此在现阶段,绝大部分中小型厂商只有凭借着工人对钻头打孔次数以及钻头工作时间的经验预估来进行一个手动的更换。这势必会对生产成本和PCB板的打孔质量产生非常大的影响。
所以研制出一款具有民族创新精神,拥有自主知识产权的低成本、高精度的直径检测系统就显得具有现实意义以及实用价值。
基于专用机床的高精度直径检测系统采用激光传感器+高速光电隔离器+CPLD[5]+89C51的设计模式,其结构如图1所示。
其中激光传感器由发射源和接收源组成。发射源发出稳定能量的激光束,直射到接收源上。若没有被测物体遮挡,则接收源上能够很稳定地接收到由发射源发出的光信号;若有物体遮挡,则不能接收到发射源发出的光信号。经过激光传感器内部处理以后,反映出来的结果就是若没有物体遮挡发射源发出的光信号,则激光传感器稳定地输出低电平送入下一级;若有物体遮挡,则激光传感器输出高电平送入下一级。假设被测钻头以一定的速度V经过此激光传感器,便一定能从激光传感器的输出端测得宽度为Tx的单脉冲信号,若能测得此单脉冲信号的脉宽时间,即可通过如下所示的公式:
D′=V·Tx
算出钻头的直径D′。专用机床上的打孔钻头一般采用麻花钻,主要由工作部分+颈部+柄部组成,其基本结构如图2所示。
考虑一个转速为n的钻头以一定的移动速度V通过激光传感器,必然会存在一部分螺旋槽在通过激光传感器时不会遮光,这时直径检测系统测出来的直径D′将会与实际理论值D之间存在误差δ。当转速为零时这个误差达到最大,即:
δmax=D-D′
如何减小误差δmax,就成了此直径检测系统设计成功与否的关键。考虑让钻头在高速旋转的状态下进行直径检测。这样钻头在通过激光传感器的同时,钻头镂空部分螺旋槽就能很快旋转到实体部分,完成遮光。如此就可以把实际理论值和测量值之间的误差进一步缩小。δmax是由于钻头螺旋槽的不遮光造成的,因此只要知道钻头旋转的周期T,再乘上钻头的移动速度V,便能从另一途径得到δmax:
δmax=T·V
钻头的转速n已知,当单位为r/s时,数值上与频率相等,即n=f=1/T,T即为钻头旋转的周期。故可得:
为了减小误差,必须保证钻头的转速n足够大,同时移动的速度V足够慢。钻头的转速由机械保障,同时转速不能无穷大,否则会带来钻头的摆动,在通过激光传感器以后造成更大的测量误差。现在机床上的钻头转速大概在20 000~160 000 r/min。由于市面上钻头的直径数量级大概在mm左右,为了能够实现高精度的直径检测,控制δmax的数量级在μm级。因此移动速度V必须保障在0.1~10 mm/s,才能保证这一部分的测量误差控制在0.01%以内。
与此同时还有一部分误差来源于对激光传感器输出的单脉冲信号的脉宽Tx测量,我们将单脉冲信号经过1个高速光电隔离器做1次电平转换之后送入CPLD中,并且在CPLD中用硬件描述语言设计算法来实现完成高精度的脉宽测量。为了能够实现高精度的测量,我们采用一个25 MHz的采样时钟,不断对送进来的信号进行采样。若此单脉冲信号的高电平到来,则启动计数器开始计数直至高电平结束,并将测得的计数值C送入后一级的单片机中进行下一步的分析和处理。之所以说这种方法能够实现高精度的测量,是因为钻头的直径D′一般是mm数量级的,而移动速度V是m/s级的,所以Tx的数量级也是ms级的。而Tx可由如下公式获得:
其中f0是系统的采样时钟,它是MHz级的。由于在进行脉宽信号的数字化测量中,被测脉宽大小不一定为标准单位的整数倍,再加上单脉冲信号的高电平作为闸门的开启和关闭时间同时钟信号不同步,因此在量化过程中有一部分零头没有被计算在内,使我们在对钻头的直径检测中出现了量化误差。采用计数器的方式测量脉宽信号,其误差主要由两项组成:量化误差和标准频率误差。一般情况下,总误差的合成表达式如下所示:
式中:等号右边第一项为量化误差,因为Tx的数量级是ms级,而T0是μs级,所以量化误差大概只有0.01%;等号右边第二项为标准频率误差,主要是由于电子计数器所采用的频率基准受外界环境或自身结构性能等因素的影响产生漂移而给测量结果引入的误差,一般跟量化误差相比可忽略不计。由以上分析可知,总的误差大概只有不到0.01%,因此此精度用在直径检测系统上已经能够非常好地完成钻头直径检测的任务。
图1中的89C51作为一个简单的单片机[8]起到控制作用。接受上位机发出的命令并做出解析,完成如复位、测量开始、直径读取等操作,完成钻头直径检测以后,将直径信息通过RS485反馈给计算机,完成一次钻头的直径检测。
由以上系统结构分析可知,可以将此直径检测系统的硬件结构设计大致分为采样传感器、用于实现高精度直径检测的CPLD以及实现控制并且和上位机通信的单片机这3大部分。
采样传感器由激光传感器[10]和光电耦合器构成。光电耦合器的结构如图3所示,S_in负责接收从专用机床上的激光传感器测到的脉宽信号。由于专用机床上的激光传感器的标准是24 V的,而后一级的电子计数器CPLD的标准是3.3 V的。所以我们需要使用光电隔离器TLP281起到24 V转3.3 V的电平转换的作用。TLP281是一个高速的光电隔离器,主要实现电-光-电的转换,并且具有使用寿命长、抗干扰能力强、无触点且输入与输出在电气上能够做到完全隔离的特点,完全能够满足我们的设计需求。S_out则负责将经过了电平转换以后的脉宽信号送入后级的CPLD中进行最为关键的Tx脉宽测量。
高精度电子计数器[11]主要是在复杂可编程逻辑器件即CPLD内采用硬件描述语言设计算法实现的,电子计数器的结构如图4所示。它主要由D触发器、计数器、锁存器以及多路选择器构成。D触发器在每次时钟上升沿到来以后将此刻的输入信号打入Q端送给计数器cnt。D触发器采用边沿触发,可以有效地避免干扰信号带来的毛刺。D触发器的输入端连接到计数器的使能端,只有当送入的脉宽信号为高电平时,计数器才开始计数。并且将输出的数据实时地传给锁存器。锁存器的门信号也用输入信号来控制。当输入信号为高电平时,锁存器打开不断地接收从计数器送过来的计数值。当输入信号变低以后,计数器cnt停止计数。与此同时,锁存器关闭,将输入的脉宽信号的计数值送入多路选择器MUX18中。由于锁存器是24位的,而多路选择器是8位的,因此需要将锁存器中的计数值分别存在3路多路选择器中。通过与单片机相连的控制线,分3次将多路选择器的计数值送入单片机中。由于计数器的计数时钟是频率已知的固定信号,故由公式:
便可计算出脉宽信号的宽度Tx。图4中的CLR#主要是用于清零复位信号。之所以此系统能够准确并且高精度[12]地测量出脉宽信号的宽度,是因为计数器的时钟信号的频率一般都是在MHz的数量级以上,远远低于需要测量的脉宽信号的Tx。
其中,高精度的电子计数器[13]的状态机[14]作为直径检测系统的核心,负责整个单脉冲宽度的测量过程,具有举足轻重的作用。其状态转换如图5所示。
图5中状态转换所涉及的采集状态说明如表1。
在直径检测系统中,单片机仅仅是起到一个复位、控制启停,以及从CPLD中读数的作用。因此从节约成本的角度考虑,我们选择了性价比较高、芯片体积较小的89C51单片机。它是一种带4 K字节闪烁可编程的存储器,内核采用低电压、高性能的8位CMOS处理器。其中89C51主要是通过RS485[15]与工控机进行通信,接收工控机发回来的控制命令,然后控制下位机做相关的操作。其结构如图6所示。
需要特别说明的是RS485采用半双工方式,由两根信号线做差分输入,同一时间只能传输一个方向的信息。这样的话可以有效地避免双工模式下信号之间的干扰带来的影响。
为了更方便地完成整个硬件的工作,在单片机中编写了简单的控制程序[16],直径检测系统控制流程图如图7。
首先,系统上电以后,完成对单片机的波特率及数据传输方式和CPLD的初始化,使其工作在目标系统所需要的工作模式下。然后等待接收上位机发出的命令。若收到复位命令,则整个系统重新进行初始化。若收到读取数据的命令,则单片机向CPLD中去读取钻头的直径信息。因为读取是分3次读取,所以读完以后,系统会判断是否正确地读回了数据。读取成功以后在单片机中经过简单的分析和处理以后送回给上位机,完成对钻头直径的检测。
测试结果主要分成软件上的仿真测试和实际在专用机床上进行的系统测试。
在quartusII中模拟完成了基于专用机床直径检测系统的验证,如图8所示。
其中clk是硬件电路中的时钟信号,主要作为用于测量脉宽信号的基准时钟,它的频率为1 MHz。Signal1是模拟从光电传感器上传回来的脉宽信号,而value则是实际CPLD中对脉宽信号的计数值。从图中可以看出,在模拟的脉宽信号Sigal1的脉宽信号结束以后,CPLD中的计数值也马上停止到脉宽信号结束的时刻,由于基准时钟是μs级的,而实际传回来的脉宽信号最小也是ms级的。这样我们的测量误差正如前文所分析的,只有0.01%不到。
在实际的机床中应用此直径检测系统实际完成了对所有常用钻头的标准件的测量。当我们对钻头的标准件进行等精度测量时,测量值中可能存在系统误差、随机误差和粗大误差,为了能够给出更加合理的结果,我们按照下述步骤对测得的数据进行了处理。
(1)利用修正值等方法,对测量值进行修正,并将修正以后的数据xi(i=1,2,…,n)依次列成表格;
(5)按莱特准则|vi|>3s,或格拉布斯准则|vmax|>Gs检查和剔除粗大误差;若有粗大误差,应逐一剔除后重新计算xi和s,再判别直到没有粗大误差为止;
(6)判断有无系统误差,如有系统误差,应找到原因,修正或消除误差后再重新测量;
按照以上方法进行测量以后,部分常用标准件的测量结果及相对误差如表2所示。
通过在实际专用机床上对所有钻头的直径进行测量,我们发现实际测量值与标准件的标称值的相对误差最大不超过0.01%,因此可以认为此直径检测系统能够高精度地完成对钻头直径的检测。实际直径检测系统的硬件实物如图9所示。
通过对直径检测系统的软件仿真以及在机床上的实际测量,设计完成了对专用机床上钻头直径的实时检测,并且很好地在降低成本的基础上,实现了高精度的测量,使测量误差只有0.01%不到,改变了国内厂商在这一技术领域要么购买价格高昂的国外产品,要么凭借人工经验更换钻头的尴尬局面,给中小规模的机床厂商带来了新的生机。
[1]Tungaloy corporation.微型钻针产品 RDS010 技术规格说明书[Z].上海电子工业博览会展会资料,2006.
[2]杨名大.印制板数控机床的研究与开发[J].机械设计与制造工程,2002, 29(3):16-17.
[3]周鸿,赵宏.基于线阵 CCD 阵列的在线检测方法[J].半导体技术,2001,26(11):1-4.
[4]钱浚霞,郑坚立.光电检测技术[M].北京:机械工业出版社,1993.
[5]赵釜.基于 Cyclone Ⅱ系统 FPGA的图像实时采集与预处理系统研究[D].重庆:重庆大学,2009.
[6]Altera Product Specification: Cyclone FPGA Family Data Sheet [EB/OL],http://www.altera.com/aterature/ds ds_cyc.pdf,2003.
[7]周润景,图雅,张丽敏.基于 Quartus Ⅱ的 FPGA/CPLD 数字系统设计实例[M].北京:电子工业出版社,2007.
[8]陈忠平,曹巧媛,曹琳林.单片机原理及接口[M].北京:清华大学出版社,2007.
[9]张培仁.MCS-51单片机原理与应用[M].北京:清华大学出版社,2003.
[10]Stephen Petronio,常嘉佳.激光传感器[J].软件,2007(05):64.
[11]蒋焕文,孙续编著.电子测量[M].北京:中国计量出版社,1983.
[12]卢贶.基于微处理器的电子计数器原理及测量误差分析[J].湖南工业职业技术学院学报,2009,9(6):10-12.
[13]张培泽.电子计数器[J].仪表技术与传感器,1996(8):43.
[14]孔昕,吴武臣,侯立刚,等.基于Verilog的有限状态机设计与优化[J].微电子学与计算机,2010,27(2):180-183.
[15]郭华,马胜前.RS485接口芯片的介绍以及多机通讯的实现[J].甘肃科技纵横,2006,35(2):32-33.
[16]姜会文,邱书波.VC6.0下应用控件实现RS485串行通讯[J].微计算机信息,2002, 15(10):53-55.