本文提出一种性价比较好的补充设计方案,它以通用的fpga和rtos为基础、基于嵌入式硬件平台来实现码流分析功能。文中还阐述了码流采集、码流分析和信息显示等多项关键技术。
码流分析仪可用作数字电视设备的调试工具,如检测mpeg编码器、复用器、调制解调器等设备的输入输出码流是否符合mpeg-2/数字电视广播(dvb)标准等。作为标准检验设备,码流分析仪是整个数字电视系统的不可缺少的重要设备。实际使用中的数字电视集成系统是一项庞大、复杂的系统工程,从前端到后端,无论哪个环节出了差错,都将导致整个系统的瘫痪,为了迅速有效地找出故障源,需要在各测试点使用码流分析仪。如图1所示,可以在测试点1-4插入码流分析仪,组成对传输(ts)码流互联层的监控、测试和报警。
国外码流分析仪的研究工作开展比较早,在mpeg-2标准制定的同时,就有码流分析仪问世,惠普、wg、rs和泰克等公司都推出了各自的码流分析仪。这几家公司的产品各有特点,而其核心都是基于pc硬件平台。虽然性能较稳定,但产品价格均比较昂贵,操作不便。随着应用范围和规模的扩大,在一个应用场合下,可能会需要对较多的测试点进行长时间的实时码流分析、监控、系统信息采集和报警管理工作,昂贵的基于pc的测试设备显然无法满足这种要求。
为了解决这一缺陷,国内外主要生产厂商都转向选择在便携式工控机上开发。便携式工控机虽然没有复杂的外设连线,但是也存在设备体积较大和硬件成本昂贵,功能受限于pc硬件和操作系统平台稳定性等问题。另外,市场上还有一种手持式的测试仪,有较好的移动性,但是也无法满足以较低的成本完成实时监控的要求。针对中国目前的应用现状和发展状况,我们提出以通用的fpga和rtos为基础、基于嵌入式硬件平台的设计方法,该模块可以实现稳定和长期的可靠工作,具有很好的性价比,可以在现实应用场合广泛应用。
码流分析功能设计
功能设计将完全符合以下标准: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)。
作为一种测试仪器,无论是软件还是硬件都要保证稳定可靠。同时考虑采用网络通信技术,容许用户通过任何一台计算机的网络浏览器访问图形化的用户界面,将码流分析结果以最直观的方式显示给用户。嵌入式测试设备的设计目标根据实际需要提出,设计目的是ts码流系统监测设备,在操作和使用的问题上要方便,故障的监测和定位要快速准确,模块化的设计要求结构紧凑,接口简单。针对这种需要,设计目标至少要实现以下功能:
1.对码流数据进行同步字节提取和包序错误检查,并进一步对数据根据etr290标准进行三个优先级别的语法错误的检查;对数据流进行实时监测,及时纪录出错的时间和错误的情况;同时还可根据用户的需要制订硬件触发模式,选择不同的监测项目。
2.实时统计各路pid的当前带宽占用情况,当前的ts包的总数量和传输码率。
3.将ts包中的psi/si信息提取并拼接成段,分析段头部的信息并存储在特定的数据结构中。
4.提取ts流中的pcr信息,计算其传输的间隔,同时作pcr抖动的分析,出现错误及时报错。
5.从pes 段中提取pes头信息以及各路视音频的基本信息。
6.分析视音频数据,根据ts流中的pcr、pts和视音频数据来分析其解码时各路视音频传输流标准目标解码器中缓冲器模型的情况,当缓冲器出现排空和上溢的错误时及时报错。
200mhz。因此考虑到nios的工作主频和加载操作系统后的实际工作效率,我们需要将输入码流降低后输入分析系统。故而硬件中设计多种硬件触发机制和硬件过滤器来满足这种需求。
根据etr290的标准定义,码流分析功能不是并行处理的模式,而是有先后次序的相对关系。根据不同的优先级,先完成同步和连续性的分析,然后提取psi信息,最后根据解析后的psi信息对不同pid的节目ts流进行解码,分析详细的pes流信息。输入信息量的控制可以通过软件控制的方式实现。fpga过滤逻辑设计了各种ts流的pid过滤器,将这些丰富的pid过滤器有机地组合在一起。控制模块可以通过写入命令来控制这些pid过滤器的工作方式和组合结构。
根据分析流程控制要求,当分析不同的信息部分时控制模块可以按需要发送命令改变硬件组合,保证输入的码流只与当前分析工作有关。这样可以完成对输入码流流量的控制而不影响完成设计要求。当然,这样设计是以牺牲分析实时性为代价的平衡措施,但是获得的好处也是可预见的。
altera公司的fpga上提供了纯软件设计的cpu内核nios模块。针对该内核altera同时提供了相应的编译器和调试工具。在nios内核上我们可以移植一个小的操作系统。在这个实时操作系统上实现多任务调度和复杂的计算。该公司还提供用于fpga设计的其他功能模块如:uart、timer等。软件支持方面提供了在nios内核上工作的tcp/ip协议等。
这些资源很方便的满足了设计要求,利用它们实现分析结果的输出要求。我们可以根据不同的应用场合选择采用不同的通讯接口如rs232/rs485、以太网等。同时,我们可以进一步在操作系统上设计snmp协议,使码流分析模块能够在网络环境和现有的管理系统进行连接。这有利于网络管理和控制。同样,在操作系统上设计简单的web server功能也是可行的。用户通过浏览器可以马上得到分析结果而无需安装任何分析软件。这些功能设计为用户的实际应用提供了方便,用户可以根据不同的现场环境选择不同的控制方法。
软件设计基于一个实时操作系统。目前,有很多商业化的rtos供选择,同时,也有altera的第三方开发商提供的可在nios上运行的操作系统。本文介绍另外一种完整的嵌入式的实时内核μc/os-ii以及应用程序结构。μc/os-ii源代码绝大部分是用c语言写的,汇编部分只有200行左右。这说明该实时内核可以方便的移植到几乎所有的嵌入式应用类cpu上。事实上它已经被成功的移植在dsp、16/32位mcu上。通过针对堆栈指针、出入堆栈管理、中断控制等汇编的修改,可以将μc/os-ii移植到nios的平台上。如图3所示,软件设计基于μc/os-ii操作系统,设计给出了多进程设计的软件设计结构。
下面简单分析不同进程的主要功能:
1.ts流处理进程。该进程完成ts输入,输出和内存管理的功能。类似于通信系统的物理层,面对硬件系统的传输控制。一般情况下,完成从fifo中读取数据存储在sram的不同部分中,并提交地址指针。同时将需要输出的码流从sram中读取,按要求写入输出fifo中。在特殊情况下,根据输入码流速率和内存情况,调整输入数据量。
2.mpegii系统层分析器。根据mpeg2系统层标准对输入码流的psi信息进行分析。对提取的各种表格和pid信息进行分类存储。同时按照snmp定义的数据结构类型重组数据,根据需要刷新数据,将结果提交给etr290错误事件触发进程。
3.etr290错误监测进程。按照etr290的标准进行三个优先级分析和统计。根据系统时钟分析实时信息如pcr抖动延时,信息插入间隔等。将分析结果的数据存储成数据结构提交给通信模块。通过预先设计的故障模式实现故障提示和报警。故障模式通过软件设定可以是单个etr290的错误产生一个报警,也可以是一组错误产生一个报警。太多的错误报警会导致信息堵塞,因此,将相关的错误组合成一个高级的报警信息将有利于问题的判断。
4.通信服务进程。按照tcp/ip协议和snmp协议完成以太网的传输控制设计。数据输出按照标准的snmp协议将统计信息数据库和分析数据库输送到服务器端。同时,通过tcp或udp协议进行控制命令通信。snmp传输的统计信息数据可以利用外挂的分析软件进行语义分析。不过要求同时传输硬件本地时钟信息作为参考信息。也可以通过控制台窗口直接显示分析数据。一旦在通信服务中添加web server功能,则可通过浏览器在本地直接显示分析结果。
本文结论
嵌入式的码流分析设计是完全可行和有效的。目前大部分功能已经实现。fpga的设计采用vhdl语言结构,分析软件采用c++语言,rtos操作系统也可在不同的硬件之间移植;因此,设计可以在不同的硬件平台上实现。这为成本的控制留下了灵活的空间。本设计目标不是取代传统的码流分析设备,而是作为一种补充。目前设计的实时分析能力有限,分析数据刷新在500ms左右。但是,提高fpga的工作频率和性能,选用高速sdram就可以迅速提高工作性能。所以,性能的提升和功能的扩展都有广阔的前景。
基于222nm光源产品在防疫作业中的应用
以SPCE061A单片机为核心的红外测温计设计
无线模拟量传输装置在消防用水系统的应用
Kali Linux和Parrot OS,哪个更适合安全
中国国际软件博览会开幕 助力工业APP实现全面创新
基于FPGA及RTOS操作系统的码流分析仪设计
基于51单片机的矩阵按键设计
产生FPGA所需低电压电路设计
人口老龄化促进医疗器械行业的发展
GC Smart(GC-2018)气相色谱仪
芯科科技发布新版蓝牙开发流程
特斯拉拿下第二个新能源项目,推动澳大利亚新能源电池发展
一文详解数值比较器
如何为FPGA编写可综合的代码?
中软国际@HDC.Cloud 2023 精彩盘点|全面拥抱华为云盘古大模型,携手开发者共建创新未来
工控机开机慢如何解决
中国信通院正式启动了SD-WAN系列标准的制定工作
OPPO首发索尼旗舰传感器
超威电池质量出众,引领行业不负众望
千亿在手,苹果会怎么花?