>
首页 » 技术文章 » Blackfin DSP并行外围接口在红外视频处理通用模块中的应用研究

Blackfin DSP并行外围接口在红外视频处理通用模块中的应用研究

作者:张智杰 郭晓东  时间:2006-12-05 10:43  来源:电子设计信息网-www.edires.net
摘要:本文介绍了Blackfin系列DSP的并行外围接口,提出了一种红外视频处理通用模块的构架,省略了数据缓冲硬件环节,缩短了数据等待时间,提高了DSP 的运算效率。

关键词:Blackfin;PPI;DSP;红外视频处理

1 引言

红外视频处理系统是典型的实时信号处理系统,具有数据吞吐量大和运算密集度高的特点,一般由通用DSP 实现复杂的视频处理算法。目前高端通用DSP 的主频已达到600 MHz 以上,内部集成多个运算单元,运算能力可以满足大多视频处理算法的要求。但是一般的通用DSP 只有一条数据总线,数据吞吐能力低,必须在DSP 外部进行数据输入缓冲和输出缓冲,需要DSP 内核参与整个数据吞吐过程,这就大大削弱了DSP 的运算能力,同时增加了系统构架的复杂度,因此,数据吞吐成为基于通用DSP 的红外视频处理系统的最大瓶颈。

Blackfin 系列DSP专门针对高速数据吞吐集成了并行外围接口(PPI),在传统的数据总线的基础上增加了一条数据吞吐通道。PPI 接口:1)能以最高66MHz 的频率接收数据,以最高60 MHz 的频率输出数据;2)不再需要额外的数据输入/输出缓冲,直接连接高速AD/DA 输入输出数据;3)能够输入或输出ITU-R601/656 格式和带行场同步时钟的RGB 格式的数字视频。使用PPI 接口输入输出数据,辅以强大的DMA 流量控制和高速SDRAM,使Blackfin DSP 的内核独立于数据吞吐过程,充分发挥其密集运算能力,并简化了系统构架,在红外视频处理通用模块中取得了良好的应用。

2 红外视频处理通用模块数据吞吐分析

一个通用的红外视频处理流程如图1所示,利用高速AD采集探测器输出的模拟信号,形成原始视频数据流,再经过视频处理单元的实时视频处理,以特定的视频格式高速输出。

图1 红外视频处理流程

红外视频处理过程是一个高速数据吞吐和密集运算的并发过程。当视频处理算法复杂时,视频处理单元多由高性能通用DSP构成。DSP接收AD输出的原始视频数据是数据写入的过程,DSP输出处理后视频是数据读出的过程,DSP 进行视频处理运算至少需要一次数据读出和一次数据写入,因此数据写入、数据读出和中间的视频处理三者同时进行,至少包含两次数据读和两次数据写。一般的通用DSP只有一条数据总线,无法并行进行数据吞吐和视频处理运算,所以通常在高速AD和DSP之间、在DSP和视频输出单元之间,增加FIFO、双口RAM或双片SRAM 轮换,构成数据缓冲环节,由DSP内核控制数据缓冲过程。这使得系统构架变得非常复杂,而且数据缓冲过程占用了DSP内核进行数据运算的时间,大大降低了DSP的效率。

本文基于Analog Device (ADI)公司Blackfin系列BF561型通用DSP,利用其特有的PPI 接口,提出一种红外视频处理通用模块的构架,省略了数据缓冲环节,使数据吞吐过程独立于DSP内核,基本不占用DSP 进行数据运算的时间,充分发挥了DSP密集运算的优势。系统构架如图2 所示。

图2 红外视频处理通用模块原理框图

