DRM系统中MDI接口传输机制的研究

2019-05-05 08:38董琪琪李晶
关键词:重传上位信道

董琪琪,李晶

(中国传媒大学 信息与通信工程学院,北京 100024)

1 引言

DRM数字调幅广播具有优越的广播性能,可靠性强,频带利用率高,发射功率低,能提供文字、图片、数据等信息传输业务。从技术角度来说,DRM 标准最关键的功能是可以选择一系列传输模式。这使得广播者可以在传输比特率、服务质量、发射功率和覆盖范围间作出权衡。更进一步所有这些配置都可以动态的进行切换以适应当地传输条件的变化。

而且 DRM是唯一可以覆盖整个波段的数字广播系统。尽管DRM在我国运用的不是很广泛,还需要进行很多的研究和工作,但是 DRM技术的应用前景会是非常广阔,它会最终替代目前在短波、中波和长波频段所使用的模拟广播技术。

本文采用DSP+FPGA的方式,采用DSP TMS 320C6748芯片、FPGA XC7K70T进行设计DRM调制系统。使用这种方式会使系统有很多优点,其结构更加灵活,通用型更强,适合模块化设计。同时由于开发周期比较短,系统易于维护和扩展。DRM系统的结构框图如下图1所示。

图1 DRM系统结构图

通过DRM系统结构图,根据DSP TMS 320C6748与外部设备进行数据通信的需求,本文的程序设计是在嵌入式操作系统SYS/BIOS和网络开发环境NDK上,完成了以太网底层驱动和UDP协议。DSP与上位机通过以太网PHY进行以太网通信,通过MDI(Multiplex Distribution Interface多路复用接口)传输数据,需要广播的内容送入DRM复用发生器中,经过复用后,MDI将封装后的传输超帧传送给DRM调制器[1]。由于广播数据从DRM复用发生器中发出后,经过MDI编码形成MDI流,基于UDP协议和DCP栈进行传输的,因此如何保证数据传输的可靠性是重点研究的问题。下文主要介绍MDI传输机制和传输超帧结构,以及如何保证数据在MDI中可靠传输。

2 MDI传输机制

MDI建立在DCP栈上。MDI和DCP协议栈结构如图2所示。

根据图2所示,DRM复用发生器接收到需要广播的数据,在TAG层根据DCP栈定义的格式将复用后的数据封装成TAG item,再将多个TAG item封装在一个TAG包中。由于应用层是与DRM相关的,因此一个TAG包也叫做一个MDI包。MDI包中携带着FAC、SDC、MSC的数据,并共同描述一个400ms的逻辑帧。

图2 MDI和DCP协议栈结构图

为了在设备间进行无差错连接传递,AF(Application Framing应用程序框架)层将MDI包封装成一个AF包[2]。MDI接口将AF包传递给DRM调制器。

各层数据包结构如图3所示。

图3 TAG item、TAG包、AF包结构

DRM调制器进行DRM调制之前要先将通过AF包结构和CRC校验进行AF解码,同理将MDI包(也就是TAG包)和TAG item进行解码,从而得到DRM调制所需信息。

3 DRM传输超帧

由于当MDI接口接收到一个MDI包时,一个DRM传输帧就形成了,当接收到连续的MDI包时,一个传输超帧就形成了。因此下面主要介绍传输超帧结构以及所携带数据。

3.1 DRM传输超帧结构

DRM传输超帧包含三个信道:MSC(主业务信道)、FAC(快速访问信道)、SDC(服务描述信道)。DRM传输超帧是由三个传输帧构成,每个传输帧中都包含一个FAC数据块,SDC单元只存在于传输超帧中的第一个传输帧中。一个传输帧的长度为400ms。DRM传输超帧结构如图4所示。

图4 DRM传输超帧结构

3.2 TAG item

由于MDI包中包含很多TAG item,因此传输超帧中也包含很多TAG item,具体有:*ptr、dlfc、fac_、sdc_、sdci、robm、str0、str1、str2、str3[3]。

*ptr的作用是控制和修订TAG item的协议类型,其包长为64bits。

dlfc是DRM逻辑帧计数器,该值由MDI数据包的接收方使用,以确保无序到达的数据包被正确地重新排序。逻辑帧计数还可以用于检测丢失的MDI包,并且如果存在合适的链路,则请求重传丢失的包。

