欢迎进入数字电视开发论坛 -->> 梦游部落论坛
首页  微博  WAP  
您现在的位置:数字电视开发网>>数字电视>>设计与开发>>正文内容

MPEG2码流传输卡的设计与实现

摘要:

本文介绍了一块基于PCI 总线的符合欧洲数字广播系统DVB标准的MPEG2码流传输卡的设计与实现方法。利用该卡与相应的软件配合可以满足多种场合下MPEG2码流发生、传输、分析和存储的不同需要。

关键词:PCI;MPEG2;DMA;DVB-ASI;DVB-SP;FPGA

引言

MPEG2码流传输卡主要是针对实时传送分析及存储MPEG2传送流(Transport Stream,简称TS码流)而设计的产品,适用面宽,用途广泛。该卡与不同的上层软件配合能够以低成本实现多用途码流发送接收设备,可以构成的产品有:实时TS码流发生器、实时TS码流分析仪、TS码流复用器、TS码流存储设备以及TS码流转发器等。相比国外的产品,该卡可设定的码流速率范围宽,并且任意可调。许多场合可以直接替代国外价格昂贵的MPEG2码流分析仪器。
 

 

图1 硬件组成框图
 

图2 JTAG加载模式图
 

图3 NCO寄存器写入时序
 

图4 DVB-ASI发送方式时序图
 

图5 同轴电缆ASI接口链路流程图
 

图6 DVB-SP1接口定义

硬件设计

系统硬件设计见图1所示,该图表示了各芯片之间的连接关系。下面对主要硬件在本设计中的功能进行说明。

PCI桥

PCI桥芯片是板卡内部总线与PCI总线接口的桥接芯片,这里选用的是PLX公司的PLX9054,该芯片符合PCI总线V2.2标准,内部具有DMA控制器,可以在MASTER和SLAVE方式工作,进行DMA操作时不占用系统CPU资源。在该设计中用它的目的是建立计算机和该卡之间的联系,系统在上电后首先识别该芯片,然后根据要求分配给该卡所需的计算机操作系统资源,操作系统为其在内存中分配所需的空间映射地址和范围,从而建立与操作系统的联系。该芯片与PCI总线连接的称为PCI侧,另一端提供给用户使用的称为LOCAL侧,提供的是与各种CPU或者DSP接口的通用总线形式。该芯片的寄存器设置是通过外挂的EEPROM和该卡的设备驱动程序进行设置的,也可以根据要求在LOCAL侧设置寄存器,完成相应的各种读写操作,比如DMA传输操作、中断请求等。

在该卡中,LOCAL侧没有CPU,是直接连接到FPGA内部的,其地址、数据和控制总线信号通过FPGA的编码和译码与其它芯片进行连接。在该芯片的配置寄存器中,分别为数据的DMA(Direct Memory Access)发送和接收分配了256K空间,为NCO配置了8字节的空间,这样配置后在Windows操作系统启动后会在系统内存空间内为配置寄存器所指定的空间大小分配相应的内存空间,以便应用程序对其灵活操作。

EEPROM

该EEPROM选用的是Microchip公司的93LC56B。用于装载PCI桥接芯片的最基本的芯片识别信息和资源配置信息,是PLX9054桥接芯片所指定的EEPROM芯片型号之一。选用不同厂家的93C/CS56芯片时需要注意该芯片是否支持16比特连续读功能,否则该桥接芯片不能正确读取EEPROM内的数据,造成配置数据加载失败,现象表现为计算机不能启动,或者计算机启动后加载的配置数据与EEPROM中的数据不符。

FPGA

这里FPGA选用的是XILINX公司的SpartanII系列芯片:XC2S30。该FPGA性能高、价位低,逻辑门有3万门;内部带有24K比特(3K字节)的Block RAM,可以根据需要配置成异步FIFO,用于数据流的缓存;有4个全局时钟输入用于不同的外部时钟输入;多种配置方法。上电配置这里选用的是CPU配置方法。利用该51单片机的P1.0、P1.1、P1.2、P1.3口编写JTAG加载模式时序对FPGA进行加载配置,硬件连接见图2所示。

FPGA在该板上完成的功能包含了所有的控制信号,包括:系统逻辑控制地址译码及数据通道切换逻辑、存储器逻辑控制及状态发生器逻辑、中断发生器、可调时钟逻辑控制、DVB-SPI和DVB-ASI发送信号时序产生及逻辑控制、DVB-SPI和DVB-ASI接收译码及逻辑控制以及LED系统状态指示逻辑控制等。下面对各个逻辑功能模块分别说明。

(1) 系统逻辑控制地址译码及数据通道切换逻辑。
该部分逻辑电路主要完成各个部分器件的选通及相应数据总线的切换,因为板子上的不同器件在系统空间内已经映射了不同的地址空间,比如数据的DMA收发空间,NCO寄存器配置空间等;各器件的数据总线接口不同、位宽也不一定相同。

(2) 存储器逻辑控制及状态发生器逻辑。
该部分逻辑与BUFFER构成了廉价、高速及大容量的FIFO。逻辑部分实现了BUFFER异步读写的双向计数以及BUFFER的状态指示逻辑的生成,比如空状态指示、半满状态指示和全满状态指示等。

