0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

采用OV7620和EPM7128S芯片实现图像采集系统的设计

牵手一起梦 来源:仪表技术 作者:江川贵;廖启征; 2020-04-04 11:11 次阅读

系统设计

图1 为图像采集系统的原理框图。系统选用OminiVisiON公司生产的CMOS芯片OV7620,它是一款集成了一个640×480 (30万像素)图像矩阵的彩色摄像芯片,在隔行扫描模式下工作频率可达60Hz,逐行扫描时为30帧/s。其像面大小为1/3英寸,支持8位或16位数字信号从单通道或双通道输出,输出信号的类型可在YCrCb和RGB 之间选择,图像矩阵支持VGA或CIF 规定, 数字输出格式遵循CCIR601, ZVPorts, CCIR656等标准。OV7620有很强的摄像和控制功能,如暴光控制,γ校正,增益,色彩矩阵,窗口选择等,所有这些功能都可以通过I2C接口进行编程控制。

采用OV7620和EPM7128S芯片实现图像采集系统的设计

CPLD选用ALTERA公司的芯片EPM7128S,它在系统中处于核心地位,既要负责将OV7620输出的视频数据存入SRAM,又要与MCU配合完成视频数据的USB 传输。MCU 是Cygnal 公司的高性能单片机C8051F020,它通过I2C总线控制CMOS芯片的工作方式和状态, C8051F020自带SMBUS总线接口,可以把I2C的时钟线SCL和数据线SDA通过交叉开关分配到端口引脚,MCU作为I2C总线通讯的主机,OV7620用42H (Write) 、43H (Read)作为从机地址与MCU进行通信。另外MCU还控制USB 通信,负责USB芯片的初始化和与PC的通信连接,其64KB 的flash程序存储空间足以存放USB 通信固件。SRAM 芯片采用IS61LV5128AL芯片,该芯片为高速静态RAM,存储时间在10ns左右, 可以满足OV7620 的速度要求, 其512KB的存储空间足以用来存储30万像素的视频数据(Bayer2pattern: 每一像素包含一个字节的RGB 信息) 。USB 接口芯片采用PHILIPS的PDIUSBD12 芯片,该芯片支持USB 1.1标准协议和DMA传输模式。

图像采集部分

OV7620的输出特性

OV7620工作方式和输出格式非常多,可以适应不同的应用场合,针对我们的较小系统,采用了单通道Y输出,以及逐行扫描的工作方式。这些工作方式的实现是通过MCU 的I2C编程控制的。当OV7620 设置工作方式稳定后,它就会输出视频数据,同时还有3个重要的参考信号输出:帧同步信号SYNC,水平同步信号HREF,和像素时钟信号PCLK。参见图2,每一个帧同步信号SYNC 周期包含480 个水平同步信号HREF脉冲,而每一个HREF周期包含640个PCLK时钟脉冲。每一个PCLK时钟输出一个像素的视频数据(8位标准的Bayer-pattern彩色RGB数据) 。

图像存储方式

根据640 ×480 的像素输出特点, 将512KB 的RAM分成512行,每行1KB空间,由A0~A9共10条地址线选通行内地址记为低位地址:ADDR-L; 高位A18~A10共9条地址线选通各行记为高位地址:ADDR-H。为保证OV7620 采集的数据同步写入SRAM中,用CPLD宏单元设计了2个地址计数器:低位计数器ADDR-L和高位记数器ADDR-H。当图像数据采集开始时( SYNC信号低有效) ,记数器由0开始记数,每来一个像素时钟PCLK使低位计数器顺序加1,完成1行像素的写入,OV7620产生的行同步信号HREF使低位计数器清0,并使高位记数器顺序加1,改变行地址直到完成480行写入后产生帧同步信号,并使高位计数器清0,这样完成1帧图像数据的缓存,详细的图像采集信号时序如图2。512KB的SRAM芯片实际上只用了640 ×480约300多KB 的存储空间。芯片工作方式设定在PCLK信号的下降沿更新数据;在上升沿,数据是稳定时期,所以如图2,在PCLK信号的下降沿更新SRAM的地址信号ADDR;在PCLK信号上升沿使/WR信号有效, 然后写数据到SRAM 中。其中CPLD控制SRAM的写数据逻辑用VHDL 语言编写,用MAX+PLUSII工具进行仿真设计,最后实现了图像数据的连续采集。