fac_携带的事DRM逻辑帧中的FAC数据,其超度为72bits。

sdc_携带的是DRM逻辑帧中的SDC数据,该DRM逻辑帧仅存在于每个传输超帧中第一传输帧中。

sdci是MSC信道的信息描述,由于MSC可以包含多达4个流的描述,因此各个流的数据储存于str0、 str1、str2、str3中。

robm的值表示当前的传输模式:A、B、C、D。

3.3 MSC

MSC(主业务信道)中包含了DRM多路复用中所有的服务数据。MSC信道的总比特率是由DRM信道带宽和传输模式决定的。

MSC包含一到四个服务流,每个服务流都由连续的逻辑帧组成,其类型可以是音频或者数据[4]。音频流中包含了压缩的音频,并且可以选择性地携带文本信息。数据流可以由数据包组成,最多可以携带四个子流的信息。一个音频服务可以选择一到四个数据流或者数据子流(其中数据流和数据子流可选),以及一个音频流组成。一个数据服务是由一个数据流或者数据子流组成的。

每个逻辑帧通常包含两部分,每一部分都有不同的保护等级,而且每一部分均能单独配置其长度。对两部分设置不同保护等级的目的是为了对流进行不等差错保护。对于传输模式A、B、C、D,逻辑帧的长度为400ms。如果服务流中包含音频的逻辑帧,则该帧就会携带一个音频超帧。对于模式E,逻辑帧的长度为100ms。如果服务流中携带音频流,则每两个逻辑帧可以组成了一个长度为200ms音频超帧。由于逻辑帧通常包括两个保护等级,因此每个保护等级各占逻辑帧一半的字节。最后所有流的数据帧会映射成复用帧,然后将复用帧传递给信道编码器进行编码。

3.4 FAC

FAC(快速访问通道)是用来提供OFDM复用信号解调所用的信道参数,以及在快速扫描时提供基本服务选择所需的信息。

信道参数不仅可以用于接收机解调,也可以改变接受频率并且使接收机重新搜寻信号,频率占用率及交织深度等都属于信道参数[5]。

每个传输帧包含一个FAC块,这个数据块中携带了当前信道的参数、一到两个服务信息和CRC参数。对于模式A、B、C、D,FAC块携带着一个服务信息。对于模式E,FAC块携带了两个服务信息。当复用帧中包含多种服务时,一个FAC块不能够描述,那就需要多个FAC块共同描述。

3.5 SDC

SDC(服务描述通道)的作用是为MSC解码提供必要的信息,找到服务对应的数据,以及为复用帧中的服务提供属性信息。SDC的数据容量与频谱占用率和其他参数有关,并可以通过使用AFS指数增加容量。

每个传输超帧中都包含一个SDC数据块。SDC中还传输AFS信息(Seamless Alternative Frequency checking and Switching),所谓AFS就是指无缝频率切换[6]。在当前频率点上的广播结束的时候,AFS可以提供无缝切换到其他频点相同节目的功能。

4 MDI可靠传输

4.1 RS编码

DCP(Distribution and Communication Protocols分布通信协议)是传输层通信协议,它使用RS编码进行前向纠错,在错误的信道上提供分段寻址,进而保证数据的可靠传输[2]。在通信工作中,提高信息传输的可靠性和有效性一直是其追求的目标。可靠性和有效性意味着在接收端能准确地或者近似重新再现发射端传输的数据。在无线通信系统中,通信系统的信道中不可避免地存在着大量的噪声干扰,这些干扰导致接收端不能准确地获得发射端传输的数据。而纠错编码可以有效降低传输信道中出现的噪声干扰的一种方法。RS纠错编码是一种进行前向纠错的信道编码,它有着很多优点,其不但拥有严密的代数结构,还拥有优秀的纠错能力,因此RS编码在无线通信等领域使用非常广泛。

4.1.1 RS码的编码算法原理

RS码是在GF(qm)域中 m=1 时,即在GF(q)域中的 q 进制 BCH码,RS码型可表示为RS(n,k)。纠正t个错误的 RS 码的生成多项式g(X)以α,α2,…,α2t为域元素,其中α为本原元[7]。由于αi是GF(qm)域中的元素,因此其最小多项式Φi(X)即为X-αi。 q进制 RS 码在纠正t个错误时的g(X)为

