找回密码
 注册会员
更新自动建库工具PCB Footprint Expert 2024.04 Pro / Library Expert 破解版

[嵌入式/ARM] 基于FPGA的尺寸自动检测研究

[复制链接]
admin 发表于 2013-3-26 22:26:33 | 显示全部楼层 |阅读模式

本文包含原理图、PCB、源代码、封装库、中英文PDF等资源

您需要 登录 才可以下载或查看,没有账号?注册会员

×
摘 要:介绍了一种基于现场可编程门阵列(FPGA)的尺寸自动检测方法,同时给出了尺寸检测结果的实时在屏显示方法。研究了基于FPGA的纵、横向尺寸的检测方法,给出了系统的软、硬件设计,并进行了系统精度分析。
关键词:FPGA  视频分划  尺寸检测
   
       随着自动化制造系统在各行各业的广泛应用,有效控制加工质量,防止废品产生,提高加工生产率和检测精度被越来越多的企业所关注。工件尺寸精度是直接反映产品质量的重要指标。目前,在有些方面虽然已实现了自动化,但仍有一些尺寸检测或检验还处在人工阶段。人工检测所需劳动量大,易产生误判,且检测效率不高,不方便进行质量的统计分析。随着工件的批量化生产,这种检测方法显然是不合适的。
  针对这些情况,本文提出了一种基于FPGA的视频检测新方法。本系统采用FPGA和VHDL语言实现。这种方法简单易行,减少了元器件使用数量,不仅提高了测量精度和可靠性,而且避开了使用机器视觉技术的价格障碍。其操作的灵活性和直观的在屏显示效果在很大程度上方便了工件质量检测和管理。
1 系统构成及基本原理
     系统的组成框图如图1所示,经过对待检工件定位、调节CCD摄像机等操作后,使待检工件成像清晰且位于监视器中间。调节到位后,FPGA模块将利用视频信号同步分离后得到的行、场同步信号和奇偶场信号产生视频横、竖线的生成控制信号,通过该控制信号控制叠加电路将视频线叠加到监视器显示(其上下、左右位置,长度及亮度均可通过键盘进行调节)。同时,利用视频线生成控制信号去控制视频二值化信号以得到待检部位尺寸信息。当视频线位置调节到刚好使其跨跃工件的待检部位时(不要使视频线过长而伸到工件图像的另一边界外),FPGA模块将输出代表待检部位尺寸信息的脉宽信号。键盘启动检测,单片机将对此脉宽信号进行计数采集,并对计数值进行分析处理,得出检测结果和合格性分析结果,然后建立单片机与专用字符叠加芯片之间的通信,把这些结果全部显示在屏幕上。不同的检测结果伴有不同的闪烁提示,以提醒操作人员进行正确的操作。
   
   
   
2 FPGA中各模块功能原理
  FPGA模块主要功能包括以下几个方面:视频横、竖线的实现及其控制模块,纵、横向尺寸信息处理模块,待检尺寸类型处理模块,键盘扫描模块以及键值处理模块。其具体框图如图2所示,粗虚线内表示FPGA要实现的功能,外界的都是输入或输出信号。
   
    20121107045123513033576.jpg
   
2.1 视频竖、横线的生成原理
     本系统中用于瞄准工件尺寸信息的视频横、竖线是基于视频分划技术[1]生成的。视频分划的简单描述如下:当电子束在屏幕上从左到右扫描时, 在某一行的电视信号上加一白色或黑色电平脉冲, 则在屏幕的相应位置上会出现一个白点或黑点。同样,如果在整幅视频图像上按一定规律加上相应的白色或黑色电平脉冲,则会在屏幕上显示出相应的几何图形来。
     依照视频分划原理,如果从视频信号的某一个行同步头开始到另一个行同步头结束,对这之间各行的行同步头延时相同时刻后,控制叠加电路在相应行的图像信号上叠加相同宽度的白色或黑色电平脉冲,则在屏幕上将产生一条亮或暗的竖线。实现方法如下:对输入的视频信号进行同步分离,分离出行同步信号(H)和场同步信号(V)。通过对V和H分别进行两级延时后相与就可以捕捉到连续几行中的经过延时后的行同步头,即得到视频竖线生成控制信号。其中,场信号第一级延时用来调节竖线在屏幕上的上下位置(延时越长,竖线越向下移),场信号第二级延时用来调整竖线在屏幕上的长短(延时越长,捕捉行同频头越多)。行同步信号第一级延时(延时短,小于行同频信号周期)用来调整竖线在屏幕上的左右位置;第二级行延时(延时越长,竖线越粗)则用来实现竖线的粗细调整。如果用视频竖线生成控制信号去控制叠加电路,就可以实现在视频图像上叠加一条竖线。
     视频横线的生成原理与视频竖线差不多,可以把它看成是一条很短又很宽的竖线,它只是对一场图像中的某一个行同步信号进行两级延时。实现方法如下:对输入的视频信号同步分离得到H、V以及奇偶场信号。为了保证横线的稳定性,本方案利用奇偶场信号来代替V。利用奇偶场信号的上升沿(或下降沿)触发来进行两级延时,其中,第一级延时用来调节横线在屏幕上的上下位置。为保证一场获取一个行同步信号,第二级延时时间的长度应该等于行同步信号周期(64us)。用第二级延时后的信号与 H 信号相与便可获取一个行同步信号。对这个行同步信号再进行两级延时,第一级延时调整横线在屏幕上的左右位置;第二级行延时实现横线的长短调整。至此,便得到了视频横线的生成控制信号。如果用它去控制叠加电路就可以实现在视频图像上叠加一条横线。
     以上各级延时操作在具体设计时,都设计成按键可调的,这样可以方便地调节各视频线的位置和长短。
