您当前的位置:五五电子网电子知识单片机-工控设备嵌入式系统-技术基于DSPF28335和OV7620的嵌入式机器视觉装置设计 正文
基于DSPF28335和OV7620的嵌入式机器视觉装置设计

基于DSPF28335和OV7620的嵌入式机器视觉装置设计

点击数:7971 次   录入时间:03-04 12:00:14   整理:http://www.55dianzi.com   嵌入式系统-技术

      内容摘要:为了解决机器视觉中实时性差和成本高的问题,设计了以DSP28335芯片为核心,OV7620 CMOS彩色图像传感器的实时嵌入式机器视觉装置。该装置应用于检测液位,设计中以彩色图像数据作为研究对象,通过颜色识别进行定位;利用DSP28335的浮点运算单元进行处理及其支持高达1 Mb/s的数据速率CAN模块进行输出定位结果。测试表明该装置具有实时性强、精度高、体积小、成本低、设计灵活。

    引言

    目前运用于检测液位的嵌入式实时机器视觉装置要么是定点CPU,要么研究对象是黑白图像,且定位与测量算法的数据运算量较大,难以满足嵌入式机器视觉系统定位与测量功能的实时性和准确性要求,并且价格昂贵。

    鉴于定位的精确度、自适应性、实时性和成本问题。本文设计了基于由TI公司新推出的一款具有32位单精度浮点运算数字信号处理器TMS320F28335和CMOS彩色图像传感器OV7620所构建硬件平台的嵌入式机器视觉装置。设计中利用主频高达150 MHz,指令周期为6.67 ns的DSP28335对CMOS彩色图像传感器进行采集控制;并提出的液位检测算法,是以彩色图像数据作为研究对象,对液体颜色进行识别,大大提高了采集速度和识别速度以及精确度,同时解决了在复杂的颜色环境下难以定位液位的问题。

    1 系统硬件设计

    1.1 系统硬件结构

    系统硬件结构如图1所示,包括图像采集,图像处理和图像传输。图像传感器负责图像的采集,采集的图像数据由主控制器进行实时的读取和处理。主控制器总线接口可以把多个装置连接起来组成一个总的系统。本文设计选用的是TI公司DSP中的TMS320F28335作为主处理器,为机器视觉装置的CPU,用来进行数据的采集和处理。TMS320F28335是TI公司新推出的一款浮点型数字信号处理器,集成32位单精度浮点运算单元(FPU),最高运算速度达150 MIPS。指令周期为6.67 ns,集成了256K×16 b FLASH,1路I2C通信接口,3路异步串口,2路CAN总线通信接口等资源。具有精度高,成本低,功耗小,外设集成度高,数据及程序存储量大和A/D转换更加精确快速等优点,为工业视觉应用提供更加优秀的性能和更加简单的软件设计。

基于DSPF28335和OV7620的实时嵌入式机器视觉装置

    选用OV7620作为图像传感器,其是CMOS黑白/彩色图像传感器。传感器包括一个640x480分辨率的图像阵列,内置10位双通道A/D转换器,输出8位图像数据;具有自动白平衡和自动增益控制,能进行对比度、亮度、γ校正、饱和度等多种调节功能;OV7620支持隔行和连续两种扫描方式,QVGA与VGA两种图像格式;帧速率为30 f/s;数据格式包括RGB,YcrCb和YUV三种;内部有I2C可编程,可以调整摄像头的参数,比如最大灰度,对比度,曝光率控制等等。其本质是SCCB协议的寄存器写入,需要对摄像头做跳线处理,并用MCU的I/O口模拟SCCB协议。本设计采用的是分辨率为640x480,RGB格式,8 b的数据输出格式。OV7620图像传感器提供信号包括:VSYNC(垂直同步脉冲帧信号)、HREF(水平有效数据输出)、PCLK(像素时钟)、16 b数据总线。

    SRAM和FLASH分别选用IS61LV51216和SST39VF160,分别用作数据存储器和程序存储器,采用FIFO模式对缓存数据进行读取。由于系统运行时,需要对SRAM进行频繁读/写操作,因此SRAM选用ISS的一个快速存储器件IS61LV51216,它是一个8 Mb容量功耗低、集成度高,结构为512K×16 b字长的高速率SRAM。SST39VF160是SST公司的一个多功能FLASH存储器,存储容量为1M×16 b,工作电压为2.7~3.6 V,14 MHz时等待电流为4μA,有效电流为12mA,自动低功耗模式为4μA;字编程时间14μs,读访问时间90ns,芯片擦除时间70ms,扇区擦除时间18ms。

    1.2 DSP28335与OV7620的硬件连接

    通用I/O口GPIO71、GPIO70分别与SDA、SCL连接,作为I2C通信;通用I/O口GPIO67作为PCLK的I/O查询;GPIO69捕抓HREF的上升沿;GPIO68捕抓VSYNC的下降沿;通用I/O口GPIO66作为OV7620的硬件复位;通用I/O口GPIO72~GPIO79作为OV7620的数据输入。DSP28335与OV7620的连接图如图2所示。OV7620要连接相当的外围器件才能正常工作。需要5 V电源供电,27 MHz晶振,工作时功耗<120 mW,待机时功耗<10 μW;其中,晶振电路的设计中需要注意一个问题:必须在OV7620的XCLK1和XCLK2之间串联一个1 MΩ的反馈电阻。否则OV7620有时会出现不能正常工作的现象,原因是OV7620不能正常起振。

