新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 处理器与音视频外设之间的连接

处理器与音视频外设之间的连接

——
作者:美国模拟器件(ADI)公司 David Katz时间:2007-07-09来源:电子产品世界收藏

数字信号处理器以需要大量I/O负载的应用为目标,通常为开发人员提供各种集成接口—某些是标准接口,另外一些则是专用接口。例如,美国模拟器件公司(ADI)的Blackfin系列处理器是会聚处理器,这意味着它们在一个芯片上集成了DSP与MCU功能,这些处理器拥有与音频应用相关的两种主要类型的串行接口。该处理器的低比特速率双线接口(TWI)与串行外设接口(SPI)模块是用于音频器件控制与配置的。这些外设接口的前向通道通常用于配置或控制音频转换器,而反向通道则主要负责传输转换器的反馈信息或状态信息。该处理器的高比特速率串行端口外围电路,通常用于执行音频数据传输。

Blackfin处理器的双线接口与恩智浦半导体公司的双向I2C总线相兼容,并在多个器件之间提供一种非常简明的交换控制信息与数据信息的方式。它支持主从操作,传输速率高达400 kbps。I2C总线的串行数据(SDA)与串行时钟(SCL)线(参见图1)包含多个主接口,因此它可以连接一个以上可以对数据转换进行初始化的集成电路。串行数据流与串行时钟数据流之间的相位差决定在指定时间点的操作模式是主操作还是从操作。虽然我们不可能在这里列出世界上所有的I2C器件,但却可以说:使用包含I2C端口的数据处理器时,不管结构如何,都可以拥有多种不同的互连方案。

图1 I2C信号实例

Blackfin处理器全双工串行外设接口(SPI),运行速率最高可达33Mbps(远远超过绝大多数A/D与D/A转换器的控制要求), 该接口与摩托罗拉串行外设接口标准兼容。SPI是摩托罗拉公司发明的,又称作Microwire,是美国国家半导体公司的注册商标。SPI的扩展包括排队串行外设接口(QSPI)以及Microwire PLUS,二者都已经面市。SPI是一个3针数据通信接口组成(参见图2),支持主从环境以及多主机环境。SPI接口包括:MOSI(主出从入)接口、MISO (主入从出)接口以及串行时钟(SCK)接口。Blackfin处理器的1个SPI选择输入针脚,允许其他SPI器件选择Blackfin处理器;Blackfin处理器的7个选择输出引脚,允许该处理器选择其他SPI器件。虽然开发人员一般使用 SPI作为处理器与周边电路之间的同步串行通信接口,但SPI也可以用于内部处理器通信。至于I2C,由于SPI已经在业界广泛使用,与SPI兼容的器件随处可见。

图2 SPI信号实例

Blackfin处理器的全双工同步串行端口(SPORT)工作在较高数据速率,支持同时发送与接收。与音频应用相关的SPORT特性包括:两套独立的发送与接收引脚(原始数据、二次数据、时钟与帧同步),8通道I2S立体声音频(恩智浦半导体公司数字音频“Integrated Interchip Sound”总线协议),最大字长32比特,分辨率超过绝大多数高精度音频应用。

I2S是众所周知的串行总线立体声音频传输标准,广泛用于系统单元(如模数转换器以及数模转换器)之间的互连。I2S接口还用于高端CD与DVD播放器、以及PC声卡。I2S总线设计通常包括以下三条串行线路:1条包括两个时分多址数据通道的线路,1条字选择线路以及1条时钟线路。在I2S标准(参见图3)下,任何器件都可以通过提供必要的时钟信号而成为系统主器件,I2S从器件通常驱动来自外部时钟输入的内部时钟信号。I2S设计能够单独处理来自时钟信号的音频数据,而且通过分离数据信号与时钟信号,可以减轻与时间相关的误差(可能引起抖动),而不再需要防抖动器件。

图3 I2S音频信号实例

音频输入,音频输出

为了将音频源与数字信号处理器相连,在图4中,麦克风的模拟输出通过模数(A/D)转换器转换为数字信号,在这种情况下,麦克风承担相当直接的接口任务。从控制的角度看,DSP作为主机工作,它选择A/D转换器作为SPI从属外围电路。接着,利用4个SPORT引脚中的3个引脚,向Blackfin处理器传输数据。图5给出相反的例子,处理器与数模(D/A)转换器的连接,这也同样容易。在这种情况下,处理器仍将作为SPI接口主机配置与控制转换器,数据通过I2S SPORT接口流向数模转换器。然后,向讲话者反馈模拟输出。

图4 音频A/D转换器与处理器的连接

图5 音频D/A转换器与处理器的连接

音频接口技巧

下面的几个提示将使已经容易的应用变得更加容易。在处理器的双线接口(TWI),一定要记住按照I2C规范在SCL与SDA上各加上一个上拉电阻,因为这些引脚不能由高电平驱动(所有的时钟与同步信号都要使用正确的终止)。在SPI端口,要检查每个MISO引脚与MISO引脚的连接(因为这两个信号名称非常相似,信号的名称与功能容易混淆)。

简化开发的一个好办法是利用供应商提供的器件驱动程序套件,供应商的硬件平台开发工具可以用于评估与开发处理方案。例如,ADI公司的Visual DSP++工具套件,包括SPI、SPORT、TWI与其他接口的外围驱动程序。用户可以通过标准应用编程接口(API),配置与控制这些接口。Blackfin EZ-KIT评估板与相关的EZ-Extender扩展卡,这些转换器附带了大量代码范例,可以为设计人员提供有益的框架,使其迅速掌握音频器件如何同Blackfin处理器进行接口。
  
连接至视频流

Blackfin处理器与视频进行接口类似于它与音频的接口,但是比后者更复杂。