2.2 尺寸信息处理
    与工件待检尺寸信息联系最紧密的是其边界点的信息,因此,对工件图像信息中的边界点的采集成为关键。通常采用将视频信号二值化[2]的方法。为避免CCD周围光照环境引起的干扰,本系统采用了浮动阈值的二值化技术对视频信号进行预处理。
     采集工件纵向尺寸信息的实现方法是使视频竖线刚好跨跃待检尺寸的两端,以视频竖线生成控制信号作为敏感信号,以经二值化处理后的视频信号为输入信号,敏感信号上升沿变化启动进程输出一个信号等于此时输入的二值化信号,如此一场图像扫描下来,就可将纵向间隙尺寸信号转换成一个门信号。如果检测的是纵向实体尺寸,则在经上述处理后得到的只是如图3所示的信号A。为将其转化为脉宽信号,还需进一步处理,方法如下:以该信号为敏感信号,用两个进程分别以它的上升沿和下降沿进行翻转,如图3中信号B、C所示,再将二者相与即可得到代表尺寸信息的脉宽信号D。为区别检测的是间隙还是实体尺寸,在外设有键盘进行切换。利用单片机对输出的脉宽信号进行计数、处理,便得到检测结果。
   
    20121107045123544283577.jpg
   
     采集工件横向尺寸信息的实现方法是使视频横线刚好跨跃待检测尺寸的两端,以横线生成控制信号为敏感信号,以二值化处理后的视频信号为输入信号。当敏感信号为“1”时,进程输出信号随二值化信号变化;当敏感信号为“0”时,进程将输出低电平。这样得到的信号波形和纵向尺寸情况一样。若检测的是间隙尺寸,将输出一个脉宽信号,若检测的是实体尺寸,输出的也是如图3所示信号A,用同样的方法处理可得检测结果。
2.3 时钟分频和键盘扫描
  时钟分频的功能是将系统提供的主时钟进行分频以提供其他模块所需。本系统主要为视频线的产生和移动所需的延时进行了时钟分频,同时为单片机的计数频率也进行了时钟分频。在 FPGA 中,时钟分频一般是通过 VHDL 语言的进程语句由计数器实现的[3]。
      键盘扫描主要是为外部键盘提供接口,本系统中按键包括对视频线的位置、长度、类型、亮度以及待检尺寸类型等参数进行调整和选择,还为所叠加字符的相关参数进行设置和调整,因此可以用 VHDL 设计一个4×4的动态扫描键盘[3]来进行各参数的控制。
2.4 叠加电路
     本系统中叠加电路有两部分,一是视频横、竖线与图像的叠加,其实现方法是用动态视频线的生成控制信号来控制叠加电路,当控制信号为“1”时,叠加电路输出为一个可调灰度电平(在外设有控制旋纽来调节该电平)取代在相应行相应位置的图像信号;当控制信号为“0”时,叠加电路输出为图像信号,由此实现在图像信号上叠加视频线。二是字符与视频图像的叠加,它是通过专用字符叠加芯片uPD6450[4~5]来实现的。uPD6450是一种可编程的字符叠加芯片,显示的字符格式为12×18点阵,内部设有128字的固定字库,提供多种显示方式,如闪烁、背景选择等。
