1. EDMA3 控制器
控制器处理所有DM6437上memory与外设之间的数据传输。包括cache服务,非cache内存访问,用户可编程数据传输以及host访问,列举如下:
> 传输to/from片上内存:DSP L1D, DSP L2
> 传输to/from外部存储器:DDR2 SDRAM, NAND flash, Asynchronous EMIF(EMIFA)
> 传输to/from外设peripherals/hosts:VLYNQ,HPI,McBSP0/1,McASP0,PWM,UART0/1,HECC,PCI
EDMA支持两种寻址模式:常量寻址和递增寻址模式。在DM6437上,所有外设或内部内存都不支持常量寻址。EDMA支持64个传输通道,每个可编程的传输通道都对应有EDMA同步事件。对6437设备,通道与对应同步事件是固定了的,每个通道都有一个特定相应的同步事件。即使事件被EDMA事件使能寄存器(EER,EERH)去使能了,这些特定事件也会在EDMA事件寄存器(ER,ERH)中捕获。EDMA事件如何使能,捕捉,处理,linked,chained以及清除等等,见EDMA3用户手册。注意,每个通道除了可以被同步事件触发外,还可以由chaining传输模式的传输结束事件同步。
2. Clock PLLs
DM6437有两个独立控制的PLLs。PLL1产生DSP,DMA,VPFE以及其他外设所需要的时钟频率。PLL2产生DDR2接口和VPBE在特定模式下所需要的时钟频率。推荐的PLLs输入时钟频率是27MHz晶振频率。关于PLL的相信信息见SPRU978.
3. EMIF
DM6437支持几种内存和外部设备接口,包括:连接NOR Flash,SRAM等的EMIFA及NAND Flash.
>EMIFA: 提供8-bit数据总线,24-bit地址总线,4个带内存控制信号的片选,这些信号在以下设备中多路复用: EMIFA and NAND 接口;VPFE(CCDC); VPBE(VENC); PCI; GPIO.
>NAND: EMIFA接口提供异步EMIF和NAND接口,提供4个片选,每个可独立配置来支持EMIFA或NAND。
EMIFA与NAND的配置寄存器参考用户手册SPRU984。
4. DDR2内存控制器
DDR2内存控制器用做DDR2 SDRAM接口,它支持JESD79D-2A标准兼容的DDR2 SDRAM设备,可以与16-bit或32-bit的DDR2 SDRAM设备相连,详细见DDR2控制器用户手册SPRU986。
DDR2 SDRAM在基于达芬奇的系统中起着至关重要的作用,这种系统需要高速外部内存,用于:
>缓冲传感器或视频源的输入图像数据;
>用做VPFE处理或缩放图像数据的中间buffer;
>用做OSD播放buffer;
>用做图像处理过程中大量原始数据的中间buffer;
>视频编解码过程中的中间数据buffer;
>存放DSP的可执行代码。
DDR2内存控制器的相关寄存器地址映射见数据手册。事实上使用达芬奇系统时,我们并没有去配DDR2控制器的寄存器,这些工作系统已经默认设置好了,除非必要无需去修改它,EMIF的配置一样。 liasbz 发表于 2009-6-17 21:50 5. 视频处理子系统 (VPSS)
DM6437 VPSS提供一个VPFE输入接口,连接外部设备如图像传感器,视频解码器等,以及一个VPBE输出接口,连接显示设备,如analog SDTV显示器,数字LCD面板,HDTV视频编码器等。VPSS相关寄存器有PID,PCR(VPSS control reg)等。
a. VPFE
VPFE包括CCD控制器(CCDC),Preview Engine, Resizer, Hardware 3A(H3A) Statistic Generator, Histogram blocks. 这些模块给DM6437提供了灵活有力的前端接口,大致描述如下:
> CCDC提供一个图像传感器和数字视频源接口
> Preview Engine是一个带参数的硬件图像处理模块,它用于原始彩 {MOD}数据的转换:从Bayer类型转换到YUV422
> Resizer模块缩放输入图像数据,以满足显示播放霍视频编码程序希望的分辨率
> H3A模块控制Auto Focus(AF),Auto White Balance(AWB), Auto Exposure(AE)
> 直方图模块处理彩 {MOD}象素获取统计信息,提供给H3A模块实现各种3A算法,以平滑最终的输出图像/视频
VPFE相关寄存器有: CCDC(controller), PREV(preview engine/image signal processor), RESZ(resizer), HIST(Histogram), H3A(AF/AWB/AE), VPSS(VPSS Shared Buffer Logic Reg)
CCDC:
CCDC从传感器(CMOS,CCD)接收图像/视频数据或从视频解码器设备接收各种格式的YUV数据。这个模块支持以下功能特征:
> 常用的Bayer类型格式
> 产生HD/VD计时信号
> 提供至逐行和隔行传感器的接口
> 支持REC656/CCIR-656 标准(YCbCr 4:2:2 format, either 8- or 16-bit).
> 支持YCbCr 4:2:2格式,8- 或16-bit的离散H和VSYNC信号
> 支持高达16-bit的输入
> 快门信号控制
> Digital clamping and black level compensation.
> 支持10-bit到8-bit的A-law压缩
> 写SDRAM前做低通滤波。如果此滤波功能被启用,则输出图像每行最左右2个象素点被裁剪掉了
> 输出数据范围从16-bit到8-bit(按8-bit输出要节省一半的存储空间)
> 支持可编程的下采样
> 通过一个外部写使能信号控制向DDR2的输出
> 水平和垂直方向都支持高达16k象素的图像尺寸
CCDC相关寄存器的内存映射212,没有位域说明。
Preview Engine:
Preview Engine将来自传感器(CMOS/CCD)的未压缩的原始图像/视频数据转变成YCbCr 4:2:2数据。Preview Engine的输出可以用于视频压缩和外部显示设备,如NTSC/PAL模拟编码器或数字LCD显示。总括支持以下特点:
> 接受传统的Bayer类型格式(Bayer pattern formats是什么格式?)
> 获取来自CCD/CMOS控制器或DDR2内存的图像/视频数据
> 支持1280象素宽的输出
> 若执行边界处理,可实现自动/强制的象素/行裁剪。如果所有相应模块被使能,则输出图像的左右各7列象素及上下各4行象素被裁剪
> 对超过1280象素宽度的输入图像做简单的水平均值化(均值因子2,4或8)
> 捕捉Dark帧存储到DDR2
> 从DDR2获取Dark Frame,对每个输入的原始帧数据做Dark帧减操作,逐象素的改善视频帧质量
> 镜头阴影补偿。每个输入象素乘以一个相应的8-bit增益值,结果做右移处理,右移位数可编程(0-7 bits)
> 通过A-LAW解压缩将8-bit非线性数据转换成10-bit的线性数据。这个特性使得保存至DDR2的数据可以是8-bit宽,由此若从DDR2读取数据到preview engine,则可以节省一般的空间
> 通过水平均值滤波来减小温度变化导致的象素噪声
> 支持可编程的噪声滤波器
> 支持数字增益与白平衡
> 可编程的CFA插值,一次操作5x5的象素块
> 常规的Bayer pattern RGB和带补偿的 {MOD}度传感器
> 支持图像水平和垂直方向下采样,采样比率为2
> 可编程的RGB-to-RGB混合矩阵(3x3矩阵的9个系数)
> 支持可编程的伽马纠正
> 可编程的颜 {MOD}分量转换(RGB to YUV)系数(3x3矩阵的9个系数)
> 支持亮度分量增强(非线性)以及 {MOD}度分量抑制和偏移处理
Preview Engine相关寄存器地址映射214。
Resizer:
resizer模块可以从preview engine或DDR2接收图像/视频数据,输出发送到DDR2. 支持以下特性:
> 输出水平象素宽度达1280
> 从外部DDR2接收输入
> 支持高达4倍的上采样(图像数字变焦)
> 支持Bi-cubic插值(4-tap水平,4-tap垂直),滤波器系数可编程实现
> 支持8阶滤波系数
> 支持 {MOD}度分量的双线性插值
> 支持高达1/4x的下采样
> 8阶的4-tap水平和4-tap垂直滤波系数做1x至1/2x的下采样
> 对YUV 4:2:2的16-bit打包数据或DDR内连续的8-bit的独立颜 {MOD}分量数据做缩放处理
> 支持水平和垂直方向独立的缩放尺度因子
> 支持的上/下采样率: 256/N (N从64到1024)
> 水平缩放后和垂直缩放前,可对亮度分量做可编程的锐化处理
Resizer相关的寄存器地址映射215.
Hardware 3A(H3A):
H3A模块提供对自动对焦AF,自动白平衡AWB和自动曝光AE的循环控制,该模块包含2个主要部分:AF引擎和AE&AWB引擎。
AF引擎从输入图像/视频数据中提取红/绿/蓝数据并做滤波,并针对特点范围的数据段提供累加或峰值数据,这个特点范围的数据段是一个2维的数据块,在AF中称为"paxel".
AE/AWB引擎对视频数据的亚抽样提供累加值并对其饱和值做检查。在AE/AWB中这个2维数据块称为"window". AF paxel及AE/AWB window的数目、维数和起始点位置可分别编程决定。
H3A相关寄存器地址映射以及各个模块支持的特性216.
Histogram:
Histogram模块接收原始图像/视频数据,对象素值(和颜 {MOD}独立分量)做直方图处理。象素值本身不做存储,但是每个直方图bin包含该级灰度值象素的数目。Histogram接收的原始数据通常来自CCD/CMOS传感器(通过CCDC模块)或来自DDR2,可以选择而定。Histogram模块相关特性及寄存器地址映射218。
b. VPBE
VPBE包含On-Screen Display(OSD)模块,带数字LCD和模拟DAC接口的Video Encoder(VENC)。VENC生成模拟视频输出。DLCD控制器产生数字RGB/YCbCr输出数据及时间信号。VPBE相关寄存器有PID及 PCR(设备控制寄存器)
为了确保NTSC和PAL与输出视频兼容,输入时钟源的稳定性非常重要。TI推荐的时钟源晶振是27-MHz,50-ppm.不建议使用陶瓷振荡器。 NTSC/PAL副载波频率由27-MHz时钟源导出,因此,如果27-MHz时钟源发生漂移,则NTSC/PAL颜 {MOD}分量副载波频率也会发生漂移。为确保颜 {MOD}分量副载波频率不会漂移太严重,必须满足输入晶振的需要。若不采用27M时钟源,改用VPBECLK或VPFE时钟源作为输入,则必须保证这些输入时钟频率的稳定性在±50 ppm范围内,以确保NTSC/PAL与输出视频兼容。
OSD:
OSD模块的主要功能是先收集和调配视频数据及display/bitmap数据,然后以YCbCr格式将数据送入VENC。视频及display /bitmap数据从外部内存读入,通常如DDR2。OSD可以通过控制和参数寄存器进行编程配置。支持以下特性:
> 支持同时显示两个视频窗口和两个OSD窗口(VIDWIN0/VIDWIN1 and OSDWIN0/OSDWIN1)
>>每个窗口分别使能
>>每个窗口的高、宽、起始点坐标都可编程
>>每个窗口均有外部内存地址和偏移寄存器可配置
>>支持水平和垂直方向x2 和 x4 缩放
>>OSDWIN1可以用作OSDWIN0的特性窗
>>每个窗都支持帧/场(interlaced/progressive)模式
>>OSD和视频窗口都支持VGA到NTSC/PAL(640x480 to 720x576)的缩放处理
>>从外部内存读取422的YCbCr数据,并可以按32-bit字交换CbCr分量的顺序(与两视频窗口相关)
>>VIDWIN0窗支持乒乓buffer操作(可以从DDR2的两个不同地址读取视频数据)
>>每个OSD窗口(不能两个同时)都能够读取RGB数据(16-bitRGB565数据),但不能读取严格限制在最大8-bit的YCbCr格式位图数据
>>OSD位图数据宽度在1,2,4,8-bit中可选
>>通过VPBE的wrapper接口间接支持24-bit RGB数据输入(会被转换成16-bit YCbCr视频窗口数据)
>支持矩形光标窗口和可编程的背景颜 {MOD}选择
>>显示优先顺序为:矩形光标框 > OSDWIN1 > OSDWIN0 > VIDWIN1 > VIDWIN0 > background color
OSD模块存在以下限制:
>两个OSD窗口及VIDWIN1都应该完全包含在VIDWIN0中
>当一个OSD窗口被设置成RGB模式,则它不能与VIDWIN1窗口重叠
>OSD只可读取YCbCr 4:2:2隔行数据,其他格式,独立存储的颜 {MOD}分量数据或4:4:4/4:2:0隔行数据不被支持
>如果有一个视频窗口的垂直缩放滤波器被使能,则最大水平窗口宽不能超过720
>不能同时使用两个CLUT ROMs,但是可以一个窗口使用RAM,同时另一个使用ROM
>24-bit RGB输入模式只对两个视频窗之一有效(具体对哪个可编程决定),不能用于OSD窗口
OSD相关寄存器映射223。
VENC:
VENC的模拟/DACs接口支持以下特性:
> Master时钟输入27MHz(x2 Upsampling)
> SDTV支持:
>>Composite NTSC-M, PAL-B/D/G/H/I
>>S-Video (Y/C)
>>Component YPbPr (SMPTE/EBU N10, Betacam, MII)
>>RGB
>>non-interlace
>>CGMS/WSS
>>可编程的SC-H phase
>HDTV支持:
>>逐行输出(525p/625p)
>>Component YPbPr
>>RGB
>>CGMS/WSS
>4个10-bit over-sampling D/A转换器
>可编程的Luma延时
>Master/Slave 操作
>Internal Color Bar Generation (100%/75%)
VENC的数字LCD控制器(DLCD)支持以下特性:
> 可编程的DCLK
> 多种输出格式: YCbCr 16bit/ YCbCr 8bit/ ITU-R BT. 656/ parallel RGB 24bit
> 数字RGB输出的低通滤波
> 可编程的时间信号发生器
> Master/Slave 操作
> Internal Color Bar Generation (100%/75%)
VENC寄存器映射包括数字LCD和DACs 225. liasbz 发表于 2009-6-17 21:50 6. UART - Universal Asynchronous Receiver/Transmitter
DM6437用2个UART外设,每个UART支持以下特性:
> 16-tyte存储空间的传输和接收FIFOs
> 针对自动流控制和DMA的1,4,8或14 byte可选的接收FIFO触发等级
> 可编程的auto-rts and auto-cts自动流控制
> 中断优先
> 串口数据格式可编程:
>>5, 6, 7,或 8-bit字符
>>偶数,奇数或非对称bit的产生和检测
>>产生1, 1.5或 2的停止bit
> 仅UATR0支持modem控制功能(CTS,RTS)
UART相关寄存器描述234(两个UART分别配置)
7. I2C - Inter-Integrated Circuit
I2C模块提供6437与其他外设间接口,该接口与philips半导体Inter-IC总线的2.1版本兼容。外部器件连接到这个2线串行总线上后,通过I2C模块可以向DSP传输/接收8-bit数据。I2C端口不支持CBUS兼容的设备,但支持以下特性:
> 快速模式下支持400kbps速率
> 7-bit或10-bit的设备寻址模式
> Master (Transmit/Receive) and Slave (Transmit/Receive) Functionality
> 支持事件: DMA,中断,或轮询
I2C相关寄存器地址238,详细说明见SPRU983.
8. HPI - Host-Port Interface
6437设备包括一个用户可配置的16-bit HPI口(HPI16). 注意6437不支持通过写HPI控制寄存器HPIC的HRDY bit来实现软件交互。HPI的相关寄存器配置和手册见APRU998。
9. McBSP - Multichannel Buffered Serial Port
提供以下功能:
> 全双工通信
> 双buffered数据寄存器,它使得数据流可以连续传输
> 接收和传输都支持independent framing and clocking
> 提供工业标准的codecs直接接口,模拟接口芯片(AICs)和其他至模数和数模转换设备的直接接口
> 提供外部shift clock或内部一个频率可编程的shift clock,用于数据传输
如果使用内部时钟源,则SRGR寄存器的CLKGDV域必须设置为大于或等于1的值。McBSP外设的详细信息可查阅SPRU943, 相关寄存器地址映射246。
10. McASP0 - Multichannel Audio Serial Port Peripheral
McASP作为通用的音频串行端口用于多通道的音频应用。McASP对于时分复合流、Inter-Integrated Sound(I2S)协议以及数字音频接口传输(DIT)非常有用。
DM6437设备包含一个McASP接口设备McASP0,它是一个针对多通道音频应用需要而经优化过的串行端口。McASP0包含传输和接收部分,这些部分可以完全独立操作,以不同的数据格式,独立的主时钟频率,同步或交替数据帧,传输和接收也可以同步。McASP模块还包含了一个可配置的寄存器堆,通过配置可操作传输数据或接收数据。
McASP的传输部件可以时分复用TDM同步串行格式或以数字音频接口DIT格式来传输数据,此时数据bit流被编码成符合S/PDIF,AES-3,IEC-6958,CP-430等传输标准。McASP的接收部件支持TDM同步串行格式。
McASP可以支持同时进行数据传输和数据接收。所有传输移位寄存器堆使用同样的传输格式配置,所有接收移位寄存器堆也使用同样的格式配置,但传输和接收的格式不需要相同。而且两个移位寄存器堆都支持burst传输模式,这点对非音频数据(如两个DSP核之间传递控制信息)非常有用。
另外,McASP外设还有其他一些附加功能,如灵活的时钟频率,错误检测/处理和错误管理机制等。更为详细的资料可见SPRU980。相关寄存器地址映射258。 liasbz 发表于 2009-6-17 21:51 11. HECC- High-End Controller Area Network Controller
HECC使用确定的协议与其他控制器在恶劣环境下进行串行通信,它与CAN协议完全兼容。见SPRU981。
12. EMAC - Ethernet Media Access Controller
EMAC提供DM6437与network之间的有效接口。DM6437 EMAC支持半双工或全双工的10/100Mbps传输速率,同时它还提供硬件流控制和QOS服务。 EMAC控制数据包流从DM6437传向PHY。由MDIO模块控制PHY的配置和状态监测。
EMAC模块遵从IEEE 802.3-2002标准,这个标准就是CSMA/CD,同时被ISO/IEC采用。EMAC和MDIO模块都是通过典型的接口与DM6437相连,以实现有效的数据传输和接收,这个典型接口称为EMAC 控制模块,被整合进了EMAC/MIDO外设,该控制模块同时还用于复用和中断控制。DM6437 EMAC控制模块的详细信息见SPRU941,相关寄存器地址映射270。
13. MDIO - Management Data Input/Output
MDIO模块持续的轮询全部32个MDIO地址,以遍历系统中所有PHY设备。MDIO模块实现802.3串行接口管理,使用一根共享的2-线总线查询和控制各PHYs。HOST软件使用MDIO模块配置与EMAC相连的每个PHY的自动会话参数,返回会话结果,配置中需要EMAC模块传来的参数以纠正配置操作。MDIO模块设计成允许几乎全透明的MDIO接口操作,仅需要核处理器很少的维护。任何给定时间点只能有一个PHY相连。相关寄存器地址映射见数据手册Ethernet Media Access Controller (EMAC)/Management Data Input/Output (MDIO) Module Reference Guide.
14. Timers
DM6437有3个64-bit的通用timers,具有以下特点:
> 64-bit计数器
> Timer模式:
a. 64-bit通用目的Timer 模式(timer0 and timer1);
b. 双32-bit通用目的timer模式(timer0 and timer1);
c. watchdog timer mode(timer2)
> 2个可能的时钟源:
a. 内部时钟和外部输入时钟
b. 通过timer输入引脚TINPL(仅Timer0 和Timer1)
> 2个操作模式:
a. one-time 操作(Timer运行一个时限后停止)
b. continuous 操作(每个时限结束后Timer自动重启)
> 向DSP产生中断
> 向EDMA产生同步事件
> 当watchdog timer计时达到时限,促使设备全局重启(仅Timer2)
更为详细的资料见SPRU989. 相关寄存器地址映射279。
15. PCI - Peripheral Component Interconnect
DM6437 DMP可以通过整合的PCI master/slave总线接口与PCI兼容的设备相连接。PCI端口通过数据切换中心源SCR与DSP内部资源相连。PCI设备既可以用作PCI总线 master,也可以当作target。它支持PCI总线以33MHz速率,以32-bit数据/地址总线操作。
在6437上,PCI设备的pins可以与VPSS,EMIFA,GPIO,HPI,VLYNQ及EMAC设备的pins复用。6437设备提供一套初始化机制,通过该机制使PCI配置寄存器的某些缺省值可以从I2C EEPROM中获取。部分寄存器可以通过PCI自动初始化机制完成初始化,如果自动初始化机制不启用,则采用缺省配置值。PCI自动初始化机制的使能是通过选择PCI boot模式来完成,如何选择自动初始化的PCI boot mode可以回头参考bootmode部分的说明,更为详细的信息见SPRU985和SPRAAG0。在DM6437 DMP内PCI设备是一个master设备。 liasbz 发表于 2009-6-17 21:52 16. PWM - Pulse Width Modulator
DM6437提供3个PWM设备。其相关寄存器地址映射287。
17. VLYNQ
VLINQ是由Ti公司研制的一种宽带接口,可使用在WLAN、modems, VOIP处理器以及音频视频媒体处理器上。是一种全双工串行通信接口,将外部扩展物理设备连接到内部总线中。当这些外部设备连接到内部总线时,就会被映射到内部物理地址空间。多个VLYNQ设备会形成一个菊链,设备间采用点对点或主从模式通信。通过VLYNQ的数据采用8B/10B编码分包。
VLYNQ总线包括1个时钟信号(CLK)和8个发送线以及8个接受线。所有VLYNQ信号只能同时由一个设备控制。一个设备的发射脚同下一个设备的接收脚相连。VLYNQ总线的理论最高速率可达125 MHz,而实际数度取决于连接在VLYNQ总线上的物理设备。因而一个设备的时钟可能达不到125MHz。
当时钟达到125MHz是,信号同时传送/接收的实际数据流量大约为73 Mbit/s(单向为32-bit字传输),而2条线路同时传送/接受时可达146Mbit/s,8个通道同时传输最多可达584Mbit/s。在带宽内流量控制可以使接口独立调整传送和接收的数据流。
除去内部控制信息外,每个数据包可包含4或者16个字。因而单通道时,每包4字可使有效数据传输达到133Mbit/s。每包16字时可传输 178Mbit/s。最大8通道时,每包16字时有效传输可超过1400M比特/s。传输方向和时钟脉冲源都是可通过软件设置的(取决于设备实际情况)。控制软件还可以设置内部时钟速度(取决于设备实际情况)。未使用的时钟线,由内部控制停止工作。未使用的接受或发送线可能需要在外部连接47k终止电阻(取决于设备实际情况)。软件可选择内部终止信号。
DM6437 VLYNQ提供一个高速串行通信接口。
18. GPIO - General-Purpose Input/Output
GPIO设备提供通用引脚,可以配置作为输入或输出。GPIO设备可以以不同的中断/时间产生模式生成CPU中断和EDMA同步事件。它也提供外部设备的通用连接。GPIO引脚划分成banks,每个bank有16 pins(即bank 0包含GP[0:15])。更为详细的信息见SPRU988。