(3) 中断发生器。
在BUFFER内数据多于或少于总容量一半时,BUFFER的状态指示逻辑产生半满信号的逻辑跳变。中断发生器捕捉到该跳变沿后产生中断信号,直到清中断信号到来为止。

(4) 可调时钟逻辑控制。
该部分逻辑产生了可调时钟芯片(NCO)寄存器写入和更新所要求的特殊时序逻辑电路。时序如图3所示。

(5) DVB-SPI发送信号时序产生及逻辑控制。
该部分通过应用层指令决定数据流包结构而采用不同的状态逻辑。

(6) DVB-SPI接收信号时序产生及逻辑控制。
该部分逻辑首先根据同步信号(PSYNC)、数据有效信号(DVALID)和内部的计数器来决定接收到的数据流符合哪一种传输格式,然后根据不同的数据流格式将数据分别处理同时上报应用层接收到的数据格式。
如果是188字节,那么由同步信号作数据接收起始位,将接收到的数据直接送入FIFO缓存。
如果是204字节,当后16字节为空字节时,将接收到的前188数据送入FIFO缓存,丢弃后16字节;当后16字节为扩展有效字节时,将该16字节另外存入一个FIFO(该FIFO用FPGA内的RAM生成),每次DMA上传数据后读走该FIFO内的数据。

(7) DVB-ASI发送信号时序产生及逻辑控制。
该部分逻辑直接根据应用层设置决定发送方式:单字节均匀发送方式和多字节突发发送方式。图4的A是单字节均匀发送方式工作时HOTLink发送芯片接口时序图;B是多字节突发发送方式工作时HOTLink发送芯片接口时序图。

(8) DVB-ASI接收信号时序产生及逻辑控制。
该部分逻辑完成HOTLink芯片接收到的数据写入FIFO的工作,无特殊时序和方式要求,直接进行接口信号切换。

BUFFER数据缓冲器

这里选用的BUFFER是AverLogic公司的视频缓冲BUFFER芯片AL422容量为384K字节。很适合作高速DMA传输的大容量数据缓冲。利用视频缓冲BUFFER做FIFO,主要考虑的出发点是数据的读写速度和容量,单纯的异步FIFO的在相同容量和速度指标时价格很高,用本文提出的办法的价格只有后者的十分之一以下。因为该芯片没有状态位输出,只有利用FPGA通过对该BUFFER读写信号的双向计数来指示内部数据的容量。

数控振荡器(NCO)

这里的数控振荡器(NCO)选用的是AD公司的直接数字频率合成器(DDS)芯片AD9850,该芯片的特点是给定参考频率后能够根据频率和相位设定值生成所需的任何频率,前提是所需频率要小于参考频率的三分之一。该数控振荡器输出的波形是其内部10阶DAC转换而来,其高频成份较多,不能直接输入给高速比较器,在输入高速比较器之前加一考尔低通滤波器,能够有效滤除无用的高频成份,从而得到高质量高精度的方波波形。本设计中直接通过应用层软件对AD9850的寄存器进行设置,产生所需的输出频率。

DVB-ASI接口

该接口是DVB标准A010 rv.1项中定义的MPEG2传输流传输接口,分为3层。详细的接口链路流程图如图5所示。

在发送端,包同步TS流数据首先进行8比特到10比特的编码,通常一个字节是由8比特构成,在编码时将该字节按比特拆开,根据8比特到10比特的编码查找表,找出对应的10比特字节,然后通过一个270MHz固定输出比特率的并/串转换器输出该字节。在并串转换器要求新的字节时,如果其输入端没有新的字节准备好,那么一个同步字节将自动插入到并到串转换器的输入端,并使之输出。由并到串转换器输出的比特流再经过缓冲/驱动电路,通过耦合/阻抗匹配网络,经连接器输出。

在接收端,串行数据流由连接器进入,经过耦合/阻抗匹配网络和驱动/缓冲后进行时钟、数据的恢复和串/并转换,然后数据进入到8B/10B解码器中,解码器首先判别同步字,检测到同步字后开始标记后续的数据队列,完成数据的解码,同时丢弃同步字。然后输出接收到的数据。


在本设计中,利用专用的转换芯片CYPRESS公司的HOTLink系列芯片CY7B923和CY7B933来完成层0的驱动/缓冲部分和层1的工作。只需按要求将包同步的TS流按要求输入输出CY7B923和CY7B933即可。

DVB-SPI接口

该接口也是DVB标准A010 rv.1项中定义的MPEG2传输流传输接口,传输采用LVDS技术和25针连接器。LVDS为差分电平,抗干扰能力强。接口定义如图6所示。

该LVDS电平转换芯片选用的是NS公司的DS90C031发送芯片和DS90C032接收芯片。

结语

该MPEG2传输卡的最大特点是应用广泛和灵活,码流速率的可调范围宽并且可以动态调整,也可以根据实际使用需求用在可变码率(VBR)的设备当中。在本设计中,硬件上还预留了扩充接口,可以直接与其他嵌入式设备连接,而无需通过PCI总线与设备桥接,更加扩大了该传输卡的应用范围。

参考文献:
1. PCI Local Bus Specification Version 2.2.
2. PLX Technology, Inc., PCI 9054 Data Book v2.1, Jan., 2000.

感动 同情 无聊 愤怒 搞笑 难过 高兴 路过
【字体: 】【收藏】【打印文章】【查看评论

相关文章

    没有相关内容