MPEG-2复用器PSI信息分析部分的FPGA实现
时间:11-08
来源:互联网
点击:
- 3.2 检测模块
由于PAT,CAT,PMT,NIT等检测模块在硬件设计上都很类似,故本文重点探讨PAT检测模块的硬件设计,其他检测模块的设计将不再赘述。
PAT检测模块按照PAT提取流程进行工作,若发现PAT分段并且CRC校验正确后,提取里面的PMT—PID和NIT-PID并分别送到PMT检测模块和NIT检测模块。对PAT表全部分段都分析完后启动PMT、检测模块和NIT检测模块对TS流进行实时检测,若PAT表有更新,则将新的信息再送给此两模块,以确保实时跟踪TS流的最新变化。
在硬件实现上,从实用的角度出发,考虑到实际码流中可能出现的各种情况,将其归为三类处理:
(1)一个分段只由一个TS包来承载。
(2)一个分段由多个TS包来承载。
对于此类情况(即该分段的长度使得一个TS包无法完全承载此分段),要考虑的是第一个TS包在该分段的什么位置结束。又可以分为三种情况:
①第一个TS包结束在该分段的table_id字段到last_sectiOn_number字段这一区间。这也就是第一个TS包大部分为调整字段占据时的情况;
②第一个TS包结束在循环字段中的某个字节的情况;
③第一个TS包结束在四个CRC校验字节中的某个字节处,考虑到有三个以上TS包时更确切地说应该是最后一个TS包只承载了CRC校验字节的某几个。
(3)一个TS包承载多个分段
此类情况是第(2)类中③情况的延伸。比如一个PAT表有两个分段,第一个分段由第一个TS包承载后只剩下一个CRC校验字节需要第二个TS包来承载。那么第二个TS包只承载这一个CRC校验字节无疑将是很大的浪费,此时可以充分利用第二个TS包。使它也承载第二个分段,这就是一包多段的情况。对于一段单包、一段多包(包括三种情况)和一包多段等多种情况,在设计上无疑要充分发挥FPGA有限状态机的强大优势来进行处理。
将以上各种情况恰当地对应于状态机的各个状态,根据包头提供的信息及表段信息可以进行逻辑判断,从而控制各个状态之间的转移。在代码实现上,逻辑判断后控制信号的是否准确及时,至关重要。举例来说,把对PAT表的CRC校验分析作为一个独立模块,在分析该表时就要给予该模块准确的控制,假如PAT有两个TS包,在第一个TS包的table_id字段就要使能该模块,第一个TS包结束时要禁止使能该模块,到第二个PAT包第五个字节再使能CRC校验模块,直到CRC校验字节前再关闭该模块,总之控制信号要确保CRC校验模块校验的是PSI表的所有有效信息。
另外需要说明的是PMT检测模块在实现上不需要考虑多个分段的情况,但有两处描述子要进行CA描述子的检测;NIT检测模块可以对指定描述子做检测,如卫星传送系统描述符等;ELE检测模块检测elementary_PID、PCR PID和可能存在的ECM_PID,该模块能正常工作说明PMT检测模块正确工作;同理EMM检测模块能正常工作说明CAT检测模块正确工作。
3. 3 资源的优化
由图3可见,PAT检测和CAT检测同为一个模块。这也算是本文在硬件实现上的一个创新点。之所以如此,是因为笔者在程序代码的编写上巧妙地将对CAT的检测分析融入到对PAT的检测分析中,而整合到一起的检测模块消耗的资源比原先PAT检测模块消耗的资源只增加一点点,这就意味着几乎没有增加硬件资源消耗的情况下完成了对CAT的检测,从而大大节省了FPGA内部宝贵的逻辑资源。
经过仔细分析对照,笔者发现PAT表和CAT表有着惊人的相似性,这种相似性给编写硬件语言带来了极大的便利。PAT和CAT的差别主要在循环字段,其他字段位置字节数都能很好对应。若把对两个表的循环字段的处理分别独立为两个小模块,则剩下的部分就可以很好地将对PAT和CAT的处理融合到一起,融合到一起的模块只需要给这两个小模块恰当的控制即可。
4 实际测试
本设计采用硬件平台DE2开发板,FPGA型号EP2C35F672C6N,接口芯片通过DE2板GPIO接口和FPGA相连。测试码流有将卫星信号转换而得的实时码流和人工制作的非实时码流。对于A类情况,采用由亚洲三号卫星频点为4095H的信号转换的实时码流进行测试,如图4所示,从左向右:数码管数值1和3分别表示有一套节目,该套节目里有3个PID,它们是13′h0021,13′h00A0,13′h0050;三个红色LED灯亮表示发现PAT,PMT和基本音视频包,两个绿色LED灯亮表示接收同步及提取分析完PSI信息。DE2板显示的节目数及PID值跟专业数字卫星接收机显示的结果一样,表明PSI信息检测正确。对于其他各种可能的情况,由于在实际码流中很少见,所以采用人工构造符合标准的码流进行验证,发现结果也是正确的。
5 结 语
随着将来复用器应用范围的扩展,数据业务量的加大,实际码流中会出现一段多包或一包多段的情况,本文针对实际码流中可能出现的各种情况进行实用性的设计,完全能保证复用器在无论业务量多大的场合都能进行完整全面的PSI信息检测,具有很强的现实意义。
- 赛灵思“授之以渔”理论:危机中如何巧降成本(06-04)
- 基于FPGA的MPEG-2复用器中FIFO的一种设计方案(07-22)
- 基于FPGA的数字电视CAS系统设计(07-24)
- 用CPLD和外部SRAM构成大容量FIFO的设计(07-29)
- 地面数字电视符号与载波同步的FPGA实现(08-01)
- 采用基于FPGA的SoC进行数字显示系统设计(08-05)