基于FPGA和RTOS的嵌入式码流分析设计方案
——
如果采用DVB_ASI接口,也可以通过Altera提供的IP核来实现串/并和并/串转换。所以,原则上除去传输变压器和保护电路无需其他接口逻辑芯片。DVB标准的输入接口有ASI和SPI两种,两者的定义和标准不尽相同。针对输入接口的不同需要对输入信号进行调整和统一。要从ASI接口的信息中提取TS码流同步信号,调整信号脉冲的占空比使ASI的输出接口信号和SPI的相类似。另外,ASI接口输出有平滑和突发2种数据串数模式。为了满足突发模式的工作需要,可以将FPGA片内的RAM BLOCK定义成FIFO进行高速缓存,使接口满足不同速率的突发输入,最高应该可以满足27MHz并行突发方式(ASI接口216MHz)的输入要求。
在FPGA的码流过滤逻辑单元部分需要设计一些重要的硬件控制模块。MPEG2标准规定了各压缩级别TS码流的速率。经过TS码流复用后实际应用中传输的串行码流速率可能>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就可以迅速提高工作性能。所以,性能的提升和功能的扩展都有广阔的前景。 linux操作系统文章专题:linux操作系统详解(linux不再难懂)
pid控制相关文章:pid控制原理
fpga相关文章:fpga是什么
评论