西南科技大学城市学院本科生毕业论文
下面的一些变量,各自含义如下: CoDstWidth: Codec 路径的目标宽度 CoDstHeight: Codec 路径的目标高度 PrDstWidth: Preview 路径的目标宽度 PrDstHeight: Preview 路径的目标高度 WinHorOffset: 水平方向窗口偏移的大小 WinVerOffset: 垂直方向窗口偏移的大小 CoFrameBuffer: Codec DMA起始地址 PrFrameBuffer: Previe DMA起始地址
WinOfsEn: 窗口偏移使能,在窗口选择寄存器的第31位设置,当第31位值为0时,没有窗口偏移,当第31位值为1时,窗口偏移使能。缩放比例图解如图4-10所示。
图4-10 缩放比例图解
[5]
22
西南科技大学城市学院本科生毕业论文
Main Burst Size: 主脉冲大小 Remained Burst Size:保留脉冲大小 ②主要寄存器的配置 源格式寄存器(CISRCFMT)
4.4 OV7725图像传感器模块 OV7725传感器介绍
高敏感度、低功耗工作方式;
低电压供电,适合嵌入式便携产品的应用;支持标准的 SCCB 接口; 支持 SXGA、VGA、QVGA、QQVGA、CIF、QCIF、QQCIF 格式窗口图像;支持Raw RGB(RGB4:2:2)、YUV(4:2:2)和 YCbCr(4:2:2)格式图像;
支持自动图像控制函数,包括自动曝光控制(AEC)、自动增益控制(AGC)、自 动白平衡(AWB)、自动黑度校准(ABLC);
支持图像质量控制,包括色彩饱和度、色调、gamma 校正、锐度、镜头校正、降
噪;
0V7725关键参数
23
西南科技大学城市学院本科生毕业论文
CMOS图像传感器需要控制器S3C2440的驱动才能正常工作,并输出正确的图像数据。为了实现CMOS传感器和存储器(SDRAM)之间的快速传输,可以采用DMA方式。DMA是一种快速传送数据的机制 ,它不需要CPU的参与而实现高速外设和存储器之间自动成批交换数据的操作方式。在图像开始采集之前,S3C2440通过GPIO模拟SCCB总线初始化图像传感器OV7725,设置如扫描方式、数据格式等参数。当初始化完成之后就可以进行图像数据采集了。图像传感器模块程序设计流程图如图4-11所示。
开 始 S3C2440 GPIO初始化 时钟控制,设置UPLL、UCLK、CAMCLK的值 外部相机处理器复位 OV7725初始化,准备写入数据 设置OV7725寄存器的值 24 结 束 西南科技大学城市学院本科生毕业论文
图4-11 图像传感器模块程序设计流程图
SCCB总线是图像传感器OV7725与处理器S3C2440之间进行数据交换的通道,有必要对总线的数据传输过程了解清楚。SCCB 是OmniVision 公司定制的串行摄像头控制总线(Serial Camera Control Bus) ,它用于对摄像头的寄存器进行读写,以达到对摄像头输出图像的控制。两线制SCCB 与I2C 总线类似,是一种双向二线制同步串行总线。SCCB 的数据传输由主器件控制,主器件能够发出数据传输启动信号、时钟信号以及传送结束时的停止信号。通常主器件都是微处理器,它寻址访问的设备称为从器件。为了进行通讯,每个接到SCCB 的设备都有一个唯一的地址( ID) ,使用软件来识别总线上的从器件,省去了从器件的片选。因此,只需要两根线(串行时钟线SIO-C 和串行数据线SIO-D) ,挂接到总线上的器件就能相互进行信息传递,组成SCCB 的SIO-C 和SIO-D必须经过上拉电阻RP接到正电源上,连接到总线的器件的输出级必需为―开漏‖或―开集‖的形式,以便在多个主或从需求仲裁的情况下完成功能。在SCCB 协议中定义开始和停止条件如下:开始条件:在SIO-C为高电平时,SIO-D 出现一个下降沿,则SCCB 开始传输;停止条件:在SIO-C 为高电平时,SIO-D 出现一个上升沿,则SCCB 停止传输。除了开始和停止状态,在数据传输时,当SIO-C 为高电平时,必需保证SIO-D上的数据的稳定,也就是说,SIO-D 上的数据只能在SIO-C 为低电平时改变。
与I2C总线类似,完整的数据传输包括两个或三个阶段。每一阶段包中含9 位二进制数据,其中高8 位为所要传输的8 位数据,最低位根据主器件的数据传输是读操作还是写操作而确定。在进行主器件写操作时,全部阶段的最低位均是无关位(低或高电平均可) ;读操作时,第一阶段的最低位是无关位,第二阶段的最低位为NA。
在SCCB 协议中定义了两种写操作,即三相写操作和两相写操作。三相写操作是往从器件的目的寄存器中写入数据。在三相写操作中,第一阶段写从器件的8 位IDW 和无关位,第二阶段写从器件目标寄存器的8 位地址和无关位,第三阶段写要求写入寄存器的8 位数据和无关位; 两相写操作只有三相写操作的前两个阶段。两相写操作的目的是为了确定读操作中的从器件地址,这是因为两相读操作不能提供所要求读取的寄存器的地址。SCCB 协议定义了两读操作,它用于读取从器件目的寄存器中的数据。在第一阶段中写从器件读操作8 位IDR 和无关位,在第
25
西南科技大学城市学院本科生毕业论文
二阶段中读取寄存器中的8 位数据和写NA位 。在两阶段读循环操作前,必需有一个两相或三相的写循环操作,以提供读操作中的寄存器地址。
在此模块中需要编写如下几个函数:s3c2440_cam_gpio_init( )(GPIO初始化函数);s3c2440_camif_init( )(相机接口初始化函数);OV9650_init( )(图像传感器初始化函数);OV9650_config( )(图像传感器配置函数)。
至此,图像传感器模块编写完毕,可以进行通过处理器对图像传感器进行测试。
S3C2440A Camera接口寄存器
Camera 接口初始化
static void s3c2440_cam_gpio_init(void) {
//--- changed, hzh rGPJCON = 0x2aaaaaa; rGPJDAT = 0;
rGPJUP = 0; //pull-up enable }
void s3c2440_camif_init(void) {
26
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库机器人视觉识别系统研究(6)在线全文阅读。
相关推荐: