|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
/ u7 R' c8 p1 z/ y1 _$ _2 b( J t
针对传统数字视频广播系统码流分析仪价格昂贵、使用不方便的问题,本文提出一种性价比较好的补充设计方案,它以通用的FPGA和RTOS为基础、基于嵌入式硬件平台来实现码流分析功能。文中还阐述了码流采集、码流分析和信息显示等多项关键技术。
: x$ z) K0 T8 K; J7 \ R% S7 g- Q% [( P) a7 j1 I. J# l) n
" v5 g* I9 G$ d3 s; l& |: N
* r# j9 {! |( \0 H5 w( w
6 ?3 Z* M& l* S3 \: d
8 q8 _2 G+ O, z6 N( M
. t, a. K/ ]% O" {) r码流分析仪可用作数字电视设备的调试工具,如检测MPEG编码器、复用器、调制解调器等设备的输入输出码流是否符合MPEG-2/数字电视广播(DVB)标准等。作为标准检验设备,码流分析仪是整个数字电视系统的不可缺少的重要设备。实际使用中的数字电视集成系统是一项庞大、复杂的系统工程,从前端到后端,无论哪个环节出了差错,都将导致整个系统的瘫痪,为了迅速有效地找出故障源,需要在各测试点使用码流分析仪。如图1所示,可以在测试点1-4插入码流分析仪,组成对传输(TS)码流互联层的监控、测试和报警。
+ p" V% ~7 t y2 V; x0 ^! E$ N+ D% D3 l0 Y
a5 J1 ~( F0 w" \7 w
0 M* e) u: O( ^ _, ]2 P国外码流分析仪的研究工作开展比较早,在MPEG-2标准制定的同时,就有码流分析仪问世,惠普、WG、RS和泰克等公司都推出了各自的码流分析仪。这几家公司的产品各有特点,而其核心都是基于PC硬件平台。虽然性能较稳定,但产品价格均比较昂贵,操作不便。随着应用范围和规模的扩大,在一个应用场合下,可能会需要对较多的测试点进行长时间的实时码流分析、监控、系统信息采集和报警管理工作,昂贵的基于PC的测试设备显然无法满足这种要求。
1 ]0 G c% H; N. o
9 ~9 w& ?% `/ R3 x8 t: `" X6 H! i, B, [% [+ F
0 M& I" I2 d0 G0 K
为了解决这一缺陷,国内外主要生产厂商都转向选择在便携式工控机上开发。便携式工控机虽然没有复杂的外设连线,但是也存在设备体积较大和硬件成本昂贵,功能受限于PC硬件和操作系统平台稳定性等问题。另外,市场上还有一种手持式的测试仪,有较好的移动性,但是也无法满足以较低的成本完成实时监控的要求。针对中国目前的应用现状和发展状况,我们提出以通用的FPGA和RTOS为基础、基于嵌入式硬件平台的设计方法,该模块可以实现稳定和长期的可靠工作,具有很好的性价比,可以在现实应用场合广泛应用。 8 H; T% C. ~6 G
. D! L$ }' o# [% Q/ A/ `
* j% m- Y' P |! G% B' f$ `/ o# @
$ ^4 f' f& @' O码流分析功能设计 ; |! y# C* g c$ v
7 M7 h0 p, D, g4 a/ ^( C) z( V" {, f) K
! m5 F. }; W8 S1 b8 o8 g+ a T+ I
功能设计将完全符合以下标准:MPEG-2;ISO/IEC 13818-2(system);DVB;ETS 300 468( DVB SI);EN 50083-9(DVB spi,ASI);ETR 154(Implementation guidelines for MPEG2 systems);ETR 290(Measurement Guidelines);ETR 211( DVB SI Recommendation)。
4 d- I% j1 p9 d! k5 @0 U0 Z) u' h& v
, l# ?" B% Y: p! b/ d, k
8 ?, e) X6 i% R0 l5 B) w* W作为一种测试仪器,无论是软件还是硬件都要保证稳定可靠。同时考虑采用网络通信技术,容许用户通过任何一台计算机的网络浏览器访问图形化的用户界面,将码流分析结果以最直观的方式显示给用户。嵌入式测试设备的设计目标根据实际需要提出,设计目的是TS码流系统监测设备,在操作和使用的问题上要方便,故障的监测和定位要快速准确,模块化的设计要求结构紧凑,接口简单。针对这种需要,设计目标至少要实现以下功能:
. v0 b) k- {. I
) V$ S4 H4 H* y5 X: p* D
- m1 m! m/ H; M% ]# t4 p+ T4 m" X
9 }% b" G3 y; l% C0 B: N1.对码流数据进行同步字节提取和包序错误检查,并进一步对数据根据ETR290标准进行三个优先级别的语法错误的检查;对数据流进行实时监测,及时纪录出错的时间和错误的情况;同时还可根据用户的需要制订硬件触发模式,选择不同的监测项目。 - C5 q7 t4 u% p$ k8 f- u
$ J5 k' ~# Q, e" x( U& N# k
+ d) j$ g/ z* i, l/ G0 c
8 K7 @7 [* b. H3 a" ~8 {: m2.实时统计各路PID的当前带宽占用情况,当前的TS包的总数量和传输码率。 & V; B0 U( F# s
2 g0 U' S) H3 Q- c: p' _& g5 k$ G; E; T% P& X
8 W# c9 { M4 Q/ Q2 z5 p
3.将TS包中的PSI/SI信息提取并拼接成段,分析段头部的信息并存储在特定的数据结构中。 . p3 \4 g3 |4 \: g5 K
& }; Z* t1 j% O( G
# y8 f. w6 g0 W ^3 d9 z4 t. B% k( E7 X/ M+ p; [: m
4.提取TS流中的PCR信息,计算其传输的间隔,同时作PCR抖动的分析,出现错误及时报错。
+ D) a q1 F/ U8 f
1 \4 o; \4 b) c1 x- W3 J5 ]- a" C5 F# a/ K- a! [' S7 \9 I+ M
3 B$ {2 V! M; ^; I0 _
5.从PES 段中提取PES头信息以及各路视音频的基本信息。
# h# `8 D* e M# u8 [
: z" G7 D: v+ c8 y
2 W6 E8 { d7 }. Q2 s% }6 N7 E [( T) G
6.分析视音频数据,根据TS流中的PCR、PTS和视音频数据来分析其解码时各路视音频传输流标准目标解码器中缓冲器模型的情况,当缓冲器出现排空和上溢的错误时及时报错。
" I& ]" e' [0 F$ X3 Z2 D" K1 X1 P+ L) w% T, w
/ F, ?% D+ _$ w6 r
+ ^+ h2 D! `; _7 G A+ k2 {& a这些功能将满足运营环境的现场监测要求。实际应用中这些分析的结果需要以某种方式提交给用户观察。因此,以下的信息显示是必须的。 * \ Y/ ?' ]3 d% F" Z
3 ]+ b& _* \# x: K- I5 B' V, d5 H* s0 D) Z+ U
' U; q8 @0 u! T2 ~! c
1.基本信息:主要向用户提供关于TS流的最基本的信息,如TS流的传输速率、同步错误、TS包长度、视音频比例、PSI表的简要信息等。 / ]/ z# L: _( S0 `' e; C
3 @' R, \9 t) H6 R& w9 Q& k) f, X& h6 Z( X- G4 e2 L
3 I) d* W' I; h: f2.实时监测:本界面按照DVB ETR290标准规定的3级检错内容而设计。 6 h% H* T, [4 c; I/ G: m2 W% @
& g9 r; f: ~- ?" ?4 w+ w3 y8 c9 h9 p& c0 U' N" @2 v$ I C3 r
t, n! \, Y9 b% E
3.节目信息:显示描述一个节目内容的PMT、SDT和EIT的具体信息。 , A6 q; ?2 W8 j, R! C; T
/ H2 ^/ \/ G4 r
3 D& o& g0 P2 ]+ a$ p* M
+ j+ N4 @2 t; W, u% p6 A3 N
4.带宽信息:基于PID的带宽统计信息。5.复用结构:TS流中最基本的节目复用信息。 & F) U+ t/ U! a2 {$ m; J6 `: f
! c9 S/ n9 @) R5 b8 y" P: i/ L4 o. ?( o
' ~; ~5 F+ f1 h
6.PSI/SI信息:将2进制形式的PSI/SI信息翻译成文字,以树的形式显示,TS流的层次结构一目了然。
) u1 `! t1 A' }* R" o* }# K- O& K
/ q. p1 u$ e7 L. t" V: b: f; e, l9 e7 b8 @' V, Y
3 v, N8 o) C" G H8 Y. C# k
7.PCR分析:分析PCR传送的间隔和抖动。
" F9 k! a- e+ c
: E! m0 K6 Y5 C$ `9 K( J8 ?0 {1 T- l' |' S( H* N0 k; d! i
3 J+ F! N0 [( A8 S7 y! I; j7 ]) z6 A! v
硬件结构 . ~- S) L5 ~9 R# W( K# C
- g: H4 g1 }% _* j0 h, W
( G# Z, A& Z% _, h5 x
( `% _/ f. O( a f8 Z+ g如图2所示,本设计方案选用ALTEra公司的FPGA――根据实际的设计容量可以选择具体的型号和系列。这里我们将讨论输入输出、过滤逻辑和控制系统的设计思想。 " J' {5 M8 Q" b5 d
" B) K! p- j% C- {6 ^: x( c2 u
0 w. v( ]/ B8 {4 N- e6 {$ H7 R5 c0 g% z# O) Z) V0 s. s
FPGA与TS接口连接的2个数据总线接口TS IN 和TS OUT都是标准的DVB_SPI(EN 50083-9)接口。TS IN 接收外部的TS码流,送入码流过滤逻辑系统做进一步处理。TS OUT接口将从TS IN收到的码流环出,这样在进行码流分析的同时就不会对传输码流造成任何影响。DVB_SPI接口是LVDS电平信号,可在FPGA上直接接入(参考Altera的硬件手册)。
9 y- ~! d/ g/ J$ F1 Z" }
" J' `; y, `0 N" A( H7 z5 N7 r/ r; J+ v: S+ F$ M0 |3 p# U9 h& D. w) `
% L" ~, w. a# g' T) Z如果采用DVB_ASI接口,也可以通过Altera提供的IP核来实现串/并和并/串转换。所以,原则上除去传输变压器和保护电路无需其他接口逻辑芯片。DVB标准的输入接口有ASI和SPI两种,两者的定义和标准不尽相同。针对输入接口的不同需要对输入信号进行调整和统一。要从ASI接口的信息中提取TS码流同步信号,调整信号脉冲的占空比使ASI的输出接口信号和SPI的相类似。另外,ASI接口输出有平滑和突发2种数据串数模式。为了满足突发模式的工作需要,可以将FPGA片内的RAM BLOCK定义成FIFO进行高速缓存,使接口满足不同速率的突发输入,最高应该可以满足27MHz并行突发方式(ASI接口216MHz)的输入要求。
, |% \2 j' x |5 M @# A) e' l8 P5 z& z! @
& @+ g! Y6 n1 ~6 W; B& A
/ [) m+ p( T" E# j1 J
在FPGA的码流过滤逻辑单元部分需要设计一些重要的硬件控制模块。MPEG2标准规定了各压缩级别TS码流的速率。经过TS码流复用后实际应用中传输的串行码流速率可能>200MHz。因此考虑到NIOS的工作主频和加载操作系统后的实际工作效率,我们需要将输入码流降低后输入分析系统。故而硬件中设计多种硬件触发机制和硬件过滤器来满足这种需求。 / a1 J+ R7 a+ x* R
: B* H& m& G; g2 z8 }7 K8 h# p. Z* _6 q& y( S$ ?
: S# ~) D5 t- k) D4 f. M根据ETR290的标准定义,码流分析功能不是并行处理的模式,而是有先后次序的相对关系。根据不同的优先级,先完成同步和连续性的分析,然后提取PSI信息,最后根据解析后的PSI信息对不同PID的节目TS流进行解码,分析详细的PES流信息。输入信息量的控制可以通过软件控制的方式实现。FPGA过滤逻辑设计了各种TS流的PID过滤器,将这些丰富的PID过滤器有机地组合在一起。控制模块可以通过写入命令来控制这些PID过滤器的工作方式和组合结构。
/ i8 W5 W6 g" h; r. j! l5 Z6 T" h, h8 S% O3 t; m& K* L
) E6 Y6 W$ l: ]+ |. z; M$ e$ H/ \# f& {) J* s
根据分析流程控制要求,当分析不同的信息部分时控制模块可以按需要发送命令改变硬件组合,保证输入的码流只与当前分析工作有关。这样可以完成对输入码流流量的控制而不影响完成设计要求。当然,这样设计是以牺牲分析实时性为代价的平衡措施,但是获得的好处也是可预见的。
2 X4 f" y0 q2 W4 t6 v; Y# G- l% c$ F5 |7 \
0 y9 ]4 Q: M G7 `, g
) s; Y4 B% ~7 G4 j- {' E* g
Altera公司的FPGA上提供了纯软件设计的CPU内核NIOS模块。针对该内核Altera同时提供了相应的编译器和调试工具。在NIOS内核上我们可以移植一个小的操作系统。在这个实时操作系统上实现多任务调度和复杂的计算。该公司还提供用于FPGA设计的其他功能模块如:UART、TIMER等。软件支持方面提供了在NIOS内核上工作的TCP/IP协议等。
8 l S {% i% U3 J7 X$ ~0 O
: ~+ r7 s8 ^; n( v9 F& o: X2 Y+ X0 ^
9 b, `. |4 Q, v这些资源很方便的满足了设计要求,利用它们实现分析结果的输出要求。我们可以根据不同的应用场合选择采用不同的通讯接口如RS232/RS485、以太网等。同时,我们可以进一步在操作系统上设计SNMP协议,使码流分析模块能够在网络环境和现有的管理系统进行连接。这有利于网络管理和控制。同样,在操作系统上设计简单的WEB SERVER功能也是可行的。用户通过浏览器可以马上得到分析结果而无需安装任何分析软件。这些功能设计为用户的实际应用提供了方便,用户可以根据不同的现场环境选择不同的控制方法。
7 t& [2 ]7 x2 r1 B% t
d( Z2 k: m; f. E
/ Z' m4 ?6 U' q# U' d% M
* D% ^' |* q+ O* z1 J; B软件结构 " c5 c( k+ Z" w5 n
3 I$ B' p; P5 J$ z. ]
: d2 p& ?+ ]" B- B6 [
) P9 H; |8 D! ]8 v
软件设计基于一个实时操作系统。目前,有很多商业化的RTOS供选择,同时,也有Altera的第三方开发商提供的可在NIOS上运行的操作系统。本文介绍另外一种完整的嵌入式的实时内核μC/OS-II以及应用程序结构。μC/OS-II源代码绝大部分是用C语言写的,汇编部分只有200行左右。这说明该实时内核可以方便的移植到几乎所有的嵌入式应用类CPU上。事实上它已经被成功的移植在DSP、16/32位mcu上。通过针对堆栈指针、出入堆栈管理、中断控制等汇编的修改,可以将μC/OS-II移植到NIOS的平台上。如图3所示,软件设计基于μC/OS-II操作系统,设计给出了多进程设计的软件设计结构。 , q/ ` X3 w7 B' M7 c i" P1 d
/ E x3 ?4 e% R/ r6 ]
' M7 ]7 }! ]/ }- {; v+ `/ L! a
) q' F- _1 b% R: J5 b下面简单分析不同进程的主要功能:
' H6 E9 J: O. P' H1 T) W2 _) _
0 } x& B6 B! J- s& y7 g
9 Z7 N/ s9 ~! b: E; p8 G7 `- z' A# ^' c( [
1.TS流处理进程。该进程完成TS输入,输出和内存管理的功能。类似于通信系统的物理层,面对硬件系统的传输控制。一般情况下,完成从FIFO中读取数据存储在SRAM的不同部分中,并提交地址指针。同时将需要输出的码流从SRAM中读取,按要求写入输出FIFO中。在特殊情况下,根据输入码流速率和内存情况,调整输入数据量。
* }6 a3 Z2 h% J. j% j$ N2.MPEGII系统层分析器。根据MPEG2系统层标准对输入码流的PSI信息进行分析。对提取的各种表格和PID信息进行分类存储。同时按照SNMP定义的数据结构类型重组数据,根据需要刷新数据,将结果提交给ETR290错误事件触发进程。
8 s. a8 |' t' F, @1 `
1 k m; w' G V3 s; M' ?3 z
5 F) g' g u' h2 w( u" ]9 m, @$ Q) i6 _. F3 C7 D
3.ETR290错误监测进程。按照ETR290的标准进行三个优先级分析和统计。根据系统时钟分析实时信息如PCR抖动延时,信息插入间隔等。将分析结果的数据存储成数据结构提交给通信模块。通过预先设计的故障模式实现故障提示和报警。故障模式通过软件设定可以是单个ETR290的错误产生一个报警,也可以是一组错误产生一个报警。太多的错误报警会导致信息堵塞,因此,将相关的错误组合成一个高级的报警信息将有利于问题的判断。 4 F2 Y6 h2 e" K4 n8 K" i
! |: A9 ~# D8 m- y
* }5 K/ o' p0 ^5 M* i. I
" ~8 L* Q5 p0 N) v( n# s2 n1 p4.通信服务进程。按照TCP/IP协议和SNMP协议完成以太网的传输控制设计。数据输出按照标准的SNMP协议将统计信息数据库和分析数据库输送到服务器端。同时,通过TCP或UDP协议进行控制命令通信。SNMP传输的统计信息数据可以利用外挂的分析软件进行语义分析。不过要求同时传输硬件本地时钟信息作为参考信息。也可以通过控制台窗口直接显示分析数据。一旦在通信服务中添加WEB SERVER功能,则可通过浏览器在本地直接显示分析结果。
. g5 o( A% L' H: q5 u" @% _8 L# t$ R" i) y- r z1 l m* b
, ?! X% X: R7 F4 [
1 c" S) y' V- A l本文结论
$ [# }6 |5 ^+ @4 [/ |; O5 m& l- k' j2 }$ S& d
$ m8 i0 G% h& J: m/ E. n! p
6 ?- ]# B; z+ _8 x
嵌入式的码流分析设计是完全可行和有效的。目前大部分功能已经实现。FPGA的设计采用VHDL语言结构,分析软件采用C++语言,RTOS操作系统也可在不同的硬件之间移植;因此,设计可以在不同的硬件平台上实现。这为成本的控制留下了灵活的空间。本设计目标不是取代传统的码流分析设备,而是作为一种补充。目前设计的实时分析能力有限,分析数据刷新在500ms左右。但是,提高FPGA的工作频率和性能,选用高速SDRAM就可以迅速提高工作性能。所以,性能的提升和功能的扩展都有广阔的前景。( ^: ~) o) H2 r6 a
5 a- B* }1 S: E- ^! [& | |
|