基于FPGA的视频传输流发送系统设计方案

网友投稿 296 2022-11-11

基于FPGA的视频传输流发送系统设计方案

1 引言

2 系统结构和功能分析

2.1 DVB-ASI介绍

ASI是个串行传输协议,TS流以串行的方式传输,为了保证接收端能正确恢复出TS流DATA数据,发送端需要插入同步字K28.5。ASI协议中没有PSYNC、DVALID和CLOCK信息,因此,在接收端需要根据TS流的同步字节0x47,由外部逻辑合成这3个信号。

2.2 DVB-ASI信号发送系统结构

图 1 SPI转ASI模块原理图

FIFO的写入时钟即为TS流的字节时钟CLOCK,而读出时钟为固定值27MHz。采用不同的FIFO读逻辑,可以产生突发或连续两种ASI输出模式。本方案中,FIFO、FIFO的读写控制逻辑、8B10B编码以及并串转换均由FPGA 实现,ASI输出为突发模式。

在ASI的编码过程中,只需将MPEG2的八位数据和一位TS码率传输时钟输入到FPGA。在本方案中,TS格式为188个字节,因此数据有效信号DVALID一直为高,FPGA忽略这个信号,只管接收TS码流数据,而不用关心TS码流的同步头。PSYNC帧同步信号则作为FIFO读入的控制信号。FPGA将接收到的数据以TS码率时钟写入FIFO,当FIFO半满时,FPGA接收到FIFO的半满信号,然后FIFO控制逻辑发出FIFO可读信号,编码模块以以27Mbps读取FIFO中的数据;当计数器计数到编码模块读取了一定数量(188个读FIFO信号周期)的FIFO数据,则发送FIFO不可读信号,防止FIFO读空。

3 系统各结构的实现方法

3.1 信号输入

3.2 FIFO模块

FPGA在搜索到188字节包长的包头0x47后开始将数据写入FIFO,同时监测FIFO的半满信号HF, 若半满则将FIFO的读使能信号抬高, 而此时从FIFO读出数据给8B/10B编码模块完成编码。读数据时,由FPGA对FIFO的读信号的时钟脉冲计数,计到188个后,将FIFO的读使能拉低,并判断FIFO是否半满。此时FPGA将不再发出读FIFO信号, 而是在每个时钟的上升沿插入一个K28.5同步字, 待发现FIFO半满信号HF出现后, 再次将FIFO的读使能抬高,并保持188个读FIFO信号周期,如此反复。由于FPGA时钟引脚接一个27MHz的外部时钟, 而在每个时钟的上升沿, 不是输出正常数据就是同步字, 所以不管FIFO是否有数据提供给后端的8B/10B编码器,FPGA最终都将送出固定的270Mbps的串行数据,构成DVB-ASI的标准数据格式。

3.3 8B/10B编码模块

8B/10B编码模块是ASI接口转换的核心之一。DVB-ASI数据编码层的传输规约包括串行编码规则、专用字符和差错控制。它采用DC平衡的8B/10B传输码。这种码把每一个8bit数据字节变换成符合直流平衡特性的10bit码字。这种码通过无效传输码点和“运行”的不均衡性来提供差错校验。作为超出对数据字节进行编码需要的额外码点,规定了专用字符。

系统以字节同步的方式接收MPEG-2传送包,接收的参考时钟是采用固定的27MHz的时钟频率。接着,对字节进行8B/10B编码,对出现的每一个8bit字节产生一个10bit的字,使这些10bit字通过以固定输出比特率270Mbps工作的并/串转换。

将8B/10B编码划分为3个模块实现,较好地反映了8B/10B编码的特点,实现流程清楚,容易编写代码。具体实现步骤为: ① 判断是特殊字符还是数据; ② 若是特殊字符(3B4B),根据RD极性直接取值; ③ 若是数据,根据RD极性和前一个10bit模块的编码情况确定当前6 bit的取值; ④ 根据当前6 bit编码值确定当前4 bit的编码取值。⑤ 将当前6 bit编码和当前4bit编码组成当前10bit编码输出。

3.4 并串转换模块

在完成8B10B编码以后,将信号送至并串转换模块转换为串行数据流,通过270MHz时钟将串行信号送出,ASI接口采用两线差分方式进行串行数据传输。

首先对ASI发送系统进行功能仿真,仿真平台为ModelSim6.0,本设计中,ASI发送系统的输入输出的仿真波形如下图所示:

图 2 ASI发送系统的仿真波形

仿真结果表明,输入信号与编码信号之间顺序相差一个码元周期,输出抖动被完全消除。

图 3 系统组成

ASI发送测试为:Honeywell公司的摄像头和自行研制的MPEG2编码板输出符合MPEG2标准的TS流,通过标准SPI口送给本文的ASI转换系统的SPI输入,而经SPI到ASI的转换,通过BNC接头的有线电缆送给解码器的ASI口输入,解码后的视频输出送给显示器,连续播放数十小时,图像清晰且显示正常无误。

实验结果证明,采用本文方法设计的ASI发送系统,符合标准ASI接口规范,能有效可靠的实现SPI-ASI的编码功能和高速串行数据流的发送功能。

5 结语

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:MySQL语句
下一篇:msyql服务器
相关文章

 发表评论

暂时没有评论,来抢沙发吧~