3 软件设计
  系统软件部分由计数单元、数据处理、合格分析、偏差处理、显示处理等单元组成。主程序流程图如图4所示。
    20121107045123591163578.jpg
   
     为提高测量结果的准确性,在计数单元部分中对工件尺寸信息进行20场计数处理,对所计数值进行乘当量、取平均值等数据处理操作,得到检测结果。再对检测结果与标准值进行比较,进而得出合格性分析结果。同时,在偏差处理部分还对不合格的结果进行了偏差判定,最终分析出该结果相对于标准值是偏高还是偏低,并且偏高或是偏低标准值的具体数据也会计算出。在显示处理部分将把这些分析处理所得的所有结果都直观地显示在监视器上。
4 系统精度分析
    为满足检测精度的要求,对系统的脉冲当量必需进行设计,其方法是用本系统对一个测量精度高的量具(如千分尺)进行原始数据采集,若标准尺寸(L)所得计数值为n,则可得脉冲当量为S=L/n。
     将测量公式f=S·N(其中,S表示脉冲当量, N表示计数值)代入脉冲当量计算式有f=(L·N)/n,则检测精度表达式为:
       20121107045123622403579.gif
      由上式可以看出影响测量精度的因素有标准器的精度(?啄L)和计数精度(?啄n、?啄N)。选用精度高(?啄L小)的标准器一般对系统精度影响不大,?啄n和?啄N受计数频率和定位精度影响。考虑到计数频率的稳定性,其频率不宜选得过高(过高会影响计数误差,起不到明显效果),也不能选得过低(过低时脉冲当量太大,若有一个或半个计数值的误差会对系统造成较大影响)。一般根据实际需求调整CCD的放大率和计数分频时钟,使脉冲当量值高于所需精度值。其次,如果改进系统的定位精度将进一步提高检测精度。
     通过大量实验表明,该方法在1~8mm的尺寸范围内能获得较好的检测效果,检测精度都优于0.01mm,而且重复测量精度高,检测速度快。若为适应其他精度要求,只需调整CCD的放大率和 FPGA 模块中的计数分频时钟部分的VHDL 程序即可。因此,这种方法特别适合于生产线上纵、横向尺寸的自动化检测。
5 应用
  利用上述原理应用于电能表磁推高度自动检测,取得了比较满意的效果。电能表磁推高度的标准尺寸为1.2±0.1mm,公差带宽度为0.2mm,则检测精度为±0.02mm,大量实测表明本方法测量精度高于0.02mm,排除上料的时间,检测速度优于 1个/秒,在检测速度和检测精度上都优于传统的人工检验方法。各种检测结果的在屏显示情况如图5所示。
    20121107045123653653580.jpg
   
     图5(a)表示待检电能表磁推高度合格,屏幕上将显示电能表磁推高度标准值和所检测的结果,同时显示该电能表的合格性结果,图中第三行的“PASS”字样会闪烁以提示操作人员进行分选操作。
  图5(b)或(c)表示待检电能表磁推高度不合格,相对于标准值偏低(或偏高),屏幕上除了显示电能表磁推高度标准值和所检测的结果之外,还显示偏差结果,并且显示偏低(或偏高)标准值下限(或上限)多少。同时屏幕中的“LOW”(或“HIGN”)和“FAIL”字样也会显示,以提示操作人员正确操作。
     本文基于FPGA研究了尺寸自动检测原理,并将该原理应用于电能表磁推高度的自动检测,取得了很好的效果,表明该技术应用于实践能够大幅度地提高检测速度和检测效率。本系统支持ISP技术,方便功能拓展而不用添加新的外围电路,并且易操作,显示结果直观、灵活,在实际中可减少人为因素造成的误判,减轻了劳动强度。
参考文献
[1]  张庆生,李锦玲.光电瞄准具中的视频分划生成技术.光学技术, 2001(7).
[2]  王庆有. CCD应用技术.天津: 天津大学出版社, 2000.
[3]  辛春艳.VHDL硬件描述语语言.北京:国防工业出版社,2002.
[4]  孙洪波,杨兆选,杨同实. OSD芯片uPD6450及其应用.电子技术应用,1997,23(4).
[5]  uPD6450 Video Design Guides.NEC,2001.
*滑块验证:
您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

QQ|手机版|MCU资讯论坛 ( 京ICP备18035221号-2 )|网站地图

GMT+8, 2024-12-30 03:58 , Processed in 0.057104 second(s), 9 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表