基于NiosII的DTMB单频网适配器设计
扫描二维码
随时随地手机看文章
1引言 作为地面数字电视的组网方式之一,单频网(singlefrequendynetwork,sfn)具有节省频率资源和能实现大范围无线覆盖的特点,在世界各地得到广泛应用。组建单频网要解决的一个难题是发射机的同步问题,为此单频网引入了gps接收机和单频网适配器来实现全网的同步。 2006年8月具有自主知识产权的dtmb标准正式确定为中国地面数字广播传输标准,该标准中,系统的信号帧与绝对时间同步,与dvb-t等标准相比,实现单频网更具优势。 2单频网适配器总体实现方案 单频网主要有中心发射站的单频网适配器、gps接收机、中转站的同步系统以及支持单频网模式的调制器组成。在中心发射站,单频网适配器每隔一个兆帧就往mpeg-2码流中插入一个mip包(mega-frameinitial-izationpacket)。mip包中携带有传输参数信令(tps)、同步时间标签(sts)和最大延迟等重要参数。经单频网适配器处理的码流通过初级分布网络传输到中转站后,中转站的同步系统从mip中提取出tps等重要信息后调整本地发射机的发射时间和频率,从而实现网络同步。 dtmb的单频网适配器主要由fpga实现的核心功能模块和基于niosii软核cpu实现的控制模块组成,如图1所示。核心功能模块即适配器模块,主要实现mip包计算和插入,可编程参考时钟(pcr)校正,传输流速率适配以及ds3输出接口的适配;控制模块主要实现人机交互部分如键盘和lcd的控制以及适配器模块工作方式的控制。 图1中,flash,sram和sdram用来存储fpga的配置信息和系统控制程序,dds模块用来产生输出码流所需时钟。通过键盘和lcd接口,用户可设置系统的工作模式,了解系统的工作状态。2路asi码流经过专门的接口芯片后输入到fpga,适配器模块根据用户的设置在码流中插入相应的mip包,最终输出为2路asi接口的码流,一路光纤接口的码流,一路ds3接口的码流。 适配器模块作为自定义组件通过avalon总线挂接在niosii系统中,它与niosii的接口如图2所示。 niosii通过设置适配器模块(技术指标见表1)内的控制寄存器来控制适配器模块,通过读其内部的状态寄存器了解工作状态,或通过中断信号产生报警信息。 3关键技术实现 适配器的设计难点在于自定义组件适配器模块的实现,具体包括硬件逻辑的实现以及驱动程序的编写,下面主要讨论难度较大的硬件逻辑实现。 1)适配器模块的实现 实现框图见图3,输入的mpeg-2ts流先要同步,找到ts流的包头,去掉空包后输入fifo。包复用模块按照时钟产生模块输出数据,同时插入mip包。当fifo中数据不足时,则插入空包模块产生的空包。由于码流重组和速率适配,导致各包在适配器中停留时间不一致,因此要进行pcr校正。本文pcr校正采用置入法,即在输入码流中检测到pcr包后,将包中的pcr值减去系统27mhz时钟当前的计数值;当输出缓存中检测到pcr包后,将包中已改过的pcr值加上系统27mhz时钟当前的计数值,这样,用一套计数器就可完成pcr校正和更新。 2)mip包的计算和插入 根据gps接收机收到的10mhz和1pulse/s信号算出sts值,同时根据niosii的控制信息产生tps和最大延时参数,再生成32位的crc校验值并复合成mip包。其中,crc32用的校验多项式为d32+d26+d23+d22+d16+d12+d11+d10+d8+d7+d5+d4+d2+d+1。由于crc32校验码的实时性要求较高,因而采用并行算法--查表法。dtmb系统兆帧的持续时间正好为1s,mip中的sts值在理论上应不变,因此第m个mip包中的sts可表示为第m个兆帧实际开始的时刻与其前面最近的1pulse/s信号的时间间隔。同时,由于sts的值用gps的10mhz时钟计数,精度为100ns。 3)ds3成帧模块 为使中转站通过sdh网络接收码流,dtmb单频网适配器增加了ds3输出接口。ds3是由复帧构成的,一个复帧分为7个子帧,1个子帧分成8块具有85bit的比特块,每块的第一个比特是开销比特,其他84bit用于传送净荷。所以一个复帧有56个开销比特。包复用模块产生的码流是mpeg-2的ts流,因此需要一个ds3成帧模块以实现到sdh网络的适配。ds3成帧模块的实现框图如图5所示。在一个复帧的开销比特中,除奇偶校验比特外,其他开销比特在特定的网络环境中一般都是固定的,所以单独计算奇偶校验比特。复帧内的各比特块以及各比特的确定主要靠2个计数器来实现,一个用来指示比特块,范围是0~55,一个用来指示比特块内的每个比特,范围是0~84。通过这2个计数器可在适当位置插入开销比特和净荷数据,从而完成到sdh网络的适配。 系统软件的设计主要完成人机交互程序,从按键式控制面板中获得用户提供的参数并提交给适配器模块,同时控制lcd来提供系统的反馈信息和报警信息。系统控制部分的流程如图6所示。