基于E语言的数字电视DVB-H系统数据链路层功能验证研究
扫描二维码
随时随地手机看文章
摘 要:随着数字电视的迅速发展和移动多媒体设备一一手机,PDA等的普及,新的技术被发展并应用于手持设备数字电视的接收,DVB—H手机电视标准提供了很好的手机电视接收解决方案。该标准是DVB—T的扩展应用,在数据链路层实现了时间分片、多协议封装和前向纠错功能,从而降低了平均功耗,增强了移动接收的鲁棒性。提出了基于E语言的DVB—H系统数据链路层的功能验证环境,并给出了具体验证步骤和结果分析,最后通过验证分析完善和改进了DVB—H数据链路层系统功能,此外对基于E语言的验证方法进行了一定的研究。
关键词:DVB—H;数字电视;E语言;功能验证
l 引 言
欧洲无线通信标准组织(ETSI)在2004年10月发布了数字电视手机标准——DVB—H(Digital Video Broad—casting for Handheld Terminals)。该标准是地面数字电视标准DVB—T的扩展应用,能够在移动环境下为便携式或手持终端提供高品质和可靠的多媒体服务。DVB—H传输系统除了物理层基于DVB—T(Terrestrial Digital Video Broadcasting)系统之外,在数据链路层增加了时间分片技术(Time—slicing)和多协议封装和前向纠错(MPE—FEC)功能,从而极大地节省了手机功耗并提供了更好的移动接收鲁棒性。本文针对DVB—H的系统的特点,选择基于E语言搭建验证环境来验证数据链路层的功能,同时通过验证测试对该验证方法进行了一定的研究。
2 DVB—H数字电视传输系统数据链路层
DVB—H系统包括丽个主要的部分:物理层和数据链路层。图l描述了DVB—H接收系统概念上的基本结构。接收端的DVB—T解调器通过RF接收DVB—H模拟信号,经过解调后的TS流传输到数据链路层,链路层通过解封装和前向纠错得到正确的IP包,并且连同其他TS服务信息包输出到终端。同时,数据链路层通过时间参数控制工作模式的开关状态,降低接收系统的平均功耗。
物理层 在DVB—T的基础上进行了补充,增加了4k传输模式和深度符号交织,在传输参数信令(TPS)比特中增加了DVB—H专有信令比特,用于支持DVB—H业务发展。在TPS中蜂窝标识指示用于支持移动接收时的快速信号扫描和频率交换。增加4k模式可以适应移动接收特性和单频网蜂窝的大小,提高网络设计、规划的灵活性。2k和4k模式进行深度符号交织,以进一步提高在移动环境和冲击噪声环境下系统的鲁棒性。
数据链路层 主要包括时间分片技术和MPE—FEC(多协议封装一前向纠错)。
时间分片技术:由于DVB—H系统的发送端采用突发式数据传送,在每个突发时间内集中的发送DVB—H数据流业务,并且该业务独占全部带宽。在两个时间片之间没有所选的DVB—H数据流传输,在这段时间,为了提高系统的兼容性,其他数据流,例如DVB—T数据流业务可以以非时间分片的方式传输。接收端在所选业务所在的时间片接收信息,在两个时间片之间作节能处理,从而有效地降低接收端平均功耗。此外,在业务传送时间片内,系统可以从经过多协议封装的TS码流中提取时间参数信息,计为Delta—T时间,这个相对时间指出了当前业务分片到下一个具有相同业务的时间片到来的相对时间。因此,系统可以根据该参数在下一个时间片到来时从节能状态转换到工作状态。图2表示了时间分片技术的工作原理。
MPE—FEC:DVB—H标准在数据链路层为IP包增加了RS(Reed—Solomon)纠错编码,作为MPE的前向纠错编码,校验信息将在指定的FEC段中传送,称为MPE—FEC。如图3所示MPE—FEC表的格式,左边191列是应用数据部分,右边为RS数据校验部分。帧的行数是可变参数,最大行数为1 024。DVB—H系统发送端把音视频的数据封装成IP包的格式,这些IP包依次按列被填充到MPE—FEC表的左边19l列,如未填满,以O填充剩余的部分。然后按行通过RS(255,191)编码得到右边64列的奇偶校验数据。
每一个IP包将在MPE Section中发送,RS数据将紧跟在最后一个MPE Section后,通过MPE-FEC Section传送,所有的MPE和MPE-FEC Section都有12 B的头部信息,和数据负载部分(IP数据或RS数据),在最后有4 B的CRC32校验数据。其中在头信息中有4 B的时间参数域,包括12个比特的开始地址,该地址表明了每个IP包或RS数据开始数据在MPE—FEC表中的位置,18个比特的Delta—T时间参数,以及1个比特的标志位表示最后一个IP包所在的Section和最后整个帧的结束,通常是最后一个MPE-FEC Section。所有的Section将被拆分为184 B作为TS包的有效负载部分,特殊情况是当作为Section的第一个TS包,将加上一个点(point)字节,该字节指名Section的第一个字节在TS包中的位置,然后加上183 B作为TS包的有效负载部分,并加上TS包的4 B的头信息,通过复用后发送到信道中传输,如图4所示。
接收端将在所选的业务的时间片内,从复用的TS码流中得到所有的Section,通过计算Section的CRC32和接收数据的CRC32对比,如果一致,表明该IP包正确接收,反之,该IP数据包将整个被丢掉,并且按照头部信息中的开始地址域,将正确的IP包保存在MPE-FEC数据表中,没有正确接收的IP包,将不出现在表中,且相应位置将被标记为不可靠位,然后通过RS(255,191)解码,得到所有的正确的IP包。这种RS纠错方法称为擦除表RS纠错,最大纠错能力每行可达到两倍的错误字节数,即64 B。如果每行的不可靠字节数超过这个最大限制,RS纠错将失败,MPE-FEC的整个帧将被丢弃。
3 基于E语言的DVB-H系统验证环境的构建
目前的IC设计中,由于SoC(System on Chip)设计的日益复杂化以及芯片规模的日益扩大,系统级验证成为最具挑战的环节,据估计从系统结构设计,子模块设计,子模块验证,系统级验证到FPGA测试,到最终的IC的投产,60%~70%的时间会花费在功能验证方面。选择高性能的验证工具将极大地缩短验证时间,从而降低设计的开发周期。当前的EDA行业最推崇的主要是System C和E两种验证语言。其中E语言是Vetisity公司开发的专用于其Specman验证工具上的一种面向对象的验证语言。用E语言来搭建系统测试环境有很多优点:自动生成基于约束条件的测试矢量,通过描述约束条件产生验证计划中期望的验证场景,能够根据DUV(Design Under Verifica-tion)当前的状态动态地产生测试场景,这样便有可能产生一些很难碰到的边缘案例;自动完成数据和时序的检查;自动进行功能覆盖率的分析找出漏洞;提供所有主流的Verilog和VHDL仿真器接口;此外扩展性强,可以在分开的测试文件中修改若干数据对象,这些测试文件在分层的基础验证环境中处于顶部,这种扩展特性允许不牺牲模块化或可读性的同时更好地迎合系统和测试说明的要求。此外在本文的第二部分的分析中,DVB—H数据链路层的功能主要基于一系列的协议层,E语言可以通过简单的描述实现各种复杂协议测试激励的生成,十分符合DVB—H系统功能验证要求。
3.1 构建DVB—H验证环境
基于E语言的DVB—H验证环境如图5所示,dvbh_env是用E语言搭建的验证环境,dvbh_dut作为DVB—H系统数据链路层的系统模型被例化到验证环境中。由于DVB—H数据链路层要处理各种符合协议要求的TS包,同时负责对错包和丢包情况作纠错处理,并需要管理时间分片从而有效地将低功耗,因此对这些事务处理过程的验证离不开各种复杂测试激励的生成,然而传统的手工编写的激励很难覆盖到各种场景,采用E语言的验证平台通过在满足约束的条件下,随机自动生成测试矢量,达到了高效的验证需要。同时和传统的手工编写测试激励的相比,E语言中有各种函数可供利用,可以方便地实现各种算法,例如:各种协议包中都有CRC32校验字节,调用E语言CRC_32()函数就可以实现。此外,各种协议包都有固定的结构,通过E语言中的struct可以构建各种协议包,并在产生协议包的过程中可以对结构中的域值重新指定或者限定范围,也可以通过定义不符合协议要求的包及有错误值的包来达到验证系统鲁棒性的要求。扩展性强的优点可以节省编写各种测例的时间,E语言很类似于HDL语言编写的系统,在一个系统顶层模块中有各种例化的子模块组成,E语言的这些子模块为unit,可以通过extend uinit_name{}方式在不改变基本结构基础上的对子模块作扩展,也可以覆盖原有的内容重新定义。E语言验证环境也提供了数据一致性检查的机制,称为记分板方法。具体是通过将原始测试激励与从系统输出的数据作比较,提供报告验证系统的功能。在DVB—H链路层系统中,RS纠错模块对收到的IP包做纠错处理,因此记分板方法可以很好的验证数据纠错功能。
3.2 验证步骤及代码具体实现
验证环境搭建完成后,就可以将DVB—H接收系统的链路层例化到功能验证环境中进行验证。以下各步需要通过E语言来完成。
第一步,验证环境需要产生符合DVB—H标准的TS流,码流的基本结构如图4所示。在Host ref模块中产生IP数据包并记录到计分板,为数据检查提供参考数据。然后在MPE—FEC handle模块,产生RS编码数据,并封装成Section格式,随后在时间分片模块中在MPE Section的头信息的相应位中插入时间分片信息,由TS_gen模块打包成TS流的格式通过BB_driver将测试激励输入已例化到测试环境中的DVB—H链路层系统。以上部分的工作实际上是模拟数字电视发送端的工作,产生符合协议要求的传输包。
第二步,在测试环境中Host driver模块模拟系统驱动的工作,主要负责和DVB—H传输系统的接口交互,包括对系统的中断响应,寄存器读写,接收IP数据包(即从Buffer中读出数据),同时通过将接收的IP数据包报告给计分板,验证数据的一致性。DVB—H系统的接口采用PCI仅用于测试需要,实际可以采用各种移动设备流行的接口,包括SDIO,USB2.O等。
第三步,模拟实际环境中的场景,扩展测例,增加覆盖率,主要包括两个方面:
第一,在数字电视中,发送端将各种节目信息表(SI/PSI表)和视音频数据流复用后发送,因此测试激励不仅要产生DVB—H协议要求的封装视音频数据的IP包,还需要插入各种服务信息包,包括NIT(Network Informa—tion Table),INT(IP/MAC Notification Table),PAT(Pro—gram Association Table),PMT(Program Map Table),EIT(Event Information Table),SDT(Service Description Ta—ble),信息表的结构可参照DVB的相关协议。第二,在移动环境中通过DVB—H物理层解调后,误码率依然存在,同时还会有丢包的情况发生,测试环境必须模拟该种场景,在数据包中随机插入错误数据,同时产生丢包的情况。
第四步,测试环境中注意合理的插入断言,不仅可以跟踪仿真进度,同时利于快速定位错误位置,缩短验证周期。此外为了测试环境利于维护和重用,对所有的参数和寄存器地址变量,用名称关联的方式引用。
第五步,用监视器来收集和分析仿真对DVB—H链路层模块的覆盖情况。根据各种功能点的覆盖率要求,设定一些触发事件,触发事件发生时通过采集相关数据,可以了解验证的进度,以便及时根据覆盖率报告修改随机测试矢量的约束条件,以覆盖这些验证中存在的空洞,直到覆盖率达到要求。此外也可以通过设置断点,了解功能模块的工作进度,同时能更好地定位错误位置,即时地完善系统功能。
4 验证结果及分析
DVB—H数据链路层功能验证的参数选择如表1所示。
测试环境根据上述参数条件,共产生了3个时间片,共计180个IP数据包。在第一个时间片内控制产生6个字节错误随机分布在每个时间片内.的60个IP包中,随机产生2个TS包丢弃情况,根据记分板测试报告,接收到全部的60个IP数据包并且所有错误通过MPE—FEC模块被纠正。通过修改约束条件,增加误码率,在第二个时间片内使每个MPE—FEC帧中13个IP数据包存在错误比特,由于误码率超过了MPE—FEC模块的纠错容限,结果分析,RS纠错失败,该时间片内的所有IP包被丢弃。第三个时间片主要增加了服务信息表PAT,PMT,测试系统对TS流解析的能力。对时间参数Delta—T选择为当前时间分片到下一个时间分片开始的间隔设定100 ms,根据系统时间,每个Section需要根据相对时间偏移,选取不同的Delta—T值插入头信息中,如果DN为当前时间片的第N个Section的Delta—T值,DN—l为前一个Section的Delta—T值:DN=DN-1一M,其中M为时间偏移量,且第一个Section的D1=10。验证同时对主要模块的状态机,中断响应,Buffer读写,寄存器读写作了测试覆盖率分析,功能验证的覆盖率报告如图6所示,其中MPE—FEC模块的状态机(mpe_fec_state),中断响应(datagram_statrt_int,datagram_finish_int,power_off_int,power_on_int,buffer_int),Buffer读写(buffer_rd,buffer_wr),寄存器读写(cfg_reg_rd,cfg_reg_wr)功能覆盖率均为100%,TS流解析模块状态机(tsp_state)覆盖率达到83%。由以上结果分析发现,对于测试激励,由于产生过程没有覆盖所有的服务信息表,主要集中选取PAT、PMT,因此TS流解析对于其他服务信息表的解析功能没有完全测试,可以通过修改测例,增加各种在DVB—H协议中包括的服务信息表的激励生成,进一步完善对TS解析功能的测试。在测试过程中,笔者发现TS流解析模块不仅需要提取包含在MPE Section头信息中的各种关键内容,并输出控制信号给MPE—FEC纠错模块和时间分片模块,同时还负责将正确接收的IP数据包通过buffer写入数据存储器。如果任何解析错误都将影响其他模块的正确工作。在测试中实际TS解析模块经过一定修改完善,最终对于错误TS包和丢包的情况,和其他边缘情况达到了功能要求。此外,通过后续对DVB—H数据链路层的FPCA硬件测试结果证明了基于E语言的功能验证结果的可靠性和优越性。
5 结 语
该研究通过DVB—H数据链路层的基于E语言的验证环境的构建。利用E语言完成测试环境的编写,并采用Specman作为功能验证平台。针对DVB—H数据链路层的协议分析,通过产生符合协议的测试激励及模拟实际场景的情况,充分验证了系统的功能,同时通过计分板报告和覆盖率测试报告,完善了系统的边缘测试情况。总之,采用E语言的功能验汪不仅能提高验证效率,同时调试方便,而且重用性和可扩展性强。