>
首页 » 技术文章 » 基于PCI总线的实时DVB码流接收系统的硬件设计

基于PCI总线的实时DVB码流接收系统的硬件设计

作者:■ 福州大学物理与电信学院 徐杰 苏凯雄  时间:2005-03-03 18:08  来源:本站原创

摘 要:本文介绍了基于PCI专用芯片PCI9054和CPLD的DVB码流接收系统的硬件设计。该设计采用了PCI9054+CPLD的数字处理方案,并采用一种新的方法更高效地利用双端口RAM,保证了高速、大容量数据流的实时处理。
关键词:DVB;PCI;CPLD;双端口RAM;WDM模式
前言
通过PC接收DVB(数字视频广播)码流已成为一项新的多媒体数据接收技术。因此,设计基于PC平台的DVB码流接收卡,是数字广播电视发展的需要。
由于DVB传输流的平均传输速率为6~8MB/s,并且要求保证接收的实时性,本文选择了PCI总线,其数据传输速率最高达528MB/s (66MHz,64bit),完全满足大容量高速实时传输系统的需求。另外,系统使用了CPLD,使设计方便灵活,易于修改,大大缩短了研制时间,并减少了系统硬件的复杂度。

系统硬件模块设计概述
系统的硬件框架如图1所示,整个系统硬件由DVB码流传输接口和总线转换接口组成。整个电路被PCI接口专用芯片PCI9054分为本地总线和PCI总线。
DVB TS流通过符合DVB标准的同步并行接口(SPI)输入,通过高性能双端口RAM IDT7006平滑高速数据流,在本地总线逻辑控制电路(CPLD)的控制下,采用DMA方式将数据经过专用的PCI接口芯片,实现本地总线与PCI总线的可靠通信。

传输流接口
DVB码流传输接口是硬件电路的重要组成部分,主要包括符合DVB标准的同步并行接口、由双端口RAM构成的高速数据缓冲区和基于CPLD的本地总线主控逻辑电路三个部分。完成对各逻辑模块间的时序和逻辑控制(CPLD的开发)是电路设计的难点。
PCI接收卡TS流输入接口
依照MPEG/DVB 规范要求,本文选取了SPI。SPI接口是一个符合MPEG/DVB规范的输入/输出接口,适于短距离或中等距离设备间的连接,接口采用25引脚D型接插件,有11对为平衡输入或输出,其中包括8对数据(差分数据),1对时钟,1对数据有效(即指出有效的数据位置)和l对包同步引脚,而且要同时传送时钟与数据同步信号。
基于双端口RAM的
高速缓存电路
在高速数据采集和处理系统中,高速并行数据接口的设计占有非常重要的地位。利用高性能双端口RAM能够方便地构成各种工作方式的高速数据传送接口。虽然PCI9054中存在双向FIFO,但是存储空间较小,并且本系统属于高速数据采集和处理系统,为了保证数据通路的顺畅,系统采用了IDT公司的IDT7006构成高速数据缓冲区,以保证将DVB传输流高效平稳地送至PCI接口。
IDT7006为16K×8bit静态双口RAM,允许两个(左、右)端口同时读写数据,每个端口具有独立的控制信号线,地址线和数据线,是真正的双口RAM。IDT7006的内部是一个存储器阵列,用于数据存储,并为左右端口共用,但是,当两个端口对双口RAM的同一个地址单元存取时,将会发生读写错误。因此,当两个端口对同一地址单元同时存取数据时,其中一个端口要处于等待状态。
在电路设计中,利用双端口RAM的地址线最高位,把IDT7006分为左右各上、下两个半区,交替写入和输出数据。其主要工作过程为:将SPI接口的8位并行数据线接到双端口RAM的左边I/OL(0~7)作为写端口;双端口RAM的右边I/OR(0~7)接到PCI9054的本地数据总线;CPLD分别控制双端口RAM的左写地址线ADL(0~13)、左片选CSL、左读写R/WL以及右写地址线ADR(0~13)、右片选CSR和右读写R/WR等信号。当从左端口对存储器的上半区进行写操作(SPI端口向双端口RAM写入数据)时,本地总线控制逻辑电路操作存储器的下半区,尽快把其中的数据读到PCI 9054中(PCI总线通过右端口读存储器的数据),并且启动DMA将数据传输到PC内存进行处理。反之,当上半区写满后,切换到下半区进行写操作,同时读操作置于上半区。这样周而复始的循环操作,实现了写入和读出同步进行以及DVB码流实时采集。
考虑到SPI接口传输流的传输速率非稳定的因素,本地总线控制逻辑模块需要完成输入/输出同步的功能,如果存储器的上半区已经读完(PCI总线一侧的操作快于SPI流的输入),而下半区的数据还未写完,应该使读指针停止,等待下半区写完后,指针再继续运行。
CPLD的应用和开发
本地总线主控逻辑设计
系统中本地总线主控逻辑(CPLD电路)主要完成对传输流接口的控制,协调各模块工作,同时实现与PCI9054和主机的可靠通信,以便与PCI总线连接, 为系统的双向高速数据传输提供无缝接口。本方案根据功能需求选择了Altera公司的MAX3000系列CPLD,并在设计时摈弃了CPLD原理图设计方式,而采用Verilog HDL的自顶向下的高层次系统设计方法,将本地总线主控逻辑按功能划分成若干子模块。模块化设计使得整个系统的维护和修改都变得非常简单。
将整个控制电路模块的功能分成四个部分来实现:地址解码逻辑、地址锁存单元、双端口RAM读写地址控制单元和命令式DMA模式逻辑电路。
地址解码逻辑主要完成本地总线地址空间的解码片选工作;地址锁存单元则接收PCI总线端传来的地址信息,在CPLD中锁存;读写控制单元产生双端口RAM所需的片选和读写控制信号:命令式DMA模式逻辑电路在FIFO写满时产生中断信号。
最后在Altera公司的MAX+PLUS-II 10.2中结合CPLD EPM3256ATC144-7器件进行了综合、布线和时序仿真。该芯片具有JTAG控制模块和在系统编程控制模块,可以方便地完成电路板测试和在系统编程功能。在线配置功能可以通过一条下载电缆将计算机上传来的芯片构造码直接输入芯片,这样使调试电路时修改某一部分电路设计变得十分容易。

