摘 要:应用SoPC和千兆以太网技术设计实现了视频监视器的千兆网显示接口。通过该接口视频监视器可以完成数字视频信号的远程接收和显示。该设计利用Altera" title="Altera">Altera" title="Altera">Altera SoPC解决方案,将主要模块集成在一片FPGA上,可以快速构建千兆以太网系统,提高系统的集成度与稳定性。在数字远程视频传输上,该设计充分利用了千兆网的特性,对比其他数字视频传输方法,具有高速率、低成本以及分组数据的优势。
关键词:千兆网;视频显示接口;SoPC
随着数字电视技术的日益成熟,数字视频传输系统已经在各领域得到广泛应用。在如安防监控等许多应用环境中,都需要系统能将视频数据远距离传输到特定监视器,并要求视频数据是非压缩的,以保证运动监控图像的质量。数字视频数据量大,对传输系统的带宽有很高的要求。目前主流的解决方案是通过串行数字接口(SDI),在视频流的发送接收端配备相应的SDI接口或者转接板卡,利用视频同轴电缆传输视频信号[1]。但是使用SDI接口的缺点是不能直接传输压缩视频信号,而且由于传输的内容是非分组数据,所以要为每路信号配备一条同轴电缆,布线成本较高。
随着技术成本的降低,千兆网的作用开始超越网络主干网领域。它具备的高带宽以及网络兼容性使其在数字视频传输领域上也受到了广泛关注[2]。千兆网的传输介质可以使用五类双绞线,比起同轴电缆具有相当的成本优势,并且千兆网可以使数据传输网络化,益于系统日后的维护管理。针对这个问题,本文设计了视频监视器的千兆网显示接口,通过该接口可以利用千兆网完成数字视频数据的远程传输。
1 千兆以太网
以太网技术是广泛应用的网络技术,千兆以太网在兼容原有以太网技术的基础上进行了一系列改进,网络数据传输速率得到大幅度提高。特别是IEEE802.3ab(1000Based-T)千兆网标准的出台,将五类非屏蔽双绞线应用在千兆网中,使得网络性能在原有布线基础上获得大幅度的提高[3]。如今千兆网已经发展成为主流的网络技术,广泛应用在大中小型企事业单位。
千兆网兼容了原以太网标准所规定的全部技术规范,其中包括CSMA/CD协议、以太网帧、全双工、流量控制等。千兆网的标准化结构包括介质访问控制(MAC)、物理编解码(PCS)和物理介质接入(PMA)三个主要部分。其中MAC模块主要实现在全双工模式下的流量控制和MAC帧的发送和接收功能等。PCS专门负责信道的编解码、纠错和扰码等。PMA模块的主要功能是实现数据在物理线路上串并\并串转换[4]。在Altera的MegaCore IP库中提供了可参数化的千兆以太网megacore解决方案——Triple Speed Ethernet MegaCore。它包括了支持千兆以太网的MAC模块以及可选的1000Base-X PCS和PMA模块,可以在无需外扩物理层芯片的情况下实现光纤千兆网[5]。
2 总体方案设计
显示接口的整体结构如图1所示,主要组成部分包括千兆网物理层芯片、MAC模块、CPU、LCD控制器以及片外存储器等。可以看出,由于使用了片上可编程系统(SoPC),其中的大部分模块都构建在FPGA内部,只留出少数引脚对外通信,硬件电路非常简单。
显示接口的工作通过以下步骤实现:
(1)网络视频流首先通过网线传到千兆网物理芯片,物理芯片对线对上的PAM-5幅度调制信号进行A/D转换、解码并还原成125 MHz的8 bit数据流,并通过千兆位介质独立接口(GMII)传输到MAC模块。MAC模块负责辨别帧的目的地址,对数据进行CRC校验。对检验合格的数据包拆解MAC帧头帧尾,保留数据包中的有效数据,并通过DMA单元将网络数据缓存,发起接收中断。
(2)为了适合网络传输,视频发送端的ITU-656视频流按照UDP协议被打包成网络数据帧。MAC模块在完成MAC帧数据的接收之后,还要由CPU进一步解析UDP和IP数据包,缓存视频数据到SDRAM中的显示缓存区。通过帧缓存的形式可以很容易解决隔行扫描数据转换为逐行扫描数据的问题,最大程度保证显示内容不失真。
(3)通过自定义的LCD控制器实现数据显示。LCD控制器负责读取显示缓存数据,并产生LCD显示时序信号,将数据发送到监视器的液晶面板。自定义的LCD控制器是使用Verilog硬件描述语言设计的,并通过SoPC Builder的用户自定义组件功能添加到系统中。
3 千兆以太网系统的构建
构建千兆网系统必须包含硬件MAC、PCS和PMA这几个模块。在本系统中,PCS和PMA由片外的千兆网物理层芯片DP83865完成,MAC模块则通过Altera的Triple Speed Ethernet核单独实现。下面将千兆网分为以太网端和系统端两部份来介绍系统的具体结构。
3.1 以太网端结构
物理芯片在接收网络信号之后,会将信号转换为MAC帧格式的并行数据,并通过提供的千兆位介质独立接口(GMII)与MAC模块通信。MAC并不关心网络信号如何接收如何转换,只是负责接收帧格式的数据。DP83865提供了符合工业标准的GMII接口,它包含8 bit宽度Rx_D[7..0]和Tx_D[7..0]数据接口,通信的时钟频率为125 MHz,最高可以达到1 Gb/s的通信速率。
系统对物理芯片的配置,通过MDIO接口实现。MDIO是一个2线的管理总线接口,只包含MDC同步时钟和MDIO串行数据收发信号。Triple Speed Ethernet核的内部包含有MDIO主控制器,物理芯片的32个寄存器可以被映射到MAC模块内部寄存器。只需要通过系统总线就可以完成对物理层芯片的控制,简化了开发工作。
3.2 系统端结构
这部分主要涉及到处理器单元与千兆网底层通信的问题,具体结构如图2所示。MAC模块挂接在Altera Avalon总线上,CPU通过Avalon-MM总线访问其内部寄存器。MAC内部设置了收发FIFO来缓存数据流,并提供了标准的Avalon-ST流接口用作数据流收发。为了避免因数据收发任务过多而占用CPU,采用了直接存储器访问(DMA)单元来接收网络数据。Altera的SG-DMA专门提供了Avalon-ST流接口用做数据流传输,可以工作在存储器到流接口、流接口到存储器以及存储器之间三种模式下。
图2所示的两个SG-DMA,一个是数据流发送Tx SG-DMA,另一个是数据流接收Rx SG-DMA。两部分并行工作实现千兆网的全双工工作模式。图中的命令字存储器是SG-DMA的操作指令缓存区,CPU可以提前将SG-DMA要完成的任务通过命令字的形式写入命令字存储器中。SG-DMA在完成当前任务后,会自动提取命令字开始新的任务,减少了CPU对DMA的访问次数。由于命令字存储器与网络数据缓存区都比较小,将其设置为小容量的片内RAM,避免过多模块访问SDRAM带来的系统总线冲突问题。
3.3 千兆网初始化与数据接收
在硬件系统构建完毕之后,需要配置各模块内部寄存器,初始化完成之后才能正常工作。访问寄存器的方法非常简单,各寄存器单元都已经映射成了存储器映射寄存器,只需要读写映射的存储器单元即可。对各寄存器的配置,利用了Altera提供的HAL底层驱动程序。初始化操作的程序流程如图3所示。
在接收网络数据时,为保证传输的实时性,系统与视频流发送端建立起非连接的数据传输。数据同步信息已经包含在视频数据流中,系统的主要任务只是负责接收网络数据,恢复视频数据流。而视频数据是以UDP协议传输的,因此网络数据被接收之后,缓存区内存储的有效数据即是IP数据报文,通过匹配IP数据包头的IP地址可以判断数据包是否正确。对于符合本地地址的IP数据包,CPU可以根据IP与UDP协议的数据结构直接提取其中的有效数据,最终获取的数据就是有效的视频数据。
4 图像显示模块
4.1 总体构架
显示模块的主要工作是获取有效的视频数据,并最终显示在显示面板上。图4是显示模块的具体结构示意图。在视频数据获取的过程中,同样采用了SG-DMA模块,它具备的流接口更适合模块间连续数据流的传输。而LCD控制器方面,则通过定制用户自定义组件功能来实现。
SG-DMA通过Avalon-MM主接口访问位于SDRAM中的显示缓存区,提取缓存区数据,并以数据流的形式通过Avalon-ST流接口发给LCD控制器。完成一项任务之后,再通过读取片内RAM存放的命令字,提取下个传输任务的起始地址和长度等参数。因为显示缓存区的位置是固定的,设置的命令字内容都相同,确保DMA提取的显示数据传输不间断。
4.2 TFT LCD控制器核
LCD控制器按功能可以划分为3个模块:片内寄存器模块、异步FIFO模块和LCD时序发生器。由于Avalon总线与LCD控制器工作在不同的时钟域,如果直接连接会使得系统工作不稳定。利用异步FIFO作为缓存可以弥补模块两边时钟不同步的差别。同时在异步FIFO模块的系统端用almost full和almost empty两个信号组成流控制信号Ready来控制Avalon-ST接口的数据流传输。
寄存器模块是自定义组件中必不可少的内容,它可以让系统对LCD模块进行各种功能的设置,例如设置显示分辨率、LCD的各类时序参数等,同时也可以向系统反馈所需的状态信息。CPU可以通过Avalon-MM总线来配置这些寄存器,模块内部也可以按照各种需要直接访问或修改寄存器内容。自定义寄存器的内容如表1所示。
最后的效果测试中,通过交叉千兆网双绞线,将一台带有千兆网卡的PC主机与系统相连,测试数据由主机的视频采集卡采集摄像头得到。测试时,主机上的软件程序将视频信号打包发送到网络。系统端接收网络数据,将数据发送到显示面板,测试的效果清晰。虽然在网络传输时,数据帧头帧尾等同步字信息占去一部分的网络带宽,但由于串行ITU-656数字视频速率一般采用270 Mb/s,而千兆网的速率达到1 Gb/s,还是可以满足信号传输的实时性。
本设计通过采用Altera FPGA器件,结合SoPC设计方法,为视频监视器设备实现了一个可以接收远程数字视频信号的千兆网显示接口。利用千兆网来实现视频信号传输,提高了信号的传输速率。如今千兆网接口已经成为计算机系统的主流网络接口,使得该系统的通用性更强。由于采用SoPC解决方案,降低了电路复杂度,同时也降低了系统的硬件成本,并且千兆网使用双绞线作为传输介质,这也明显小于使用同轴电缆系统的成本。
参考文献
[1] 苏建,林水生.基于FPGA的SDI接口设计[J].中国有线电视,2005.
[2] STEGER C,ULRICH M,WIEDEMANN Ch.Machine vision algorithms and applications[M].Wiley-VCH,2007.
[3] 丁铁夫,刘超,杨磊,等.基于千兆以太网的实时视频传输
系统设计[J].网络与通信,2008.
[4] 詹俊鹏,李鹏.基于Altera FPGA的千兆以太网实现方案
[J].电子设计工程,2009.
[5] Altera.Triple Speed Ethernet User Guide.Version 9.0,2009.