TI达芬奇系列芯片DM368在文章前端信号采集中的应用分析

详细介绍了DM368文章前端支持的输入数字信号格式。以MT9D131和PC VGA信号为例,两种信号的时序都与DM368文章前端的配置参数相匹配。同时介绍了如何合理配置和使用VD中断,为DM368用户正确采集数据提供了参考。本文的内容也可以为DM8127、DM385芯片的用户在使用摄像机并行输入口进行采集时提供帮助。

1前言

DM368是TI达芬奇系列芯片之一,广泛应用于IPNC(IP网络摄像机)的应用领域。对于IPNC应用,文章信号首先需要送入DM368,这就需要使用VPFE-文章处理前端。DM368的文章前端主要包括四个部分:IPIPEIF(图像管道接口)、ISIF(图像信号接口)、IPIPE(图像管道)和Resizer(缩放器)。

IPIPEIF的作用是连接数据路径,将数据整合成后端模块接口可以访问的格式/大小。ISIF是文章信号的输入端口,可以支持Bayer格式的RAW数据(原始数据)或YUV数据的输入。IPIPE主要和ISP打交道。Resizer在图像缩放和图像存储格式转换中起作用。本文基于IPIPEIF将外部并口输入数据发送到ISIF进行处理。

图一。文章处理前端

如何将输入信号对应到DM368文章前端参数?如何获取外部RAW数据以及RAW转换成的对应YUV数据?如何只采集或处理图像的一部分?如何配置VD中断触发的时序?VD中断期间我们应该怎么处理?希望你看完这篇文章能找到相应的答案。

DM 368的2个前端信号输入

如果用户通过外部传感器向DM368输出RAW数据或YUV数据,为了收集正确的数据,我们需要知道DM368的文章前端如何解释信号以获得正确的数据。如果用户使用FPGA向DM368输出信号,需要了解DM368文章前端支持的信号格式,正确输出DM368可以接收的信号。

2.1输入信号的物理连接

DM368文章前端支持并行信号输入,包括PCLK(像素时钟)、8至16位数据线、HD(行同步)信号和VD(场同步)信号。它可以支持高达16位的拜耳格式的原始数据输入。它还可以支持8位或16位YUV422信号输入,具有嵌入式同步或外部信号同步功能。如果是嵌入式同步,就不需要接入HD信号和VD信号。对于嵌入式同步的输入信号,DM368硬件可以自动分析数据中嵌入的同步信息,供芯片内部使用。DM368的PCLK最高可支持120MHz,720p60、1080p30等分辨率的输入,以及五百万、八百万等更大的分辨率,但帧率是非实时的(小于30帧)。

DM368的文章前端ISIF可以支持主模式或从模式。主模式意味着PCLK、VD和HD由DM368发出。在从机模式下,外部设备向DM368提供PCLK、VD和HD信号。在实际应用中,大多数情况下使用从机模式。

2.2 DM368文章前端输入信号分析

2 . 2 . 1 isif对信号的分析

无论是在主模式还是从模式下,DM368的文章前端接口ISIF都具有相同的信号处理。

2.帧图像格式

在图2的时序中,通常认为水平同步和垂直同步信号都在高电平有效,因此需要配置ISIF的modem.hdpol=modem.vdpol=0。在这种情况下,水平同步信号的宽度是以像素为单位的HDW (HD脉冲宽度)。垂直信号宽度为VDW (VD脉冲宽度),行数为单位。PLLN(每行像素数)是每行的像素数,即相邻两个行同步信号之间的像素数。LPFR是每帧行数的缩写,它表示每帧数据中有多少行,也表示两个相邻场同步信号之间的行数。在从机模式下,PLCK/HD/VD都是外部输入,不需要配置ISIF寄存器HDW/VDW/PLLN。图2中的灰色区域称为有效数据区,即用户想要的有效数据。对角线阴影区域是空白区域。空白区域也是文章前端处理必不可少的一部分,我们将在第3节详细介绍。

如果您使用的是单次拍摄模式,或者您需要在连续模式下保存原始数据,那么您需要配置SPH(起始像素水平起始像素)。SLv0/1(起始行垂直场0/1垂直奇偶场起始行),LNH(行中的像素数),LNV(垂直线的行数)。这是告诉DM368需要将输入图像的哪一部分写入DDR。也就是说,你可以选择只输出某一部分有效数据到DDR。