g(X)=LCM{Φ2(X),Φ2(X),…,Φ2t(X)}

(1)

当Φi(X)=X-αi时,可得

g(X)=(X-α)(X-α2)…(X-α2t)=g0+g1X+g2X2+…+g2t-1X2t-1+X2t

(2)

式中:gi∈GF(q),0≤i≤2t,Xq-1-1的根为α,α2,…,α2t,因此Xq-1-1能够被g(X)整除。因此g(X)将恰好生成具有2t个奇偶校验符号、长度n=q-1的q进制循环码,且由循环码的BCH界理论可知,该码的最小距离至少为2t+1。以RS(255,233)为例,各参数分别为n=255;k=233;n-k=2t=32;t=16;最小码距δ=2t+1=33。本原多项式为

p(X)=X8+X4+X3+X2+1

(3)

RS码编码方法是令编码信息为

a(X)=a0+a1X+a2X2+…+ak-1Xk-1,k=n-2t

(4)

那么2t个冗余信息则为X2ta(X)除以g(X)得到冗余b(X)的系数,b(X)的表达式为

b(X)=b0+b1X+b2X2+…+b2t-1X2t-1

(5)

图5为RS码的编码硬件电路,体现了该算法的思想。

图5 RS码的编码硬件电路

4.1.2 RS编码的DSP实现技术

在使用DSP编程实现RS编码的过程中,主要难点是求余算法的实现。因此本小节主要描述如何使用DSP实现求余算法的过程。由于在实现算法的过程中,需要不断进行galois field(有限域)的运算,并且必须不停地根据公式计算出幂次以及元素数值,并分析找出它们之间的关系。因此需要定义一些大小已知的数组,将其存放在DSP的内存单元中,以便方便计算乘法子函数[8]。

DSP软件编程实现求余算法的具体步骤如下:首先定义一个长度为50的,用于存放每次做除法后的余数的数组residual[50]。该数组的第一个元素residual[0]作为下次除法的商。数组的初始值为输入的前50个码元数值。每进行一次除法运算,将数组更新一次,将数值更新成当前除法的余数。在求余算法过程中,RS编码中所用到的乘法运算和加法运算都是定义在galois field(有限域)中的。加法运算就是模二加运算,按位异或。乘法运算为了方便调用,需要单独编写乘法函数。由于在求余的过程中,需要不断地进行乘法和加法运算,因此定义一个长度为50的数组Genpoly[50],用于存放生成多项式的幂次。数值的存放顺序是按照从高阶到低阶的次序,例如Genpoly[0]存放最高阶的幂次,Genpoly[1]存放下一阶系数的幂次,依此类推。定义长度为128的数组GF[128],这个数组用于存放在算法过程中随时能用到的根的幂以及相应的字节形式。galois field(有限域)中元素的对应字节形式是有序存储的,数字中的位置决定了元素幂次存放的位置。例如,GF[4]的意思是某一元素位于数组中的第五个位置,该元素的幂是5。依此类推,GF[5]是位于数组的第六个位置,其幂次是6。在求余算法实现的过程中,将定义的GF[128]存储在DSP内存单元中,以便能将元素的字节形式和幂次形式能迅速相互转换。

4.2 UDP可靠传输

DSP与上位机是基于UDP协议连接,并进行以太网通信[9],MDI接口将DRM传输超帧传给DRM调制器。但UDP 协议是一种不可靠的,面向无连接的用户数据报传输协议。和 TCP 传输过程相比较,使用 UDP 套接口不用建立连接。上位机先生成套接字并绑定端口,DSP在生成与上位机相同的套接字后,两者之间就可以建立连接,DSP即可向上位机地址发送和接收数据。UDP的传输原理图如图6所示。

图6 UDP传输原理图

UDP传输流程中各函数功能介绍。

UDP 进行文件传输以前,收、发端需要建立连接。与TCP 传输协议的“三次握手”建立可靠性连接机制不同的事,UDP 协议只需要绑定收、发端的 IP 地址和端口就可以建立连接。这种特点决定了 UDP 协议只是尽最大可能交付报文,因此在数据传输过程中极其容易丢包。UDP 协议由于其传输速率快的优点,因此对实时性要求高的通信有优势,但 UDP 协议中无可靠性机制,在传输过程中极易产生丢包,造成文件的不可靠性传输。因此,系统只能进行重传,这将会极大地浪费网络和时间资源[10]。所以使用简单的 UDP 通信也是不满足要求的,因此,基于 UDP 协议的以太网通信必须提高可靠性,下文提出了UDP确认重传机制模型,从而保障传输的可靠性。

