嵌入式千兆网高清视频传输系统设计
2014-05-10赵文达续志军
赵文达,赵 建,曲 锋,续志军
(1.中国科学院 长春光学精密机械与物理研究所,吉林 长春 130033;2.中国科学院大学,北京 100049)
1 引 言
随着科技的发展,人们对视频的清晰度要求越来越高,高清视频的传输需要较高的带宽。随着CCD等成像器件工艺的不断进步完善,相机不论帧频速度、分辨率还是动态范围和灵敏度都有了较大的提高,从而图像数据的传输也需要高的带宽。另一方面,短距离的数据传输已不能满足工程的需要,人们开始研究快速、高效的远距离数据传输。针对上述问题,本文设计了嵌入式千兆网高清视频传输系统[1-4]。
目前常用的高清视频传输方法是:首先应用视频压缩编码来减小传输带宽;然后,采用计算机上的10M/100M以太网,将压缩视频传到另一端的计算机上;最后,在另一端计算机上将压缩视频解码并显示。此种方法可以较快速地实现高清视频的远程传输,但系统复杂,成本高,使用不便。本文设计的系统将视频数据的采集、传输和处理集成在一起,这样整个系统集成度高、小巧、使用方便、成本低。在数据的高速远程传输方面,本设计采用千兆以太网技术。千兆以太网在原有百兆以太网的技术规范上改进得到的,它与10M/100M以太网兼容,使用方便。并且,它的数据传输最高可以达到1 000M/s的带宽,可以满足高清视频数据对传输带宽的要求[5-7]。
本文设计的系统采用Camera Link接口的紫外相机进行视频图像数据采集,在FPGA的控制下,经千兆以太网高速传输至上位机进行图像的缓存与显示。其中,网络协议的处理和千兆网底层驱动的设计是本系统实现的难点。
2 系统总体设计
该系统需满足以下需求:(1)传输图像的分辨率在720×1 020以上,数据位宽为8位,图像最高帧频为40Hz;(2)支持RJ45接口的千兆以太网,采用TCP/IP网络传输协议;(3)视频图像数据采集接口支持CameraLink接口。根据以上系统需求,设计千兆网系统的组成如图1所示。
图1 系统总体结构框图Fig.1 Overall structure of the system
(1)Camera Link相机数据采集:相机产生的标准Camera Link信号经过专用接收芯片DS90CR288解码成LVTTL信号输入给FPGA内部的图像采集模块[8]。图像采集模块根据行有效、数据有效等信号对有效的行和像素计数,将有用的像素数据传给数据处理模块。
(2)图像数据处理:数据处理模块参照像素时钟对图像数据进行串并转换处理,然后将转换后的并行数据缓存到FIFO中。
(3)数据传输的千兆网驱动:在FPGA的千兆网驱动中实现精简的TCP/IP协议和数据包的收发。媒体访问控制(MAC)层采用AX88180芯片,以太网物理层(PHY)采用M88E1111芯片。
其中,网络协议的处理和千兆网底层驱动的设计是本系统实现的重点也是难点,下面主要从这两方面介绍。
3 网络协议的处理
TCP/IP 协议(Transmission Control Protocol/Internet Protocol)即传输控制/网际协议,也被称为网络通讯协议。互联网中各主机进行通信使用的标准都是由它规定的[9]。TCP/IP是由应用层、运输层、网络层和数据链路层组成的。应用层是体系结构中的最高层,它直接为用户的应用进程提供服务。运输层主要包括传输控制TCP协议和用户数据报UDP协议,它负责向两个主机中进程之间的通信提供服务。网络层主要为不同主机在分组交换网上提供通信服务。IP协议(网络协议)是TCP/IP在网络层上的主要协议。数据链路层将网络层数据组装成帧,并提供透明、可靠的数据传送基本服务。
本文设计的视频图像传输系统的网络协议的处理由FPGA实现,考虑到效率与复杂性的问题,需要对TCP/IP协议进行相应的化简。本文设计的系统的网络协议特点为:(1)端对端通信环境。数据交换仅仅在采集前端和计算机之间进行,在这种情况下可以忽略因为网络堵塞、延时等导致数据丢失的可能性,因此系统不需要任何复杂的可靠性控制协议,使用UDP协议即可。(2)通讯双方信息固定。如UDP端口号、IP地址和MAC地址等可以事先确定,不需要再实现相关的寻址协议。(3)数据格式固定。由于前端千兆以太网主要用来传输图像数据包,数据包格式及长度可以事前确定,并且采集前端从计算机接收命令数据包的数量及类型也都是固定的,直接丢弃相关的协议信息,仅根据数据就可以确定命令种类。这样对于数据采集前端来说,就可以把各层协议的首部事先准备好,发送时直接以常量形式封装在有效数据包前面,将封装后的数据包直接交给协议芯片发送,而不用再由系统实时计算产生。试验采用的各层协议格式[10]如表1所示。
表1 各层协议格式Tab.1 Levels of agreement format
4 千兆网驱动的设计
要通过千兆网以太网传输数据,至少需要实现开放系统互联模型(OSI)中物理层和数据链路层的功能。数据链路层主要承担数据帧的构建、传输控制、差错检查工作,物理层主要负责数据编解码、时钟基准、线路状态监测等工作。目前的以太网设计,常用的方法是将繁琐的以太网通讯协议编写在主控制器中,然后外连物理层接口芯片。以太网协议由软件实现较为复杂,不够稳定,并且不方便调试。为了简化设计系统的复杂度和节约成本,本设计选择了独立的数据链路层控制芯片AX88180,对数据进行封装,并构建顶层传输控制协议[11]。M88E111作为千兆以太网物理层芯片,完成数据的信道编解码、传输时钟的生成以及控制码元在物理信道上的传输。
AX88180是一款适用于千兆以太网的数据链路层(MAC)芯片,与主机通信采用16/32位的直接总线方式,1 000M模式下支持全双工操作,兼容IEEE802.3、802.3u、802.3ab网络标准,支持SRAM-LIKE主机接口,可以非常方便地与FPGA、ARM、DSP等控制器连接。M88E1111是MARVELL公司推出的适用于1000BASE-T应用的千兆物理层芯片,它采用标准的CMOS工艺制 造,支 持 IEEE 802.3、IEEE 802.3u、IEE E802.3ab标准,向下兼容10BASE-T、100BASET 应用,支持 GMII、RGMII、SGMII、TBI、RTBI与MAC接口标准。FPGA、AX88180与 M88E1111之间的连接电路如图2所示。
图2 FPGA、AX88180与 M88E1111之间连接电路图Fig.2 Connection circuit between the FPGA,AX88180and M88E1111
由于FPGA具有充足的管脚与AX88180连接,为了实现较高的数据传输速率,选择了32位的接口和异步操作的工作方式。AX88180主机接口共包括32位数据总线HD[31:0]、16位地址总线 HA[15:0]、片选信号CSN、读信号OEN、写信号 WEN、中断信号INTN、硬件复位信号RST_N。AX88180采用RGMII(Reduced GMII)接口与PHY连接。RGMII接口主要包括发送数据TXD[0:3]、发送时钟 TXCX、发送时能 TXEN、接收数据RXD[0:3]、接收时钟RXCX、接收使能RXDV以及冲突信号COL和传输感应信号CRS、参考时钟信号CLK125以及PHY中断信号PHYINTN等。另外,AX88180输入时钟与FPGA输入时钟由同一100MHz晶振提供,AX88180和M88E1111的复位信号都由FPGA控制,M88E1111将25MHz的时钟信号倍频成125MHz时钟给AX88180提供发送参考时钟。
千兆网驱动的设计主要包括系统的初始化、数据包的接收发送和收发的仲裁。系统的初始化在系统上电时运行,主要工作是根据网络芯片说明手册对芯片寄存器进行适当的设置,使网络处于一个稳定的初始状态。设计中需要注意的是根据M88E1111数据手册的规定,M88E1111硬件复位至少需要持续15ms以上的复位时间,并且复位信号结束5ms以后才能访问PHY寄存器。发送模块的主要工作是将数据从FPGA片内缓冲区中移出来,为其加上合适的协议首部后写入AX88180的内部发送缓冲区中,之后通过控制AX88180的发送寄存器将其通过千兆以太网发送出去。数据的发送是在FPGA中编程实现的,编程的技巧采用状态机的思想[12]。发送过程是首先在原始状态等待,等到FIFO中缓存的图像数据大于一行时,将数据包头写入AX88180的发送缓冲区,包头写完后,FPGA将FIFO中的一行图像数据写入AX88180的发送缓冲区,写完成后,配置与AX88180发送相关的寄存器,将一个完整的数据包通过PHY芯片88EE1111发送出去,发送结束进入到原始状态等待下一行新数据的发送。数据包的接收主要接收上位机发过来的命令,对于本系统仅包括开始采集、停止采集等。AX88180接收到有效的数据包后,通过中断通知FPGA。仲裁模块在数据发送空闲时检测并判断中断的状态,如果当前有效的是接收中断,总线就会交给接收模块。上位机传输过来的数据帧包括相应的协议头,为了降低系统设计复杂度,设计中规定长度为100字节的数据帧为系统命令使用的帧长度,并且仅根据其中的1个字节判断命令种类,对于长度不等于100字节的数据帧直接做丢弃处理。
数据收发仲裁的作用是根据系统运行状态为系统初始化、发送数据、接收数据分配FPGA的总线使用权,避免因为数据混乱造成系统工作不正常,同时还捕获MAC的接收中断。工作流程如图3所示。
图3 数据收发仲裁流程图Fig.3 Data transceiver arbitration flowchart
上电时,FPGA先对系统初始化即总线被初始化占用,等到初始化完成后交出总线,等待MAC接收中断,中断有效时接收上位机发来的命令数据包,此时总线由接收模块占用。若命令发送数据,则发送模块占用总线将图像数据发送到上位机,发送间隔时期再判断MAC接收中断状态以判断是否存在接收数据,若有则接收模块要在发送间隔内将数据接收完毕,继续判断上位机命令,若为停止发送,则回到等待MAC中断状态,否则继续发送数据。
5 设计验证
实验采用分辨率为1 392×1 040,帧频为16Hz,8位像素,像素时钟主频为33.75MHz的紫外相机。由于发送模块发送数据的效率直接影响数据的高速传输,本文做了数据发送过程的仿真,发送模块在FPGA中通过状态机编程实现,波形如图4所示(利用Altera的SignaltapII获得)。
图4 数据发送过程的仿真波形Fig.4 Simulation waveforms of data transmission process
为了完整地观察到发送数据过程中状态机的变化,将采集的两幅图拼接来看。sendHA和sendHD分别代表AX88180的地址总线和数据总线,st0、st1、st2、st3分别代表状态机中的等待、给数据添加包头、将数据写入AX88180的发送缓冲区、配置与发送有关的寄存器4个状态,高电平有效。wradd表示发送一个网络数据包的图像数据数,在st2为高电平时,wradd从0到347共348个32位宽的数据,即为1 392个8位宽的图像数据写入AX88180的发送缓冲区,正好为一行图像。
上位机测试程序用VC++编写,start表示开始采集图像,stop表示停止采集图像。上位机测试程序如图5所示。
图5 上位机测试程序效果图Fig.5 Computer test program effect diagram
可以看出图像存储完整,无丢失数据现象,并且测得系统可以稳定的工作在最高数据传输速度为607.8Mbit/s。
6 结 论
设计实现了无损视频高速传输的嵌入式千兆网系统。介绍了硬件电路的基本组成,重点介绍了网络协议的处理和千兆网底层驱动的设计,包括网络接口芯片的连接、数据包的接收发送和数据收发的仲裁。上位机采用VC++6.0编写的应用程序实现了网络通讯和高速网络数据流的实时存储与显示。最后在实验室完成了图像采集显示及传输速率的测试,最高传输速度达到607.8 Mbit/s,与已有的千兆网系统数据传输速率为300Mbit/s[4]相比,速率提高了一倍多,在实际应用中取得了良好效果。
[1] 罗通顶,李斌康,郭明安,等.科学级CCD远程图像采集系统 [J].光学精密工程,2013,21(2):496-502.Luo T D,Li B K,Guo M A,et al.Remote image acquisition system with scientific grade CCD [J].Opt.Precision Eng.,2013,21(2):496-502.(in Chinese)
[2] 李进,吕增明,陶宏江,等.适于高速CCD图像数据光纤传输的纠错技术[J].光学精密工程,2012,20(11):2548-2558.Li J,Lv Z M,Tao H J,et al.Error correction technology for CCD image using high speed optical fiber transmission[J].Opt.Precision Eng.,2012,20(11):2548-2558.(in Chinese)
[3] 田园,任国强,吴钦章.基于SSD硬盘的嵌入式高速图像存储技术[J].光电工程,2009,36(12):138-142.Tian Y,Ren G Q,Wu Q Z.Embedded technology of high-speed image storage based on SSD [J].Opto-Electronic Engineering,2009,36(12):138-142.(in Chinese)
[4] 李艳霞.千兆以太网接口高速图像采集系统设计[D].大连:大连理工大学,2010.Li Y X.High-speed image acquisition system based on gigabit ethernet interface[D].Dalian:Dalian University of Technology,2010.(in Chinese)
[5] 马建设,李合银,程雪岷,等.嵌入式自动聚焦摄像模组控制系统的设计[J].光学精密工程,2012,20(10):2222-2228.Ma J S,Li H Y,Cheng X M,et al.Control system for embedded auto-focusing camera module[J].Opt.Precision Eng.,2012,20(10):2222-2228.(in Chinese)
[6] 樊光辉,孙国强,向健勇.基于千兆以太网技术的大型实时传输系统[J].电子科技,2009,22(3):37-40.Fan G H,Sun G Q,Xiang J Y.Large-scale real-time transmission system based on gigabit ethernet technology[J].Electronic Sci.& Tech.,2009,22(3):37-40.(in Chinese)
[7] 狄旭明.远程高清视频采集系统设计[D].成都:成都理工大学,2010.Di X M.The design of remote HD video acquisition system [D].Chengdu:Chengdu University of Technology,2010.(in Chinese)
[8] 吕耀文,王建立,曹景太,等.移动便携图像存储系统的设计[J].液晶与显示,2012,27(5):697-702.Lv Y W,Wang J L,Cao J T,et al.Design of portable image storage system [J].Chinese Journal of Liquid Crystals and Displays,2012,27(5):697-702.(in Chinese)
[9] 谢喆.基于FPGA的TCP/IP数据通信的设计与应用[D].武汉:武汉科技大学,2011.Xie Z.The design and implementation of TCP/IP communication based on FPGA [D].Wuhan:Wuhan University of Science and Technology,2011.(in Chinese)
[10] 马腾飞,高世杰,吴志勇.基于千兆以太网的图像采集系统设计[J].微型机与应用,2010(9):72-74.Ma T F,Gao S J,Wu Z Y.Synchronized frame acquisition system based on gigabit ethernet[J].Micro Computer and Application,2010(9):72-74.(in Chinese)
[11] 李爽,郑喜凤,严飞.千兆以太网介质转换器在LED显示屏传输系统中的应用[J].液晶与显示,2012,27(1):75-80.Li S,Zheng X F,Yan F.Gigabit etherent media converter used in LED display transmission system [J].Chinese Journal of Liquid Crystals and Displays,2012,27(1):75-80.(in Chinese)
[12] 薛盼盼,王晓东,刘文光,等.空间遥感仪器便携式数据采集试验系统研究[J].液晶与显示,2012,27(2):257-262.Xue P P,Wang X D,Liu W G,et al.Portable data acquisition test system for space remote sensing instrument[J].Chinese Journal of Liquid Crystals and Displays,2012,27(2):257-262.(in Chinese)