基于FPGA的全景图像采集与远程传输系统
2013-10-17张忠民牛功喜
张忠民,牛功喜
(哈尔滨工程大学信息与通信工程学院,黑龙江哈尔滨 150001)
随着通信与信息技术的快速发展和网络时代的到来,远程视频监控技术逐渐成为多媒体领域研究的焦点。传统的视觉感知系统存在观测视角小的局限性,并不能满足大视场、大视场监控的需求。而“全景图像采集传输系统”只用一个摄像机完全可以观察到视觉系统360°范围内的整个环境,因此大幅减少了系统设计难度和复杂性,并降低系统的成本。网络化的远程接入技术实现了图像数据的远程传输,监控端通过网络对服务器访问,从而获得相应的全景视频数据,最终实现数据传输与远程监控的目的。
1 系统总体设计
图像采集的全景平台由曲面镜和CCD相机组成。系统的硬件电路由核心板和外设板构成:核心板是由Altera公司Cyclone III系列的FPGA芯片EP3C80F780C6N及外围电路组成FPGA小系统;外设板由以太网接口电路、电源电路、Camera Link接口电路组成。系统总体框图如图1所示。
图1所示,核心板以FPGA芯片为核心控制器,板上搭载4片SDRAM芯片和一片Altera公司FPGA的专用配置芯片EPCS16。EPCS16用于存储设计的配置程序,SDRAM存储采集到的视频图像数据,在高速采集接口与数据存储的速度匹配上利用片上双口RAM完成数据传递。AS、JTAG分别为FPGA芯片的两种不同配置接口。网络传输硬件上采用Marvell公司的千兆以太网PHY 88E1111芯片,数据传输时采用片上FIFO完成数据存储到数据封装与控制单元之间的数据传递。CCD相机输出的LVDS信号需要经过串并转换,这里采用美国国家半导体公司的DS90CR2881A芯片,转换后的单端TTL信号输入到FPGA引脚。网络芯片控制器、采集与存储控制模块用Verilog HDL语言编写,Flash控制器采用Altera公司提供的IP核。外设板在FPGA的控制下完成图像数据采集与网络传输任务。
图1 系统总体框图
2 Camera Link接口协议
Camera Link标准实现工业相机和图像采集卡之间的数据传输,是一种视频通信应用接口,此标准还指定了标准接口器件使信号线标准化。Camera Link技术的传输方案需要较少的传输线,5对传输线最大可以传输28 bit数据,减小了连接器的尺寸,也使相机的尺寸变得更小。Camera Link由一个收发器对构成,在信号发送端先对要发送的28位的数据进行并串转换,转化后的数据流为4位LVDS信号,另外时钟信号也同时以LVDS信号传输。在接收端通过固定芯片再对这5对LVDS信号数据进行解串,转换后的数据为一个时钟信号和28位有效数据,28位有效数据位包括一位保留位、24位数据位及帧有效信号和行有效信号各 1 位[1]。
Camera Link一共有8个端口,端口A~H[2]。在初级配置中,A、B和C被分配到一起,连接到同一个驱动器/接收器对上;在中级配置中,A、B和C分为一组,连接到一个驱动器/接收器上,D、E和F分配到一组,连接到另一个驱动器上;在高级配置中A、B、C、D、E、F的分配与初中级配置相同,不同的是G、H被分配到第3个收发器对上[3]。端口分配如表1所示。
表1 端口分配表
3 视频采集与处理
3.1 视频采集与处理整体设计
数据采集前端为CCD相机,连接器采用Camera Link协议手册指定的3 M公司的MDR26。视频采集与处理硬件设计的总体框图如图2所示。
图2 视频采集与处理硬件框图
CCD相机配置成中级配置方式,所以需要两个连接器MDR26与两片DS90CR288A芯片来接收图像数据。图像数据经两片DS90CR288A后转化成32位并行数据、行有效信号、帧有效信号、数据有效信号、时钟信号输入到FPGA。数据采集与存储控制模块负责把高速图像数据先缓存到片上RAM中然后再存储到片外SDRAM中。采集与存储控制模块的时钟由相机输出的时钟经过DS90CR288转化成的单端时钟信号提供,由于相机的时钟与系统时钟频率与相位不同,出现一个跨时钟域的问题,设计采用 PLL倍频输出500 MHz的时钟对相机时钟进行采样,采样时钟作为采集存储控制模块的时钟源。
3.2 采集与存储控制器逻辑设计
系统的图像前端采集设备为CSC12M25BMP19型相机,CSC12M25BMP19有多中工作模式,中等配置模式下输出有效的125 800 00像素点,帧频为25 fit·s-1,设计采用中级配置模式。图3为相机的行信号输出时序。
图3 相机行信号输出时序图
在采集与存储控制模块中输入信号Camera_fval、Camera_lval、Camera_dval分别对应相机信号 FVAL、LVAL、DVAL,采集控制模块通过判断这些信号是否有效来控制数据的存储。当Camera_dval有效时WrEN有效同时送出写地址,数据开始写入过渡存储器RAM内,当Camera_dval无效时WrEN无效,RAM停止写数据同时读有效。当Camera_lval有效时送出SDRAM的写地址,一行数据输出结束后,Camera_lval变为低电平,经过一个时钟周期后向SDRAM发出写指令,将存储在RAM中的数据转存到SDRAM中。Camera_data[0..31]、WrData[0..31]分别为采集和存储图像数据,wr_SAddr[0..23]、WrAddr[0..9]分别为 SDRAM和RAM的地址数据。Signal Tap信号分析仪抓取的采集控制模块的波形如图4所示。
图4 采集控制模块波形图
4 网络传输设计
4.1 以太网接口硬件设计
图像数据用以太网接口来传输,采用Marvell公司的以太网物理层网络芯片88E1111。88E1111是千兆网物理层应用器件,支持 10BASE-T、100BASE_TX、1000BASE-T应用;支持GMII(Gigabit Media Independent Interface)、RGMII(Reduced GMII)、SGMII(Serial Gigabit Media Independent Interface)等多种接口连接方式;自动检测光纤或铜线模式并支持IEEE 802.3u标准自动协商模式,能够实现两个网络间通信速度的自动协商;能够自动检测电缆脱落、短路和阻抗不配的情况[4]。FPGA与PHY芯片的连接方式为GMII/MII,采用RJ45实现电缆与PHY芯片的数据传输,图像数据经过88E1111解析后由RJ45接口接入网络[5]。网络接口硬件电路如图5所示。
图5 网络接口硬件电路
管脚功能描述如下:GTX_CLK:在GMII模式下由外部提供125 MHz时钟源,这里由FPGA内部PLL提供;TX_EN:传输使能信号;TX_ER:传输错误;TXD[7∶0]:发送到网络接口的数据;MDC:配置数据时钟;MDIO:配置数据接口;RX_ER:接收数据出错;RX_DV:接收数据使能;RX_CLK:接收数据时钟;RXD[7∶0]:接收网络的数据接口;MDI[3∶0]:PHY与RJ45接口。
4.2 物理层芯片控制器设计
在数据传输部分,为了传输的实时性与数据流的连续性,先将待发送的数据存储到FIFO中,封装控制单元控制从FIFO中读出数据,存储单元是用Quartus的MegaWizard Plug-In生成的2 048字的双口RAM核和位宽为32位、深度为1 024的FIFO核。当进行数据传输时,控制单元向FIFO发出读指令从FIFO读出数据进行校验和的计算,与此同时向RAM发出写指令,把读出的数据依次存储到RAM指定空间里。当读的数据长度与待发送的数据长度相等时FIFO读指令置为无效,此时校验和也计算完毕,把计算出的校验和插入到数据包头的适当位置,即RAM的指定地址里,一包数据打包完毕,控制单元向RAM发出写指令将打包好的数据上传。网络芯片控制器程序流程图如图6所示。
图6 网络芯片控制器程序流程图
传输的数据需要打包成符合网络传输协议标准,在包头处理方面,在生成RAM核时,将包头文件初始化到RAM中,给校验和留出16位的空间,计算完毕后再存储到指定地址中。UDP报封装过程依次为:伪首部加到UDP报上、校验和字段填0、所有位划分为16位字段、所有16位字反码相加再取反、极端结果插入到校验和字段、去伪首部[6]。图7初始化文件中的前7 Byte为同步码,第8 Byte为SFD。数据封转初始化文件如图7所示。
图7 数据封装初始化文件图
在上位机显示时,7 Byte的同步码和1 Byte的SFD不在显示之列,如图8所示,数据起始位以前为数据报头,数据起始位以后为接收到的图像数据,报头依次为:6 Byte的目的地址、6 Byte的源地址、2 Byte的IP报文、4位IP版本号、4位IP头长度(20 Byte)、1 Byte的DS码、2 Byte的IP报长、报文标识2 Byte、标志位3位、分片偏移量13位、生存时间1 Byte、CRC校验和2 Byte、源IP地址6 Byte、目的 IP地址6 Byte、源端口号2 Byte、目的端口号2 Byte、校验和2 Byte。发送的数据报为1 282 Byte加UDP报头8 Byte共1 290 Byte,与UDP报长(05 0a)1 290 Byte相等。UDP报长加上IP头长度(04)为1 310 Byte,与IP报长(05 1e)相等,证明了发送数据得到了正确的接收,从而证明了底层驱动程序的正确性。上位机数据报接收示意图如图8所示。
图8 上位机数据报接收示意图
4.3 系统性能指标
系统的工作时钟为50 MHz,CCD相机在中级配置模式下输出整个12 580 000有效像素点,帧频为25 fit·s-1。支持GMII/MII接口方式的网络传输。上位机接收到的全景图像如图9所示。
5 结束语
给出了全景图像的采集与网络传输的一种设计和实现方法,只用一台摄像机即可完成全景图像的采集。与其它图像采集接口相比,Camera Link接口具有传输速率高、高带宽、抗干扰、开放性好、不需要复杂的通信协议、结构简单易于实现等诸多优点,它可以满足图像的实时采集和传输要求。同时图像数据可以通过千兆以太网接口远程传输,提高了数据的传输速率与可靠性。下一步的研究工作是实现系统对网络数据的接收功能并通过VGA接口显示。
图9 上位机接收全景图像
[1]迟航.基于Camera Link接口的图像采集系统[J].科技创新导报,2011(3):31.
[2]罗辉舞,洪海丽,基于Camera Link接口的图像采集控制器的设计与实现[J].电子测量技术,2010,33(7):23-26.
[3]National Semiconductor.Specifications of the Camera Link Interface Standard for Digital Cameras and Frame Grabbers[M].American:National Semiconductor,2000.
[4]Marvel1.88E1111 data sheet integrated 10/100/1000 ultra gigabit ethernet transceiver[M].American:Marvell,2004.
[5]朱晴,吴宁,顾薛平.基于 FPGA的千兆网络数据采集系统设计与实现[J].微型机与应用,2011,30(21):53-55.
[6]郭晓宇.基于IEEE802.3标准的以太网数据帧格式的封装实现[D].北京:北京交通大学,2008.