基于OMAP3530的嵌入式CCD图像采集系统

2015-05-25 10:20张南洋生曾延安
仪表技术与传感器 2015年6期
关键词:时序嵌入式驱动

张 力,张南洋生,曾延安,朱 兵,张 超

(华中科技大学光学与电子信息学院,湖北武汉 430074)

0 引言

嵌入式图像采集处理系统是工业机器视觉智能前端的基础,相对传统的图像采集处理系统具有体积小、功耗低、实时性好以及稳定性高等优点,将其用于图像采集、姿态定位、信息预处理等方面具有重要的意义。在当前的嵌入式图像采集系统中,常用的图像传感器主要有CMOS和CCD两种类型,CMOS型图像传感器虽然功耗低,摄像系统尺寸小,但其图像质量和系统灵活性与CCD比相对较低,CCD动态范围大,灵敏度高,环境适应性好,更能满足工业需求[1]。为满足工业应用对图像采集设备高分辨率、高速以及低功耗等方面的要求,本文以OMAP3530嵌入式处理器为核心,设计了一种适用于工业机器视觉智能前端的CCD图像采集系统。

1 系统总体设计

为满足工业机器视觉智能前端的两用性,既可以单独作为嵌入式图像采集处理系统使用,提供最终的数据处理结果,也可以作为终端系统的智能前端,提供完善的数据,本文设计围绕图像采集及处理模块展开,系统总体框图如图1所示。

图像采集模块由CCD图像传感器,A/D转换电路,时序产生控制电路以及驱动电路组成。物体经过镜头成像在 CCD上,CCD将光信号转换为电信号,然后根据驱动时序逐个像素输出。CCD输出的模拟信号由A/D进行相关双采样、暗电平钳位、增益放大和A/D转换等处理后输出给时序产生控制电路。最后,由时序控制电路产生同步信号,同A/D转换数字信号一起输出给图像处理及显示部分。

图1 系统总体设计框图

为提高成像质量,选用ICX285AL CCD作为图像传感器,它具有像素尺寸大、光电转换效率高、低噪声等特性,满足工业设计要求。

图像处理模块以OMAP3530处理器为核心。OMAP3530是一款基于ARM+DSP架构的处理器,其中ARM核是采用了ARMv7架构的Cortex-A8内核,频率最高可达720 MHz;该芯片同时集成了520 MHz的TMS320C64x+DSP、图像引擎以及丰富的外设,因此能够满足高性能要求。

镜头、图像采集模块以及图像处理模块共同组成工业机器视觉智能前端,同时本系统具有良好的扩展性,系统提供了一系列的扩展接口,可满足各种定制服务。

2 系统硬件设计

本系统以 OMAP3530处理器为硬件平台[2],由于以OMAP3530为核心的外围电路设计较为成熟,因此选用集成了USB接口、网口、SD卡接口等外设的电路板为目标嵌入式图像处理硬件系统。

图像采集模块是本文硬件设计的重点,主要包括CCD时序产生和控制电路、CCD信号驱动电路、CCD输出信号数字化处理以及电源电路。

2.1 CCD时序产生

CCD驱动时序是一组具有特定电平电压的、周期性的、关系比较复杂的时序脉冲信号,它主要控制CCD电荷信号的转移和读出,直接影响CCD的转换效率、读出速率以及信噪比等重要参数,因此,设计稳定精确的时序产生电路尤为重要。

ICX285AL是行间转移型CCD,需要5路垂直驱动信号、2路水平驱动信号、复位信号以及曝光控制信号等,时序设计复杂,因此选用可编程逻辑器件CPLD驱动,这样的设计提高了设计的灵活性,调试简易,并且节约成本。

2.2 CCD信号驱动电路

CPLD产生的时序信号需要经过驱动电路才能作用于CCD芯片,驱动电路的作用就是改变信号幅值,增强信号功率。