总线转换接口
PCI总线模块
由于硬件电路采用了PCI总线与计算机相连,需要将DVB码流传输接口控制、数据和地址等信号转换为符合PCI总线要求的接口信号,这就是总线转换接口所要完成的功能。本文利用专用的接口芯片来实现PCI接口。这样,只要设计接口芯片、用户逻辑的接口电路和EEPROM的接口电路即可,从而大大减少了开发的工作量,缩短了设计周期,提高了电路的稳定性和可靠性,接口芯片的逻辑结构如图2所示。
PCI9054是一种功能强大、使用灵活并且符合PCI V2.2规范的 32位33MHz总线接口控制器,可作为PCI目标/总线主控设备,其峰值传输速率为132 MB/s,PCI9054提供了三种物理总线接口:PCI总线接口、本地总线接口和串行EPROM接口。本地总线的数据宽度为32位,时钟频率可达到50MHz,提供C,J,M三种工作模式,并且支持数据预取功能。
为完成PCI卡设计,必须先了解PCI设备的配置空间。PCI总线定义了3种物理地址空间:存储器地址空间、I/O地址空间和配置地址空间。前两者是计算机系统地址空间,而配置空间是PCI所特有的一种空间。根据PCI总线规范,所有的PCI设备都必须提供配置空间。
配置中基地址寄存器的配置较为重要,其功能是分配PCI设备的系统空间。在基地址寄存器中bit0(最低位)用来标识是存储器空间还是I/O空间,该位为0时是存储器空间,为1时则映射到I/O空间。当系统上电复位时,外置EEPROM将自动对PCI9054相关寄存器进行配置,操作系统随后根据这些配置数据为PCI接收卡分配系统资源,并启动PCI卡。本设计选用了Microchip公司的EEPROM——93LC66B作为PCI9054的配置存储器。利用编程器事先将要配置的信息,主要是设备识别号、供应商代码号、本地总线所需I/O、内存空间的大小以及中断等资源的申请写入配置存储器中。
本设计所需系统资源就是通过对EEPROM正确配制来实现的,包括为本地总线双端口RAM申请16K的内存空间,数据位宽为8bit;为PCI9054内部寄存器申请256字节的I/O空间;申请中断资源,配置使用的中断引脚为INTA#等。
PCI接收卡的上电检测
这一步是将PCI接收卡插入PCI插槽,由系统自动检测设备的阶段,这对PCI9054的配置极为重要,若配置不当,则会出现系统死机现象,甚至黑屏无法启动。如果PCI9054与PCI总线接口、EEPROM接口设计无误,则在这一步系统BIOS将检测到新硬件,并将显示PCI9054的VID、DID、物理位置和中断信息。在启动操作系统后,将提示发现新硬件,在设备管理器会发现PCI卡的配置信息。系统将为其分配相关资源,例如:
内存范围:0xe8040000 ~0xe80400ff(BAR0)
I/O范围:0xd400~0xd4ff (BAR1)
内存范围:0xe8040000~ 0xe801ffff (BAR2)
内存范围:0xe8020000~ 0xe803ffff (BAR3)
中断请求: 5

结语
本系统采用PCI+CPLD的模式实现了对高速、大容量DVB传输流的实时处理,达到了系统设计的目标。PCI总线保证了信息可以在足够的带宽下进行传输,CPLD可

相关推荐

多元化整合:PCB抄板搭上尧顺科技顺风车

PCB  CPLD  2013-03-12

Altium与Altera发布全新在线元件资源和软件支持

Altium  FPGA  CPLD  2012-02-15

嵌入式系统的实时数据接口扩展

嵌入式系统  CPLD  2011-09-02

基于CPLD的USB总线的隔离接口实现

CPLD  USB总线  2011-08-17

基于Virtex5的PCI-Express总线接口设计

PCI  Virtex5  2011-08-16

基于MAX6675多路温度采集系统设计与实现

温度采集  MAX6675  CPLD  2011-07-07
在线研讨会
焦点