在同步信号有效后,SPH告诉硬件从哪个像素开始写DDR。请注意,这里的高清信号有效起始点是指同步信号的有效边沿,而不是同步信号脉冲结束后的像素计数起始点。例如,如果HD信号高电平有效,即在HD上升沿后开始计数,接收到的数据将在LNH PCLK(即像素)后写入DDR。同样,SLV0/1告诉硬件需要将哪一行数据写入DDR,LNV决定将多少行数据写入DDR。因此,调整ISIF的SPH、SLV0/1、LNH和LNV可以调整保存到DDR的原始数据在原始图像中的位置以及原始数据段的大小(长度和宽度)。如果你不不需要将原始数据写入DDR,您不需要不需要配置SPH、SLV0/1、LNH和LNV。

如果同步信号被配置为在低电平有效,则图2的时序也是可能的。然而,如果该配置在低级别是活动的,则相关参数将会改变。例如,水平同步信号宽度变为PPLN-HDW,垂直同步信号宽度变为LPFR- VDW。SPH和SLV0/1都变成0。因此,在配置ISIF相关寄存器之前,有必要确定同步信号的极性。为了采集正确的数据,DM368的采样数据时序必须与传感器输出数据的时序相匹配。在DM368上,默认情况下,PCLK下降沿对数据进行采样。用户可以通过修改系统模块寄存器VPSS_CLK_CTRL中的pclk _ inv [2]位来改变PCLK采样边沿。

2 . 2 . 2 ipipe和Resizer对信号的分析和处理

如果ISIF通过ipipe ipif直接连接到IPIPEEIPE,那么所有的图像数据,也就是图2中的全局帧,都会传输到IPIPIPE。用户需要在IPIPE中配置src _ HPS(水平起始位置)、SRC_VPS(垂直起始位置)、src _ hsz(水平处理大小)、SRC_VSZ(垂直处理大小),以确认全局帧的哪一部分需要ipipipe处理。

在resizer的模块内,还有SRC_HPS、SRC_VPS、SRC_HSZ、SRC_VSZ可以配置resizer处理的图像的区域。如果IPIPE输出给resizer的已经是要处理的区域,那么可以将SRC_HPS和SRC_VPS配置为0,resizer的SRC_HSZ和SRC_VSZ等于ipippe的SRC_HSZ和SRC_VSZ。如果ISIF的输出通过IPIPEIF(不带IPIPE)直接到resizer,resizer的SRC_HPS和SRC_VPS可以不能配置为0,所以用户需要根据要处理的图像合理配置resizer的SRC_HPS和SRC_VPS寄存器。

2.2.3原始数据和YUV数据的匹配

在连续模式下,用户通过resizer获得YUV输出,同时通过ISIF获得RAW输出。经常有用户发现自己保存的RAW数据与Resizer输出的YUV数据不匹配,存在一定偏差。出现这个问题的原因是IPIPE和Resizer中的SRC_HPS、SRC_VPS、SRC_HSZ和SRC_VSZ与ISIF写DDR时配置的偏移量和大小不匹配。IPIPE/Resizer和ISIF的寄存器并不直接相关,需要用户一一匹配。例如,ISIF输出的数据被输入到IPIPE。为了匹配RAW和YUV,需要ISIF的SPH等于IPIPE的SRC_HPS,ISIF的SLV0/1等于IPIPE的SRC_VPS,ISIF的LNH等于IPIPE的SRC_ HSZ,ISIF的LNV等于IPIPE的SRC_ VSZ。而resizer的SRC_HPS,SRC_VPS需要配置为0,而Resizer的SRC_HSZ,SRC_VSZ应该等于IPIPE的SRC_HSZ,SRC_VSZ。

在单通路模式下,即数据通路ISIF-DDR-伊皮EIF-IPIPIPE (Resizer),由于IPIPIPE的输入是DDR上的原始数据,所以在ISIF输出到DDR的配置中已经实现了有效数据的获取,处理后的数据在IPIPIPIPE中的起始位置可以是(0,0)。

这样无论是连续模式还是单模式,RAW输出转换的RAW数据和YUV数据都可以完全匹配。