实验4BF561图像采集实验.docx

上传人:b****5 文档编号:7382434 上传时间:2023-05-11 格式:DOCX 页数:22 大小:1.03MB
下载 相关 举报
实验4BF561图像采集实验.docx_第1页
第1页 / 共22页
实验4BF561图像采集实验.docx_第2页
第2页 / 共22页
实验4BF561图像采集实验.docx_第3页
第3页 / 共22页
实验4BF561图像采集实验.docx_第4页
第4页 / 共22页
实验4BF561图像采集实验.docx_第5页
第5页 / 共22页
实验4BF561图像采集实验.docx_第6页
第6页 / 共22页
实验4BF561图像采集实验.docx_第7页
第7页 / 共22页
实验4BF561图像采集实验.docx_第8页
第8页 / 共22页
实验4BF561图像采集实验.docx_第9页
第9页 / 共22页
实验4BF561图像采集实验.docx_第10页
第10页 / 共22页
实验4BF561图像采集实验.docx_第11页
第11页 / 共22页
实验4BF561图像采集实验.docx_第12页
第12页 / 共22页
实验4BF561图像采集实验.docx_第13页
第13页 / 共22页
实验4BF561图像采集实验.docx_第14页
第14页 / 共22页
实验4BF561图像采集实验.docx_第15页
第15页 / 共22页
实验4BF561图像采集实验.docx_第16页
第16页 / 共22页
实验4BF561图像采集实验.docx_第17页
第17页 / 共22页
实验4BF561图像采集实验.docx_第18页
第18页 / 共22页
实验4BF561图像采集实验.docx_第19页
第19页 / 共22页
实验4BF561图像采集实验.docx_第20页
第20页 / 共22页
亲,该文档总共22页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

实验4BF561图像采集实验.docx

《实验4BF561图像采集实验.docx》由会员分享,可在线阅读,更多相关《实验4BF561图像采集实验.docx(22页珍藏版)》请在冰点文库上搜索。

实验4BF561图像采集实验.docx

实验4BF561图像采集实验

 

实时数字信号处理

 

基于ADSP-BF561的图像采集系统

 

姓名:

专业:

学号:

日期:

目录

第一章基于ADSP-561的图像采集系统工作原理3

1.1CMOSSensor图像采集原理3

1.2TFTLCD图像显示原理4

第二章基于ADSP-561的图像采集系统设计6

2.1系统硬件结构框图6

2.2算法流程图设计6

2.2.1Main主程序流程图设计6

2.2.2CmosSensor初始化流程图设计7

2.2.3TFTLCD初始化流程图设计8

2.2.4图像传输行场同步设计9

2.2.5YUV-RGB图像格式转换算法10

第三章基于ADSP-561的图像采集系统实现11

3.1图像采集系统传输参数配置11

3.1.1CmosSensorPPI与DMA初始化参数配置11

3.1.2TFTLCDPPI与DMA初始化参数配置13

3.1.3I2C控制总线配置15

3.1.4TIM定时器配置15

3.2图像采集系统程序实现16

3.2.1Main主程序实现16

3.2.2CmosSensor子程序实现17

3.2.3TFTLCD子程序实现18

3.2.4图像快速处理子程序实现19

3.2.5图像慢速处理子程序实现19

3.3实验结果与分析21

3.3.1YUV格式图像读取21

3.3.2RGB格式图像读取22

第一章基于ADSP-561的图像采集系统工作原理

1.1CMOSSensor图像采集原理

CMOSSensor模组使用的是OV7648的CMOSSensor芯片。

OV7648是美国OmniVision公司开发的CMOS彩色图像传感器芯片,该芯片将CMOS光感应核与外围支持电路集成在一起,具有可编程控制与视频模/数混合输出等功能,该芯片运用专有的传感器技术,能够消除普通的光电干扰,例如噪声、灯光闪烁等,输出清晰、稳定的彩色图像。

其性能特点有:

(1)单芯片1/4尺寸

(2)2.5V操作电压

(3)I2C控制,标准SCCB接口

(4)开窗功能,局部图像输出

(5)视频信号输出:

RGB/RawRGB/YUV/YCbCr

(6)自动曝光控制/自动白平衡/自动增益控制/自动亮度控制

(7)图像质量控制,包括颜色饱和度、锐度、伽马校正等

OV7648具有640*480的图像象素阵列大小,即307200象素,具有12列、6行可选择性质。

时序发生器控制如下功能:

象素阵列控制和帧产生(VAG,QVGA输出);内部时钟信号产生和分配;帧率时序;自动曝光控制;外部时序(垂直同步信号VSYNC,水平参考信号HREF和象素时钟PCLK)输出以便外部电路读取图像。

OV7648的寄存器和许多功能通过SCCB高速串行接口(SIOC,SIOD)进行操作。

其硬件原理图如下图1.1所示。

图1.1硬件原理框图

Ov7648使用前需要进行一些寄存器配置操作,可分为三种。

(1)OV7648关于CPLD的配置

将OV7648启用,先对寄存器CtrlClrReg2赋值CLK_S0,再对寄存器CtrlSetReg1赋值CTRL_OV7648_OUTPUT。

(2)OV7648复位操作

进入复位,对寄存器CtrlSetReg1赋值CTRL_OV7648_RESET。

退出复位,对寄存器CtrlClrReg1赋值CTRL_OV7648_RESET。

(3)OV7648的寄存器设置

OV7648控制的I2C总线,使用ADSP-BF561的PF口模拟I2C总线的时序。

PF15口模拟I2C总线I2CData。

PF14口模拟I2C总线I2CCLK。

OV7648的I2C地址配置,对寄存器OV7648_IDENT_W赋值0x42,对寄存器OV7648_IDENT_R赋值0x43。

OV7648同步信号由24MHz晶振提供,LINE_VALID、PIXCLK由ADSP-BF561的PPI外设的PPI_FS1和PPI_FS2提供同步信号。

PPI寄存器配置,对寄存器PPI_FRAME赋值480,对寄存器PPI_COUNT赋值640*2-1,对寄存器PPI_DELAY赋值0x01,对寄存器PPI_CONTROL赋值0x001d|DMA32|PACK_EN。

1.2TFTLCD图像显示原理

TFTLCD模组使用的是TS35ND2501。

TS35ND2501是数字真彩液晶屏。

其解析度为320*RGB*240,输入接口为RGB24。

LCD硬件原理图如图1.2所示。

图1.2LCD硬件原理图

TFTLCD的配置有三类。

(1)TFTLCD关于CPLD的配置

TFTLCD启用进行的配置依次为,对寄存器CtrlClrReg1赋值0xff,对寄存器CtrlSetReg1赋值0x02,对寄存器CtrlSetReg2赋值0x03。

(2)TFTLCD的数据总线配置

TFTLCD同步信号由ADSP-BF561的PPI外设的PPI_FS1、PPI_FS2和PPI_FS3提供同步信号。

PPI的寄存器配置为,对寄存器PPI_FRAME赋值0xcb,对寄存器PPI_COUNT赋值959,对寄存器PPI_CONTROL赋值0x809E。

(3)TFTLCD的数据缓冲区配置

TFTLCD数据缓冲区由TFTLCD的时间同步数据和图像数据组成。

时间同步数据为320*3*22Byte,位于TFTLCD数据缓冲区的首部。

图像的尺寸为320*240,颜色类型RGB24,在数据缓冲区中线性连续排布。

图像数据大小为320*RGB24*240。

PPI外设DMA的寄存器配置:

对寄存器DMA0_CONFIG赋值0x1034,对寄存器DMA0_X_COUNT赋值480,对寄存器DMA0_X_MODIFY赋值2,对寄存器DMA0_Y_COUNT赋值262,对寄存器DMA0_Y_MODIFY赋值2。

第二章基于ADSP-561的图像采集系统设计

2.1系统硬件结构框图

系统硬件结构框图可分为三个部分,第一部分为OV7648CMOS摄像头,第二部分为ADSP核心板,第三部分为TFTLCD显示器。

硬件结构框图如下图2.1所示。

图2.1图像采集系统硬件结构框图

该系统以BF561为核心板,通过IIC总线控制OV7648,并使用PPI0输入模式接收OV7648数据,使用PPI1输出模式发送数据到LCD。

2.2算法流程图设计

2.2.1Main主程序流程图设计

图像采集系统设计中最重要的功能为OV7648图像实时采集以及LCD实时显示。

因此在设计中,使用无限循环函数处理接收的连续帧。

主函数流程图如下图2.2所示。

图2.2主函数算法流程图

其中在循环处理进程中,可以设定算法选择标志,设置0为选择快速图像处理算法,设置1为选择慢速图像处理算法。

2.2.2CmosSensor初始化流程图设计

OV7648的初始化包含五个部分:

(1)关闭并复位OV7648

(2)配置CPLD

(3)通过IIC发送OV7648寄存器配置信息

(4)PPI、DMA、TIM定时器等DSP片上外设设置

(5)设置中断向量表

