首页 工作计划 工作总结 事迹材料 心得体会 述职报告 疫情防控 思想汇报 自查报告 党建材料 策划方案 教案设计 范文大全
  • 工作计划
  • 工作总结
  • 事迹材料
  • 心得体会
  • 述职报告
  • 疫情防控
  • 思想汇报
  • 自查报告
  • 党建材料
  • 策划方案
  • 教案设计
  • 范文大全
  • 基于S3C44B0嵌入式系统的SCCB设计与实现

    时间:2022-11-11 12:55:06 来源:正远范文网 本文已影响 正远范文网手机站

    摘 要:随着现代图像采集技术的迅速发展,CMOS图像传感器正在得到越来越广的应用。但目前绝大多数控制器没有SCCB总线接口,给其应用带来一定的不足。在介绍OmniVision公司的CMOS图像传感器中的SCCB总线的规范及总线构成和数据传输形式特点后,并针对低成本、低功耗的要求以基于ARM 7内核的三星公司的S3C44B0X平台上利用通用I/O接口与CMOS图像传感器OV7660芯片为例,说明了SCCB总线在嵌入式系统中的软硬件设计实现方法。

    关键词:CMOS图像传感器;S3C44B0;OV7660;SCCB

    中图分类号:TP273文献标识码:B

    文章编号:1004-373X(2008)22-183-04

    Realization andDesign of SCCB Based on S3C44B0 Embedded System

    YANG Kan1,SUN Yao1,ZHAN Yanyan2

    (1.Automation College,Harbin Engineering University,Harbin,150001,China;

    2.Information Engineering College,Shenyang Ligong University,Shenyang,110168,China)

    Abstract:With development of the image acquisition technique,CMOS image sensor is applying more and more widely.But the most MCUs have no SCCB bus interface,it offers some insufficiency.This paper introduces the specification of the OmniVision CMOS image sensor′s SCCB and the data form in the bus firstly.It expounds a realization of hardware and software of SCCB by the application which expands I/O port in S3C44B0 embedded system and OV7660 chip in the low cost,low energy request,it has got better effect in the practice application.

    Keywords:CMOS image sensor;S3C44B0;OV7660;SCCB

    现代图像采集技术发展迅速,各种采集方法已经相当成熟。随着CMOS技术与工艺的发展,CMOS图像传感器不仅在噪声上得到了有效改善,而且分辨率也已得到了明显提高,有的CMOS图像传感器已经达到千万像素以上。CMOS图像传感器由于可以将时序处理电路和图像信号的前端放大与数字化部分集成于一个芯片中从而使得COMS图像传采集芯片集成度不断提高,同时因为CMOS图像传感器和CCD传感器相比在的价格和使用上有明显的优势,因此其应用领域变得更加广泛,在低端产品的应用中有完全替代CCD传感器。目前的CMOS图像传感器芯片大都采用SCCB作为其控制总线,通过它设计人员可以很方便地对芯片中的控制寄存器进行访问编程操作以控制采集图像的格式和质量。然而目前绝大多数的控制器并没有对应的SCCB接口,所以需要用普通的I/O口来模拟SCCB接口。

    1 SCCB协议

    SCCB协议是OmniVision公司开发的串行摄像头控制总线(Serial Camera Control Bus)[1],它用于对CMOS图像传感器芯片中的寄存器进行读写。系统上电后需要对CMOS图像传感器进行初始化,以确定采集图像的开窗位置、开窗大小和彩色工作模式等,这些参数是受OV7660内部相应寄存器的值控制的,可通过SCCB总线对其进行设置。

    SCCB的接口有SCCE,SIO_C,SIO_D(SCCE是串行总线使能信号,SIO_C是串行总线时钟信号,SIO_D是串行总线数据信号线)三条引脚。OV7660芯片上没有SCCE引脚,但可以现实单主对单从方式的通信。SCCB的数据传输由主器件控制,主器件能够发出数据传输启动信号、时钟信号以及传送结束时的停止信号。通常主器件是微处理器,它寻址访问的设备都有1个惟一的地址(ID),使用软件寻址来识别总线上的从器件,省去了从器件的片选。因此,只需要2根线(串行时钟线SIO_C和串行数据线SIO_D),连接结构如图1所示。组成SCCB的SIO_C和SIO_D必须经过上拉电阻RP接到正电源上。

    SCCB协议中定义启动、停止、数据传输条件如图2所示:启动传输条件:当SIO_C为高电平时,如果SIO_D出现一个下降沿,则表明SCCB开始传输数据;停止传输条件:当SIO_C为高电平时,如果SIO_D出现一个上升沿,则表明SCCB停止传输数据。除了开始和停止状态,在数据传输期间,SIO_D上数据的传输受SIO_C的控制。当SIO_C为低电平时,SIO_D上的数据有效,SIO_D为稳定数据状态,SIO_C每出现1个正脉冲,将传送1位数据,其中2根线的上升和下降时延、高低电平的维持时间都有较严格的要求软件的延时时间要根据CPU速度和GPIO口的速度精确计算后才能使通讯保持顺畅。

    SCCB协议中定义的基本传输格式如图3所示,完整的数据传输包括2个或3个阶段。每一阶段包中含9位二进制数据,其中高8位为所要传输的8位数据,最低位根据主器件的数据传输是读操作还是写操作而确定。在进行主器件写操作时,全部阶段的最低位均是无关位(低或高电平均可);读操作时,第一阶段的最低位时无关位,第二阶段的最低位为NA——主器件驱动为高电平有效。

    SCCB协议定义了2种写操作,即三相写操作和两相写操作。三相写操作是往从器件的目的寄存器中写入数据。在三相写操作中,第一阶段写从器件的8位ID地址和无关位,第二阶段写从器件内的目标寄存器的8位地址和无关位,第三阶段写要求写入寄存器的8位数据和无关位。两相写操作只有三相写操作的前两个阶段。两相写操作的目的是为了确定读操作中的从器件地址,这是因为两相读操作不能提供所要求读取的寄存器的地址。

    SCCB协议定义两相读操作,它用于读取从器件目的寄存器中的数据。在第一阶段中写从器件读操作8位IDR和无关位,在第二阶段中读取寄存器中的8位数据和写NA bit。在两阶段读循环操作前,必须有一个两相或三相的写循环操作,以提供读操作中的寄存器地址。

    2 基于S3C44B0X的SCCB实现

    本设计系统由S3C44B0X与OV7660组成,实现软件模拟SCCB总线的功能。

    2.1 SCCB硬件设计方法

    S3C44B0X是韩国三星电子公司研发的,一款采用不带MMU的ARM7DMI内核的微处理器,可在其上运行μCLinux操作系统[2]。它提供高性能、低功耗、低价格的微处理器解决方案,可用于手持设备和其他通用设备。S3C44B0X的系统时钟最高可达到60 MHz,8 kB大小Cache或者是可选的内部SRAM,带自动握手的2通道UART,4通道定制器和PLL倍频器,以及有着丰富的外部资源接口。S3C44B0X提供了71个通用I/O口,但是并不提供SCCB接口。因此在本次设计选用PF口的PF0,PF1分别作为SIO_C和SIO_D接口来模拟SCCB总线。

    S3C44B0X采用0.25 μm工艺的CMOS标准宏单元和存储编译器,它的低功耗精简和出色的全静态设计特别适用对成本和功耗敏感的应用。同时S3C44B0X才采用了一种新的总线结构,即SAMBAⅢ(三星ARM CPU嵌入式微处理器总线结构)。S3C44B0X通过提供全面的、通用的片上外设,大大减少了系统电路中除处理器以外的元器件配置,从而最小化系统的成本。

    S3C44B0X的PF口是由PCONF、PDATF和PUPF三个控制寄存器来控制。当PCONF的低4位为0001时,PF0设置为输出(“开漏”输出)口,PF1设置为输入口;当PCONF的低4位为0101时,PF0和PF1均设置为输出(“开漏”输出)口。当PUPF的低2位为00时,PF0HE PF1均设置为上拉允许;当PUPF的低2位为11时,PF0和PF1均设置为上拉禁止。结合上述2个寄存器,通过对PDATF的低2位的写操作,可以模拟SCCB。控制系统的硬件框图如图4所示。

    OV7660是美国OmniVison公司开发的CMOS彩色图像传感器芯片[3]。它具有30万像素,在摄像手机,数字照相机等方面应用比较广泛。该芯片将CMOS光感应核与外围支持电路集成在一起,具有可编程控制与视频模/数混合输出等功能,该芯片运用专有的传感器技术,能够消除普通的光电干扰,例如噪声、灯光闪烁等,输出清晰、稳定的彩色图像。其性能特点有:单芯片1/5尺寸;1.8 V核电压,2.8 V I/O电压; 标准的SCCB接口;开窗功能,局部图像输出;视频信号输出:RGB/Raw RGB/YUV/YCbCr;自动曝光控制、自动白平衡、自动增益控制、自动亮度控制;图像质量控制,包括颜色饱和度、锐度、伽马校正等。

    通过串行图像控制总线(SCCB)控制接口,可以对OV7660芯片内部所有的寄存器的值进行修改,即可以设置成全帧、半帧、8位窗口输出。OV7660可在VGA格式下,通过用户的设置,将其图像品质设置为30帧/s,而且所有的图像处理功能(包括曝光控制、gamma校正、白电平平衡、彩色饱和度、色调控制)都可以进行设定,从而完成对OV7660采集的图像质量和格式控制。OV7660 CMOS图像传感器共有165个寄存器,其中79个为厂家保留,5个只读,包括产品ID、制造商ID等,余下的86个则可以由用户根据需要通过SCCB接口设置,是可读可写的,完成采集图像格式和质量的控制。

    2.2 SCCB总线软件实现

    软件模拟SCCB就是通过PUPF,PCONF和PDATF三个寄存器,在PF0,PF1接口上模拟出SCCB总线的状态。根据图2(c)所示,每一位数据的模拟分成数据改变、数据传输、数据保持3个阶段,这可以通过写PDATFA进行模拟。写操作中写“1”和写“0”的程序分别如下:

    if(data1&(0x80>>i))//写1

    {

    rPDATF|=0x002;DelayMs(10);

    rPDATF|=0x001;DelayMs(10);

    rPDATF&=0x1fe;DelayMs(5);}

    else//写0

    {rPDATF&=0x1ff;DelayMs(10);

    rPDATF|=0x001;DelayMs(10);

    rPDATF&=0x1ff;DelayMs(5);}

    读操作中的读“1”和读“0”的程序分别如下:

    rPDATF&=0x1fe;DelayMs(10);

    rPDATF|=0x001;DelayMs(10);

    if (rPDATF&=0x002)

    {

    data|=0x80>>i;//读1

    rPDATF&=0x1fe;DelayMs(5);}

    else //读0

    {rPDATF&=0x1fe;DelayMs(5);}

    在对最低位(第9位)的处理时,写操作时的处理方法如下:

    rPDATF&=0x1fe;DelayMs(10); //第9位的写操作

    rPDATF|=0x002;DelayMs(10);

    rPDATF&=0x1fe;DelayMs(5);

    读操作的程序如下:

    rPDATF=0x002;DelayMs(10); //第9位的读操作

    rPDATF=0x003;DelayMs(10);

    rPDATF&=0x1fe;DelayMs(5);

    根据SCCB协议,可以画出程序流程图,如图5(a)所示的写操作。即在写寄存器过程中要先发送从器件OV7660写操作地址ID(0X42)和无关位,然后发送写数据的目的寄存器地址和无关位,接着发送要写入的数据和无关位。需要指出的是,PF0总是为输出口;在传输无关位时,PF1口要设置为输入口,其他时候PF1为输出口。第一次写操作前,PUPF的高2位设置为00,使得PF0,PF1口上拉为11,以满足初次启动的条件。

    rPDATF&=0x1fe;DelayMs(5);

    读操作的程序如下:

    rPDATF=0x002;DelayMs(10); //第9位的读操作

    rPDATF=0x003;DelayMs(10);

    rPDATF&=0x1fe;DelayMs(5);

    根据SCCB协议,可以画出程序流程图,如图5(b)所示的写操作。即在写寄存器过程中要先发送从器件OV7660写操作地址ID(0X42)和无关位,然后发送写数据的目的寄存器地址和无关位,接着发送要写入的数据和无关位。需要指出的是,PF0总是为输出口;在传输无关位时,PF1口要设置为输入口,其他时候PF1为输出口。第一次写操作前,PUPF的高2位设置为00,使得PF0,PF1口上拉为11,以满足初次启动的条件。

    由于采用的是通用I/O接口模拟实现SCCB总线,在实际应用中,不同系统的负载特性也不一样;不同MCU的工作频率也有差异;由于不同器件的读、写周期不同,响应时间、波特率控制都需要考虑,以满足从器件的特性参数保证图像采集系统的正常工作。

    在采用三相写数据的方式中,如果给连续的寄存器些数据,写完一个寄存器后,OV7660会自动把寄存器地址加1,从而三相写数据变成了两相写数据,由于本设计中只需要对有限个不连续寄存器的数据进行更改,所以只对需要更改数据的寄存器进行写数据。对每一个变化的寄存器,都采用三相写数据的方法。

    3 结 语

    本文以S3C44B0X的GPIO接口模拟SCCB总线完成了其对COMS图像传感器OV7660芯片的寄存器控制。使得CMOS图像传感器OV7660工作于逐行扫描方式,图像采集窗口为320×2 400。通过SCCB接口对OV7660相关寄存器的设置:读OV7660的1C,1D寄存器,判断芯片是否正常; 设置0X12寄存器,设置窗口为320×240,输出位RGB格式。这样可以使CMOS图像传感器采集的图像可以根据使用者的要求改变图像格式和质量。

    参考文献

    [1]OmniVision Serial Camera Control Bus(SCCB)Functional Specification.OmniVision Technologies,Version:2.1,2003,2.

    [2]佚名.ARMSYS44B0-P嵌入式系统开发板使用说明.北京:北京航空航天大学出版社,2006.

    [3]OV7660/0V7161 COMS VGA(640×480) CAMERCHIP(datasheep) OmniVision Technologies,Version:1.91,2005,1.

    [4]OV7660/OV7161 COMS VGA (640x480) CAMERCHIP (datasheet).OmniVision Technologies,Version:1.91 2005,1.

    [5]王士元.C高级实用程序设计.北京:清华大学出版社,1996.

    [6]谭浩强.C程序设计.2版.北京:清华大学出版社,1999.

    [7]马忠梅.单片机的C语言应用程序设计.北京:北京航空航天大学出版社,1997.

    [8]钱刚,丁万山.基于ARM及CPLD的纸币图像采集系统的设计.计算机测量与控制,2007,15(5):683-685,697.

    [9]王翥,佟晓筠.接触式图像传感器的信号读取与补偿技术.今日电子,2002(5):14-15.

    [10]马宏伟,张军平,张建华,等.基于32位嵌入式系统的实时图像采集模块.电子技术应用,2003,29(4):12-14.

    作者简介 杨 侃 男,1979年出生,江苏太仓人,硕士研究生。主要研究方向为传感器测控技术,嵌入式系统。

    孙 尧 男,1964年出生,天津人,博士生导师,教授。主要研究方向为传感器测控。

    詹艳艳 女,1981年出生,辽宁沈阳人,助教。主要研究方向为信号处理。

    推荐访问:嵌入式系统 设计 S3C44B0 SCCB