基于PCI的单板计算机应用中起到系统控制器作用的实

时间:2012-04-20来源:网络

硬件结构图

直接存储器存取(DMA)是提高接口中数据传送带宽的关键,因为它在传送数据时所需内核处理器的干预最小。这种采集或传送数据的设备可以利用其自带的DMA控制器,自动地从处理器来回传送数据。DMA通过利用PCI的突发能力来存取接口中的大块数据,从而极大地提高了性能。这种能力推动了诸如实时视频处理等应用的发展。

对多处理器系统的内在支持

通过用PCI总线连接多个嵌入式处理器,就能实现一个多处理器系统。采用这种直接的连接方式很容易就能使计算能力成倍增加。有了附加的数据总线以及每个处理器访问存储器的能力,就能处理数据流。采用这种方法,无须增加算法的编程复杂度就可以在每个处理器之间对数据进行分区。另外,即使是在视频吞吐速率,仍然有足够的可用空间用于与控制有关的传送开销。

从系统控制器的角度看PCI

PCI存储器模式

PCI协议使用基地址寄存器(BAR)为各设备分配存储器和I/O范围。在配置期间,主机会询问各个设备以便决定每个设备所需资源。如果主机可以提供所有这些资源需求,它就会在每个设备的存储器BAR和I/O BAR中写入相应的起始地址。然后,通过对其存储器或者I/O范围内发起一次传送就可以访问每个设备了。此外,每个PCI代理都可以访问总线上的所有其他代理。

ADSP-BF533是一个PCI设备,它有BAR0(存储器BAR)和BAR2(I/O BAR)两个寄存器,以及相应的屏蔽寄存器。这些屏蔽寄存器可用于指定每个区域所需要的存储数量。

因为主机是在其PCI存储器空间内为设备分配一个地址,所以该设备(在这里就是指BF533)需要将此地址映射到它的内部或者外部存储器空间中。对BF533来说,存储器空间包括芯片内的L2存储器以及外部的SDRAM和(或)异步存储器,并且I/O空间会映射到处理器的存储器映射寄存器(MMR)区域。在这些定义的引导下,一个内部事务就会被控制在适当的区域。

当ADSP-BF533作为给定事务的目标机(受控器)时可以应用上述讨论的方法。当它发起传送时,会在其PCI外部存储器BAR或者I/O BAR中写入它希望访问的代理地址。无论是对PCI存储器还是I/O空间的一次读或写都会发起一次以该PCI代理的存储器或者I/O区域为目标的事务。

在主机模式中,外发事务的发生方式与上面的描述类似。对内送事务(ADSP-BF533作为受控器)的方案稍微有些区别。在主机模式中,BF533不使用BAR寄存器,而是使用主机存储控制寄存器将其资源开放给外部代理。它可以接受或者不接受对其存储器和I/O空间的访问。在有些情况下,它还能指示那些开放资源还有多少可以被外部PCI代理访问。这就为保护关键的代码或者数据段免遭其他PCI代理的更改提供了一种机制。

在PCI存储空间中开窗口

一旦初始化完成后,每个PCI设备都有对主机或总线上其他PCI设备“开放”的存储资源。这些存储资源可以包括内部存储器和外部存储器。例如,在BF533中,内部或者外部L2存储器中的“窗口”可以被PCI总线上的任何其他设备共享。然后每个总线主控器就可以直接访问这些开放的存储器空间,就像是在访问它自己的内部存储器一样。一旦主机完成了初始化进程,各设备之间的所有存储器地址都能被PCI接口翻译出来。

术语“窗口”用于表示该设备可能还有不允许别的总线主控器共享的其他受保护资源。这种开放的窗口清楚地表示了可以直接进行传送的存储资源。这种方法是很重要的,因为对任何给定设备都不需要内核处理器参与每一件事务。

图2的简单实例示出了主机中的窗口指向设备资源以及设备中的窗口指向主机资源。这就是允许单个的内核处理器能将外部资源当做简单的存储器地址来访问的机制。

主机中的窗口指向设备资源以及设备中的窗口指向主机资源原理图
主机中的窗口指向设备资源以及设备中的窗口指向主机资源原理图

