位置:51电子网 » 技术资料 » 嵌入式系统

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

发布时间:2008/6/24 0:00:00 访问次数:574

  摘要 利用arm7(lpc2210)与cmos感光芯片(ov7620)实现了一个紧凑型圈像采集、处理系统;通过夸理利用lpc2210数据总线的工作方式,有效地消除了ov7620对系统数据总线的干扰。sccb控制,图像数据的采集、处理以及传输都由一片lpc22lo完成,特别适合于对功耗、体积要求较严格的嵌入式应用。

  关键词 arm7 ov7620 图像传感器 sccb协议 数据采集


  0v7620是一种cmos图像传感器,它被广泛应用在网络摄像头、摄像手机等产品中。由它组成的图像采集系统,比较常见的设计方法为ov7620搭配ov5ll+或cpld/fpga。ov511+或cpld/fpga采集的图像数据通过usb总线或双端口ram输出到pc或mcu(arm、dsp等),由pc或mcu对图像数据进行进一步的处理。本文所设计的图像采集系统仅用一个arm芯片就实现了ov7620的功能控制、时序同步、数据采集与处理等功能,系统结构紧凑、实用。

  1 硬件结构

  ov7620是cmos彩色/黑白图像传感器。它支持连续和隔行两种扫描方式,vga与qvga两种图像格式;最高像素为664×492,帧速率为30fp8;数据格式包括yuv、ycrcb、rgb三种,能够满足一般图像采集系统的要求。

  ov7620内部可编程功能寄存器的设置有上电模式和sccb编程模式。本系统采用sccb编程模式,连续扫描,16位rgb数据输出。系统硬件结构框图如图1所示。

  arm芯片选用具有arm7tdmi内核的lpc2210,通过lpc2210的gpio模拟sccb总线协议,控制ov7620的功能寄存器。使用lpc2210的3个中断引脚引入ov7620的图像输出同步信号vsync、hsync、pclk,以中断方式同步图像数据输出。ov7620的yuv通道输出的16位并行数据通过lpc2210的高16位数据线接入。sst39vf160和is61lv25616al为扩展的flash和sram,分别用作程序存储器和数据存储器。

  2 具体实现

  2.1 ov7620的功能控制

  ov7620的控制采用sccb(seriai camera controlbus)协议。sccb是简化的i2c协议,sio-l是串行时钟输入线,sio-o是串行双向数据线,分别相当于i2c协议的scl和sda。sccb的总线时序与i2c基本相同,它的响应信号ack被称为一个传输单元的第9位,分为don’t care和na。don’t care位由从机产生;na位由主机产生,由于sccb不支持多字节的读写,na位必须为高电平。另外,sccb没有重复起始的概念,因此在sccb的读周期中,当主机发送完片内寄存器地址后,必须发送总线停止条件。不然在发送读命令时,从机将不能产生don’t care响应信号。

  由于i2c和sccb的一些细微差别,所以采用gpio模拟sccb总线的方式。scl所连接的引脚始终设为输出方式,而sda所连接的引脚在数据传输过程中,通过设置iodir的值,动态改变引脚的输入/输出方式。sccb的写周期直接使用i2c总线协议的写周期时序;而sc-cb的读周期,则增加一个总线停止条件。

  ov7620功能寄存器的地址为0x00~0x7c(其中,不少是保留寄存器)。通过设置相应的寄存器,可以使ov7620工作于不同的模式。例如,设置ov7620为连续扫描、rgb原始数据16位输出方式,需要进行如下设置:



  i2csendbyte()为写寄存器函数,它的第1个参数ov7620为宏定义的芯片地址0x42,第2个参数为片内寄存器地址,第3个参数为相应的寄存器设定值。

  2.2 ov7620时钟同步

  ov7620有4个同步信号:vsync(垂直同步信号)、fodd(奇数场同步信号)、hsync(水平同步信号)和pclk(像素同步信号)。当采用连续扫描方式时,只使用vsync和hsync、pclk三个同步信号,如图l所示。时为检测ov7620扫描窗口的有效大小,还引入了href水平参考信号。

  lpc2210的3个外部中断引脚分别作为3个同步信号的输入,相应的中断服务程序分别为vsync_irq()、hsync_irq()和pclk_irq()。在内存中定义一个二维数组存储图像数据,一维用变量y表示,用于水平同步信号计数;二维用变量x表示,用于像素同步信号计数。图像采集的基本流程为:当用sccb初始化好ov7620后,使能vsync对应的中断,在vsync_irq()中断服务程序中判断是否已取得一帧数据。若是,则在主程序的循环体中进行数据处理;若不是,则使能hsync对应的中断,并将y置为o。在hsync_irq()中断服务程序中,判断href的有效电平,若有效,则y加1,x置为o,并使能pclk对应的中断。在pclk_irq()中断服务程序中,判断href的有效电平,若有效,则z增加,同时采集一个像素点的图像数据。

  2.3 图像数据的输出速度匹配

  在ov7620的3个同步信号中,pclk的周期最短。当ov7620使用27 mhz的系统时钟时,默认的pclk的周期为74 ns。而lpc2210的中断响应时间远远大于这个值。lpc2210的最大中断延迟时问为27个处理器指令周期,最小延迟时问为4个指令周期,再加上中断服务时

  摘要 利用arm7(lpc2210)与cmos感光芯片(ov7620)实现了一个紧凑型圈像采集、处理系统;通过夸理利用lpc2210数据总线的工作方式,有效地消除了ov7620对系统数据总线的干扰。sccb控制,图像数据的采集、处理以及传输都由一片lpc22lo完成,特别适合于对功耗、体积要求较严格的嵌入式应用。

  关键词 arm7 ov7620 图像传感器 sccb协议 数据采集


  0v7620是一种cmos图像传感器,它被广泛应用在网络摄像头、摄像手机等产品中。由它组成的图像采集系统,比较常见的设计方法为ov7620搭配ov5ll+或cpld/fpga。ov511+或cpld/fpga采集的图像数据通过usb总线或双端口ram输出到pc或mcu(arm、dsp等),由pc或mcu对图像数据进行进一步的处理。本文所设计的图像采集系统仅用一个arm芯片就实现了ov7620的功能控制、时序同步、数据采集与处理等功能,系统结构紧凑、实用。

  1 硬件结构

  ov7620是cmos彩色/黑白图像传感器。它支持连续和隔行两种扫描方式,vga与qvga两种图像格式;最高像素为664×492,帧速率为30fp8;数据格式包括yuv、ycrcb、rgb三种,能够满足一般图像采集系统的要求。

  ov7620内部可编程功能寄存器的设置有上电模式和sccb编程模式。本系统采用sccb编程模式,连续扫描,16位rgb数据输出。系统硬件结构框图如图1所示。

  arm芯片选用具有arm7tdmi内核的lpc2210,通过lpc2210的gpio模拟sccb总线协议,控制ov7620的功能寄存器。使用lpc2210的3个中断引脚引入ov7620的图像输出同步信号vsync、hsync、pclk,以中断方式同步图像数据输出。ov7620的yuv通道输出的16位并行数据通过lpc2210的高16位数据线接入。sst39vf160和is61lv25616al为扩展的flash和sram,分别用作程序存储器和数据存储器。

  2 具体实现

  2.1 ov7620的功能控制

  ov7620的控制采用sccb(seriai camera controlbus)协议。sccb是简化的i2c协议,sio-l是串行时钟输入线,sio-o是串行双向数据线,分别相当于i2c协议的scl和sda。sccb的总线时序与i2c基本相同,它的响应信号ack被称为一个传输单元的第9位,分为don’t care和na。don’t care位由从机产生;na位由主机产生,由于sccb不支持多字节的读写,na位必须为高电平。另外,sccb没有重复起始的概念,因此在sccb的读周期中,当主机发送完片内寄存器地址后,必须发送总线停止条件。不然在发送读命令时,从机将不能产生don’t care响应信号。

  由于i2c和sccb的一些细微差别,所以采用gpio模拟sccb总线的方式。scl所连接的引脚始终设为输出方式,而sda所连接的引脚在数据传输过程中,通过设置iodir的值,动态改变引脚的输入/输出方式。sccb的写周期直接使用i2c总线协议的写周期时序;而sc-cb的读周期,则增加一个总线停止条件。

  ov7620功能寄存器的地址为0x00~0x7c(其中,不少是保留寄存器)。通过设置相应的寄存器,可以使ov7620工作于不同的模式。例如,设置ov7620为连续扫描、rgb原始数据16位输出方式,需要进行如下设置:



  i2csendbyte()为写寄存器函数,它的第1个参数ov7620为宏定义的芯片地址0x42,第2个参数为片内寄存器地址,第3个参数为相应的寄存器设定值。

  2.2 ov7620时钟同步

  ov7620有4个同步信号:vsync(垂直同步信号)、fodd(奇数场同步信号)、hsync(水平同步信号)和pclk(像素同步信号)。当采用连续扫描方式时,只使用vsync和hsync、pclk三个同步信号,如图l所示。时为检测ov7620扫描窗口的有效大小,还引入了href水平参考信号。

  lpc2210的3个外部中断引脚分别作为3个同步信号的输入,相应的中断服务程序分别为vsync_irq()、hsync_irq()和pclk_irq()。在内存中定义一个二维数组存储图像数据,一维用变量y表示,用于水平同步信号计数;二维用变量x表示,用于像素同步信号计数。图像采集的基本流程为:当用sccb初始化好ov7620后,使能vsync对应的中断,在vsync_irq()中断服务程序中判断是否已取得一帧数据。若是,则在主程序的循环体中进行数据处理;若不是,则使能hsync对应的中断,并将y置为o。在hsync_irq()中断服务程序中,判断href的有效电平,若有效,则y加1,x置为o,并使能pclk对应的中断。在pclk_irq()中断服务程序中,判断href的有效电平,若有效,则z增加,同时采集一个像素点的图像数据。

  2.3 图像数据的输出速度匹配

  在ov7620的3个同步信号中,pclk的周期最短。当ov7620使用27 mhz的系统时钟时,默认的pclk的周期为74 ns。而lpc2210的中断响应时间远远大于这个值。lpc2210的最大中断延迟时问为27个处理器指令周期,最小延迟时问为4个指令周期,再加上中断服务时

相关IC型号

热门点击

 

推荐技术资料

DFRobot—玩的就是
    如果说新车间的特点是“灵动”,FQPF12N60C那么... [详细]
版权所有:51dzw.COM
深圳服务热线:13692101218  13751165337
粤ICP备09112631号-6(miitbeian.gov.cn)
公网安备44030402000607
深圳市碧威特网络技术有限公司
付款方式


 复制成功!