CmosSensor初始化流程图如下图2.3所示。

图2.3OV7648初始化算法流程图

2.2.3TFTLCD初始化流程图设计

LCD的初始化包含四个部分:

(1)关闭LCD;

(2)配置CPLD;(3)PPI、DMA、TIM定时器等DSP片上外设设置;(4)分配发送至LCD图片数据的缓存空间;

LCD初始化流程图如下图2.4所示。

图2.4LCD初始化算法流程图

2.2.4图像传输行场同步设计

图像传输可分为行与场两个部分,场由行组成,一幅完整图像由一场的采样数据组成。

因此,设计两个定时器实现行场同步。

同步时钟设计如下图2.5所示。

图2.5行场同步时钟设计图

行同步一个周期为TH,包含四个部分:

THP、THB、THD、THF。

其中THD为显示区间,即真实有效的图像数据区间。

RGB的THD为320*3=960。

THP为5个采样周期(dot)。

THB=114dot。

THF=60dot。

场同步一个周期为TV,包含262个TH。

同理,TVD为显示区间,值为240。

TVP为3*1224个采样周期。

TVB=15TH。

TVF=4TH。

1TH=90+114+960+60=1224.

定时器行场同步配置流程如下图2.6所示

图2.6定时器行场同步设计流程图

2.2.5YUV-RGB图像格式转换算法

转换算法由矩阵变换实现,矩阵参数为设定值。

转换矩阵如下图2.7所示。

图2.7YUV-RGB图像装换算法流程图

R=Y+1.4075*(V-128)

G=Y–0.3455*(U–128)–0.7169*(V–128)

B=Y+1.779*(U–128)

第三章基于ADSP-561的图像采集系统实现

3.1图像采集系统传输参数配置

3.1.1CmosSensorPPI与DMA初始化参数配置

OV7648使用DSP的PPI0并行外设接口传输图像数据。

PPI0相关寄存器的初始化配置函数如下图3.1所示。

图3.1PPI0寄存器初始化配置程序图

程序配置的参数有4个:

(1)PPI控制寄存器PPI0_CONTROL

(2)PPI延时计数寄存器PPI0_DELAY

(3)PPI传输计数寄存器PPI0_COUNT

(4)PPI每帧线路数寄存器PPI0_FRAME

对PPI0_CONTROL寄存器首先执行的操作是清零,而后设置其初始值。

0x001d|DMA32|PACK_EN对应的16bit二进制位为0000000110011101。

寄存器初始化配置分析如下:

第0位:

PORT_EN——置1,使能PPI;

第1位:

PORT_DIR——置0,PPI处于接收模式,输入;

第2-3位:

XFR_TYPE——[3:

2]置11,输入模式下,非ITU-R656模式;

第4-5位:

PORT_CFG——[5:

4]置01,在非ITU-R656输入模式下,2或3个内部帧同步;

第7位:

PACK_EN——置1,包装模式使能;

第8位:

DAM32——置1,32bitDMA宽度使能;

第11-13位:

DLEN——[2:

0]置000,数据长度为8bit

第14位:

POLC——置0,PPI在PPIx_CLK上升沿采样数据

第15位:

POLS——置0,PPIx_FS1和PPIx_FS2上升沿有效

PPI0延时计数寄存器设置为0x01,即延时周期数为1。

PPI0传输计数寄存器设置为1280,即每行采样点数为1280。

PPI0每帧线路数寄存器设置为480,即每帧图像共有480行。

DMA相关寄存器的初始化配置如下图3.2所示。

图3.2DMA寄存器初始化配置程序图

程序配置的参数有8个:

(1)DMA配置寄存器DMA1_0_CONFIG

(2)DMA外设映射寄存器DMA1_0_PERIPHERAL_MAP

(3)DMA中断状态寄存器DMA1_0_IRQ_STATUS

(4)DMA起始地址寄存器DMA1_0_START_ADDR

(5)DMA内部循环计数寄存器DMA1_0_X_COUNT

(6)DMA内部循环地址增量寄存器DMA1_0_X_MODIFY

(7)DMA外部循环计数寄存器DMA1_0_Y_COUNT

(8)DMA外部循环地址增量寄存器DMA1_0_Y_MODIFY

DMA1_0_x的含义为1号DMA控制器的0号通道。

DMA16位配置寄存器分析:

第7位:

DI_EN,置1为数据中断使能;

第5位:

RESTART,置1为DMA缓冲清除,直接丢弃;

第4位:

DMA2D,置1为二维DMA模式,X、Y都包含;

第2-3位:

WDSIZE,置10,即WDSIZE_32,为32bit传输,同时代表指针寄存器大小为4,即地址增量为4字节。

第1位:

WNR,置1,指定存储器写。

外设映射寄存器DMA1_0_PERIPHERAL_MAP设置为0x0000。

在1号DMA控制器0号通道的条件下,默认的外设映射为PPI0。

中断状态寄存器DMA1_0_IRQ_STATUS设置为3。

二进制位为0000000000000011。

作用为禁止DMA通道

起始地址寄存器DMA1_0_START_ADDR,当前对象的数据缓冲器的起始地址,为用户输入。

内部循环计数寄存器DMA1_0_X_COUNT设置为(640*2)/4,代表640个像素点,每个点有两组8bit数据(YUV格式)。

内部循环地址增量寄存器DMA1_0_X_MODIFY设置为4,指针寄存器增量为4字节。

外部循环计数寄存器DMA1_0_Y_COUNT设置为480,代表480行。

内部循环地址增量寄存器DMA1_0_Y_MODIFY设置为4,指针寄存器增量为4字节,代表一行的最后一个字与下一行第一个字之间的偏移量。

启动与停止的分析在3.2.2中说明。

3.1.2TFTLCDPPI与DMA初始化参数配置

LCD使用DSP的PPI1并行外设接口传输图像数据。

PPI1相关寄存器的初始化配置函数如下图3.3所示。

图3.3PPI1寄存器初始化配置程序图

程序配置的参数有3个:

(1)PPI控制寄存器PPI1_CONTROL

(2)PPI延时计数寄存器PPI1_DELAY

(3)PPI传输计数寄存器PPI1_COUNT

对PPI1_CONTROL寄存器首先执行的操作是清零,而后设置其初始值。

0x8000|PACK_EN|DMA32|0x0010|XFR_TYPE|PORT_DIR对应的16bit二进制位为1000000110101110。

寄存器配置分析如下:

第1位:

PORT_DIR——置1,PPI处于发送模式;

第4-5位:

PORT_CFG——置10,2或3个外部帧同步。

第15位:

POLS——置1,PPIx_FS1和PPIx_FS2下降沿有效

DMA32与PACK_EN为数据打包选项,将4个字节的数据合成一个32bit数据。

PPI1延时计数寄存器设置为0xcb,即延时周期数为203。

PPI1传输计数寄存器设置为960,即每行采样点数为960。

DMA相关寄存器的初始化配置如下图3.4所示。

图3.4DMA寄存器初始化配置程序图

程序配置的参数有8个:

(1)DMA配置寄存器DMA1_1_CONFIG

(2)DMA外设映射寄存器DMA1_1_PERIPHERAL_MAP

(3)DMA中断状态寄存器DMA1_1_IRQ_STATUS

(4)DMA起始地址寄存器DMA1_1_START_ADDR

(5)DMA内部循环计数寄存器DMA1_1_X_COUNT

(6)DMA内部循环地址增量寄存器DMA1_1_X_MODIFY

(7)DMA外部循环计数寄存器DMA1_1_Y_COUNT

(8)DMA外部循环地址增量寄存器DMA1_1_Y_MODIFY

DMA1_1_x的含义为1号DMA控制器的1号通道。

DMA16位配置寄存器分析:

第5位:

RESTART,置1为DMA缓冲清除,直接丢弃;

第4位:

DMA2D,置1为二维DMA模式,X、Y都包含;

第2-3位:

WDSIZE,置10,即WDSIZE_32,为32bit传输,同时代表指针寄存器大小为4,即地址增量为4字节。

外设映射寄存器DMA1_1_PERIPHERAL_MAP设置为0x1000。

在1号DMA控制器1号通道的条件下,默认的外设映射为PPI1。

中断状态寄存器DMA1_1_IRQ_STATUS设置为3。

二进制位为0000000000000011。

作用为禁止DMA通道

起始地址寄存器DMA1_1_START_ADDR,当前对象的数据缓冲器的起始地址,为用户输入。

内部循环计数寄存器DMA1_1_X_COUNT设置为(320*3)/4,代表320个像素点,每个点有三组8bit数据(RGB格式)。

内部循环地址增量寄存器DMA1_1_X_MODIFY设置为4,指针寄存器增量为4字节。

外部循环计数寄存器DMA1_1_Y_COUNT设置为262,代表262行。

内部循环地址增量寄存器DMA1_1_Y_MODIFY设置为4,指针寄存器增量为4字节,代表一行的最后一个字与下一行第一个字之间的偏移量。

启动与停止的分析在3.2.3中说明。

