串行成像控制总线SCCB#
- 格式:docx
- 大小:28.44 KB
- 文档页数:6
SCCB 是OmniVision 公司定制的串行摄像头控制总线(Serial Camera Control Bus) ,它用于对摄像头的寄存器进行读写,以达到对摄像头输出图像的控制。
两线制SCCB 与I2C 总线类似,是一种双向二线制同步串行总线。
SCCB 的数据传输由主器件控制,主器件能够发出数据传输启动信号、时钟信号以及传送结束时的停止信号。
通常主器件都是微处理器,它寻址访问的设备称为从器件。
为了进行通讯,每个接到SCCB 的设备都有一个唯一的地址( ID) ,使用软件来识别总线上的从器件,省去了从器件的片选。
因此,只需要两根线(串行时钟线SIO C 和串行数据线SIO D) ,挂接到总线上的器件就能相互进行信息传递,SCCB 接口的电气结构如图1 所示。
组成SCCB 的SIO C 和SIO D必须经过上拉电阻RP 接到正电源上,连接到总线的器件的输出级必需为“开漏”或“开集”的形式,以便在多个主或从需求仲裁的况下完成线与的功能。
在SCCB 协议中定义开始和停止条件如下:开始条件:在SIO C 为高电平时,SIO 出现一个下降则SCCB 开始传输;停止条件:在SIO C 为高电平时,SIO D 出现一个上升沿,则SCCB 停止传输。
除了开始和停止状态,在数据传输时,当SIO C 为高电平时,必需保证SIO D上的数据的稳定,也就是说,SIO D 上的数据只能在SIO C 为低电平时改变。
与I2C 总线类似,SCCB 的基本传输格式如图3所示,完整的数据传输包括两个或三个阶段。
每一阶段包中含9 位二进制数据,其中高8 位为所要传输的8 位数据,最低位根据主器件的数据传输是读操作还是写操作而确定。
在进行主器件写操作时,全部阶段的最低位均是无关位(低或高电平均可) ;读操作时,第一阶段的最低位是无关位,第二阶段的最低位位NA ———主器件驱动为高电平有效。
在SCCB 协议定义了两种写操作,即三相写操作和两相写操作。
PCLKHREFHSYNC 像素值ov7725数字摄像头编程基本知识笔记这里以ov7725为例,对数字摄像头的时序进行分析。
其他数字摄像头的时序也大同小异。
像素输出顺序数字摄像头输出图像时,一般都是从左到右,有上到下逐个输出(部分芯片可配置输出顺序):有些摄像头有奇偶场,是采用隔行扫描方法,把一帧图象分为奇数场和偶数场两场。
(ov7725没有奇偶场之分)行中断时序0 第一个输出像素最后一个输出像素 最后一个像素 消隐区,如果不按照时序来采集,就有可能采集到消隐区,值为0,即黑色。
行与行之间,场与场之间都一行图像数据 第一个 像素 PCLK 上升沿时,MCU 采集图像;下降沿时,摄像头输出图像。
HREF 和HSYNC 都用于行中断信号,但时序有点区别。
HREF 上升沿就马上输出图像数据,而HSYNC 会等待一段时间再输出图像数据,如果行中断里需要处理事情再开始采集,则显然用HREF 的上升沿是很容易来不两个都是行中断信号,共用同一个管脚,由寄存器配置选择哪个信号输出。
场中断时序采集图像思路①使用for 循环延时采集1. 需要采集图像时,开场中断2. 场中断来了就开启行中断,关闭场中断3. 行中断里用for 循环延时采集像素,可以在行中断里添加标志位,部分行不采集,即可跨行采集。
4. 行中断次数等于图像行数时即可关闭行中断,标志图像采集完毕。
②使用场中断和行中断,DMA 传输1. 需要采集图像时,开场中断2. 场中断来了,开行中断和初始化DMA 传输3. 行中断来了就设置DMA 地址,启动DMA 传输。
如果先过滤部分行不采集,则设置一个静态变量,每次行中断来了都自加1,根据值来选择采集或不采集某些行。
4. 每个PCLK 上升沿来了都触发DMA 传输,把摄像头输出的值读取到内存数组里。
当触发n 次(n=图像列数目)后就停止DMA 传输。
5. 行中断次数等于一幅图像的行数,或者等待下一个场中断来临 就结束图像采集,关闭行中断和场中断。
sccb协议协议名称:SCCB协议一、引言本协议旨在确立并规范Smart Camera Control Bus(SCCB)协议的标准格式,以便各方在使用SCCB协议时能够达到一致性和互操作性。
二、定义1. SCCB:Smart Camera Control Bus,智能摄像机控制总线。
2. SCCB设备:支持SCCB协议的硬件设备,包括但不限于智能摄像机、图象传感器等。
三、协议规范1. 物理连接SCCB协议使用I2C总线作为物理连接方式,具体规范如下:a. 使用双线制,包括一个时钟线(SCL)和一个数据线(SDA)。
b. SDA线上的数据传输由SCL线上的时钟信号同步。
c. 时钟信号由主设备(如智能摄像机)控制。
2. 寻址SCCB协议使用7位或者10位地址进行寻址,具体规范如下:a. 7位寻址:SCCB设备地址由7位二进制数表示,范围为0x01至0x7F。
b. 10位寻址:SCCB设备地址由10位二进制数表示,范围为0x001至0x3FF。
c. 寻址方式由主设备决定。
3. 数据传输SCCB协议使用字节流传输数据,具体规范如下:a. 数据传输以字节为单位,每一个字节由8位二进制数表示。
b. 数据传输由主设备发起,从设备响应。
c. 主设备发送起始信号(Start)和住手信号(Stop)控制数据传输的开始和结束。
d. 数据传输过程中,从设备可以发送应答信号(Acknowledge)或者非应答信号(Not Acknowledge)给主设备。
4. 命令格式SCCB协议使用特定的命令格式进行通信,具体规范如下:a. 命令由主设备发送给从设备。
b. 命令包括一个起始字节和一个或者多个数据字节。
c. 起始字节包含设备地址和读/写位,用于指示通信的目标设备和读写操作。
d. 数据字节用于传输具体的命令数据。
5. 数据读取SCCB协议支持从SCCB设备读取数据,具体规范如下:a. 主设备发送读取命令给从设备,并指定读取的字节数。
医用内窥镜微型摄像模组设计徐忠;刘洪英;余巧;孙良伟;赵亚雄;贾子如【摘要】设计了一种新型医用内窥镜微型摄像模组.该模组采用微型、高分辨率的CMOS图像传感器结合低压差分信号(LVDS)传输技术进行设计,使摄像模组直径缩减至5.0mm,并实现了图像数据的长距离高保真传输.搭建了实验平台对摄像模组的摄像功能进行了测试.结果表明:该模组图像传输距离超过2m,分辨率达到30万像素,对口腔溃疡模拟粘膜病变的识别率高达90%.其图像分辨率高,传输距离长,使其适用于内镜诊断;其直径小,能大大提高病人内镜检查的舒适性,为超细内镜诊断提供了一种极佳的解决方案.【期刊名称】《传感器与微系统》【年(卷),期】2014(033)010【总页数】4页(P91-93,103)【关键词】CMOS摄像模组;内窥镜;低压差分信号技术;微型化【作者】徐忠;刘洪英;余巧;孙良伟;赵亚雄;贾子如【作者单位】重庆大学生物工程学院生物流变科学与技术教育部重点实验室,重庆400030;重庆大学生物工程学院生物流变科学与技术教育部重点实验室,重庆400030;重庆大学新型微纳器件与系统技术国防重点学科实验室,重庆400030;重庆大学生物工程学院生物流变科学与技术教育部重点实验室,重庆400030;重庆大学生物工程学院生物流变科学与技术教育部重点实验室,重庆400030;重庆大学生物工程学院生物流变科学与技术教育部重点实验室,重庆400030;重庆大学生物工程学院生物流变科学与技术教育部重点实验室,重庆400030【正文语种】中文【中图分类】R318.08在医学诊断和治疗领域,人体组织脏器健康状况的可视化是医学工作者一直以来所追求的目标。
医用电子内窥镜就是为实现这一目标而发展起来的现代化诊断设备,经过众多专家与学者的努力,内窥镜技术已经取得了长足的发展[1]。
通过内窥镜,医生可以非常直观地观察到人体内脏器官的组织形态、体内病变情况,发现病灶并对疾病进行诊断[2]。
引脚功能SCCB是欧姆尼图像技术公司(OmniVision)开发的一种总线,并广泛的应用于OV系列图像传感器上。
SCCB是一种3线的总线,它由SCCB_E、SIO_C、SIO_D组成。
在为了减少引脚的芯片上缩减为2根线,SIO_C和SIO_D。
2线的SCCB总线只能是一个主器件对一个从器件控制,但3线SCCB接口可以对多个从器件控制。
2线的SCCB总线需要主机具备如下条件中的一个或多个:一、主机必须能够使SIO_D处于第三态,即高阻态。
二、主机必须能够驱动SIO_D比正常识别电压更高或更低引脚(主机)说明:SIO_E:输出(主机发出,单向),低电平有效,总线空闲时主机驱动此引脚为1,驱动为0时表示开始传输或者挂起模式(在表面没有该引脚的芯片中,该引脚默认为可用的,并且保持高电平)。
它标志这数据传输的开始和结束,高电平向低电平转变表示开始传输,低电平向高电平转变表示结束传输。
在数据传输过程中,SIO_E必须保持为0。
SIO_C:输出(主机发出,单向),总线空闲时主机驱动此引脚为1;当驱动SIO_E为0时,主机驱动此引脚为0或1;当挂起时主机驱动SIO_C为0;它表明每一个传输位;SIO_C为1时表示一个传输位;SIO_D只能在SIO_C为0时发生变化。
SIO_D:I/O口,双向传输线,既可以由主机驱动也可以由从机驱动。
当总线空闲时保持浮动,状态不固定(0、1或三态高阻)。
当系统挂起时驱动该引脚为0。
为了不让该引脚产生未知的状态,主机和从机有职责保持该引脚的电平。
SIO_C为1表示传输一位数据,SIO_D只能在SIO_C为0时发生变化。
然而,在开始传输和结束传输时却可以存在例外。
当SIO_E有效且SIO_C变为0之前,SIO_D可以被驱动为0。
在SIO_E失效前,SIO_C转为1时,SIO_D也能被驱动为0。
数据传输SCCB传输协议允许总线在数据传输期间保持浮动或者连接。
向从机写数据时定义写传输协议,向从机读数据时定义读传输协议。
OV7670的SCCB波形记录OV7670是一款基于SCCB(串行摄像头控制总线)协议的摄像头模块,它可以通过SCCB协议与主控设备进行通信和控制。
在本文中,我将为你记录OV7670的SCCB波形,以便更好地理解其通信原理和工作机制。
SCCB协议是一种针对摄像头模块的串行通信协议,类似于I2C协议。
它通过两根信号线(SIOC和SIOD)实现主控设备与摄像头模块之间的数据传输和控制。
下面是一份OV7670的SCCB波形记录:1.启动信号:在开始进行SCCB通信之前,主控设备需要发送一个启动信号,以表明接下来要进行SCCB通信。
启动信号由SIOC引脚拉低,SIOD引脚先拉高再拉低构成。
2.设备地址:主控设备需要发送一个设备地址,以指定要控制的摄像头模块。
设备地址由SIOC引脚拉高,SIOD引脚先拉高再拉低构成。
3.寄存器地址:主控设备需要发送一个寄存器地址,以指定要写入或读取的寄存器。
寄存器地址由SIOC引脚拉高,SIOD引脚先拉高再拉低构成。
4.写入数据:主控设备将要写入的数据发送给摄像头模块。
写入数据由SIOC引脚拉高,SIOD引脚的高低电平表示二进制数据的1和0。
5.等待应答:主控设备在发送完写入数据后,需要等待摄像头模块发送应答信号。
应答信号由摄像头模块通过SIOD引脚拉低来表示。
6.读取数据:主控设备需要读取摄像头模块的数据时,向摄像头模块发送一个读取命令。
读取命令由SIOC引脚拉高,SIOD引脚先拉低再拉高构成。
7.读取数据应答:摄像头模块在收到读取命令后,会发送要读取的数据给主控设备。
读取的数据由SIOC引脚拉高,SIOD引脚的高低电平表示二进制数据的1和0。
以上是OV7670的SCCB通信过程中的一些重要波形记录。
通过这些波形,我们可以清楚地了解到每个步骤的具体控制信号和数据传输情况。
这有助于我们更好地理解OV7670和SCCB协议的工作原理,并可以根据需要进行相关的控制和操作。
总结起来,OV7670的SCCB波形记录包括启动信号、设备地址、寄存器地址、写入数据、等待应答、读取数据和读取数据应答等几个重要步骤的信号和数据情况。
sccb协议协议名称:SCCB协议一、引言本协议旨在规范SCCB(Serial Camera Control Bus)的通信协议,以确保各设备之间的互操作性和数据传输的稳定性。
SCCB协议用于连接图像传感器和图像处理器之间的通信,通过定义数据传输格式和通信规则,实现数据的可靠传输和控制命令的有效执行。
二、定义1. SCCB:Serial Camera Control Bus,是一种串行通信协议,用于图像传感器与图像处理器之间的数据传输和控制命令交互。
2. 主设备:指控制和发起通信的设备,通常为图像处理器。
3. 从设备:指接收和响应通信的设备,通常为图像传感器。
三、通信协议1. 物理连接a. SCCB协议使用两根线进行通信,分别为SDA(Serial Data Line)和SCL (Serial Clock Line)。
b. SDA线用于数据传输,SCL线用于时钟同步。
c. 物理连接方式可采用I2C(Inter-Integrated Circuit)或SPI(Serial Peripheral Interface)等标准接口。
2. 数据传输格式a. SCCB协议采用字节流的形式进行数据传输。
b. 数据传输分为读取和写入两种操作。
c. 读取操作:主设备发送读取命令和设备地址,从设备响应数据。
d. 写入操作:主设备发送写入命令、设备地址和数据,从设备接收并执行命令。
3. 通信规则a. 主设备与从设备之间的通信由主设备发起。
b. 通信开始前,主设备发送起始信号,从设备响应起始信号。
c. 通信结束后,主设备发送停止信号,从设备响应停止信号。
d. 主设备在发送每个字节的时候,需要等待从设备的确认信号。
e. 主设备可以发送多个字节的数据,从设备每接收一个字节后,需要发送确认信号。
四、通信流程1. 读取操作流程:a. 主设备发送起始信号。
b. 主设备发送设备地址和读取命令。
c. 从设备响应确认信号。
d. 从设备发送数据。
基于STM32F4和OV5640尿液分析仪的图像采集系统设计作者:郑焱雄赵立宏来源:《科技风》2017年第17期摘要:随着尿液检测在实际生活生产中占据越来越重要的地位,本论文是基于STM32F407芯片和 OV5640尿液分析仪的图像采集系统设计。
使用STM32F407芯片作为控制单元,运用串行摄像头控制总线(SCCB)来控制OV5640图像传感器输出VGA,RGB565图像数据,同时实时显示在TFT LCD上,并将成像的图片传送到STM32芯片进行识别和图像处理后得出相应的结果。
实验结果表明:能得到清晰流畅的图像,并且该系统具有成本低、易于测量等优点,可满足图片处理和识别的需要。
关键词:STM32;OV5640;图像采集与显示;图片处理随着科学技术的发展,嵌入式系统已经广泛应用于各种微控制系统,实现快速化、低功耗、智能化、价格低的方向发展[1],利用图像传感器已成为一个研究领域的热点,如摄像头嵌入控制系统中,视频捕捉功能,图片识别,对象跟踪与工程功能,定时功能等等。
根据网上现代科技信息对尿液分析仪需求的分析,本文采用嵌入式图像采集系统的设计,使用STM32嵌入式芯片对图像信息的显示和存储采集。
1 系统总体设计基于ARM CortexM4内核处理器为核心的图像采集系统(以下简称STM32F407),组合OV5640摄像头和TFTLCD液晶显示,是一款具有良好的,实时性的和低成本的图像采集系统[2]。
图1 是系统的总体结构图,主要由STM32F407芯片、TFTLCD设备、图像采集设备、OV5640摄像头、SD储设卡和其他组件组成。
2 硬件设计2.1 CPU处理器本系统用的是32位的CortexM4内核的STM32芯片STM32F407,支持Thumb2指令集,STM32F407内部的Flash有1M,SRAM大小为192K,有114个增强I/O口、2个USART、3个12位的A/D转换器[6]。
sccb协议协议名称:SCCB协议一、协议目的本协议旨在确立参与方之间关于SCCB(Serial Camera Control Bus)的通信协议,以确保数据传输的稳定性、可靠性和一致性。
二、参与方本协议的参与方为以下各方:1. [方A名称]:(以下简称"A方")2. [方B名称]:(以下简称"B方")三、背景SCCB是一种用于串行摄像头控制的总线协议,常用于数字图像传感器和图像处理器之间的通信。
为了确保A方和B方之间的通信能够顺利进行,双方达成以下协议。
四、协议内容1. 通信接口1.1 A方和B方需使用兼容SCCB协议的硬件设备和软件驱动程序进行通信。
1.2 通信接口应支持SCCB协议规定的数据传输速率和电气特性。
2. 数据传输2.1 数据格式2.1.1 SCCB协议采用字节流格式进行数据传输。
2.1.2 数据传输的起始位为起始位标识符,占据一个字节。
2.1.3 数据传输的终止位为终止位标识符,占据一个字节。
2.1.4 数据传输的有效数据位长度为8位。
2.2 读操作2.2.1 A方发送读命令给B方,请求获取指定寄存器的值。
2.2.2 B方接收到读命令后,将请求的寄存器值发送给A方。
2.2.3 读操作的数据传输顺序为:起始位标识符 - 寄存器地址 - 终止位标识符 - 数据。
2.3 写操作2.3.1 A方发送写命令给B方,请求设置指定寄存器的值。
2.3.2 B方接收到写命令后,将指定寄存器设置为请求的值。
2.3.3 写操作的数据传输顺序为:起始位标识符 - 寄存器地址 - 数据 - 终止位标识符。
3. 寄存器地址3.1 寄存器地址范围为0x00至0xFF。
3.2 A方和B方需事先约定好各寄存器的功能和对应的地址。
4. 错误处理4.1 如果在通信过程中发生错误,接收方应向发送方发送错误应答。
4.2 发送方在接收到错误应答后,应根据具体情况进行错误处理,例如重试或向上层报告错误信息。
SCCB总线协议介绍-------------三线数据传输片上SCCB串行控制端口,允许对内部寄存器的访问,以达到完成控制和监测图像传感器的目的。
SCCB (Serial Camera Control Bus)即串行相机控制总线,为三线串行总线。
在简化的传感器封装下,SCCB总线工作于一种改进的两线串行模式。
1 插脚引线及描述表1. 主器件的插脚引线表2. 从器件的插脚引线(1)SCCB_ESCCB_E是一个由主器件驱动的单向,低有效的控制信号。
它指明了数据传输的的开始和结束。
数据传输开始的标志是SCCB_E上的一个由高到低的变化,而反过来SCCB_E的一个由低到高的变化则表明了传输的结束。
数据传输阶段SCCB_E必须保持在逻辑0,逻辑1表明了总线空闲。
(2)SIO_CSIO_C是一个由主器件驱动的单方向,高有效的控制信号。
它表明了每一个被传输的位。
当总线空闲时主器件必须驱动SIO_C为逻辑1。
当SCCB_E有效时,每当SIO_C被置为逻辑0就有一个数据传输开始。
数据传输中SIO_C的每一个逻辑1表明一个单比特被传输。
因此,只有当SIO_C为逻辑0时SIO_D上的数据才可以发生变化。
(3)SIO_DSIO_D是一个既可以被主器件驱动也可以被从器件驱动的双向数据信号线。
当总线空闲时它保持浮动或三态。
主从器件都有责任维持总线的稳定,以防未知总线状态的产生。
SIO_C的一个逻辑1表明一个单比特的传输完成。
SIO_D上的数据只能在SIO_C被驱动为0时发生变化。
但是在数据传输的开始和结尾允许有一个例外。
在SCCB_E被置为有效到SIO_C变为逻辑0之前这段时间,SIO_D可以被驱动为逻辑0。
在SIO_C回到逻辑1到SCCB_E被撤销有效电平之前这段时间,SIO_D 可以被置于0。
2 SCCB的数据传输方式SCCB系统的数据传输有两种方式:三线数据传输和两线数据传输。
两线数据传输是三线数据传输的改进版,用于简化封装的产品,只允许接口连接一个从器件。
s3c2440提供了一个摄像接口,使开发人员很容易地实现摄像、照相等功能。
摄像接口包括8位来自摄像头的输入数据信号,一个输出主时钟信号,三个来自摄像头的输入同步时钟信号和一个输出复位信号。
摄像接口的主时钟信号由USB PLL产生,它的频率为96MHz,再经过分频处理后输出给摄像头,摄像头再根据该时钟信号产生三个同步时钟信号(像素时钟、帧同步时钟和行同步时钟),反过来再输入回s3c2440。
s3c2440仅仅提供了一个摄像接口,因此要实现其功能,还需要摄像头。
在这里,我们使用OV9650。
OV9650内部有大量的寄存器需要配置,这就需要另外的数据接口。
OV9650的数据接口称为SCCB(串行摄像控制总线),它由两条数据线组成:一个是用于传输时钟信号的SIO_C,另一个是用于传输数据信号的SIO_D。
SCCB的传输协议与IIC的极其相似,只不过IIC在每传输完一个字节后,接收数据的一方要发送一位的确认数据,而SCCB一次要传输9位数据,前8位为有用数据,而第9位数据在写周期中是Don’t-Care位(即不必关心位),在读周期中是NA位。
SCCB定义数据传输的基本单元为相(phase),即一个相传输一个字节数据。
SCCB只包括三种传输周期,即3相写传输周期(三个相依次为设备从地址,内存地址,所写数据),2相写传输周期(两个相依次为设备从地址,内存地址)和2相读传输周期(两个相依次为设备从地址,所读数据)。
当需要写操作时,应用3相写传输周期,当需要读操作时,依次应用2相写传输周期和2相读传输周期。
因此SCCB一次只能读或写一个字节。
下面我们就用s3c2440的IIC总线接口分别与OV9650的SIO_C和SIO_D相连接来实现SCCB的功能。
具体的读、写函数为://配置IIC接口rGPEUP = 0xc000。
//上拉无效rGPECON = 0xa0000000。
//GPE15:IICSDA,GPE14:IICSCL//IIC中断void __irq IicISR(void){rSRCPND |= 0x1<<27。
协议——SCCB与IIC的区别 SCCB(Serial Camera Control Bus,串⾏摄像头控制总线)是由OV(OmniVision的简称)公司定义和发展的三线式串⾏总线,该总线控制着摄像头⼤部分的功能,包括图像数据格式、分辨率以及图像处理参数等。
结构框图如下所⽰: OV公司为了减少传感器引脚的封装,现在SCCB总线⼤多采⽤两线式接⼝总线。
OV7725使⽤的是两线式接⼝总线,该接⼝总线包括SIO_C串⾏时钟输⼊线和SIO_D串⾏双向数据线,分别相当于IIC协议的SCL信号线和SDA信号线。
SIO_C的最⼩时间为10us,即最⼤频率为100K。
⼀般来说,100K-400K之间都可以。
由此可见,SCCB就是改编版的IIC,完全可以按照IIC来理解,下⾯仔细讲解SCCB的时序以及和IIC的不同之处。
⼀、SCCB起始和结束(与IIC完全⼀致) 起始:SIO_C为⾼时,SIO_D由⾼拉低。
停⽌:SIO_C为⾼时,SIO_D由低拉⾼。
⼆、SCCB写(与IIC完全⼀致) ID Address(W)⾥⾯就已经包括进了IIC中的“读写控制位”,所以没有额外写出。
即:start + phase_1 + phase_2 + phase_3 + stop “X”的意思是“don't care”,该位是由从机发出应答信号来响应主机表⽰当前ID Address、Sub-address和Write Data是否传输完成,但是从机有可能不发出应答信号,因此主机(此处指FPGA)可不⽤判断此处是否有应答,直接默认当前传输完成即可。
“X”即IIC中的ACK应答位。
三、SCCB读 数据⼿册中的SCCB读只写了上图的Phase3和Phase4,实际上它是和Phase1和Phase2联系在⼀起的。
SCCB不⽀持连续读,Phase4的主机应答位必须为NA(no ack),即为1,所以SCCB读其实就专指单次读,和IIC单次读⼏乎⼀样。
SCCB总线与IIC区别SCCB 是简化的I2C 协议,SIO-l 是串行时钟输入线,SIO-O 是串行双向数据线,分别相当于I2C 协议的SCL 和SDA。
SCCB 的总线时序与I2C 基本相同,它的响应信号ACK 被称为一个传输单元的第9 位,分为Dont care 和NA。
Dont care 位由从机产生;NA 位由主机产生,由于SCCB 不支持多字节的读写,NA 位必须为高电平。
另外,SCCB 没有重复起始的概念,因此在SCCB 的读周期中,当主机发送完片内寄存器地址后,必须发送总线停止条件。
不然在发送读命令时,从机将不能产生Dont care 响应信号。
由于I2C 和SCCB 的一些细微差别,所以采用GPIO 模拟SCCB 总线的方式。
SCL 所连接的引脚始终设为输出方式,而SDA 所连接的引脚在数据传输过程中,通过设置IODIR的值,动态改变引脚的输入/输出方式。
SCCB 的写周期直接使用I2C 总线协议的写周期时序;而SC-CB 的读周期,则增加一个总线停止条件。
SCCB 是和I2C 相同的一个协议。
SIO_C 和SIO_D 分别为SCCB 总线的时钟线和数据线。
目前,SCCB 总线通信协议只支持100Kb/s 或400Kb/s 的传输速度,并且支持两种地址形式:①从设备地址(ID Address,8bit),分为读地址和写地址,高7 位用于选中芯片,第0 位是读/写控制位(R/W),决定是对该芯片进行读或写操作;②内部寄存器单元地址(Sub_ Address,8bit),用于决定对内部的哪个寄存器单元进行操作,通常还支持地址单元连续的多字节顺序读写操作。
SCCB 控制总线功能的实现完全是依靠SIO_C、SIO_D 两条总线上电平的状态以及两者之间的相互配合实现的。
SCCB 总线传输的启动和停止条件如图过程:采用简单的三相(Phase)写数据的方式,即在写寄存器的过程中先发送OV7649 的ID 地址(ID Address),然后发送写数据的目地寄存器地址。
基于FPGA实现OmniVision图像传感器的SCCB总线协议王水鱼;王欣【摘要】基于 Atera 公司的 FPGA 芯片对 OmniVision 图像传感器进行图像采集前的准备工作,通过 FPGA 的 GPIO 端口模拟 SCCB (串行摄像机控制总线)总线协议对传感器的寄存器进行配置,从而完成对传感器的初始化,使得摄像头得以正常运行。
%Based on the FPGA chip of Atera company, do the preparatory work before the image acquisition of OmniVision image sensor. Through the GPIO port of FPGA analog SCCB(serial camera control bus) bus protocol to configure sensor registers, so as to complete the initialization of the sensor, and make the camera normally operate.【期刊名称】《微型机与应用》【年(卷),期】2015(000)020【总页数】3页(P31-32,35)【关键词】FPGA;OmniVision 图像传感器;SCCB【作者】王水鱼;王欣【作者单位】西安理工大学自动化与信息工程学院,陕西西安 710048;西安理工大学自动化与信息工程学院,陕西西安 710048【正文语种】中文【中图分类】TP336视频信号处理系统的前端部分是视频图像采集,是视频监控、信息处理等系统的前端需要,对后端图像处理系统的性能有着直接的影响。
近年来,随着通信技术和计算机技术的发展,人们对视频采集的要求越来越高,正在向高速、高分辨率、高集成化、高可靠性方向发展。
现场可编程门阵列(FPGA)具有规模大、集成度高、可靠性高等优点,对于视频采集是非常理想的选择与趋势[1]。
引脚功能SCCB是欧姆尼图像技术公司(OmniVision)开发的一种总线,并广泛的应用于OV系列图像传感器上。
SCCB是一种3线的总线,它由SCCB_E、SIO_C、SIO_D组成。
在为了减少引脚的芯片上缩减为2根线,SIO_C和SIO_D。
2线的SCCB总线只能是一个主器件对一个从器件控制,但3线SCCB接口可以对多个从器件控制。
2线的SCCB总线需要主机具备如下条件中的一个或多个:一、主机必须能够使SIO_D处于第三态,即高阻态。
二、主机必须能够驱动SIO_D比正常识别电压更高或更低引脚(主机)说明:SIO_E:输出(主机发出,单向),低电平有效,总线空闲时主机驱动此引脚为1,驱动为0时表示开始传输或者挂起模式(在表面没有该引脚的芯片中,该引脚默认为可用的,并且保持高电平)。
它标志这数据传输的开始和结束,高电平向低电平转变表示开始传输,低电平向高电平转变表示结束传输。
在数据传输过程中,SIO_E必须保持为0。
SIO_C:输出(主机发出,单向),总线空闲时主机驱动此引脚为1;当驱动SIO_E为0时,主机驱动此引脚为0或1;当挂起时主机驱动SIO_C为0;它表明每一个传输位;SIO_C为1时表示一个传输位;SIO_D只能在SIO_C为0时发生变化。
SIO_D:I/O口,双向传输线,既可以由主机驱动也可以由从机驱动。
当总线空闲时保持浮动,状态不固定(0、1或三态高阻)。
当系统挂起时驱动该引脚为0。
为了不让该引脚产生未知的状态,主机和从机有职责保持该引脚的电平。
SIO_C为1表示传输一位数据,SIO_D只能在SIO_C为0时发生变化。
然而,在开始传输和结束传输时却可以存在例外。
当SIO_E有效且SIO_C变为0之前,SIO_D可以被驱动为0。
在SIO_E失效前,SIO_C转为1时,SIO_D也能被驱动为0。
数据传输SCCB传输协议允许总线在数据传输期间保持浮动或者连接。
向从机写数据时定义写传输协议,向从机读数据时定义读传输协议。
串行成像控制总线SCCB的应用研究默认分类2008-03-02 21:42:27 阅读1356 评论4 字号:大中小订阅吕涛(西南科技大学网络信息中心,四川绵阳621002)摘要:本文主要基于CMOS图像传感器的串行成像控制总线(SCCB)的使用方法进行研究,详细阐述了该总线的引脚功能,数据传输和控制时序。
文中通过程序代码片段说明了如何利用ARM CPU 的GPIO使用SCCB总线。
关键词:CMOS图像传感器;SCCB; ARM CPU GPIO中图分类号:文献标识码:AApplication Research of Serial Camera Control BusLuTaoNetwork Information Center of South-west University of Science and TechnologyAbstract: The paper mainly discusses the application research of serial camera control bus (SCCB) based on CMOS image sensor. It depicts the pin function,data transmission and Timing Diagram of SCCB.In the paper, the code fragment shows how to use SCCB by ARM CPU GPIO.Key words:CMOS image sensor; SCCB; ARM CPU GPIO1. 概述CMOS图像传感器是近年发展起来的一种新型固体图像传感器,由于采用了相同的CMOS工艺,因此可以将像素阵列与驱动电路和信号处理电路等集成在同一块芯片上。
而且,现在越来越多的CMOS图像传感器芯片将A/D集成进去,因此除了模拟视频输出外,还可直接输出数字视频信号和同步信号。
这样,利用CMOS图像传感器构成图像采集系统时,传统图像采集卡的A/D、同步分离等电路就没有必要了,而仅需设计适当的接口电路。
现在,由CMOS图像传感器构成的所谓“单芯片成像系统”(Camera on Chip)已在包括视频图像获取和数字化、视频会议、可视电话、视频电子邮件、多媒体应用、数字相机等诸多领域有了广泛的应用和发展潜力。
美国的OmniVision(OV)技术有限公司是世界上较大的和主要的CMOS传感器供应商。
OV公司定义和配置了一种串行成像控制总线SCCB(Serial Camera Control Bus),它是一种3线串行总线,可以控制大多数OV公司的CMOS图像传感器。
为减少芯片封装,SCCB 可以在2线串行模式下工作。
OV系列传感器可以通过串行成像控制总线SCCB接口提供图像的全帧采样,窗口采样并且可以完全由用户来控制图像质量、格式和输出数据流。
所有的图像处理功能包括曝光控制、gamma、白平衡、色彩饱和度、色调控制等均可通过SCCB接口编程实现。
OV系列传感器通常有两种控制方法:上电重启方式和SCCB接口控制方式。
上电重启方式是复用芯片的视频数据总线。
在芯片上电复位后,视频数据引脚初始化为三态引脚,从外部读入控制信息设置芯片工作状态,在2048个时钟周期后视频数据总线恢复正常功能。
SCCB接口控制方式是通过SCCB接口,对状态控制寄存器直接进行读写控制,达到需要的工作状态。
从应用的角度而言,SCCB 方式更加灵活一些,但该方式下传感器必须工作在从模式(Slave Mode)下。
本文仅讨论SCCB接口控制方式。
当传感器仅仅作为一个从设备(Slave Device)工作,与其连接的必须是主设备(Master Device)。
一个主设备通过SCCB连接和控制至少一个从设备。
一个3线SCCB除了提供时钟(SIO_C)和数据(SIO_D)以外还有一个片选信号SCCB_E(图1所示),使其可以连接多个从设备。
经过修改的2线串行总线则省略了片选信号SCCB_E,因此它只能通过SCCB接口连接一个从设备(图2所示)。
图1 SCCB 3线连接图图2 SCCB 2线连接图与3线连接方式相比,2线连接方式要实现SCCB的通信则主设备必须能够维持总线上的数据线(SIO_D)在三态状态;如果主设备不能维持数据线在三态状态,那么另外一个可选择的方法就是过渡为由从摄像芯片(slave C AMERA C HIP)来声明通信。
2.1 SCCB_ESCCB_E信号是一个必须由主设备驱动的单向,低电平有效的控制信号。
它指示了数据传输的开始和结束。
SCCB_E从高电平变为低电平表示一个传输的开始,SCCB_E 从低电平变为高电平表示一个传输的结束。
在数据传输期间,SCCB_E必须维持在逻辑0,当SCCB_E为逻辑1时意味这此时总线空闲。
2.2 SIO_CSIO_C信号是一个必须由主设备驱动的单向控制信号。
它指出了每一个传输位。
当总线空闲时,主设备必须驱动SIO_C为逻辑1。
在传输开始后,当SIO_C被驱动为逻辑0,则一个数据传输开始。
在数据传输过程中SIO_C的一个逻辑1指示了一个单独的已传输位。
因此,SIO_D只能在SIO_C被驱动为0时出现。
2.3 SIO_DSIO_D信号是一个双向数据信号,可以被主设备或从设备驱动。
当总线空闲时该信号可以保持悬空或三态。
SIO_C的一个逻辑1代表了一位传输,因此SIO_D仅当SIO_C被驱动为逻辑0时出现。
3 数据传输3.1 传输开始SCCB_E由高电平变为低电平表示数据传输的开始(如图3所示)。
但是在声明数据传输开始之前,主设备必须驱动SIO_D为逻辑1以取得总线的控制权,这样做可以防止在总线上传输数据之前传播一个未知状态。
在开始传输阶段定义了两个时间参数:和。
是SIO_D的预处理(pre-charge)时间,即声明SCCB_E有效前SIO_D必须为逻辑1的这段时间。
的最小值是15ns。
是SCCB_E的预活动时间(pre-active),即SCCB_E 必须在SIO_D 变为低电平之前声明传输开始的时间。
图3 3线传输开始示意图以下代码片段说明了利用ARM CPU S3C4510B的GPIO来模拟SIO_C和SIO_D 作为主设备和图像传感器进行2线连接,其中P0模拟数据SIO_D,P1模拟时钟SIO_C。
若无特别声明,后面的代码均在此基础上建立。
#define IOPMOD (*(v olatile unsigned *)0x3ff5000)#define IOPDATA (*(v olatile unsigned *)0x3ff5008)v oid start(){IOPMOD = 0x03; /*set gpio P0 and P1 output mode*/IOPDATA = IOPDATA | 0x01;/*data = 1*/delay(1);IOPDATA = IOPDATA | 0x02;/*clk = 1*/delay(5);IOPDATA = IOPDATA & 0xfe;/*data = 0*/delay(5);}3.2 传输结束SCCB_E由低电平变为电高平表示数据传输的结束(如图4所示)。
在结束传输阶段定义了两个时间参数:和。
定义为SIO_D后处理(post-charge)时间,即SCCB_E 在声明传输结束以后SIO_D必须保持为逻辑1的时间。
的最小值是15ns。
定义为SCCB_E 的后活动(post-active)时间,即在SIO_D声明传输结束以后SCCB_E必须保持为逻辑0的时间,它的最小值是0ns。
图4 3线传输结束示意图2线连接SCCB传输结束代码参考如下:v oid stop(){IOPMOD = 0x03; /*set gpio output mode*/IOPDATA = IOPDATA & 0xfe;/*data = 0*/delay(1);IOPDATA = IOPDATA | 0x02;/*clk = 1*/delay(5);IOPDATA = IOPDATA | 0x01;/*data = 1*/delay(4);IOPDATA = IOPDATA & 0xfd;/*clk = 0*/}3.3 传输周期(Transmission Cycle)一个基本的数据传输我们称之为一个阶段(Phase),SCCB共规定了三种传输:3-阶段写传输周期2-阶段写传输周期2-阶段读传输周期(1)传输阶段( Transmission Phases)一个传输阶段总共包括9位,其中分为8位数据和第9位。
8位数据是顺序存放并且高位在前。
第9位可以是数据无关位(Don’t-Care Bit)或数据响应位(NA bit),具体使用哪种则根据数据传输是读事务还是写事务。
图5 传输阶段(2)3-阶段写传输周期3-阶段写传输周期是一个完整的写周期,它可以使主设备向特定的从设备写一个字节的数据。
主设备通过ID地址访问指定的从设备,子地址指定了从设备中的寄存器位置,主设备通过写8位数据来覆盖指定的地址。
3个阶段的第9位为数据无关位,默认为0。
从图5中我们可以看出对于3-阶段写传输周期,阶段1为ID地址,阶段2为子地址,阶段3为写数据。
(3)2-阶段写传输周期2-阶段写传输周期后紧跟着是2-阶段读传输周期。
主设备希望能够通过2-阶段读传输周期读取从设备中指定子地址的数据,2-阶段写传输周期的目的就在于确定从设备的子地址。
它的第九位将是数据无关位。
从图5中我们可以看出对于2-阶段写传输周期,阶段1为ID地址,阶段2为子地址。
(4)2-阶段读传输周期因为2-阶段读传输周期不能确定从设备的子地址,所以在它之前必须有一个3-阶段写传输周期或2-阶段写传输周期。
2-阶段读传输周期包括读取的8位数据和第九位数据无关位或数据响应位。
主设备须驱动数据响应位为逻辑1。
从图5中我们可以看出对于2-阶段读传输周期,阶段1为ID地址,阶段2为读取的数据。
需要特别注意的是ID地址。
每个从设备都有一个唯一的ID地址。
ID地址由7位组成,顺序从第7位到第1位,一共可以有128个不同的地址。
第8位是读写选择位,其作用是决定了当前传输周期的方向。
逻辑0代表了写周期,逻辑1代表了读周期。
该阶段的第9位必须为数据无关位。
如果主设备只连接了一个从设备,我们可以使用从设备的默认地址,当地址为0x42时是写周期,为0x43时是读周期。
子地址通常是指从设备的内部寄存器地址,通过3-阶段写传输周期可以覆盖从设备的指定寄存器的值,以此实现对从设备的控制和设置。
详细的控制和设置信息可以参考各个芯片的数据手册。