国际电信联盟(ITU)的BT.601建议阐明了数字电视信号编码。最常用的BT.601色彩空间是YCbCr色彩空间,其中,Y表示亮度分量,Cr与Cb表示色度分量。亮度与色度是根据RGB值计算出来的,它们相互独立,比RGB信号更适于进行压缩。通常,在4:4:4 YCbCr格式中,每个像素包括1个亮度值和2个色度值(Cb与Cr)。4:2:2 YCbCr格式则是一种色彩空间压缩格式,其中,每个像素由1个亮度值和1个色度值(Cb或Cr)组成。

数字视频信号利用若干定时信号组成视频帧。水平同步(HSYNC)信号标定了一个视频帧的每一个扫描行(从左至右)的有效视频信号起点。垂直同步信号(VSYNC) 从上至下标定了一个新的视频帧起点。在交织视频中,利用场指示器(FIELD)区分视频帧的奇场与偶场。最后,像素时钟信号对视频帧中的像素分量同步进行补充。

在BT.601标准视频中,这些同步信号通过物理方式转送到硬件引脚。不过,BT.656建议定义了传输4:2:2 YCbCr数字视频的并行与串行接口,在数据流中嵌入这些同步信号,不再需要额外的硬件信号。这需要在数据流(0xFF, 0x00, 0x00, 0xAB—其中,0xAB是控制字节,根据数据流中当前像素的位置而不同)中插入前导。图6给出NTSC与PAL帧结构实例,图7说明如何在数据流中设置前导。

图6 BT.656数字视频帧结构

图7 如何在BT.656视频中使用前导

数字视频源(如来自数字CMOS传感器的信号)可以直接与Blackfin处理器的并行外设接口(PPI)连接。然而,模拟摄像机来源则必须首先通过视频解码器,经过数字化转换成视频流后,输入至处理器。
对于视频输出,处理器能够对于视频输出而言,Blackfin处理器能够自然地向TFT-LCD等显示器发送数字视频流。该显示器只接受直接的数字输入。另一方面,如果视频信号欲流向模拟显示器(如CRT显示器),它必须首先通过硬件视频编码器,将数字视频流转换为适当的模拟格式。

连接视频源

图8给出CMOS图像传感器如何同嵌入式处理器连接。这里,双线接口(TWI)控制通道与Micron公司的CMOS图像传感器I2C总线连接,图像数据直接输入Blackfin处理器的8位并行外设接口(也可以根据传感器的分辨率,实现10位、12位甚或16位连接)。

图8 COMS图像传感器与Blackfin处理器的连接

虽然Blackfin处理器的并行外设接口往往是包含直接接口的高速并行端口(16条数据线,最多3个帧同步信号,1个时钟信号),但该端口不具备某些图像友好的特性,因而无法与处理器的DMA引擎联合工作。并行外设接口的详细资料太多,本文不再赘述。

本例中的图像传感器提供像素时钟信号以及某种类型的成帧处理——水平同步信号将标定有效扫描行区域。而垂直同步信号则是一个“帧有效”类信号。对于支持ITU-R BT.656标准的许多其他图像传感器,则不需要这些同步信号。

如果视频输入信号来自模拟源,如便携式模拟摄像机,那么信号必须首先经过视频解码器。在图9所示的例子中,处理器通过I2C与TWI接口配置解码器,其PPI接口接收来自视频解码器的8位数字数据流以及行锁像素时钟信号。

图9 处理器与来自模拟源的视频解码器的连接

连接视频显示器

在大多数应用中,仅保存在处理器内存中的视频帧的利用是有限的。视频帧必须传输至显示设备。当然,模拟显示器首先需要视频编码,如图10所示。可以利用I2C接口,完成通过Blackfin处理器PPI数据总线(尽管这些特殊编码器支持BT.656标准,某些编码器确需要通过PPI帧同步信号传送显式帧同步信号)发送数据的配置。类似于TFT LCD面板的数字显示器需要某些相同的信号层信号与同步层信号,包括水平同步信号、垂直同步信号以及数据取样时钟信号。在连接至TFT LCD面板时,一般都会利用整个16位数据总线,因为大多数TFT-LCD面板都支持18位甚至更高数据率;而且有选择地使用脉宽调制(PWM)定时器模块,因为许多TFT-LCD面板都不配备定时控制器。图11给出模拟显示时处理器与视频编码器的典型连接。

图10 模拟显示时处理器与视频解码器的连接

图11 处理器与TFT LCD面板相连的实例

视频连接技巧

我们应当尽可能采用BT.656标准,因为它可以大幅减少视频接口应用中屡见不鲜的定时不协调与不一致的问题。同时,还需要密切注意的是,A/D或D/A转换器的默认设置。有时候,这些转换器可以直接应用,无需通过I2C或SPI接口进行设置。此外,必须确保尽可能不要影响像素时钟源,因为根据应用的不同,这些时钟速率可能高达数十MHz,一个完全独立的时钟信号有助于提高系统性能和稳定性。

当Blackfin处理器与典型的RGB666 LCD面板(其红、绿、蓝分量各占6位,共计18位)连接时,处理器的16位接口实际上是把其当作RGB565连接的。不要将红色与蓝色通道中的最低有效位弃之不顾,因为这种通用做法会影响视频信号的动态范围。相反,在平板显示器上,可以将红色和蓝色分量的最低有效位与最高有效位结合起来,这样就可以确保三个色彩分量都能提供从最低值到最高值的完整动态范围。而绿色通道则连接至6位接口,用于传输6位绿色分量信号,因为绿色是这三种色彩分量中对视觉影响最大的颜色。

linux操作系统文章专题:linux操作系统详解(linux不再难懂)


评论


相关推荐

技术专区

关闭