论文部分内容阅读
摘要:本文介绍了一种使用ASI接口实现MPEG-2 TS流录制的方案,简要介绍了TS流的构成,详细探讨了设计中的主要问题以及解决方案,该设计已经在实际中得到了很好的应用。
关键词:ASI接口 TS流 FPGA FIFO
引言
随着电子技术、计算机技术和信息技术的发展,电视系统的数字化是一个必然的趋势。在目前的DVB-C系统设备中,传输MPEG-2视频码流的标准接口包括异步串行接口(ASI)和同步并行接口(SPI)。由于SPI需要11位有用接口,连线多且复杂、传输距离短,而且容易出现故障;ASI接口采用串行传输,只需要一根同轴电缆传输,连接简单,传输距离长,因此得到了广泛的使用。
DVB-ASI接口可以有不同的数据速率,但是传输速率恒定为270Mbps。不同数据速率的串行编码传输系统,该接口系统基于MPEG传输包的分层结构,包括顶层(第2层)和基于光纤通道和同轴电缆通道的底层(第1层和第0层)。
本文设计的基于ASI接口的高清TS流录制系统,可以接收不同频道的MPEG流,存储于硬盘中,便于主机上的应用程序对MPEG-2传输流做进一步的处理。
1、MPEG-2传输流
MPEG-2标准的系统部分描述了如何将视频、音频和数据流服用成一个或者多个适用于存储或传输的流。其中,传输流(Transport Stream)简称TS流,是专门针对在有可能发生严重错误的情况下进行节目存储和传输而定义。传送流应用比较广泛,如视音频资料的保存、电视节目的非线性编辑系统及其网络等。
TS流由一道或多道节目组成。如图1所示,TS包长固定为188字节。包括同步字节0x47和数据包识别号PID等。PID为13位字段,指示存储于分组有效负载中数据的类型,PID为0x0000表示程序关联表保留;为0x0001表示条件访问表保留,为0x1FFF表示空分组保留。从PID可以判断其后面负载的数据类型是视频流、音频流、PSI还是其他数据包。其中PSI表有4种类型:节目关联表(PAT)、节目映射表(PMT)、网络信息表和条件访问表。
PSI用来描述传送流的组成结构,在MPEG-2系统中非常重要。尤其在多路复用中,PAT表给出一路MPEG-2码流中有多少套节目,以及它与PMT表PID之间的对应关系;PMT表给出了一套节目的具体组成情况与其视频、音频等PID对应关系。PSI提供了使接收机能够自动配置的信息,用于对复用流中的不同节目流进行解复用和解码。PSI信息由以下几种类型表组成:
1)节目关联表(PAT Program Association Table)
PAT表用MPEG指定的PID(00)标明,通常用PID=0表示。它的主要作用是针对复用的每一路传输流,提供传输流中包含哪些节目、节目的编号以及对应节目的节目映射表(PMT)的位置,即PMT的TS包的包标识符(PID)的值,同时还提供网络信息表(NIT)的位置,即NIT的TS包的包标识符(PID)的值。
2)节目映射表(PMT Program Map Table)
节目映射表指明该节目包含的内容,即该节目由哪些流组成,这些流的类型(音频、视频、数据),以及组成该节目的流的位置,即对应的TS包的PID值,每路节目的节目时钟参考(PCR)字段的位置。
3)网络信息表(NIT Nerwork Information Table)
网络信息表提供关于多组传输流和传输网络相关的信息,其中包含传输流描述符、通道频率、卫星发射器号码、调制特性等信息。
4)条件接收表(CAT Conditional Access Table)
CAT表用MPEG指定的PID(01)标明,通常用PID=1表示。它提供了在复用流中条件接收系统的有关信息,指定CA系统与它们相应的授权管理信息(EMM)之间的联系,指定EMM的PID,以及相关的参数。
2、DVB-ASI信号接收系统结构
基于DVB-ASI接口的TS流录制系统结构框图如图2所示。
在接收时,ASI信号经过同轴电缆BNC接头接入,ASI-IN模块完成时钟和数据恢复,串并转换和8B/10B解码等功能。利用ASI-IN模块产生的时钟信号、同步信号和数据信号,将有效的数据读入FPGA。主机首先通过UART口把需要录制的节目PID号送至FPGA,FPGA对符合PID号的TS流缓冲至SDRAM,当缓冲数据量达到一定量时,FPGA发送中断至硬盘控制器,启动写入TS流写入硬盘过程,完成整个录制功能。
3、系统格结构的实现方法
1)ASI-IN模块
本次设计采用杭州国芯生产的GX1001系列芯片,主要用于实现DVB-C的信道解调解码,使得从射频信号接受的数据转换为传送流,并将其输出,实现信道解码功能。GX1001芯片是一款素质比较高的DVB-C信道解调解码芯片。该芯片集成了10位A/D转换器,通过直接中频信号输入,能够完美的支持DVB-C下16QAM、32QAM、64QAM、128QAM和256QAM解调;除此之外,该芯片还能够较好的支持可变符号率信号。同时,该芯片使用了数字内插原理,因此,可以减少外部晶振的使用,一般情况下只需要一个固定频率的晶振即可满足要求;对该芯片进行优化之后,其载波恢复和均衡算法可以在大载波频偏情况下对抗强烈回波的恶劣信道,完全能够符合DVB-C标准。
2)FPGA核心控制模块
FPGA实现的功能主要包括I2C总线、SDRAM控制器、UART控制器和FIFO功能。其中,I2C总线完成ASI-IN中TS流启动传输设置;UART控制器用于接收通过主机发送的录制TSl流的PID号、硬盘地址设置等;FIFO用于对需要录制的TS流进行打包缓冲;SDRAM控制器用于对TS包进行缓冲,当达到一定量时,启动传输至外挂硬盘。
I2C controller模块通过编写Verilog代码自定义逻辑实现,实现I2C总线协议模块,完成GX1001芯片的配置, 在I2C controller模块中,由于需要把I2C总线接口的SCL和SDA信号在系统时钟下同步,因此采用系统时钟iCLK对SCL和SDA信号进行三次缓冲,得到其上升沿和下降沿脉冲信号,便于I2C控制状态机处理;状态机部分对I2C的一次读/写寄存器操作进行说明,状态包括器件地址部分、寄存器地址部分和数据部分。
本系统采用Quartus II自带的IP核生成器自动生成,并且为了适应设计电路的要求,模块的各种参数可以设定。本设计采用lpm_fifo_dc构成同步FIFO,选择MegaWizard Plug-In Manager栏可以生成同步FIFO。
SDRAM控制器的硬件结构,主要包括三个设计模块:AHB Ctrl模块、Bus ctrl模块和Cmd gen模块。其中,AHB Ctrl模块用于实现AHB总线控制功能,在以后的程序设计中不需要更改接口;Bus ctrl模块用于与AHB总线接口,传输读/写控制,产生至SDRAM的数据线和地址线;Cmd gen模块用于控制SDRAM的各种命令,产生控制信号。
4、结论
本次设计的基于ASI接口的高清TS流录制系统,已成功应用于实际的CATV宽带网。经过近一年的应用,系统工作稳定可靠,可以满足商业化运行的需要。
参考文献
[1]路永坤.用Verilog HDL实现I2C总线功能[J].电子技术应用,2004,16(4):67~69
[2]韩相军,关永,王万森.嵌入式视频采集系统的设计与实现[J].嵌入式系统的应用, 2006,28(22):26-29
[3]杜慧敏,李宥谋,赵全良.基于Verilog的FPGA设计基础[M].西安电子科技大学出版社.2006
关键词:ASI接口 TS流 FPGA FIFO
引言
随着电子技术、计算机技术和信息技术的发展,电视系统的数字化是一个必然的趋势。在目前的DVB-C系统设备中,传输MPEG-2视频码流的标准接口包括异步串行接口(ASI)和同步并行接口(SPI)。由于SPI需要11位有用接口,连线多且复杂、传输距离短,而且容易出现故障;ASI接口采用串行传输,只需要一根同轴电缆传输,连接简单,传输距离长,因此得到了广泛的使用。
DVB-ASI接口可以有不同的数据速率,但是传输速率恒定为270Mbps。不同数据速率的串行编码传输系统,该接口系统基于MPEG传输包的分层结构,包括顶层(第2层)和基于光纤通道和同轴电缆通道的底层(第1层和第0层)。
本文设计的基于ASI接口的高清TS流录制系统,可以接收不同频道的MPEG流,存储于硬盘中,便于主机上的应用程序对MPEG-2传输流做进一步的处理。
1、MPEG-2传输流
MPEG-2标准的系统部分描述了如何将视频、音频和数据流服用成一个或者多个适用于存储或传输的流。其中,传输流(Transport Stream)简称TS流,是专门针对在有可能发生严重错误的情况下进行节目存储和传输而定义。传送流应用比较广泛,如视音频资料的保存、电视节目的非线性编辑系统及其网络等。
TS流由一道或多道节目组成。如图1所示,TS包长固定为188字节。包括同步字节0x47和数据包识别号PID等。PID为13位字段,指示存储于分组有效负载中数据的类型,PID为0x0000表示程序关联表保留;为0x0001表示条件访问表保留,为0x1FFF表示空分组保留。从PID可以判断其后面负载的数据类型是视频流、音频流、PSI还是其他数据包。其中PSI表有4种类型:节目关联表(PAT)、节目映射表(PMT)、网络信息表和条件访问表。
PSI用来描述传送流的组成结构,在MPEG-2系统中非常重要。尤其在多路复用中,PAT表给出一路MPEG-2码流中有多少套节目,以及它与PMT表PID之间的对应关系;PMT表给出了一套节目的具体组成情况与其视频、音频等PID对应关系。PSI提供了使接收机能够自动配置的信息,用于对复用流中的不同节目流进行解复用和解码。PSI信息由以下几种类型表组成:
1)节目关联表(PAT Program Association Table)
PAT表用MPEG指定的PID(00)标明,通常用PID=0表示。它的主要作用是针对复用的每一路传输流,提供传输流中包含哪些节目、节目的编号以及对应节目的节目映射表(PMT)的位置,即PMT的TS包的包标识符(PID)的值,同时还提供网络信息表(NIT)的位置,即NIT的TS包的包标识符(PID)的值。
2)节目映射表(PMT Program Map Table)
节目映射表指明该节目包含的内容,即该节目由哪些流组成,这些流的类型(音频、视频、数据),以及组成该节目的流的位置,即对应的TS包的PID值,每路节目的节目时钟参考(PCR)字段的位置。
3)网络信息表(NIT Nerwork Information Table)
网络信息表提供关于多组传输流和传输网络相关的信息,其中包含传输流描述符、通道频率、卫星发射器号码、调制特性等信息。
4)条件接收表(CAT Conditional Access Table)
CAT表用MPEG指定的PID(01)标明,通常用PID=1表示。它提供了在复用流中条件接收系统的有关信息,指定CA系统与它们相应的授权管理信息(EMM)之间的联系,指定EMM的PID,以及相关的参数。
2、DVB-ASI信号接收系统结构
基于DVB-ASI接口的TS流录制系统结构框图如图2所示。
在接收时,ASI信号经过同轴电缆BNC接头接入,ASI-IN模块完成时钟和数据恢复,串并转换和8B/10B解码等功能。利用ASI-IN模块产生的时钟信号、同步信号和数据信号,将有效的数据读入FPGA。主机首先通过UART口把需要录制的节目PID号送至FPGA,FPGA对符合PID号的TS流缓冲至SDRAM,当缓冲数据量达到一定量时,FPGA发送中断至硬盘控制器,启动写入TS流写入硬盘过程,完成整个录制功能。
3、系统格结构的实现方法
1)ASI-IN模块
本次设计采用杭州国芯生产的GX1001系列芯片,主要用于实现DVB-C的信道解调解码,使得从射频信号接受的数据转换为传送流,并将其输出,实现信道解码功能。GX1001芯片是一款素质比较高的DVB-C信道解调解码芯片。该芯片集成了10位A/D转换器,通过直接中频信号输入,能够完美的支持DVB-C下16QAM、32QAM、64QAM、128QAM和256QAM解调;除此之外,该芯片还能够较好的支持可变符号率信号。同时,该芯片使用了数字内插原理,因此,可以减少外部晶振的使用,一般情况下只需要一个固定频率的晶振即可满足要求;对该芯片进行优化之后,其载波恢复和均衡算法可以在大载波频偏情况下对抗强烈回波的恶劣信道,完全能够符合DVB-C标准。
2)FPGA核心控制模块
FPGA实现的功能主要包括I2C总线、SDRAM控制器、UART控制器和FIFO功能。其中,I2C总线完成ASI-IN中TS流启动传输设置;UART控制器用于接收通过主机发送的录制TSl流的PID号、硬盘地址设置等;FIFO用于对需要录制的TS流进行打包缓冲;SDRAM控制器用于对TS包进行缓冲,当达到一定量时,启动传输至外挂硬盘。
I2C controller模块通过编写Verilog代码自定义逻辑实现,实现I2C总线协议模块,完成GX1001芯片的配置, 在I2C controller模块中,由于需要把I2C总线接口的SCL和SDA信号在系统时钟下同步,因此采用系统时钟iCLK对SCL和SDA信号进行三次缓冲,得到其上升沿和下降沿脉冲信号,便于I2C控制状态机处理;状态机部分对I2C的一次读/写寄存器操作进行说明,状态包括器件地址部分、寄存器地址部分和数据部分。
本系统采用Quartus II自带的IP核生成器自动生成,并且为了适应设计电路的要求,模块的各种参数可以设定。本设计采用lpm_fifo_dc构成同步FIFO,选择MegaWizard Plug-In Manager栏可以生成同步FIFO。
SDRAM控制器的硬件结构,主要包括三个设计模块:AHB Ctrl模块、Bus ctrl模块和Cmd gen模块。其中,AHB Ctrl模块用于实现AHB总线控制功能,在以后的程序设计中不需要更改接口;Bus ctrl模块用于与AHB总线接口,传输读/写控制,产生至SDRAM的数据线和地址线;Cmd gen模块用于控制SDRAM的各种命令,产生控制信号。
4、结论
本次设计的基于ASI接口的高清TS流录制系统,已成功应用于实际的CATV宽带网。经过近一年的应用,系统工作稳定可靠,可以满足商业化运行的需要。
参考文献
[1]路永坤.用Verilog HDL实现I2C总线功能[J].电子技术应用,2004,16(4):67~69
[2]韩相军,关永,王万森.嵌入式视频采集系统的设计与实现[J].嵌入式系统的应用, 2006,28(22):26-29
[3]杜慧敏,李宥谋,赵全良.基于Verilog的FPGA设计基础[M].西安电子科技大学出版社.2006