当前位置:技术文章首页 >> 工程设计 >> 网络通信设计 >> 一种宽带复接器的设计与实现
一种宽带复接器的设计与实现
2006-08-25 11:52:22  作者:佚名   浏览次数:31  文字大小:【】【】【
点击相关图标,收藏本文到网摘:
一种宽带复接器的设计与实现
2006.05.07 合肥中国科学技术大学电子工程与信息科学系(230027)沈世明 汤素华 徐佩霞 来自:电子技术应用

  摘要:DVB-C数据广播系统的基本结构,详细分析了TS复接器在整个系统中的重要性与功能,提出一种D 与FPGA相结合的实现方案,及其设计方法和系统结构。

  关键词:DVB-C数据广播 TS复接器 D  FPGA

信息时代的到来使人们需要共享越来越多的信息。随着信息及其需求的爆炸性增长,信息的选择及传输速率成为一个重要问题。有线电视网络有其固有的高带宽特性,适合大容量的数据传输和实时性要求,使宽带数字接入成为可能。在我国由于有线电视网是一个已经存在的接入网络,成本低、可维护性强、频率资源丰富、覆盖面广、用户量大,因而通过有线电视网进行数据广播是目前国内应用领域的一大热点。DVB-C是ETSI(European Telecommunicatio  Standards I titute)提供的基于Cable上数据广播的一整套标准[1,2,3],本文首先介绍DVB-C数据广播系统的基本结构,接着详细分析TS复接器在整个系统中的重要性与功能,然后详细说明利用D (数字信号处理器)与FPGA(现场可编程门阵列)相结合的一个实现方案,阐明了其中的设计方法和系统结构。

1 DVB-C数字广播系统简介

一个实用的DVB-C广播系统的结构如图1所示[3-6],整个系统可以大致分为三个部分:(1)信息前端,包括视频服务器、播控服务器、通信控制服务器、用户管理工作站、节目采集工作站、节目 编排工作站等;(2)传输网络,利用现有的HFC网络巨大的频带资源实现数据传输;(3)用户终端,用户利用机顶盒或者Cable-Modem接收和浏览信息。

从图1可以看到,在DVB-C数字广播系统中,一个通道上传输的数据可能包含多路节目或来自多个节目源,因此需要对多路多节目TS流(MPTS)进行复合转接,生成一个符合DVB-C标准的MPTS,再经调制后在一个通道上传输。由TS复接器来完成这个功能。TS复接器在前端系统中相当于一个交换机,它负责对多个MPTS进行转换和复合,生成一个MPTS。在复合过程中,要完成服务信息( I/SI)、多路MPTS的交织等工作[4,5]。从中可以看出复接器在整个系统中的重要性,TS复接器工作是否稳定可靠,直接影响整个系统的正常运作。

2 TS复接器的设计方法

在该系统中需要对6路数字卫星电视节目进行复接。各路有效速率为0~15M 的异步串行接口(ASI)输入,6路总速率不超过36M ,输出为恒定速率38.1M 的ASI输出,输出的MPTS为符合DVB-C标准的传送流;复接器度同PID,包括将输入MPTS中的 I/SI等不需要的信息过滤掉以及对有效TS包重新分配PID。新的 I/SI信息作为复接器的输入按一定速率插入到MPIS中,插入的 I/SI信息包括节目关联表(PAT)、节目映射表(PMT)、网络信息表(NIT)、服务描述表(SDT)等[4,5],复接器还能接受来自播控系统的数据信息,作为复接器输出流的一部分。系统的功能模块结构如图2所示。

由图2可以看到,由于需要处理的数据速率快、数据量大、要求实时性,一般的处理芯片无法完成。为了达到上述目的,采用高速D 和FPGA一起来完成。整个系统基于D 和FPGA,配以CPLD、高速SRAM、异步FIFO等。D 具有运算速度快、计算能力哟、可用资源比较丰富的特点,尤其适合于实现各种数字信号的处理功能,在各种领域具有广泛的应用。但由于所要处理的数量太大,仅靠D 片内RAM是远远不够的,所以还必须要有大容量、访问速度快的缓冲区对接收到的数据进行缓冲,以便于D 进行处理。基本思想是FPGA完成TS包过滤和PID置换、 I/SI提取等工作,系统的控制工作、TS包交织算法则由D 完成,整个控制逻辑则由CPLD完成。

3 TS复接器的一种实现方案

