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

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

3天内不再提示

基于I2C总线的CMOS图像传感器接口电路设计

放人 来源:电气工程及其自动化学习 作者:电气工程及其自动 2022-11-17 20:43 次阅读

1引言

数码相机等图像消费类电子产品产业正在飞速发展,这使得图像传感器和数码相机专用集成芯片的研制获得巨大的市场支持。目前广泛使用的数码相机图像传感器主要是以下两种:CCD和CMOS。CCD图像传感器具有技术成熟、图像噪声小等优点,但由于制作工艺复杂,与标准工艺不兼容,且需要高电压供电,芯片功耗大,目前仅在型数码相机市场上占有一席之地。而CMOS图像传感器采用了CMOS工艺,可以将图像采集单元和信号处理单元集成到同一块芯片上,因而具有集成度高、功耗低、价格便宜的优点,具有很好的发展前景。随着噪声消除技术的改进,目前CMOS图像传感器正由中、低档数码相机向型数码相机发展。

5db31578-6675-11ed-b468-dac502259ad0.jpg

现在的CMOS图像传感器芯片大都把I2C总线的一个子集作为控制接口(如Motorola公司的MCM20027,Omnivision公司的OV9620等),因而用户可以很方便地对芯片进行编程操作。与其他串行总线相比,I2C总线以两根连线实现了全双工同步数据传送,可以极方便地构成多机系统,并进行扩展,适用于消费电子通信电子工业电子等领域的低速器件。I2C总线由双向数据线SDA和时钟线SCL组成川,用户使用集电极开路门以“线与”方式进行总线连接。图1为I2C总线的通信协议示意图,包括开始信号、结束信号、应答信号和数据有效等状态。当SCL持续为高电平时,SDA由‘1'跳变到‘0',表示开始信号;当SCL持续为高电平时,SDA由‘0'跳变到‘l',表示结束信号:在数据传输过程中,SDA在时钟高电平时有效,低电平时更换数据。开始和结束信号均由主I2C产生,通过SDA传输的数据以字节(8—bit为单位,高位在前,低位在后,在每个字节后面由接收端发送一个低电平的应答信号。

本文设计了一种基于I2C控制总线的CMOS图像传感器接口电路,能够有效控制CMOS图像传感器的指令,产生数码相机专用集成电路其他模块的同步时序,在MCU的控制下完成取景和拍照操作,并支持多种规格的CMOS图像传感器和液晶显示器。

2顶层设计

根据所设计的数码相机专用集成电路芯片的系统要求[2],CMOS图像传感器接口用来控制达400万像素多种规格的CMOS图像传感器,并且在MCU的控制下,能控制传感器芯片的自动/手动曝光和自动/手动白平衡及其他芯片支持的功能。该接口电路能够在取景和拍照两种模式下工作,在取景模式下,实现可编程的降采样处理,能够输出以4的倍数为基准的任意分辨率的图像,并接受多种规格的液晶显示器,取景速度达到30帧/s。

根据上述功能要求将CMOS图像传感器接口划分为三个模块:主I2C总线接口模块、寄存器文件接口和可编程降采样模块,其总体框图和输入输出端口线如图2所示。端口线主要有:①和MCU接口的连接,包括MCU_AB(地址总线),MCU_DB(数据总线),MCU_nWR(写使能),MCU_nRD(读位能),MCU—nCS(MCU操作选中信号)和MCU nINT(中断信号)②和CMOS图像传感器的连接,包括来自CMOS图像传感器的帧同步(VC L K)、行同步(H C L K)、像素同步(PCLK)、数据ADC(10位CMOS输出的数值),以及I2C总线的SDA,SCL,SCCB_E等:③和数码相机专用集成电路芯片的其他子模块相连,如VSYNC(帧同步)、HSYNC(行同步)、PSYNC(像素同步)、ADCOUT(输出图像数据)。

3模块设计

3.1寄存器文件模块

寄存器文件模块包括一个中断状态机和MCU接口。中断状态机用以控制主I2C总线模块,降采样处理模块和MCU接口的协调工作,它主要包括5个状态:INT_DECIDE,INT_I2C_READ,INT_MCU_READ,INT_I2C_WRITE和INT_CLEAR。状态机缺省状态为INT_DECIDE判决状态,表示状态机处于等待状态:INT_I2C_READ表示I2C,总线正在从CMOS传感器读数据:INT_12C_WRITE表示I2C总线正在从CMOS传感器写数据:INT_MCU_READ表示MCU正从I2C上读数据:INT_CLEAR表示清中断。

MCU接口通过给内部寄存器读写参数,使CMOS图像传感器接口电路能够实现取景、拍照和软复位的功能:并通过I2C总线给CMOS传感器的内部参数寄存器读写参数,实现对CMOS传感器进行各种参数设置,以充分发挥CMOS传感器的性能。其中内部寄存器包括控制寄存器和降采样寄存器,降采样寄存器主要给降采样处理模块提供可编程所需要的参数。控制寄存器为低4位有效,第0位为软复位位,当系统复位或系统设置该位为l时,整个接口置于复位状态;当系统设置该位为0时,则取消复位状态变为工作状态。第1和第2位一起用来控制拍照和取景操作,当两位均为1时表示拍照状态:当第1位为1,第2位为0时表示取景状态;第3位用来表示中断位。

3.2主I2C总线接口

由于CMOS图像传感器目前普遍采用的是I2C总线功能集中的一个子集,因此该接口比一个完整的主I2C总线要更简单。它的读写周期如下:当要进行I2C总线写操作时,先发送所使用的CMOS传感器特定ID写地址,紧接着发送需要写的寄存器的地址(sub_address),再发送数据(data);当进行I2C总线读操作时,先发送所使用的CMOS传感器特定ID写地址,紧接着发送需要写的寄存器的地址(sub_address),再发送CMOS传感器特定ID读地址,接收数据(data)。对于不同的CMOS传感器产品,它们的ID地址是不同的,例如Omnivision公司为60h(写)[3]、61h(读)Motorola公司为66h(写)[4]、67h(读)。

考虑该主I2C总线的读写周期的特殊性,将该I2C总线设计成如图3所示的总体结构。主要包括控制状态机、数据缓存器、SDA产生接收器、SCL产生器以及并-串转换和串-并转换。数据缓存器用来将要通过I2C总线传输的数据组合成所需要的格式,由于CMOS图像传感器的I2C总线特殊的读写操作格式,因此可以将需要传输的ID地址、sub address和data组合在一个30位的缓存器中,它的低六位用来表示高24位的3个字节的属性,以便正确的传输,通过这种数据组合,便于I2C总线传输和识别。串-并转换和并-串转换本质上是两个移位寄存器,用来将接收到的串行数据转变成并行数据或并行数据转变成要发送的串行数据。SDA产生接收器用宋生成主总线的控制命令如开始、结束和应答位等(和SCL配合工作),随后接收和读取数据。SCL产生器用来产生I2C总线的时钟信号和控制命令信号(和SDA配合工作)。控制状态机主要负责控制整个I2C总线的流程,其状态图如图4所示。主要包括以下八个状态:IDLE(等待读取或写入数据)、LOAD(加载需要传输的数据)、START(发送开始信号)、WRRD(I2C总线处于读取或写入数据状态)、DECIDE(判决当前状态是读取数据还是写入数据)、WR_ACK(写应答)、RD_ACK(读应答)、STOP(发送结束信号)。例如给CMOS图像传感器的一个寄存器写一个字节的数据,需要经历以下状态:IDLE→LOAD→START→WRRD→WR_ACK→WRRD→WR_ACK→WRRD→WR_ACK→STOP→IDLE;一个字节的写操作的ActiveHDL的仿真时序如图5所示。

3.3可编程降采样模块

可编程降采样模块是通过MCU给内部的降采样寄存器写入需要的降采样参数来实现可编程的,接口内一共有6个降采样参数寄存器:总行数寄存器(hrefprecnt)、总列数寄存器(pixprecnt)、行丢寄存器(hrefdropcnt)、列丢寄存器(pixdropcnt)、行降采样寄存器(vdscnt)、列降采样寄存器(hdscnt),各个寄存器参数所表示的意义如图6所示。操作过程如下:先跳过列丢寄存器值和行丢寄存器值数目的列和行,接下来保留总列数寄存器值和总行数寄存器值数目的列和行,在这些保留的行和列当中用列降采样寄存器和行降采样寄存器的值进行降采样:行降采样寄存器和列降采样寄存器分为两部分:保留和丢弃,保留和丢弃的像素和行的数目均为偶数且为连续的像素,从而保证降采样后输出的像素满足RGRG…RG或GBGB…GB的Bayer格式。通过这样几个降采样寄存器可以很方便实现的各种分辨率的降采样,能够输出任意4的倍数的分辨率的图像,因而可以很方便的支持多种规格的LCD显示器。

5e749a40-6675-11ed-b468-dac502259ad0.jpg

4电路的FPGA验证

在经过上述顶层设计和各个子模块的设计后,用Verilog语言[5]来实现,并用ActiveHDL来进行RTL级仿真,并对电路进行了FPGA验证,使用的芯片是Xilinx公司的SPARTANIIXC2S200PQ208,系统时钟为54MHz,FPGA综合的结果显示需要FPGA芯片的11%的SLICEs,22%的IOBs和25%的GCLKIOBs。整个测试流程由MCU控制,在拍照模式下,CMOS图像传感器的数据流经CMOS接口采样存储在SDRAM中,再由EPP接口上传至PC上:在取景模式下,则有LCD显示器实时显示。该接口电路在各种工作模式下功能验证正确。

FPGA验证通过后,作为数码相机专用集成电路芯片的一部分采用上华0.6μm工艺库进行了ASIC的后端自动综合,包括用Design Compiler(Synopsys公司)进行逻辑综合、Prime Time(Synopsys公司)做版图前验证、Silicon Ensemble(Cadence公司)做自动布局布线、Virtuoso(Cadence公司)做DRC和LVS,得到的版图面积约为3.7mm×3.7mm,综合频率为25MHz,在5V供电下,功耗约为150mW。

5结论

CMOS图像传感器接口电路的设计模块可以分为寄存器文件、主12C总线接口和可编程降采样模块3部分,经过电路的顶层设计和各个子模块的功能设计,进行了Verilog语言代码实现,用ActiveHDL进行了RTL级仿真,并进行了FPGA验证,功能设汁正确,并打算作为数码相机专用集成电路芯片的一部分到工艺厂流片。

审核编辑黄昊宇

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

    关注

    2526

    文章

    48113

    浏览量

    740152
  • 接口
    +关注

    关注

    33

    文章

    7641

    浏览量

    148520
收藏 人收藏

    评论

    相关推荐

    思特威推出CMOS图像传感器新品SC038HGS

    思特威,作为CMOS图像传感器领域的领先供应商,近日发布了一款高性能的0.3MP高帧率工业面阵CMOS图像
    的头像 发表于 01-25 16:07 346次阅读

    最简单的总线通讯!I2C通讯总线的原理原来这么好懂

    通讯I2C
    安泰仪器维修
    发布于 :2024年01月02日 11:16:31

    AT32F423 I2C使用指南

    AT32 的 I2C 总线接口用于处理微控制和串行 I2C 总线之间的通信,支持主机和从机模式
    发表于 10-26 06:33

    使用GPIO模拟I2C电路设计

    当使用 GPIO 模拟 I2C 时应如何进行电路设计
    发表于 10-23 08:22

    CCD图像传感器CMOS图像传感器的区别详解

    CCD传感器CMOS传感器是目前最常见的两种数字图像传感器,广泛运用于各类工业相机,个人数码相机,手机相机及摄像机等数字成像产品。本文谈C
    的头像 发表于 10-11 08:08 946次阅读
    CCD<b class='flag-5'>图像</b><b class='flag-5'>传感器</b>和<b class='flag-5'>CMOS</b><b class='flag-5'>图像</b><b class='flag-5'>传感器</b>的区别详解

    什么是CMOS图像传感器的量子效率光谱?

    量子效率光谱是CMOS图像传感器的关键参数之一,可以反映CMOS图像传感器对不同波长下的感光能力
    发表于 09-04 09:51 825次阅读
    什么是<b class='flag-5'>CMOS</b><b class='flag-5'>图像</b><b class='flag-5'>传感器</b>的量子效率光谱?

    I2C总线的使用与编程

    I2C总线是飞利浦公司在20世纪80年代初由S定义的一种二线制总线系统。I2C总线是一种双向的,专为简单但高效的控制应用而设计。 它广泛应用
    发表于 09-04 07:23

    使用M451 GPIO模拟I2C初始化6轴传感器

    应用程序: 这个样本代码是 M451 驱动, 并控制 6 轴传感器 MPU6050 到 I2C 接口 。 BSP 版本: M451 Series BSP CMSIS v3.01.0
    发表于 08-30 07:51

    使用M451 GPIO模拟I2C读取6轴传感器数据

    应用程序: 这个样本代码是 M451 驱动, 并控制 6 轴传感器 MPU6050 到 I2C 接口 。 BSP 版本: M451 Series BSP CMSIS v3.01.0
    发表于 08-23 06:03

    如何使用i2c接口获取温度传感器DS18B20数据?

    使用i2c接口获取ds18b20数据,并且进行数据处理
    发表于 08-16 07:45

    基于 FPGA 的模拟 I2C协议系统设计

    和外围提供 I2C 接口的芯片通信。例如低功耗的 CMOS 实时时钟/日历芯片 PCF8563、LCD 驱动芯片 PCF8562、并行口扩展芯片 PCF8574、键盘/LED 驱动
    发表于 08-14 18:21

    CMOS图像传感器的功能结构及工作原理

    CMOS图像传感器是一种典型的固体成像传感器,与CCD有着共同的历史渊源。CMOS图像
    发表于 08-11 09:49 4047次阅读
    <b class='flag-5'>CMOS</b><b class='flag-5'>图像</b><b class='flag-5'>传感器</b>的功能结构及工作原理

    CMOS图像传感器类型及3D堆叠

    CMOS图像传感器根据像素排列方式可以划分为面阵CMOS图像传感器和线阵
    发表于 07-07 10:00 2115次阅读
    <b class='flag-5'>CMOS</b><b class='flag-5'>图像</b><b class='flag-5'>传感器</b>类型及3D堆叠

    I2C连接ESP8266没有结果怎么结果?

    I2C OLED TFT 或一个 I2C 传感器用于测试。 然后我禁用 TFT 和传感器并只尝试主从。 我在来自 Web 的测试 PCB 上使用 ESP 8266 12F 模块。 所
    发表于 06-02 12:11

    求分享I2C传感器的ESP-201的工作示例

    我用我的 ESP-201 板制作 I2C 传感器玩球失败了 3 天。我在网上也找不到带有 I2C 传感器的 ESP-201 的工作示例。它总是不同的板(ESP-01,ESP-12),人
    发表于 05-31 10:46