BF561内部集成了两个完全相同的Blackfin DSP内核,共有两个PPI 接口,分别与高速AD和视频输出单元直接接口。原始视频数据、最终输出的视频数据和视频处理的中间数据,全部存储在高速SDRAM 中。通过4 条独立的DMA 通道和Blackfin DSP 特有的DMA 流量控制,共享SDRAM高达133MHz×16位的带宽。DSP内核只需要初始化DMA 的工作参数,具体的数据吞吐由DMA控制器独立完成,不再需要DSP内核干预。为进一步缩短数据等待时间,提高DSP的运算效率,所有的数据读写都设置为带流量控制的乒乓操作,实现了在DMA吞吐数据的同时进行视频处理运算,最大程度上发挥了DSP的密集运算能力。

3 PPI 接口配置

PPI 接口是一种可以配置成8~16 位数据宽度的多功能并行同步准双向接口,包括三条同步信号线和一个连接到外部时钟的时钟线,通过修改相应的寄存器设置PPI 接口各种工作模式。

3.1 PPI 与高速AD 硬件接口
如图3 所示,以CPLD或FPGA 实现控制时序,为高速AD 和PPI_1 提供数据时钟,根据探测器输出的行同步时钟和场同步时钟,经过一定变换,提供给PPI 接口,通过DMA,PPI 接口根据三个时钟信号将AD输出的8~16 位数据写入SDRAM。本接口支持8~16 位并行输出的高速AD(例如AD9240),数据时钟最高66MHz。

图3 PPI 与高速AD 硬件接口

3.2 PPI与视频输出单元硬件接口
如图4 所示,通过DMA,PPI_2 读取SDRAM内的视频数据,根据数据时钟,以ITU-R656 格式输出到模拟视频编码器(例如ADV7171),以PAL或NTSC 制式输出到监视器。

图4 PPI 与视频输出单元硬件接口

3.3 PPI 接口寄存器设置
PPI 接口可以设置为ITU-R656 输入模式、ITU-R656 输出模式、通用输入模式和通用输出模式。每种工作模式中又可以设置数据宽度,同步时钟工作方式和数据打包/解包等多种工作条件。通过写PPI_CONTROL、PPI_DELAY 和PPI_COUNT 三个寄存器设置PPI 接口的工作模式。

3.3.1 PPI 接口控制寄存器:PPI_CONTROL
PPI接口控制寄存器各位功能定义如图5 所示,与高速AD 输入和视频输出相关的设置如下:
1)设置同步时钟极性和设置数据时钟极性:FS1&FS2polarity,Data clk polarity 选择同步时钟和数据时钟上升沿或是下降沿有效。
2)设置数据宽度:Data buswidth 设置数据总线宽度,最小8 位,最大16 位。
3)设置数据打包/解包模式:Packing mode enable设置是否使能数据打包/解包模式,若使能,当PPI接口处于8 位输入模式,则将输入的两个8 位数据打包为1 个16 位数据存储;当PPI 接口处于8 位输出模式,则将1 个16 位数据按低位在前高位在后的顺序解包输出;当PPI 接口为8 位数据宽度,数据打包/解包模式能够降低1 倍数据存储空间和降低1倍数据输入带宽。
4)设置同步时钟工作模式:Portconfiguration 选择输入或输出模式下同步时钟工作模式,与高速AD 接口输入原始视频数据需要两个同步时钟,与模拟视频编码器接口输出ITU-R656格式数字视频,不需要同步时钟。
5)设置输入或输出子模式:Transfer type 与高速AD 接口输入原始视频数据时,使用通用输入工作模式;与视频输出单元接口输出视频数据,使用不带同步时钟的输出工作模式。
6)选择输入或输出方向:Port direction 与高速AD 接口输入原始视频数据时,选择输入模式;与视频输出单元接口输出视频数据,选择输出模式。
7)启动PPI 接口:Enable PPI 启动PPI 接口后,在输入模式时,当PPI 接口接收到正确的同步时钟信号才开始输入数据;在输出模式时,当相应的同步时钟开始工作后才开始输出数据。

图5 PPI 接口控制寄存器各位功能定义

