摄像头

    一、OmniVision SCCB总线介绍

       1.1、简介

           Omnivision 公司制定了Serial Camera Control Bus(SCCB)总线协议,SCCB是一个三线的串行总线用来控制OmniVision公司的摄像头,SCCB用2线的串行模式来控制。

            SCCB摄像头只能做从,SCCB三线总线上可以挂载多个摄像头,两线的只能挂载一个。


       两线的情况下,主模块必须能使数据线保持一个三态,如果不能保持三态那就保持数据线高或低。

   1.2、引脚介绍

        主机的引脚状态:  

        SCCB_E(使能、output)

        SIO_C(时钟线、output),在空闲的时候保持高。SCCB_E低电平的时候驱动为0或1,系统挂起的时候驱动为0.

        SIO_D(数据线,I/O),信号输入输出线,总线空闲的时候保持浮空,系统挂起的时候驱动为0.

        SCCB_E 使能信号是一个单向信号,低电平有效,由主机控制来控制数据传输的开始和停止,由高变低开始传输数据,由低变高数据传输结束。传输数据的过程中SCCB_E必须保持0.空闲状态保持0.

        SCCB_C 是一个单向的信号,高电平有效,有主机控制和驱动。总线空闲的时候保持1,数据开始传输后,SIO_C保持0,上升沿传输一个位。因此SIO_D只能在SIO_C低电平的时候改变数据,一个位传输的时钟间隔是10us。

        SIO_D 是一个双向的数据线,由主机或者从机驱动,总线空闲的时候保持浮空或者三态。数据线只能在SIO_C低电平的时候改变数据,SIO_C的上升沿开始数据一个位。数据线在使能线有效之前可以保持0.

    1.3  数据传输

          数据从主机到从机定义为写,数据从从机到主机定义为读。


        三线的SCCB,使能信号由高变低开始数据的传输,在开始之前数据线必须保持1.使能线由低变高结束数据的传输。

    1.3、传输周期

          数据传输基本的实现叫一个相,有三种传输方法:三相的写传输,两相的写传输、两相的读。

           每相有9个位组成,包括8个数据位,第九个位内容可以忽略(Don't-Care)依据数据是读还是写。每相的MSB(最高有效位)总是最先传输。


       三相的写传输:

         三相的写传输,主机可以写一个字节的数据。ID地址指定一个从机。副地址(sub-address)指定选中器件的寄存器地址。写的数据包括要向寄存器写的一个8位的数据,三相中的第九个位内容可忽略。


      两相的写传输:

          两相的写传输跟着一个两相的读传输。两相的写传输是为了给读传输指定一个寄存器的地址,两相写传输的第九个位是一个无效位。


      两相的读:

           在两相的读周期之前必须有一个三相的写周期或者两相的写周期。两相的写不能够指定副地址,必须通过三相写或者两相写来指定副地址。两相的写周期包括8个数据位,第9个位必须是1.


     1.4、相的描述

          第一个相:ID地址

           主机传输的第一个相去选中要控制的从机,数据可以是读或者写。每个从机都有一个ID地址。从机地址由7个位组成,bit7-bit1,可以定义128个从机。第8位bit0,是读写选择位,定义当前数据传输的方向,0表示是写周期,1表示是读周期


     第二相:副地址或者读数据

         主机或者从机都可以插入第二相的传输。如果是主机控制,则第二相就是打算要操作的寄存器地址,如果是从机操作就是主机要接收到的读的数据。从机通过前边两相或者三相的周期来确定副地址。


     第三相: 写数据

        只有主机可以插入第三相的传输。第三相是主机要写的数据。

     第9位: Don't Care orNA

         如果总线上就一个器件,不用判断这个位,被选中的器件,在第9时钟高电平的时候会在数据线上返回一个0.或者去读冲突寄存器判断是否有冲突发生。

          第九位是Don't Care位或者NA位,Don't Care位是由从机产生的,主机在写完一个字节8位后必须释放数据线,然后判断从机产生的第9位是不是低电平,如果是低电平表示上一个字节的传输有效,如果是高电平则传输失败。

          NA位是有主机产生的,在读数据的过程中,两相读的第二相在读完8位数据后,必须在第9个时钟保持数据线为高电平,即NA位为高电平。


     二、OV7670应用

         OV7670支持4种输出格式:YCbCr、RGB565/RGB555,Bayer raw RGB,Processed raw RGB.


       LCD的驱动格式都是RGB的,RGB444,RGB565,RGB555,RGB888等,存储器的数据格式都的JPEG,JPEG的数据是YCbCr的数据格式压缩来的。后端芯片内部RGB和YCbCr格式都需要,X块在芯片内部是不同的。

       有ISP的摄像头,只采集YCbCr格式的图像,但是在硬件上ISP可以把YCbCr格式转换成RGB格式到LCD液晶输出或者压缩YCbCr格式到JPEG图片存储。

         不带ISP的摄像头,不能在硬件上做图像格式的转换,只能通过软件的方法去处理不同格式之间的转换。

          因为JPEG的图片是由YCbCr经过压缩算法合成的,所以JPEG图片想要在LCD上显示,需要经过解压缩算法,解出来的图像格式是YCbCr的想要在LCD上显示,还需要转换成RGB格式的。


    2.1、不同格式转换的等式

         RGB24to YCbCr

         Y=0.229R+0.587G+0.114B

         Cb=0.568(B-Y)+128=-0.172R-0.339G+128

         Cr=0.713(R-Y)+128=0.511R-0.428G-0.083B+128.

        

          Y=((77*R+150G+29B)>>8);

          Cb=((-43R-85G+128B)>>8)+128;

          Cr=((128*R-107*G-21*B)>>8)+128

          

         YCbCr to RGB24

         R=Y+(351*(Cr-128))>>8

         G=Y-(179*(Cr-128)+86*(Cb-128))>>8;

         B=Y+(443*(Cb-128))>>8

        

    2.2、选择输出分辨率

          如果摄像头内置了ISP,ISP可以改变图像的比例,因此OV7670输出只有VGA格式。如果没有内置ISP,OV7670必须缩放成LCD液晶的尺寸。

   2.3、调整帧率

         60Hz的光环境,推荐帧率为30FPS和15fps,50hz光环境,推荐输出速率为14.3fps和25. 这里的60hz和50Hz指定是室内环境下灯光供电的交流频率,在我们国家是50Hz。


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值