微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 硬件工程师文库 > 基于DSP和FPGA的机器视觉系统设计与实现

基于DSP和FPGA的机器视觉系统设计与实现

时间:03-07 来源:微计算机信息 点击:

设计利用视频口进行图像采集,用以太网接口实现图像传输。

  视频口能够支持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实现

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top