通常采用邮箱中断方式来协调总线主控器与PCI设备之间的数据传送,这就使接收设备知道数据什么时候可用以及什么时候准备用于处理。

数据传送路径

BF533有一组专用的外部主控器总线,允许外部的总线主控器直接从(或对)内部的L2存储器或者芯片外的SDRAM传送数据而无需内核处理器的介入。另外,可以建立PCI映射以便允许访问某些系统资源,例如,共享的外围设备。上述每种数据传送方法都只需要不多的初始化代码。内核处理器只需要管理信号量以便指示什么时候可以交换数据,以及什么时候可以将数据从该系统中传送出去。

除了上述传送路径外,还有一种内部的存储器DMA控制器可以用于发起任一方向的数据传送。这种数据传送路径能支持外围设备间的突发传送。

在支持PCI的嵌入式媒体处理器上实现视频捕获

下面将给出一种能执行主机控制器和信号处理器任务的嵌入式媒体处理器的具体实例,目的是要说明一种带有集成PCI接口的嵌入式处理器是如何用在具有各种不同接口要求的系统中的。这里的重点是数据搬移以及接入许多基于PCI的主流外围设备的能力。因为安装PCI接口就跟安装存储器一样,所以通过把这些外围设备映射到一些存储器的位置就极大地简化了编程模式。初始化完成后,每个外围设备都会对主机处理器开放一个窗口用于双向的数据交换。

在本例中,采用Momentum Data Systems (MDS)公司的Eagle-35主板来迅速实现一个系统,该PCB的原理示意图参见图3和图4。Eagle-35是一个单板计算机(SBC)的主处理器,该SBC有4个内部PCI插槽,板内还包含了一个以太网控制器,并且连接到PCI总线,采用一个廉价的PLD实现5设备的PCI判决器。它还包括了一个可连接SDRAM内存模块的插座,可以提供128MB的外部存储器。

首先可以把一个视频画面捕获卡安装到其中一个PCI插槽中。利用照相机数据源或者视频源的多路复用流,可以一次把一帧的视频数据直接送入SDRAM。另外,每一路数据都可以直接进入外部存储器用于处理。为了说明清楚,假定有一个安全应用,它有一路输入的CIF视频流,从10MB/s数量级的数据压缩至KB/s数量级范围(具体取决于期望的压缩图像质量等级)。该视频画面捕获卡上的一个DMA控制器直接将数据传送到SDRAM中。因为BF533有一个双MAC/ALU的内核处理器,所以可以实时地完成每一输入帧的数据压缩。可以处理的压缩类型有好几种,包括MJPEG、MPEG-2以及MPEG-4。采用这些算法进行CIF格式的压缩仅消耗内核处理器资源的很小一部分。

PCI接口有多种方法可以将压缩后的数据从处理器传送出去。一种方法是利用以太网控制器把压缩数据流送到远程网络地点,另一种方法是利用一个IDE驱动器来保存视频,这两种方法都接受PCI数据流,这样就简化了需要的编程模式。因为BF533的DSP处理能力既支持编码也支持解码,所以压缩图像可以重新传回给同样的系统。

在SDRAM中可提供多个输入和输出帧的缓冲器,这些缓冲器采用一种反复的方式轮流保存数据。当一个输入缓冲器充满了来自视频捕获设备的数据时,另外一个缓冲器的数据正在被压缩。两个输出缓冲器允许输出方向的并行操作。当一个输出缓冲器充满了压缩数据时,另一个缓冲器中的数据可以被传送到IDE驱动器或者以太网接口中。

Eagle-35主板是一种ATX型的设备,所以适合于做一个PC机箱中的主板。为了方便访问,音频编解码接口等所有的附加接口都放到了电路板的外部。有了板内的编解码器,就可以完成音频的压缩以便匹配视频流。

1 2

关键词: PCI 单板 计算机应用 系统控制器

加入微信
获取电子行业最新资讯
搜索微信公众号:EEPW

或用微信扫描左侧二维码

相关文章

查看电脑版