针对上述分析,采用D 与FPGA相结合的方法成功实现了TS复接器,该实现方案如图3所示。图3中的D 采用TI公司的TMS320VC5410-100,它具有100MI 的快速处理能力,以及片内64K的RAM和多个串口等资源,其片外寻址空间可以多达8M Word。FPGA则采用了Xilinx公司的XCV300。

笔者为D 扩展了2M Word的高速SRAM作缓冲,分为两个1M Word的双缓冲,处理时以帧为单位,D 和FPGA只能访问其中一个1M Word的SRAM。一般情况下,FPGA从输入接口把一帧数据存入其中一个缓冲区,D 对另外一个缓冲区进行操作,根据交织表把数据送到FIFO,再输出到输出接口,两者的总线切换由FPGA负责完成。

图3可以分为以下几个模块:

a.输入模块:使用ASI接口将270M串行编码数据转换成27M并行数据,并提供接收时钟、数据有效等控制信号。

b.FPGA模块:接收ASI接口输出的并行数据,实现同步、PID置换、 I/SI提取等,并将数据写入SRAM中,跟踪记录每路的TS包数;产生帧切换脉冲,控制双缓冲区的切换。

c.D 主控模块:D 完成整个系统的控制功能,计算交织表,负责与播控系统的通信等。

d.CPLD模块:根据D 提供的地址和数据进行译码,对总线上的各设备进行互斥片选;产生中断申请信号;对发送FIFO的全空信号进行采样,控制从发送FIFO读数据并将数据送给输出ASI接口。

e.输出模块:由CPLD提供控制信号,将数据从发送FIFO读出来,同时写入发送ASI接口。

f.命令通信接口:复接器通过串口与播控服务器通信,从服务器接收系统复位、状态查询、PID置换、 I/SI插入和提取等命令,并向服务器反馈必要的信息。

为保证数据信号接收端解码器能正确解码,缓冲区不会上溢或下溢,解码输出信号平稳,要求复接器输入的各路TS包均匀分布在输出数据流中,所以必须在发送之前对输入的各路TS包做交织。采用实时交织的方法,FPGA能够在每次帧切换的时候记录各路TS包的数据目,然后计算交织表。交织表依照如下方式计算:

设数据流共有K路MPTS流,数据流的一个数据帧有M个TS包,每路MPTS有m(i)(i=0,1,...k-1)个TS包,假设各路TS包由大到小排序,m(0)最大,否则首先排序。根据M、K、m(i)对输入的TS流进行交织,对第i路有:用p(i,n)指示第i路是否将一个TS包输出到MPTS中的第n个TS包,q(i)表示第i路中已输出到MPTS中的TS包数,初值为0;

i=0,n=0;

while( lt;M)

{

p(i,n)=[n(i)*n/M]+1;[ ]表示取整

if (p(i,n)-q(i)>=1)

{

将第i路的第q(i)个TS包输出到MPTS中的第n个TS包;

q(i)++;

n++;

}

i++;

if(i=K) i=0;

}

最后在Xilinx的Xilinx Foundation Series先对所设计的逻辑进行仿真,利用D 的simulation进行程序的仿真,仿真结束后在单板上进行调试。由于选用的FPGA的容量限制,门数有限,能够进行PID置换的个数受到限制,但是可以根据估算出的各种TS包数对每一路能够置换的PID数目进行动态调整;由于采用了交织算法,能够对突发数据进行很好的平滑作用,利用后级进行处理。把复接器接到图1所示的系统中去,通过复接器处理的节目流在STB(机顶盒)上能够接收到稳定清晰的节目,并且系统稳定工作,说明本文所设计的复接器达到了预期目的。

本文详细分析了DVB-C数据广播系统中的关键部件--复接器的一种实现方法,该方法基于D +FPGA的结构,便于以后的升级与扩展。同时,所设计的复接器除了应用在DVB-C数据广播系统外,凡是输入符合DVB-C的TS流标准均可以使用。

0

顶一下

0

踩一下
合作网站  

  独乐乐不如众乐乐!

  好东西要与好朋友分享!

  你有一个苹果我有一个苹果,互相交换,我们每人只有一个苹果;你有一种思想,我有一种思想,互相交换,我们每人有两种思想。

友情链接 | 诚聘英才 | 关于我们 | 版权声明 | 联系我们 | 网站公告 | 广告服务 | 商机无限 | 更新记录

  •  ©2006-2008  电子爱好者   Email:kingtuotech@gmail.com  
    敬告网友:本站资料部分收藏于网络,如有侵犯您的权益,请来信告知!
  • 湘ICP备07008885号    电子爱好者主要推广电子技术与电子工程设计。