ICX285AL垂直信号驱动采用专用的驱动芯片CXD3400N,它可以对垂直时序信号 VΦ1、VΦ2A、VΦ2B、VΦ3、VΦ4和快门控制信号ΦSUB进行驱动。电路连接图如图2所示。

图2 CXD3400N与ICX285AL连接原理图

对于水平寄存器读出信号HΦ1、HΦ2和复位信号ΦRG,要求驱动器具有较大的驱动电流,此外,芯片手册中要求HΦ1、HΦ2的典型值为5 V,ΦRG的典型值为3.3 V,而CPLD输出电压为3.3 V,因此驱动HΦ1、HΦ2需要进行电压变换。本设计选用专用的CCD时钟驱动芯片EL7155作为水平寄存器读出信号HΦ1、HΦ2和复位信号ΦRG的驱动器件。EL7155不仅可以提高信号的功率,还可以进行电平的转换。EL7155外围电路设计如图3所示。

图3 EL7155外围电路

2.3 CCD输出信号数字化处理

CCD信号处理流程如图4所示。

图4 CCD信号处理流程

本文采用CCD视频信号处理芯片AD9945进行相关的信号处理,其噪声小,精度高,适合工业应用。AD9945的时序信号和设置信号由CPLD提供。AD9945完成对CCD信号的相关双采样、增益放大以及A/D转换,它是整个图像采集模块的重要组成部分,其性能直接影响最终的图像质量。AD9945的外围电路连接如图5所示。

3 系统软件设计

3.1 驱动程序设计

驱动程序的设计包括图像传感器的驱动,OMAP3530端V4L2驱动以及 OMAP3530图像采集驱动。通过修改OMAP3530EVM板提供的驱动以满足需要,需要修改的地方集中在2个方面:一是结合需要对V4L2部分的修改,引入自定义的图像数据格式;二是对图像数据处理通路的修改。

Linux视频驱动遵循V4L2标准,为上层应用程序提供标准接口[3]。V4L2驱动框架提供了良好的数据时序及内存管理功能,为驱动开发提供了统一接口,扩展性好。

CCD信号采集板的输出信号为12位灰度图像数据,不同于标准的图像格式,因此在V4L2的驱动中有必要为其规定名称及设定颜色空间。V4L2中图像数据格式的定义可以在<linux/videodev2.h>中根据需要任意添加,但是在驱动程序和应用程序中新定义的图像格式和颜色空间内容应保持一致。为CCD信号采集板定义的图像数据格式如下:#define V4L2_PIX_FMT_MONO12 v4l2_fourcc(’M’,’N’,’1’,’2’)。定义这样的格式只是为了不与其他的已有数据格式混淆,处理数据的时候仍需配置相应的寄存器,指明数据通路。同样地,在enum v4l2_colorspace中添加 V4L2_COLORSPACE_MON12=9,为CCD图像传感器规定新的颜色空间。

另一方面,对应不同的图像采集模块,输出信号的图像数据格式不尽相同(单个像素所占字节数、有效图像数据所占数据位等),对图像数据的处理方式也各不相同,因此需要修改数据通路。首先修改<include/media/v4l2-int-device.h>,仿照 enum v4l2_if_type_bt656_mode和struct v4l2_if_type_bt656添加enum v4l2_if_type_raw_mode和struct v4l2_if_type_raw,指定图像数据的场同步信号极性以及数据模式,数据模式在v4l2_if_type_raw_mode中添加,包括V4L2_IF_TYPE_RAW_12BIT等模式。

驱动程序的设计一方面完成了寄存器的配置、数据通路的选择,另一方面为应用程序功能实现提供了基础。

3.2 应用程序设计

应用程序设计主要包括3个模块:基于V4L2框架的图像采集标准流程;图像显示;人机交互界面及控制功能。其中基于V4L2框架的图像采集标准流程为最重要的部分,图像显示与人机交互界面为该智能前端的拓展应用之一。下面详细介绍基于V4L2框架的图像采集模块设计。