基于DSPF28335和OV7620的实时嵌入式机器视觉装置

    2 机器视觉装置的软件设计

    2.1 机器视觉采集设计

    如图3为机器视觉装置的采集程序流程图。首先进行系统的初始化工作,当检测到VYSN下降沿时,发出帧开始信号,检测到HREF上升沿时,发出行开始信号。通过逐行扫描的方式,从y0~y7端口接收像素数据信息,其顺序为B-G-R-G。其中GPIO68检测到下降沿时意味着一幅图像的开始,而GPIO69用于执行一行图像数据的开始。

基于DSPF28335和OV7620的实时嵌入式机器视觉装置

    STMF28335通过对OV7620的PCLK计数,当计数值到达640时,GPIO69计数溢出中断发生,表示一行图像数据采集时间到。而GPIO69用于对OV7620的HREF信号进行计数,确定一幅图像是否采集完毕。OV7620的输出分辨率可设置为640x480,DSP28335需要接收的数据就是307 200个8位的数据,为了提高实时性且不影响图像处理数据和检测要求。DSP28335选择性地接收数据,利用程序编写,每行每隔4个数据作为有效数据接收,因此每行的数据个数变为640/4=160,然后每隔4行作为有效行接收,因此行数变为480/4=120行,其分辨率变为160x120,总数据为19 200;并且采用了FIFO模式对数据进行缓存和读取。这样的做法既能达到图像的清晰要求,同时很好地提高了实时性。



www.55dianzi.com

    2.2 机器视觉图像处理设计

    图4为机器视觉装置图像处理的流程图。

基于DSPF28335和OV7620的实时嵌入式机器视觉装置

    测试中选用了装液体的物体为杯子,设装满液体时,杯子特征为Tz(Tz为液体连续的最小和最大的区间宽度),液体的的彩色值范围为RP,GP,BP。

    本系统处理的图像为RGB格式,像素大小设定为640x480,采用8位的RGB原始视频数据输出,设置为Y通道(输出序列为BGRG),UV通道关闭,以提高实时性,提高软件效率。

    通过DSP28335控制CMOS OV7620每隔4个点采集图像数据,图像数据从IS61LV51216缓冲区中读取,将读取的数据转换为Bayer矩阵,再将Bayer矩阵转换为RGB格式的彩色图像;然后对彩色图像进行反畸变校正,将校正后的图像进行定标。定标后进行初始化,获得装满液体的Tz和RP,GP,BP值;初始化后根据Tz和RP,GP,BP值对目标进行检测液位,最后将检测的结果通过DSP283385的CAN输出到应用设备中。实际应用中不通过上位机显示图像和处理结果,直接把处理结果通过CAN发送到PC机上对检测结果进行处理。

    3 液位颜色识别算法

    本文提出的液位颜色识别算法是基于行处理模式算法。行处理模式算法就是在读取完一行数据后,把所在行中符合要求的连续点(即满足Tz和RP,GP,BP)的最左端和最右端坐标保存下来,可分别记为(XnL,YnL)和(XnR,YnR)。

    根据得到的数据,可以计算出关于液体的更多信息。为了提高识别准确率和识别速度,本文设计作了一些改变,同时也采用了二分法查找。以下为本设计的处理过程:

    (1)首先从图像中间行(二分法)开始检测,如果当前行中有满足Tz和RP,GP,BP,则表示当前位置可能是液位或者液位在更高处,需向上继续二分法查找,同时记下满足Tz和RP,GP,BP当前行连续点的最左端和最右端的横坐标为(XnL,XnR1);当它的向上二分法查找行同样满足Tz和RP,GP,BP时,则记下它的最左端和最右端的横坐标为(XnL2,XnR2)。

    (2)若当前行中没有满足Tz和RP,GP,BP的,则表示当前位置不是液位或者液位在更低处,需向下继续二分法查找。

    (3)设n为符合要求的第n行变量,当它们满足下式(1)时n置0,即液位为0:

基于DSPF28335和OV7620的实时嵌入式机器视觉装置

[1] [2]  下一页


本文关键字:嵌入式  嵌入式系统-技术单片机-工控设备 - 嵌入式系统-技术