函数名称函数功能Socket套接字函数,分配网络传输协议以及资源BlindUDP协议中用于绑定传输地址以及端口号的函数Recv/recvfromWindows/Unix下的用于数据接收的函数Send/sendtoWindows/Unix下的用于数据发送的函数close传输完成后关闭传输过程

在使用UDP传输协议进行数据通信时,收、发端有必要咋传输之前建立某种连接,这和TCP 协议的三次握手机制不同的是,使用 UDP 协议进行数据传输时,收、发端只需要确认双方的 IP 地址及端口号,即可建立连接,该过程即为 UDP 协议的确认机制。然而在通信过程中,由于网络通信链路经常会受到外界因素的干扰,导致通信质量的下降,造成通信信息的丢失。对于信息的丢失,会造成文件的不完整,进而影响文件的使用,因此对于丢失的AF包,需要进行丢包重传,即在传输系统中需要加入接收确认与丢包重传机制,以保证通信的成功[11]。

确认机制在下述情况下会使用到:传输之前,收发端建立连接;传输过程中,DSP对某一AF包的丢失情况进行判别,并反馈丢包重传信息;整个文件传输结束时,需要确认文件的传输完成。为提高基于 UDP 的传输系统的可靠性,本文在 UDP 协议中加入数据传输线程和传输控制线程,数据传输线程的作用是进行上位机数据的传输,传输控制线程的作用是控制传输路径的选择或丢包重传等确认信息。在进行数据传输前,上位机只需发送传输请求,该传输请求由控制线程发送给DSP,DSP收到传输请求后,打开接收窗口进行AF包的接收。为了减少系统中的确认机制对网络资源的占用,在文件发送之前对文件进行分包处理时,对每一个小的AF包都进行标序,同时在队尾的AF包标注反馈指令,这样就不需要在每个AF包到达DSP后都进行接收确认。当DSP收到一个传输周期的AF包队列后,检测该段传输周期内接收到的AF包的序列号连续性,若序列号连续,则DSP反馈给上位机一个确认信号,如果AF包的序列号不完整,则缺失的AF包序列号会被上位机反馈给上位机,并请求上位机重传所缺序列号的AF包。传输完成后,上位机、DSP关闭传输窗口。

5 结论

上位机与DSP通过以太网进行连接,通过UDP协议进行网络通信。通过MDI接口将传输超帧传递给DRM调制器后,在进行调制之前将传输超帧解调,可以获得调制所需数据,数据中包含MSC、SDC、FAC的信息。由于MDI的传输机制,文字、图片、数据等信息数据通过DRM复用器封装在传输超帧中,因此符合DRM可以传输多种业务的特点。

在通过MDI进行数据传输的过程中,最重要的是传输的可靠性,需要保证传输中不丢包。但本文基于UDP协议进行网络连接的,因此与 TCP 协议严谨的传输保障机制相对比,UDP 协议中本身是没有众多的传输保障机制,基于 UDP 协议所设计的传输系统,均会出现不同程度的传输丢包。但使用的有点是UDP 协议本身不占用过多的网络资源,传输速率快,并且适合不能数据包回传的系统,因此本文在 UDP 协议中加入部分保障机制,在尽可能保留传输速率快的优势下,在 UDP 传输系统中使用确认重传机制判别数据包是否丢失,是否需要重传,并在文件传输结束时,确认文件传输完成。同时由于MDI接口是建立在DCP栈的,DCP使用RS前向纠错编码在编解码的过程中进一步保障了数据传输的可靠性。

猜你喜欢
重传上位信道
适应于WSN 的具有差错重传的轮询服务性能研究
基于TDMA的wireless HART网络多路径重传算法
信号/数据处理数字信道接收机中同时双信道选择与处理方法
卫星网络中的TCP 跨层技术研究
一种高效多级信道化数字接收机的设计与实现
面向异构网络的多路径数据重传研究∗
特斯拉 风云之老阿姨上位
一种无人机数据链信道选择和功率控制方法
基于ZigBee和VC上位机的教室智能监测管理系统
基于导频的OFDM信道估计技术