图像传输部分

类似DMA方式数据传输

视频数据按行列关系有序存入SRAM芯片后,就可以顺序读取数据并进行传输。传统的USB 传输方式是MCU 先从SRAM 中取得数据再送到PDIUBD12;通过PDIUBD12发送到主机。不管是MCU从SRAM取数据还是向作为外设的PDIUBD12写数据,速度都较慢。因此我们考虑用系统中的CPLD控制来实现类似DMA 方式的数据传输。在系统工作过程中,单片机负责解释USB的控制传输。当要进行从外存取数送到PDIUBD12时,单片机让出总线,由CPLD完成该工作。CPLD产生外存的读信号和地址,同时产生PDIUBD12的写信号和地址,自动实现外存数据到PDIUBD12接口芯片的传送。这种类似DMA方式的数据传输解决了由单片机控制引起的速度瓶颈,极大提高了传输速度,最大限度发挥了USB的优点。

数据传输的具体实现

当主机需要传输数据时,通过控制管道发送请求,MCU接到命令后立即让OV7620 让出SRAM的数据总线,并通知PDIUBD12准备好用于批量数据传输的主端点,然后发送TXCOM 命令信号给CPLD (见图1) ,通知CPLD开始传送数据;当完成64B的数据传送后, CPLD向单片机发送TXEND信号,以示64B 传送完毕,并等待下一个TXCOM信号,进行下一个64B的传送。单片机和CPLD通过这两个信号完成握手。CPLD在接收到TXCOM命令后,地址总线正确恢复上次传输到的SRAM地址(第一次传输时地址为0) ,并且控制MCU让出PDIUBD12的数据总线,然后产生SRAM读信号/RD,此时数据总线上就有了要传送的数据; 同时产生PDIUBD12 的写数据标志信号A0和写信号/D12WR,将数据总线上的数据写入PDIUBD12,完成数据从SRAM 到PDIUBD12 的传送。其传送数据的时序如图3。注意, PDIUBD12的写数据信号/D12WR, SRAM 的读数据信号/RD 和SRAM的地址信号ADDR时序要严格配合。当每一次完成64B 的数据传输后, CPLD 要发送TXEND 信号给MCU。整个传输过程控制严密紧凑,所有CPLD逻辑控制程序均采用VHDL 语言编写,经过测试,系统传输速度摆脱了单片机的影响,几乎接近PDIUBD12的极限速度。

系统软件设计

系统的软件包括USB设备固件、设备驱动程序和应用程序。

设备固件程序

设备固件是设备运行的核心,其主要的功能是控制接口芯片PDIUBD12并完成USB1.1协议(包括标准的设备请求、厂商请求处理、设置设备接口等) 。值得一提的是,此系统的单片机程序除了USB设备固件程序外,还有单片机对OV7620 的I2C控制软件,与CPLD的握手程序等,所有程序都用Keil C进行编制,最后链接后下载到MCU中。

设备驱动程序

在Windows操作系统中通过运行内核层的驱动程序才能控制硬件, USB 设备驱动程序采用标准WDM设备驱动。WDM采用IRP驱动机制。当应用程序提出I/O请求时,它调用WIN32AP I函数向设备发出命令,然后由I/O管理器构成一个IRP,USB设备驱动程序收到该IRP后,取出其中的控制码来找到对应的例程入口。在本系统开发中,驱动程序采用了DR IVERSTUD IO提供的DR IVERWORKS工具包,工具包提供了完善的源代码生成工具(DR IVER WIZARD)及相应的类库。开发驱动项目时,应用W IZARD 工具开发,自动生成驱动程序的。 INF安装信息文件。对USB 设备驱动DR IVERW IZARD生成的代码只需做少量的修改便可,最后对项目编译链接后生成.SYS驱动程序。

应用程序

在Win2系统中,把每个设备抽象为文件,应用程序就通过几条简单的文件操作AP I函数实现与驱动程序中某个设备通信。USB通信常使用的API函数有:CreatFile, WriteFile, ReadFile, DeviceControl, CloseFile等。在应用程序时只需将上述函数加入到相应的功能模块中便可完成应用程序对USB 设备进行打开、读、写操作,这样就完全实现了两者的通信。应用程序最终实现了VGA, CIF等图像格式的应用。

