文献标识码:A
文章编号: 0258-7998(2014)08-0007-03
红外成像跟踪系统通过红外探测器获得目标的红外图像,然后对红外图像进行预处理和潜在目标检测,最后利用一定的算法对目标进行跟踪。在实际系统设计中,一块电路板往往难以完成所有功能,电路板与电路板之间需要进行高速图像传输和通信,因此设计一个传输速率快、可靠性高的图像传输与通信平台是红外成像跟踪系统的关键技术[1]。
由于并行总线在印制电路板上占空间量大,布线时很难保证每条线路长度、电气特征一致,两条数据线间容易产生串扰等,因此随着电子系统对速度以及精度要求的提高,高速串行数据通信模式正在逐步取代传统的并行总线式结构[2]。
串行传输的迅速发展得力于差分信号技术的发展。在嵌入式应用方面,主流的FPGA中都已对差分信号提供了硬件支持,如Xilinx公司的Virtex系列FPGA中,相邻的两个I/O口都以差分信号对形式出现。从Virtex2 Pro系列开始,更是在片上集成了固化的Rocket I/O模块,以提供超高速的串行通信支持[3]。并且Xilinx公司针对高速传输开发了一种可裁剪的轻量级链路层协议——Aurora协议,可以在相应的器件上通过制定IP核生成[3]。
本文在基于Aurora IP核的基础上构建了一个图像高速传输和通信平台,其总体设计框架如图1所示。
图1 高速图像传输与通信平台框架
探测器处理板与信号处理板在基于Aurora协议的基础上通过光纤进行图像传输和通信。
1 高速图像传输和通信平台设计
1.1 硬件平台搭建
搭建高速图像传输和通信平台需要两块处理板,每块处理板均需包含一片FPGA和一个光纤模块。光纤模块采用了中航光电的单光纤双向收发一体光模块OEA01-Dxx-326-613-01Y;FPGA采用了Xilinx公司的Virtex-5系列的XC5VLX50T-FF665,并采用100 MHz的时钟模块对Rocket I/O模块提供参考时钟,用一个XCF32P的PROM以主串模式对FPGA进行配置[4-5];两个光纤头之间通过光纤相连。硬件平台如图2所示。
图2 硬件平台框图
1.2 Aurora IP核的定制及生成
在Xilinx提供的CORE Generator工具中生成Aurora IP核[6]。其中通道数目设置为1,通道的宽度设置为2 B,数据速率为1.25 Gb/s,参考时钟为100 MHz;为了使两个处理板可以同时进行数据收发,数据流模式采用双工模式;由于本红外系统传输的红外图像数据以帧为单位,传输过程中需要完整的帧有效信号,故数据接口采取帧模式;因为所设计平台需要完成通信,需要用户添加流控制信息,所以流控制模式采用UFC模式。
定制完成后,生成Aurora IP核,所生成的IP核主要包括以下功能模块:
(1)用户接口模块(User Interface):用于提供用户接口,处理来自用户接口的控制信息。该模块负责与Aurora核8 B/10 B模块的接口,负责来自8 B/10 B编解码模块的数据读写。数据端口的宽度取决于GTP/GTX的收发器的个数和宽度。
(2)用户流控制模块(User Flow Control Interface):帧模式下可选的一种流控制模式,该模块可以在正常传输的数据流中添加控制信息,进一步提高传输效率。本文中用作两块处理板通信的方式。
(3)时钟模块(Clock Interface):包括时钟生成模块和时钟接口模块,用于生成整个系统所需的时钟。该模块主要由PLL(时钟延迟锁相环)和BUFG(全局时钟缓冲器)构成。PLL和BUFG构成时钟产生模块,生成GTP收发器内所需的各种时钟。
(4)时钟补偿模块(Clock Compensation Interface):该模块内嵌于数据传输模块中,对整个Aurora模块提供时钟补偿。由于信道两端设备的参考时钟必然存在或多或少的差异,时钟相位偏差不可避免,为了保证接收端能正确地恢复数据,时钟补偿模块必不可少。接收端根据接收数据流内嵌的时钟补偿信息对自身参考时钟进行修正,以降低误码。
(5)GTP/GTX接口模块(Transceiver Interface):吉比特收发器模块,用于控制数据的收发。该模块为Aurora协议中与物理层接口模块,是Aurora模块中最重要的模块之一[7]。不过ISE软件生成Aurora 例程之后,该接口模块自动生成,普通的使用中几乎不需要修改该模块。
在生成Aurora IP核后,必须对Aurora IP核进行正确配置才能正常使用,Xilinx的CORE Generator工具在生成一个Aurora IP核的同时还会生成一个示例工程,工程中包含了一些与Aurora IP核各功能模块相对应的配置模块,包括时钟配置模块(clock_module)、时钟补偿配置模块(standardard_cc_module)、复位配置模块(reset_logic)、帧发送配置模块(frame_gen)、帧接收配置模块(frame_check)。示例工程可以直接使用,但是需要进行修改才可以完成自己所需要的功能,一般需要修改工程中的帧发送配置模块、帧接收配置模块和时钟补偿配置模块。
1.3 图像发送接收配置及UFC通信设置
红外探测器接收到的图像为640×512个像素,在Aurora的帧传输模式下,每帧图像中的一行有640个字,用512帧可将图像传输完毕。与此相对应,图像接收模块处于一直等待接收模式下,每次接收一帧,即为图像对应的一行。
通过配置用户流控制模块来进行两个处理板之间的指令传输,发送UFC信息无需等待一帧数据发送完毕,可以先发送请求,请求被许可之后就可以立即发送。UFC信息最多可以一次发送8个字,即16 B的数据。对这8个字进行定义,用来进行通信,格式定义如表1所示。
按照上述要求修改发送配置模块、帧接收配置模块,实现图像发送和接收。ISE 生成的例程中的时钟补偿配置模块由定时器产生DO_CC 信号,GTP 收发器模块根据DO_CC 信号的有效长度来产生时钟补偿序列。如果直接使用会导致TX_DST_RDY_N信号不定期地无效,从而会引起在帧模式传输时不定期中断,从而导致传输效率的下降。在实际应用中,以每帧640个字的方式进行传输。为了解决不定期中断这一问题,重新设计了DO_CC 模块。采用方式如下:
(1)对时钟周期USER_CLK进行计数,计数到5 000时做一个长度为10个时钟周期的DO_CC,并将计数清零。
(2)当需要发送图像时,在每次发送一帧640个字之前做一个10个时钟周期的DO_CC,并将计数清零;
(3)当需要发送一个UFC通信时,在发送之前做一个10个时钟周期的DO_CC,并将计数清零。
2 实验验证
为了验证所设计的通信平台,设计了一个实验验证方案,方案如下:
(1)探测器处理板将接收到的热红外图像发送到信号处理板,图像大小为513×640,以Aurora的帧模式,一帧发送一行,前512行为图像数据。第513行为附加信息,513行的前两个字为固定字符,用来作为图像起始信号。在信号处理板上设置检验逻辑,根据在513行中设置的图像起始信号,计算两个图像起始信号之间的帧起始信号rx_sof_n_i的个数,如果个数始终为513,则证明没有丢行。同理,计算帧起始rx_sof_n_i和帧结束信号rx_eof_n_i之间的USER_CLK的个数,如果个数始终为640,则证明没有丢字。
(2)探测器处理板以UFC方式发送数据包,重复发送一万次,在探测器处理板上将每次接收到的数据与发送数据进行比对,如果完全相同则计数器加1,如果计数值能够达到10 000,则证明UFC通信没有出错。
实验结果表明,在传输图像时,没有出现丢行和丢字的现象;在发送10 000个UFC数据包时,正确率为100%。图3和图4是分别是通过ChipScope[8]抓取的图像传输信号和UFC传输信号。
图3 图像传输信号
图4 UFC传输信号
本文在基于Aurora IP核的基础上构建了一个图像高速传输和通信平台,使得两块处理板之间的图像传输和通信可以通过一根光纤实现,大大简化了系统。通过实验验证,所构建的图像高速传输和通信平台工作性能稳定,其中图像没有出现丢行和丢字现象,基于UFC模式传输的通信连续发送10 000个数据包时没有出现一个错误。目前所设计的图像高速传输和通信平台已应用于红外成像跟踪系统、雷达信号处理等场合。
参考文献
[1] 张琳琳,张涌.Aurora协议在红外告警系统中的应用[J].科学技术与工程,2012,12(21):5308-5311.
[2] 陈长林,邱兆坤.RocketIO及其在高速数据传输中的应用[J].单片机与嵌入式系统应用.2010(11):25-28.
[3] Xilinx Inc..RocketIOTM transceiver user guide UG024 (v3.0)
[EB/OL].(2007-02-22)[2014-04-28].http://www.xilinx.com.
[4] Xilinx Inc..Virtex-5 FPGA data sheet:DC and switching characteristics DS202(v5.3)[EB/OL](2010-05-05)[2014-04-28].http://www.xilinx.com.
[5] 岳振,顾海峰,李范鸣.基于Verilog HDL的一种绝对值编码器实时读出算法[J].微型机与应用,2013,32(3):29-31.
[6] Xilinx Inc..LogiCORETM IP Aurora 8B/10B v6.1 user guideug766[EB/OL].(2010-09-21)[2014-04-28].http://www.xilinx.com.
[7] Xilinx Inc..Aurora 8B/10B protocol specification SP002 (v2.2)[EB/OL].(2010-04-19)[2014-04-28].http://www.xilinx.com.
[8] Xilinx Inc..ChipScope Pro Tutorial:using an IBERT core with ChipScope Pro Analyzer UG811(v13.1)[EB/OL].(2011-04-01)[2014-04-28].http://www.xilinx.com.
(收稿日期:2014-05-01)
作者简介:
岳振,男,1988年生,博士研究生,主要研究方向:红外图像处理及FPGA开发等。
李范鸣,男,1969年生,研究员,博士生导师,主要研究方向:红外光电系统工程及信息与图像处理技术。