3.3.2 PPI 接口延迟寄存器:PPI_DELAY
在行同步时钟有效后,延迟PPI_DELAY 个数据时钟,PPI 接口开始输入或输出行像素。

3.3.3 PPI 接口计数寄存器:PPI_COUNT
在行同步时钟有效期内,PPI 接口输入或输出PPI_COUNT 个行像素。

3.4 PPI 接口DMA 设置

3.4.1 DMA 流量控制
DSP 内核设置PPI 接口DMA 的初始工作参数后,由DMA 控制器独立完成PPI 接口读取和写入SDRAM的操作。SDRAM数据总线带宽为133 MHz×16 位,但只有一条数据总线,并且红外视频处理过程中数据写入、数据读出和中间的视频处理三者需要同时进行,至少包含两次数据读和两次数据写。如果按时间进程单任务线性安排PPI 接口DMA 读写SDRAM的操作,不能充分利用SDRAM的带宽,无法完成并发读写SDRAM 的要求。为了充分利用SDRAM 的带宽,必须使用Blackfin DSP 特有的DMA 流量控制。

采用DMA 流量控制时,DMA 控制器首先分析所有使能的DMA 通道,提高与正在运行的DMA的读写方向一致的DMA 通道的优先级,例如当前DMA 正在读SDRAM,那么所有读SDRAM 的DMA 均比写SDRAM 的DMA 的优先级高,所有读SDRAM 的DMA 按固有优先级排列次序。以预置的流量时隙为周期(例如10 字节),按133MHz的最大速度,每次发读10 字节数据到当前DMA 通道的FIFO 内,轮换到下一个DMA 通道。当所有读SDRAM 的DMA 执行完一遍后,轮换到写SDRAM 的DMA,执行相同过程。这样,降低了改变SDRAM 读写方向耗费的时间,同时每个使能的DMA 通道在设定的周期内都以最大速度轮换执行了一遍,保证了一定时间内对SDRAM 的并发读写操作,充分利用了SDRAM 接口的最大带宽。

3.4.2 乒乓操作
由于红外视频处理过程中数据写入、数据读出和中间的视频处理三者同时进行,所以当前DMA读取或写入的数据,就是DSP 内核或其他DMA 已经写入或将要读取的数据,这是一个级联的因果系统。如果当前DMA 正在读写的数据在时间或因果关系上与DSP 内核或其他DMA 发生冲突,就会导致数据等待或数据错误。

为降低数据等待时间并避免因果错误,对每个DMA 操作,在目标存储区内都开辟两个缓冲区,设为BufferA 和BufferB。当前DMA 正在操作的设为BufferA,这是独占性操作,不允许其他DMA或DSP内核访问。当前DMA已经操作完毕的设为BufferB,开放给其他DMA 或DSP 内核访问。当前DMA 操作在BufferA和BufferB之间切换,通过信号量标志独占区和开放区,于是在任一时间,当前DMA都有一个可供其他DMA 或DSP内核访问的区域,这样就降低了数据等待时间,并避免了因果错误。

4 结论

本文在介绍了PPI 接口性能特点的基础上,提出了一种红外视频处理通用模块的构架,省略了数据缓冲环节,使数据吞吐过程独立于DSP内核,提高了DSP的运算效率。

相关推荐

CEVA凭借90%的市场份额继续领导DSP IP市场

CEVA  DSP  2012-05-30

欧胜推出带有语音处理器DSP的下一代音频中枢

欧胜  DSP  2012-05-07

Tensilica HiFi音频/语音DSP迎来又一里程碑

Tensilica  DSP  2012-04-25

Tensilica授权瑞萨电子ConnX BBE16 DSP IP核

Tensilica  DSP  2012-04-18

Tensilica HiFi音频DSP支持杜比数字+功能

Tensilica  DSP  2012-02-28

CEVA和Idea! 电子系统合作

CEVA  DSP  ISDB-T  2011-12-19
在线研讨会
焦点