3.1.3I2C控制总线配置

I2C总线的主要作用为配置OV7648的控制寄存器。

寄存器参数与所在地址如下图3.5所示。

图3.5OV7648控制寄存器参数程序图

获取I2C总线控制权后,数据传输过程如下图3.6所示。

图3.6控制寄存器参数传输程序图

3.1.4TIM定时器配置

TIM定时器配置如下图3.7所示。

图3.7定时器初始化配置程序图

定时器10实现行同步,时钟周期为1224个点采样周期,脉冲宽度为5个点采样周期。

设置为脉冲宽度可调模式。

定时器11实现场同步,时钟周期为1224*262(320688)个点采样周期,脉冲宽度为1224*3(3672)个点采样周期。

设置为脉冲宽度可调模式。

3.2图像采集系统程序实现

3.2.1Main主程序实现

主函数根据算法流程图编写,如下图3.8所示。

图3.8程序主函数图

3.2.2CmosSensor子程序实现

OV7648相关的子程序实现可分为两个部分:

(1)OV7648初始化

(2)OV7648启动与停止

初始化程序依据算法流程图编写,如下图3.9所示。

图3.9OV7648初始化程序图

OV7648启动程序如下图3.10所示。

图3.10OV7648启动部分程序图

启动过程需要进行的主要操作有四个:

(1)再次初始化OV7648所使用的PPI0外设

(2)设置DMA控制寄存器的值,开启DMA

(3)设置PPI0控制寄存器的值,开启PPI0

(4)使能定时器8与定时器9

OV7648关闭程序如下图3.11所示。

图3.11OV7648关闭部分程序图

关闭过程需要做的操作有三个:

(1)DMA控制寄存器置零,关闭DMA

(2)PPI0控制寄存器置零,关闭PPI0

(3)失能定时器8与定时器9

3.2.3TFTLCD子程序实现

TFTLCD相关的子程序实现可分为两个部分:

(1)LCD初始化

(2)LCD启动与停止

初始化程序依据算法流程图编写,如下图3.12所示。

图3.12LCD初始化程序图

LCD启动程序如下图3.13所示。

图3.13LCD启动部分程序图

启动过程需要进行的主要操作有三个:

(1)设置DMA控制寄存器的值,开启DMA

(2)设置PPI1控制寄存器的值,开启PPI1

(3)使能定时器10与定时器11

LCD关闭程序如下图3.14所示。

图3.14LCD关闭部分程序图

关闭过程需要做的操作有三个:

(1)DMA控制寄存器置零,关闭DMA

(2)PPI1控制寄存器置零,关闭PPI1

(3)失能定时器10与定时器11

3.2.4图像快速处理子程序实现

图像快速处理子程序为YUV2RGB_Fast()。

子程序实现如图3.15所示。

图3.15图像处理快速算法程序图

3.2.5图像慢速处理子程序实现

图像慢速处理子程序可分为两个部分:

(1)640*480图像转换为320*240图像

(2)对转换后图像进行处理,将YUV图像格式改为RGB

尺度变换程序如下图3.16所示。

图3.16图像处理慢速算法尺度转换程序图

输入为640*320图像。

在设置输出像素时,输入指针在每列像素上隔点采样,在每行像素上隔行采样,将其赋予输出指针。

转换后图像大小为320*240。

处理后图像的格式转换程序如下图3.17所示。

图3.17图像处理慢速算法格式转换程序图

3.3实验结果与分析

本次实验实现了图像实时传输,实验结果为OV7648采集到的图像经过实时处理成功显示在LCD屏幕上。

为了增强实验效果,通过VisualDSP++集成开发环境读取不同地址的不同格式图像至PC端显示。

3.3.1YUV格式图像读取

读取地址及图像格式大小的参数配置如图3.18所示。

图3.18YUV图像读取参数配置图

读取图像显示如下图3.19所示。

图3.19YUV图像读取显示图

图像从地址0x40000000读取成功,采用格式为UYUV[4:

2:

2],大小为640*480。

3.3.2RGB格式图像读取

读取地址及图像格式大小的参数配置如图3.20所示。

图3.20RGB图像读取参数配置图

读取图像显示如下图3.21所示。

图3.21RGB图像读取显示图

图像上方出现黑框的原因是:

实际图像地址并不是从0x20000000开始的,实际地址应该为:

0x20000000+(19*320*3)

转换为16进制为0x20004740。

因此,从0x20004740地址开始读取即可消除黑框。

黑框的数据代表的信息为图像的配置信息,与LCD显示相关。

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 自然科学 > 物理

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2