基于基于FPGA的的TS over IP的设计与实现的设计与实现
本文设计与实现了一种基于FPGA和MCU(R8051XC2)的TS over IP系统,并对传统的TS over IP系统进行了改
进。此系统通过从标准TS流接口接收TS流,将其以乒乓操作的方式存放在两个双口RAM中,再通过一定方法封
装IP包发送至网络,实现了TS流和网络IP数据包的相互转换。此系统在相同情况相比传统的使用FIFO作为缓冲
器的系统,运行效率有明显的提高。
摘要:随着互联网的发展, 数字电视信号的网络传输得到了越来越多的关注,本文设计与实现了一种基于FPGA和
MCU(R8051XC2)的TS over IP系统,并对传统的TS over IP系统进行了改进。此系统通过从标准TS流接口接收TS流,将其以
乒乓操作的方式存放在两个双口RAM中,再通过一定方法封装IP包发送至网络,实现了TS流和网络IP数据包的相互转换。通
过向系统推送TS流数据并使用抓包软件对经过系统的数据进行分析统计的方法证明,得出以下结论,此系统在相同情况与有
限的硬件条件下,相比传统的使用FIFO作为缓冲器的系统,系统运行效率有了明显的提高。
引言
随着互联网的发展,人类进入了网络化、数字化的时代。在三网融合的政策背景下,数字电视信号的网络传输得到了越来越多
的关注。与此同时,先进的嵌入式技术也对数字媒体的发展起到了推动的作用。TS流是根据ITU-T Rec.H.222.0|ISO/IEC
13818-2 和ISO/IEC 13818-3协议而定义的一种数据流,主要用来传输数字电视的视频节目、音频节目和一些用户信息,它是
以包的方式存在,一个TS包一般为188或204字节,其广泛用于电视信号的传输中。当前的广播电视传输主要是TS流在现有的
有线电视网络中进行传输。而本文的TS over IP技术是将TS流数据包转换成IP数据包,并能够在网络中进行传输。使只有网络
接口的终端设备可以接收到电视信号[1]。
目前实现该技术的主要方法是通过MCU IP核在FPGA中模拟出一个控制器来控制其余的子模块实现[2]。本文设计的系统使用
FPGA芯片和MCU芯片,两个芯片之间通过EMIF接口进行通信,并使用两个双口RAM,以及DMA的方式来实现系统。
1 系统概述及流程
1.1 系统概述
本系统实现了将从TS传输设备中接收到的TS流数据转换为IP数据包,并使其能在网络中传输。本系统基于FPGA实现,由一
个MCU进行控制,可以通过设置初始时的IP和MAC地址将数据发送到不同的目的主机。
目前类似的系统大都使用现成的FIFO来对TS数据进行暂时的存储并通过现成的TCP/IP协议代码来封装IP包。在使用传统的方
法时,当FPGA性能不够时会导致丢包的现象出现。而FPGA与MCU在通过FIFO进行通信交换数据与MCU的处理速度过低与
数据的多次交换是导致这一现象的主要原因。所以为了提高系统的运行效率,使系统能够在数据量非常大的情况下或者FPGA
性能不是很好的情况下仍能够正常运行,本系统采用了两个双口RAM通过乒乓操作来完成TS数据的暂时存储,并通过程序在
RAM中写入数据来实现IP包的封装,封装完成后通过DMA的方式将数据传输到MAC模块中进行发送的设计,避免了FPGA与
MCU进行数据交换与运行复杂的TCP/IP封装程序的过程,从而提高系统的运行效率。
本系统使用了FPGA+MCU进行实现,由于两块芯片的时钟频率不同,则系统涉及到了跨时钟域通信问题以及数据的亚稳态问
题,所以本系统使用了应答机制以及同步电路来避免异步时钟域通信带来的问题。
1.2 系统流程
如图1所示,系统流程由3个部分组成。首先,在程序启动后,由MCU来对整个系统进行初始化配置,为之后系统的运行做好
准备。接着MCU通知FPGA初始化完成,开始接收TS数据,并将这些数据储存在RAM中,当接收7个TS包以后,程序会检测
是否由于传输数据过快出现数据溢出。完成溢出检测后,系统会对RAM中的IP包头信息进行更新,信息更新完成之后的IP包
会以DMA的方式传输到MAC中并最后由MAC模块发送到网络之中。