摘要:针对机器视觉算法中数据量大、高速传输、复杂运算及网络化的实际需要,设计了以AD9200为视频采集A/D,DSPsTMS320DM642为核心处理器,应用网络技术进行图像传输,并以FPGA控制输出并实现图像预处理功能的实时视频处理系统。
关键词:机器视觉、TMS320DM642、以太网
1、引言
机器视觉自起步发展到现在,已有15年的发展历史。应该说机器视觉作为一种应用系统,其功能特点是随着工业自动化的发展而逐渐完善和发展的。
目前,国际上视觉系统的应用方兴未艾,1998年的市场规模为46亿美元。在国外,机器视觉的应用普及主要体现在半导体及电子行业,其中大概40%-50%都集中在半导体行业。具体如PCB印刷电路。主要的机器视觉公司诸如德国克朗斯公司,美国的工业动力机械有限公司等等。
而在国内,工业视觉系统尚处于概念导入期,导致以上各行业的应用很少,即便是有,也只是低端方面的应用,大多数国内公司多代理国外公司产品,自主研发的相对较少,这样产品在国内售价相对很高,导致很多工厂在权衡利弊之后,放弃了使用机器视觉的想法。
但随着我国配套基础建设的完善,技术、资金的积累,各行各业对采用图像和机器视觉技术的工业自动化、智能化需求开始广泛出现,同时也由于视频采集系统硬件产品的价格下降,国内有关大专院校和研究所近两年在图像和机器视觉技术领域进行了积极思索和大胆的尝试,逐步开始了工业现场的应用。另外,各行业的领先企业在解决了生产自动化的问题以后,已开始将目光转向视觉测量自动化方面。这些应用大多集中在如药品检测分装、印刷色彩检测等。真正高端的应用还很少,因此,以上相关行业的应用空间还比较大。
嵌入式系统和网络化是机器视觉系统发展的两个趋势:
1) 嵌入式系统使得数据采集、自动控制和图像检测集成得更加紧密,另外基于嵌入式系统的机器视觉系统具有极低的功耗。
2) 网络化是嵌入式系统的发展趋势,其在工业自动化领域的应用也越来越广泛,机器视觉于网络通信等先进技术的结合正在改变工业自动化生产的面貌。
当前,机器视觉与运动控制,网络通讯等先进技术的结合正在改变工业自动化生产的面貌,而同时具备运动控制,机器视觉,网络通讯几方面技术背景的企业无疑将走在前列。
2、系统硬件设计
本次设计以啤酒瓶检测为设计背景,结合机器视觉的这两大发展趋势,开发以TI公司TMS320DM642为核心的嵌入式系统,并应用以太网技术进行图像传输。
设计模块示意图:
2. 1视频采集模块
模拟视频信号采用非标准制式,相机工作在外触发方式下,由FPGA提供触发信号,每触发一次,相机传送一场信号。进入电路板的视频信号幅值为1V,先经过视频运算放大器EL4089放大并嵌位,使幅值升为2V.之后信号分两路,一路送ISL59885视频同步分离芯片产生行同步、场同步信号,一路经AD9200进行模数转换。将视频信号解码出行同步、场同步及8位的亮度信号送入FPGA模块。
2. 2 FPGA模块
Altera公司的EP1K100系列是性价比较高的可编程逻辑器件,它具有10万等效系统门,核电压为2.5V,端口电压兼容5V、3.3V,工作频率可达250MHz,可满足本卡多电压高频率工作要求。
这一部分主要负责整个板卡的逻辑控制,时序调整。FPGA接收视频的行、场同步及亮度信号,并在FPGA中进行图像的预处理,可以在FPGA中进行二值化、sobel边缘分割、中值滤波。将处理后的亮度信号送入DM642的视频口。由于ISL59885产生的行同步信号每两行分离出一个,为了正确的采集,FPGA须在每两个行同步的中间加入一个行同步信号,送往DM642的视频口。另外FPGA还负责视频采集部分的采样频率、嵌位信号的产生,并行IO控制信号的产生,以及串行接口部分通信协议RS-232、RS-442的选择等等。
2.3 DM642模块与存储模块
2.3.1 TMS320DM642模块:
DM642是TI公司新近推出的一款应用于视频和图像处理方面的芯片,他采用TMS320C64X系列DSPs的内核,集成了一些面向视频及图像处理的外围设备,例如集成了三个可配置的视频口,10/100Mbps Ethernet MAC,多通道串行音频接口(McASP)及66MHz32位PCI总线。TMS320DM642采用TI公司开发的第二代高性能超长指令字结构VelociT1.2TM,在每个时钟周期内可执行2个16*16位的乘法或4个8*8位的乘法。TMS320DM642内含6个算术逻辑单元,在每个时钟周期内都可执行2个16位或4个8位的加减比较移动等运算。在600MHz的时钟频率下,DM642每秒可以进行24亿次16位的乘累加或48亿次8位的乘累加。这样强大的运算能力,使得DM642可以进行实时的多视频处理和图像处理。
本设计利用视频口进行图像采集,用以太网接口实现图像传输。
视频口能够支持BT.656、HDTV Y/C、MPEG-2 Transport stream input等多种格式的视频数据的输入输出。本次设计采用逐行扫描且只采集亮度数据,视频口工作在YcbCr 4:2:2方式下。视频口与DM642的EDMA结合,每采集一行图像数据便启动一次EDMA同步事件,将数据从接收FIFO中倒到SDRAM中暂存下来。一场图像数据采集之后,采用EDMA链接自动重新配置EDMA参数。整个图像采集只消耗极少的CPU时间,使CPU能够把精力集中到后面的图像处理工作中。
2.3.2 存储器模块
外扩了SDRAM及FLASH两种存储器。
1 )SDRAM存储器
在CE0空间连接了64bit的SDRAM总线。选取2片48LCHM3282来构成SDRAM。这32M的SDRAM空间用来存储程图像数据和图像处理中间结果等信息。总线由外部PLL驱动设备控制,在133MHz的最佳运行状态下运行。SDRAM的刷新由TMS320DM642自动控制。
2 )FLASH存储器
本系统扩展了1M的FLASH,映射在CE1空间的低位。FLASH存储器选用1M*8的MBM29DL800。FLASH存储器主要用于DSPs程序的存储。CE1空间被配置成8bit,异步接口,FLASH存储器也是8bit。复位后的默认地址是000,并进行1K数据的上电自动引导。
2. 4 以太网模块
DM642上的EMAC接口为DSP处理内核与网络提供了一个有效的接口。他支持10Base-T、100 Base-TX,可工作在10Mbits/second 和 100Mbits/second的速度下进行全双工或半双工传输。并提供硬件流量控制和QOS支持。
DM642的EMAC接口支持到计算机网络协议的数据链路层,支持标准的MII接口(媒体无关接口)与物理层设备相连。物理层设备使用BROADCOM公司的BCM5221,加Pulse公司的1:1型隔离变压器H1102。
网络图像及控制信息的传输采用非面向连接的UDP协议,对于480*480大小的8位灰度的图像,每秒可传送20幅。
2. 5 IO模块与串行接口模块
IO接口由FPGA控制,用于向机械部分、自动控制部分发送控制信号,并行IO接口有两路,一路经LV162245驱动输出,一路经光耦进行隔离输出。
串行接口使用TI公司的TL16C752B UART,他与ST16C550 UART引脚兼容,并具有更大的发送、接收FIFO缓存(发送、接收各64Byte ),支持硬件、软件流量控制。电平转换采用MAXIM公司的MAX3160,RS-232、RS-485、RS-422等多种传输协议。
3、FPGA实现图像预处理算法
以FPGA实现3*3 Sobel边缘检测为例,介绍FPGA实现图像预处理的方法。
首先,应从视频信号中提取出3*3 大小的图像框。须使用三个FIFO,其大小与一行像素大小相同,将三个FIFO串行连接在一起。用视频信号的前三行充满三个FIFO,之后每来一个像素在写入FIFO的同时,从每个FIFO中读出一个像素的亮度值,分别放入三个移位寄存器。如此,在三个像素点之后就得到一个3*3的矩形框。随着视频信号的不断流入,矩形框将遍历整个图像区域。
之后,就可以对提取出来的像素点,进行各种算法的处理。
以下是用Verilog语言描述的3*3 Sobel算子:
wire[10:0] temp1,temp2,temp3,temp4;
wire[7:0] sobel1,sobel2,sobel3,sobel4;
wire[7:0] dataout;
assign temp1 = temp[1] + temp[2] + temp[3];
assign temp2 = temp[7] + temp[8] + temp[9];
assign temp3 = temp[1] + temp[4] + temp[7];
assign temp4 = temp[3] + temp[6] + temp[9];
assign sobel1 = (temp1>temp2)?(temp1-temp2):0 ;
assign sobel2 = (temp3>temp4)?(temp3-temp4):0 ;
assign sobel3 = (sobel1>8’d 255) ? 8’d255 : sobel1;
assign sobel4 = (sobel2>8’d 255) ? 8’d255 : sobel2;
assign dataout[7:0] = ((sobel3 > sobel4)?sobel3[7:0]:sobel4[7:0]);
其中,考虑到了数据计算的溢出或结果为负值的情况,边缘检测效果良好。
4、结束语
本次设计为机器视觉系统搭建图像处理部分的硬件平台,结合机器视觉系统发展的两大趋势:嵌入式系统与网络技术。基于美国德州仪器公司新近推出的6000系列DSPs芯片TMS320CDM642,利用TMS320DM642芯片上提供的Video Port和Ethernet Media Access Controller实现视频采集与网络技术的结合。利用在线可编程技术,在FPGA中实现必要的图像预处理算法,减轻TMS320DM642的负担,为后续的图像实时检测打下了良好的基础。
本次设计实现了对于480*480的灰度图像,通过以太网进行25 Frames/s的流畅的传输。
以下为FPGA实现的Sobel边缘提取算法的效果:
图3.原始图像与Sobel边缘提取后的图像
创新观点:
本文将机器视觉与网络技术相结合,使用TI公司新近推出的6000系列DSPsTMS320DM642为核心,应用ALTERA公司的FPGA,用其实现图像预处理,减轻了DSPs的负担.应用网络技术实现图像传输.
参考文献:
[1] 徐志军,徐光辉.CPLD/FPGA的开发与应用. 北京:电子工业出版社,2002
[2]TI公司.TMS320DM642 Data Sheet.
[3]TI公司.TMS320C6000 DSP EMAC/MDIO Module Reference Guide.
[4]TI公司. TMS320C64x DSPVideo Port/VCXO Interpolated Control (VIC) Port Reference Guide.
[5]Samir Palnitkar. Verilog HDL数字设计与综合(第二版).北京:电子工业出版社,2004
[6]李方慧,王飞,何佩琨.TMS320C6000系列DSPs原理与应用(第二版).北京:电子工业出版社,2003
[7]潘继军, C6000DSK的视频处理系统设计,微计算机信息,2006年,第4-2期, P135-136
[8]王熹微,基于DM642的视频编码Cache优化策略,微计算机信息,2005年,第9-2期