MathsDM642是我们为了适合新的视频应用而开发的一款高性能多媒体信号处理板卡,功能紧凑实用,例程务必做到详细,可移植性强,板卡的例程直接在CCS3.3下开发,用户直接就可以使用最新的开发工具,而不需要再捣鼓旧版本。MathsDM642新增加了HDTV接口,用户可以在上面验证HDTV视频的一些算法,为整体转换做技术储备。
板卡资源和技术特点:
◆处理器:TMS320DM642AZDK6,主频600MHz,8级流水线,处理能力4.8G定点MIPS,处理位宽32bit;
片上存储器:■L1P CACHE 16K Bytes ■L1D CACHE 16K Bytes ■L2 SRAM/CACHE 256K Bytes;
片上外设:■64bit位宽EMIF接口,可以接异步存储器(SRAM,FLASHROM),SDRAM,SBRAM或FIFO,1G Bytes外部寻址空间。
■增强的直接存储器存取控制器(EDMA),64个独立通道
■10/100Mb/s 网络接口(EMAC)/数据管理接口(MDIO)。
■3个可配置的视频接口(VP)。
■压控晶振接口(VIC),用于ASI信号的同步接收解码。
■主机接口(HPI),32bit/16bit。
■32bit/66-MHz PCI接口,2.2版本。
■多通道数字音频接口(McASP),8根串行数据线。
■1路I2C总线。
■2路McBSP(多通道缓冲串行接口)。
■3个32-Bit通用时钟。
■16个通用IO接口(GPIO)。
■可编程的PLL时钟发生器。
◆外扩存储器:4M×64位SDRAM;4M×8位Flash;32K×8位I2C EEPROM。
◆4路视频输入:标准PAL或NTSC制模拟视频输入(CVBS复合视频信号)。
◆1路视频输出:标准PAL或NTSC制模拟视频输出(CVBS复合视频信号)。
◆1路高清视频输出:YPbPr分量,1920×1080I数据格式输出;最高可以支持1920×1080P。
◆6路音频输入/输出(5.1声道):标准模拟音频输入(Microphone或Line In输入/输出)。
◆2路异步串口:用于控制云台或者其他设备。
◆RJ45标准10/100M以太网接口,实现视频服务器或网络摄像机的功能。
◆扩展的EMIF,HPI以及VPORT接口,为下一版本的ASI,SDI视频信号的接收和输出做准备。
TMS320DM642简介:
DM642是TMS320C6000DSP平台中的高性能定点处理DSP,基于第二代高性能DSP处理技术,使用先进的超长指令架构,DM642专门针对数字多媒体处理,其指令集跟C6000系列的其他平台兼容。
DM642有3个可配置的视频端口(VP0,VP1,VP2)这些视频端口提供个和通用视频编码解码芯片的无缝接口,支持多种视频标准(CCIR601,ITU-BT.656,BY.1120,SMPTE125M,260M,274M和296M)。
每个视频端口有2个通道A和B,每个通道有独立的5120字节FIFO。
DM642内部运算单元的基本原理和结构:
DM642的CPU获取高效的超长指令字(256位),在每个时钟周期供应给8个功能单元8条32位的指令。按VLIW体系结构的特点,它控制了所有8个单元而不需要提供指示是否他们不准备执行。每条32位指令的第1位决定下一条指令是否属于同一个指令包,或者是否应该作为下一个执行包的一部分在随后的时钟周期执行。取指包总是256位,然而执行包可以是变化的的长度。可变长执行包是一个重要的存储节约特征,区别于C64X CPU的其他VLIW体系结构。C64X 的VelociTI.2扩展了TMS320C62xx DSP VelociTI的体系结构,扩展部分包括:
1)寄存器组增强
2)数据路径扩展
3)四路8位和双16位扩展的数据流加强
4)附加的硬件功能单元
5)增加正交指令集
6)附加指令降低代码大小,提高寄存器灵活性。
CPU起主要作用的两套功能单元,,每一套包括4个功能单元和1个寄存器组。一套包括功能单元.L1, .S1, .M1, 和.D1,另一套包含.L2,.S2,.M2和D2。两个寄存器组每个包含32个32位寄存器共64个通用寄存器。除了支持在C62xx VelociTI.2 VLIW体系中的便携16位和32/40位定点数据类型外,C64X系列寄存器组还支持大量的8位数据和64位定点数据类型。两套功能单元,连同两侧的寄存器组,组成CPU的A,B 部分。每部分的四个功能单元可以自由分享自己部分的32位寄存器,此外,每部分特色的数据交叉通路-一条单独的数据总线连接另一部分的所有寄存器,这样两套功能单元可以从对方的寄存器组交叉访问数据。C64X CPU数据交叉通路访问需要多个时钟周期,这使得同一个寄存器在同一个执行包作数据交叉通路时可用作多重功能单元。C64X CPU的所有功能单元都可以通过数据交叉路径访问操作数。在一个时钟周期内,在同一部分的寄存器可以被所有的功能单元访问。在C64X CPU中,当指令试图通过数据交叉路径读在先前一个时钟周期更新过的寄存器时,就会出现延迟时钟。
除了C62xx CPU的定点指令,C64X CPU 包括一个积累全面的4路8位和双16位指令集扩展。这些VelociTI.2扩展包括允许C64X CPU 直接操作来自流水线的大量数据而提高指令集的效率。对于视频和图象应用来说,这是一个重要因数。
C64X CPU的另一个重要因数是load/store结构,所有的指令操作在寄存器里(相对于数据存储器来说),两套数据处理单元(.D1和.D2)负责所有寄存器组和存储器之间的数据传输。数据处理在.D单元,它允许产生的数据地址从一个使用的寄存器组或另一个寄存器组去加载或存储数据。C64X的.D单元能加载或存储字节(8位),半字(16位),字(32位)为单位的单一指令。随着新的数据路径扩展,C64X的.D单元可以加载和存储双字(64位)为单位的单一指令。此外,不并行的加载或存储指令允许.D寄存器访问在字节边界的字或字节。C64X CPU支持各种间接寻址方式,用于5到15位偏移量的线性或循环寻址。所有的指令都是有条件的,并且大部分可以访问64个寄存器中的任一个。然而,有些寄存器不支持特定的寻址方式或是有条件的条件指令。(如果条件不是自动为“真”)
两个.M功能单元执行所有的乘法运算。每个C64X .M单元在每个时钟周期能进行16×16位或4个8×8位的乘法运算。.M单元还能进行16×32位乘法运算,带加/减操作的双16×16位乘法和带加法操作的4路8×8位乘法。除了标准的乘法运算,C64X .M单元还包括位记数,循环,Galois域乘法和双向可变硬件转移。
两个.S和.L功能单元进行一般的算术,逻辑运算和每个时钟周期结果都变化的分支功能。C64X CPU的算术和逻辑运算包括单32位,双16位和4路8位运算。
处理流程开始于一个从程序存储器取出的256位取指包。每个32位指令位于不同的功能单元,它们被指令的一位最低的标志位联系在一起。指令被“连锁”在一起同时执行(最多8条)组成一个执行包。一个“0”在指令的标志位就破坏了联接,有效的给随后的的下一个执行包的指令排序。一个C64X DSP芯片现在允许执行包与取指包边界相交。在TMS320C62x/TMS320C67x DSP芯片中,如果一个执行包与取指包的边界相交(256位宽),它将会在下一个取指包重新组织,而当前取指包的其余指令被NOP指令填充。在C64X CPU芯片中,执行边界的限制已经被取消了,同时,消除所有填充取指包中的NOP指令,从而降低了指令的长度。在一个取指包里的执行指令数量可以是1到8的任何数,在一个时钟周期执行包被分配给各自的功能单元,并且下一个256位的取指包直到所有执行包从当前取指包被分配出去后才开始取指。通过解码后,指令同时驱动所有当前活动的功能单元。以最大效率地在每个时钟周期执行8条指令。大部分结果保存在32位寄存器中,随后它们被移到内存中,以字节,半字或者双字为单位。所有的加载和存储指令都是字节,半字,字或双字寻址的。
DM642器件有1个1级程序CACHE(L1P)和1个1级数据CACHE(L1D),各自大小均为16K Bytes,
这两个CACHE的运行速度和CPU的核心速度一样;器件有一个2级CACHE,该CACHE和SRAM是共用存储空间,为256K Bytes;L2可以配置成为部分SRAM,部分CACHE,也可以全部配置为CACHE。
DM642的EMDA能提供超过2Gb/s的外部带宽.支持64路独立触发的事件传输,总共有85个参数对“Linking”或“Chaining”进行配置。Linking是在1个事件被触发时允许1个序列进行传输。Chaining是当1个通道的数据传输完毕时触发另1个通道的数据传输。Linking和Chaining使得仅仅被CPU初始配置之后EDMA能够连续的自动运行。EDMA的特点决定了其适合图像处理的功能。由于图像处理的原始数据量很大.同时图像处理中也会产生同等量的中间数据.对于片内存储资源有限的高速DSP来说,一般需要借用外部存储空间。为了提高系统的实时处理能力.可以将数据在不同存储空间转移的任务交给EDMA来完成,而CPU只用于数据的计算。同时,EDMA对数据重排功能可以优化图像数据在内存中的存储,这不仅可以提高内部存储空间的利用效率.而且可以提高数据的传输速率。虽然对图像数据的传输也可由软件实现,但将消耗大量的CPU时钟周期。使DSP的高速性能难以发挥。而由EDMA来完成同样的工作几乎不占用CPU的时钟周期。
在C64xDSP中.EDMA控制器负责片内L2存储器与其他设备之间的数据传输。EDMA控制器和DMA在结构上有很大的不同.其增强之处包括:
提供了64个通道;
通道间的优先级可以设置;
支持不同结构数据传输的链接。
EDMA控制器由以下几部分组成;
事件和中断处理寄存器;
事件编码器;
参数RAM;
硬件地址产生。
其中,事件寄存器控制对EDMA事件进行捕获。1个事件相当于1个同步信号,由它触发1个EDMA通道开始数据传输。如果有多个事件同时发生.则由事件编码器对它进行分辨。EDMA的参数RAM中存放了有关的传输参数,这些参数会被送入地址发生器硬件.进而产生读写操作所需要的地址。
EDMA支持8bit、16bit和32bit数据的存储。在EDMA中定义了下列概念:
(1)数据单元(element)的传输。单个数据单元从源地址向目的地址传输.如果需要,每1个数据单元都可以由同步事件触发传输;
(2)帧(frame)。l组数据单元组成1帧,l帧中的数据单元可以是相邻连续存放的,也可以是间隔存放的.帧传输可以选择是否受同步事件控制,“帧”一般在1维传输中提及;
(3)阵列(array)。1组连续的数据单元组成1个阵列.在1个阵列中的数据单元不允许间隔存放。1个阵列的传输可以选择是否受同步事件控制。“阵列”一般在2维传输中提及;
(4)块(block)。多个帧或者多个阵列的数据组成1个数据块;
(5)1维(1一D)传输。多个数据帧组成1个1维的数据传输。Block中帧的个数可以是l~65536。
(6)2维(2一D)传输。多个数据阵列组成1个2维的数据传输。第1维是阵列中的数据单元,第2维是阵列的个数。
EDMA的控制机制
1、事件与事件控制寄存器
EDMA有64个通道.每1个通道都有1个事件与之关联.由这些事件触发相应通道的传输。
2、传输参数与参数RAM
EDMA控制器与DMA控制器在结构上有所区别。C64x的.EDMA控制器是基于RAM结构。参数.RAM(Parameter RAM。PaRAM)的容量是2KB,总共可以存放85组EDMA传输控制参数。多组参数还可以彼此连接起来,从而实现某些负责数据流的传输.例如循环缓存和数据排序等。参数RAM中保存的内容包括:
64个EDMA通道对应的入口传输参数.每组参数包括6个字;
用于重加载,链接的传输参数组。每组参数包括24字节;
8字节空余的RAM可以作为“草稿区”(scratchpad area)。
一旦捕获到某个事件.控制器将从PaRAM顶部的64组入口参数中读取数据对应的控制参数送往地址发生器硬件。
表l给出1组EDMA传输参数的内部结构,总共6个字.192bit。可以通过32bit的外设总线对EDMA的参数.RAM进行访问。
DM642的视频端口
视频接口外设能够运行在视频捕获,视频输出或者TSI捕获等方式下。它能提供以下功能。
视频捕获模式:
捕获速率到达80MHz
2路8/10-bit数字视频输入,数字视频为YUV422格式,有8bit或者10bit精度
1路Y/C16/20-bit数字视频输入,为YUV422格式,支持SMPTE260M,SMPTE274M,SMPTE296M,ITU-BT1120等标准
YUV422到YUV420水平转换,以及8-bit YUV422模式下的亚采样
能够同时2路10-bit或1路20-bit原始视频通过A/D转换器直连
视频显示模式:
显示速率能达到110MHz
1路连续视频输出,数字视频输出为YUV422格式,8/10-bit精度
1路连续Y/C16/20-bit数字视频输出,YUV422格式
YUV420到YUV422格式转换,在8-bit YUV422模式下,输出2倍插值
能产生行同步,场同步信号和消隐信号
传输流接口(TSI)捕获模式:
传输流接口能以8-bit并行,最大30Mb/s的速率接受数据
传输流接口捕获模式捕获MPEG-2传输数据。传输流中将音频,视频,数据程序流全部复合成一个传输流。MPEG-4传输流使用定长的数据包,在分配信道容量给音频,视频及数据服务方面有较高的灵活性。
支持同步检测
数据捕获在时钟上升沿来临的时候
并行数据接收
使用硬件计数器机制为到来包数据打时间戳
纠错机制