责任编辑:gt

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 芯片
    +关注

    关注

    447

    文章

    47788

    浏览量

    409093
  • CMOS
    +关注

    关注

    58

    文章

    5154

    浏览量

    233341
  • 总线
    +关注

    关注

    10

    文章

    2706

    浏览量

    87206
收藏 人收藏

    评论

    相关推荐

    基于TMS320VC5416芯片OV7620实现水表盘字轮号码读取系统的设计

    系统采用Omnivision公司的CMOS数字图像传感器OV7620采集水表盘字轮号码图像,并选
    的头像 发表于 11-04 10:33 2976次阅读
    基于TMS320VC5416<b class='flag-5'>芯片</b>和<b class='flag-5'>OV7620</b><b class='flag-5'>实现</b>水表盘字轮号码读取<b class='flag-5'>系统</b>的设计

    基于ARM的紧凑型图像采集系统

    、DSP等),由PC或MCU对图像数据进行进一步的处理。本文所设计的图像采集系统仅用一个ARM芯片实现
    发表于 06-17 11:46

    LPC2210的紧凑型图像采集系统OV7620

    LPC2210的紧凑型图像采集系统OV7620  摘要 利用ARM7(LPC2210)与CMOS感光芯片(
    发表于 10-03 14:16

    求助飞思卡尔直立摄像头ov7620

    `我参加今年的飞思卡尔直立摄像头组比赛,用的ov7620,上电后直接用采集卡获得图像如下图,请问是怎么回事。`
    发表于 02-11 16:54

    请问C6748开发板可以控制OV7620

    请问开发板可以直接像我这样连线接OV7620,然后用ov2640的例程控制ov7620?觉得两款摄像头一样的!
    发表于 10-30 08:54

    基于ARM的紧凑型图像采集系统设计

    利用ARM7(LPC2210)与CMOS感光芯片(OV7620)实现了一个紧凑型圈像采集、处理系统;通过夸理利用LPC2210数据总线的工作
    发表于 04-28 06:38

    ov7620中文资料

    0V7620 是一种CMOS 图像传感器,它被广泛应用在网络摄像头、摄像手机等产品中。由它组成的图像采集系统,比较常见的设计方法为
    发表于 10-08 14:25 392次下载

    基于OV7620和ARM开发的图像采集系统

    基于OV7620和ARM开发的图像采集系统 SCCB控制,图像数据的采集、处理以及传输都由一片
    发表于 10-08 12:53 1478次阅读
    基于<b class='flag-5'>OV7620</b>和ARM开发的<b class='flag-5'>图像</b><b class='flag-5'>采集</b><b class='flag-5'>系统</b>

    EPM7128S在雷达电子干扰模拟训练器中的应用

    【摘 要】 介绍Altera公司的复杂可编程逻辑(CPLD)器件EPM7128S在炮瞄雷达电子干扰模拟训练器中的应用。主要讨论利用EPM7128S器件对炮瞄雷达电子干扰模拟训练器的数字逻辑电路部
    发表于 05-15 22:31 1275次阅读
    <b class='flag-5'>EPM7128S</b>在雷达电子干扰模拟训练器中的应用

    OV7620_OV6620图像采集之深入探讨

    OV7620_OV6620图像采集之深入探讨
    发表于 09-25 16:13 189次下载

    OV7620程序K60(配底板)

    这是一个ov7620摄像头与K60主板连接的软件和程序。
    发表于 05-06 14:37 39次下载

    OV7620摄像头

    OV7620摄像头
    发表于 03-24 09:36 30次下载

    一文看懂ov7620ov7670的区别

    本文开始对OV7620进行了介绍,其中包括了OV7620基本参数和OV7620应用实例,其次介绍了OV7670的参数与功能,最后分析了ov7620
    发表于 03-01 09:02 5.1w次阅读

    ov7620怎么接线_ov7620硬件连接

    本文开始介绍了OV7620的基本参数,其次介绍了ov7620硬件结构,最后阐述了ov7620的具体实现以及Ov7620的硬件连接。
    的头像 发表于 03-01 09:25 8535次阅读

    OV7620 cmos摄像头的使用

    ov7620作为一款CMOS摄像头器件目前已经得到广泛运用。本文开始介绍了OV7620基本参数,其次介绍了摄像头工作原理,最后介绍了OV7620的使用。
    的头像 发表于 03-01 15:52 1.1w次阅读