由于设计的图像传感器驱动是在V4L2框架下实现的,因此图像采集部分的应用程序也遵循V4L2框架。V4L2程序流程图如图6所示。

图6 V4L2应用程序流程图

V4L2的应用程序框架较为简单且相对稳定,采用流水线方式,具体操作通过ioctl实现,主要包括:打开设备、查询设备属性、获取设备有效输入、设置视频格式和帧格式、向驱动申请帧缓冲、将申请到的帧缓冲入队以存放数据,以上工作结束后开始采集视频,然后循环将帧缓冲出队取得数据并将帧缓冲重新入队,最后停止视频采集关闭设备。

应用程序的设计围绕数据源采集处理展开,提供了工业机器视觉智能前端图像采集系统的框架,根据需求,机器视觉图像算法可以方便地嵌入到该框架中。

4 系统测试

本文用CCD图像采集电路和OMAP3530开发板搭建了一套实验测试系统,验证系统方案设计的可行性,系统实物图如图7所示。

系统工作时,ICX285AL CCD图像采集模块采集到的图像数据通过转接板传送到OMAP3530处理器,系统对图像数据采集处理后将其实时显示到LCD触摸屏上。用户通过触摸屏控制图像的采集、停止、拍照等,需要保存的图像数据存储在SD卡中。图像显示使用帧缓冲设备,通过帧缓冲设备可以将显示器作为图形设备来使用,可以设置其分辨率、颜色深度等属性,修改其任意地方像素点的值。人机交互界面及控制功能使用Qt工具进行开发,本文由Qt开发的人机交互界面友好,稳定性高。软件功能可以根据工业需求扩展。图像实时显示效果如图8所示。

图7 系统实物图

图8 图像显示效果图

实验结果表明图像数据从采集到接收未丢失,所拍摄的图像能实时完整显示。整套系统功耗低,数据处理能力强,实时性好,稳定性高。

5 结束语

本文设计了一套高效的工业机器视觉智能前端图像采集系统,一方面可以单独作为嵌入式图像采集系统,另一方面可以作为具有一定预处理功能的前端设备。硬件系统稳定可靠,功耗低,具有良好的扩展性;软件系统实时高效,在构建的框架下可较好地嵌入各种机器视觉算法。总之,本系统符合工业机器视觉智能前端的特性要求,具有很大的研究和实用价值。此外,本文工作也可应用于其他CCD、CMOS图像传感器、OMAP处理器等,应用前景广泛。

[1]佟雨兵,常青,张其善.嵌入式CCD视频图像采集系统.光电工程,2004(B12):133-136.

[2]王卫,秦会斌,郑阳春.基于OMAP3530 Linux的3G无线视频监控系统.中国仪器仪表,2014(2):22-25.

[3]SCHIMEK M H.Video for Linux two API specification(Revision 0.24),http://v4l2spec.bytesex.org/spec - single/v4l2.html.

[4]宋悦,周玉国,李晴慧,等.基于ARM的嵌入式红外图像监控系统.仪表技术与传感器,2013(11):38-40.

[5]V4L2 基 础 知 识.http://blog.csdn.net/woxincd/article/details/6371226.

[6]姚聪,方勇,汪敏,等.基于ARM的嵌入式图像采集处理系统及其无线传输.电子技术,2013(11):25-28.

[7]宋宝华.Linux设备驱动开发详解.2版.北京:人民邮电出版社,2010:334-362.

猜你喜欢
时序嵌入式驱动
基于模糊PI控制的驱动防滑仿真系统分析
清明
Focal&Naim同框发布1000系列嵌入式扬声器及全新Uniti Atmos流媒体一体机
屈宏斌:未来五年,双轮驱动,砥砺前行
轨旁ATC系统门控柜接收/驱动板改造
TS系列红外传感器在嵌入式控制系统中的应用
搭建基于Qt的嵌入式开发平台
基于FPGA 的时序信号光纤传输系统
基于S3C6410的Wi-Fi驱动移植实现
基于模体演化的时序链路预测方法