0引 言
1系统总体方案
2系统硬件设计
2.1 ARM与CMOS的接口
ARM芯片选用具有ARM7TDMI内核的LPC2106,通过LPC2106的GPIO模拟SCCB总线协议设置OV6620的功能寄存器。使用LPC2106中断口引入OV6620的图像输出垂直同步信号VSYNC,以中断方式同步图像数据输出。OV6620的Y0~Y7通道输出的8位并行数据先通过AL4V8M440缓存,再进入LPC2106中。
AL4V8M440为FIFO存储器,作用是对CMOS传感器所采集的图像数据进行缓存,调节ARM同CMOS之间速度的差异,从而采集到完整图像。
2.2 ARM与SD卡接口
SD卡支持SPI和BUS两种接口模式,本系统采用SPI接口模式。SD卡的DAT0接到MOSI,CLK(时钟线)接到SCK,CMD(命令线)接到MOSI,CS接到P0.14。SD卡支持单线和4线读/写,前者通过DAT0进行数据串行传输,CS作为中断口,最高传输速率25 Mbps;后者通过DAT0~DAT3分别进行串行数据传输,最高传输速率100 Mbps。本系统选用的是前者,可以节省硬件资源,实现方便,ARM与SD卡接口的硬件结构框图如图3所示。
[page]
3系统软件设计
3.1 ARM与CMOS的软件接口设计
3.1.1 OV6620的寄存器设置
由于SCCB不支持多字节的读写,NA位必须为高电平。另外,SCCB没有重复起始的概念,因此在SCCB的读周期中,当主机发送完片内寄存器地址后,必须发送总线停止条件。不然在发送读命令时,从机将不能产生Don\'t care响应信号。
由于I2C和SCCB的一些细微差别,所以采用普通IO口P0.22,P0.23模拟SCCB总线的方式。SCCB的写周期直接使用I2C总线协议的写周期时序;而SC-CB的读周期,则增加一个总线停止条件。OV6620功能寄存器的地址为0x00~0x50(其中,不少是保留寄存器)。通过设置相应的寄存器,可以使OV6620工作于不同的模式。
camera_set_register()为设置寄存器函数,它的第1个参数OV6620_addr为宏定义的芯片地址0xC0,第2个参数为片内寄存器地址,第3个参数为相应的寄存器设定值。
3.1.2 OV6620采集过程
OV6620有4个同步信号:VSYNC(垂直同步信号)、FODD(奇数场同步信号)、HREF(水平同步信号)、PCLK(像素同步信号)。当采用连续扫描方式时,只使用VSYNC和HREF、PCLK三个同步信号,如图2所示。
LPC2106的1个外部中断引脚分别作为VSYNC信号的输入,相应的中断服务程序分别为Vsync_IRQ(),HREF接LPC2106的普通IO口,PCLK接FIFO存储器的读时钟。
图像采集的基本流程为:当用SCCB初始化好OV6620后,使能VSYNC对应的中断,在Vsync_IRQ()中断服务程序中判断是否已取得一帧图像数据。若不是,则打开FIFO的写使能,将一帧图像数据写入FIFO存储器中;若是,则关闭FIFO的写使能,CMOS不向FIFO存储器,而等待ARM读取FIFO存储器的一帧图像数据。
3.1.3图像提取过程
图像提取的基本流程为:当采集数据已经存放在FIFO中,利用ARM取出数据,再传输给上位机。先对FIFO进行读复位,使FIFO指针指向首地址,再根据OV6620所输出RGB数据的格式进行读取。
其中,提取过程最重要的是OV6620所输出RGB数据格式,它影响到提取图像的准确性。本系统应用的是8位输出,其数据格式见表1所示。
从表1中可以看出,第一行Y通道是无效数据应该去除,从第二行开始读取,在一行之内,B、R数据只在奇次项出现,G数据只在偶次项出现。而在每一行内,偶数点的R数据、B数据可通过分别对其两侧的2个点的R和B数据求平均值得到。
这样,一幅图像就提取完了,可以直接存成二进制文件(本系统采用串口输出到PC进行显示处理)或者存储到SD卡上。
3.2 ARM与SD卡的软件接口设计
ARM同SD卡接口有SPI和BUS两种接口模式,本系统采用SPI接口模式,这样可以直接利用LPC2106自带的SPI接口进行数据传输,实现方便。SD卡的SPI通道由以下4个信号组成:CS(片选),CLK(时钟),DataIn(主机到卡的数据信号)和DataOut(卡到主机的数据信号)。CS是SD卡的片选信号线,在整个SPI操作过程中,必须保持低电平有效,CLK用于同步,DataIn不但传输数据,还发送命令,同样DataOut除了发送数据外还传送应答信号。
[page]
4实验结果
5结语
上一篇:德州仪器推出新型低功耗音频编解码器
下一篇:电磁干扰的类型和来源以及干扰滤波器综述
推荐阅读最新更新时间:2023-10-12 20:14