王明昌,徐子鹏
(1.中国空空导弹研究院,河南 洛阳 471009; 2.火箭军驻郑州地区军事代表室,郑州 450000)
红外图像高速实时存储系统设计
王明昌1,徐子鹏2
(1.中国空空导弹研究院,河南 洛阳471009; 2.火箭军驻郑州地区军事代表室,郑州450000)
针对红外图像具有分辨率低、帧频高的特点,以及目标特性分析和图像处理算法验证需要完整、无损记录图像数据的要求,提出了一种高速数字图像传输记录系统方案;方案采用HOTLinkⅡ+FPGA+PCI的体系结构,数据通过同轴线从红外图像设备传输到图像记录设备的CYP15G0101芯片,实现了远距离的点到点可靠传输和解码;FPGA和PCI接口芯片对图像数据进行接收和缓冲,工控机软件通过调用PCI SDK提供的API函数实现对PCI接口芯片的初始化、控制和数据传输等操作,从而将图像数据按照预定的格式连续地写入物理上连续的硬盘存储空间,最终实现数据记录、回放和分析等功能;该方案已经成功应用于某型红外图像记录设备并经过长时间测试,记录时间、漏记率等指标和回放等功能均满足研制要求。
红外图像;高速数据记录;PCI总线
当前,红外成像技术已在军事、公安等领域取得广泛应用,需要完整、无损地记录图像信息以便于开展目标特性分析和图像处理算法验证等工作[1]。红外图像具有低分辨率(一般为128×128,256×256、320×240和320×256等)、高帧频(50 Hz、100 Hz或更高)的特点,通用图像采集设备无法满足要求,需要研制专用的图像记录设备以满足科研要求。
1.1图像数据速率分析
双波段图像按照尺寸128×128×2,每像素占用2字节,帧频100 Hz计算,传输速率为128×128×2×2×100=6.25 Mbyte/s。
单波段图像,按照尺寸128×128,每像素占用2字节,帧频150 Hz计算,传输速率为128×128×2×150=4.687 5 Mbyte/s;按照尺寸320×256,每像素占用2字节,帧频50 Hz计算,传输速率为320×256×2×50= 7.812 5 Mbyte/s。
1.2总体方案设计
系统需要实时接收并存储由图像设备产生的数据,能够现场观测和事后回放,为图像分析提供技术支持。
实际应用中,红外图像的传输距离要求一般在十几米到几十米的范围,必须选择合适的传输接口。目前数据传输常用接口[2]为:RS422,最为成熟,具有较好的通用性,满足传输距离的要求,但传输速率受限;USB、IEEE1394和LVDS接口的传输速率可以满足要求,连接简单,但是传输距离无法满足要求。HOTLinkⅡ接口也是一种串行的差分传输技术,距离和速度都可以满足要求,同时底层的传输协议已集成到芯片内部,设计简单[3]。因此,系统选择HOTLinkⅡ作为数据传输途径。
对于PCI总线和硬盘而言,要求数据传输速率和记录速率高于7.812 5 Mbyte/s,采用缓冲区的记录设备可以满足记录速率要求。
系统主要组成如图1所示。
图1 系统功能模块框图
图像输入与信息缓存模块完成图像的接收和缓冲。高速串行数据通过HotlinkⅡ接口传输到接收模块,首先进行双字节拼接,然后按照时序写入图像缓冲区。图像缓冲区为双端口双缓冲区,已经写满的缓冲区在PCI总线端口按照时序读出,通过PCI总线传输给工控机。系统控制软件提供图像记录操作指令、记录设备和通道的选择、图像模式选择、设备控制和人工界面等功能。
2.1HotlinkⅡ链路设计
HOTLink是Cypress公司提出的点对点串行通信协议,并有底层物理器件支持,可使用同轴线和光纤等进行传输[4-5]。芯片自带编/解码、时钟恢复和串并转换功能,能将收到的串行数据以8位字节并行输出并同时输出接收时钟。根据传输距离不同可以选择不同的传输介质,短距离(几十米)时采用同轴线,远距离时可以采用光纤传输,传输速度为195~1 540 Mbps。
本系统是点对点的通信方式,所以采用CYP15G0101DXB芯片,它集收发于一体,单通道,驱动电压为3.3 V,连接方式如图2所示。
图2 HotlinkII连接方式
图3 接收链路逻辑框图
系统主要接收来自图像设备的数据信息,只使用接收通道。芯片接收链路的主要功能模块包括信号检测器、时钟/数据恢复器、数据重建器、BIST解码器、接收缓冲器和输出寄存器等,逻辑如图3所示。接收器有两路差分PECL信号( IN1±,IN2±) 输入,可由INSEL选其一;时钟/数据恢复器是由内部锁相环来保持与接收到的位流(bit stream) 频率一致,并从接收到的串行数据流中恢复数据;数据重建器用来在接收到的位流中检测同步码( K28.5等);BIST解码器对接收到的发送特征码进行解码并填充到数据中,将接收到的特征码同产生的BIST模式进行比较已允许高速链路进行测试,在解码后的字符上叠加奇校验;接收缓冲器的深度为10位,用来支持倍频时钟模式。
红外图像设备的发送端,传输速率设计为200 MBaud,模拟输出为PECL差分输出,REFCLK为20 MHz,具体配置情况见表1。
表1 发送端工作模式设置
设备作为图像数据的接收端,HOTLINK电路的配置必须与红外图像设备发送端的配置相匹配,配置情况见表2,数据读入的时序见图4。
表2 接收端工作模式设置
为了抑制共模干扰,数据信号在进入芯片的接收端之前,需要使用变压器进行隔离,选用PULSE公司的T-1485SCT。
2.2图像数据缓冲模块设计
图像数据缓冲模块硬件结构如图5所示,由数字处理部分和数字存储部分组成:FPGA完成时序控制信号的生成、数据格式的转换、和缓存数据的写入;双口RAM完成图像数据的缓存;PCI接口芯片完成与计算机PCI总线的数据交换[6]。
图4 数据读入时序图
图5 图像数据缓存模块结构框图
传输模块以16位的形式将数据从前端模块传输到FPGA,考虑到PCI总线传输宽度为32位,为了充分利用PCI总线宽度,将两块双口RAM并接,使缓存与接口芯片之间以32位进行数据传输,缓存结果如图6所示。
图6 缓存结果示意图
两个缓存共用与接口芯片相连接的16位地址线,双口RAM1的数据线接PCI总线的前16位数据线,双口RAM2的数据线接PCI 总线的后16位数据线。通过上述连接,每次接口芯片可以同时从两块缓存的相同位置读取数据。
PCI接口芯片选用PLX9056,属于32-bit,66 MHz的PCI总线控制芯片,其局部总线和PCI总线数据传输速率最高可以达到264 MBps[7]。
PLX9056芯片的信号[8]包括:时钟CLK33M、中断INTA#、握手信号和32位地址数据总线。INTA#是双向信号,主机CPU可以由此得到局部总线发送过来的中断信号,也可以由此向局部总线发送中断信号。
由于接收的数据量大、速率高,因此选择DMA和中断相结合的方法传输数据,应用程序控制PCI总线,发送命令和数据,系统开始工作时,主机发送控制命令通知数据缓冲模块开始工作。FPGA接收图像数据并缓存到双口RAM,FPGA通过检测每个字节的最高位来判断一帧图像的开始并判断一帧数据缓存完毕后,向PCI9056发送中断,PCI9056将中断送到总线上,应用程序收到中断后,通过DMA方式接收PCI9056送来的数据并做相应的处理。
2.3软件设计
软件采用VC++进行开发,主要功能为:图像数据及其相关信息用数据库进行管理,设置一定的管理方法和管理权限,实现默认目录存储和用户选择目录存储两种方式,存储的图像可连续回放和单帧回放,最低连续记录时间为1小时。
软件主要由以下模块组成:winmain(系统主函数)、SceneMainWinProc(窗口消息处理函数)、MainBitmapDispProc(主窗口图像显示函数)、SceneOutputControlDlgProc(接收设置对话框的处理函数)、MainProcess(接收图像进程)、WritefileandToScreenProcess(图像记录进程)、EndReceiverthread(结束图像传输进程)和DataDisposal_simple(接收缓存区图像数据函数),软件流程如图7所示。
图7 软件流程图
程序运行后,由主函数注册屏幕背景图象窗口和程序主窗口,建立主窗口,然后循环等待消息,将收到的消息进行翻译后转换成对应的命令发送到消息处理函数。窗口消息处理函数对主函数发送的命令进行处理,主要包括3个方面:主窗口的初始化处理,主窗口的绘制、主窗口的消除和对窗口发送的命令如设备检查、开始接收图像和停止接收图像的处理。主窗口图像显示程序申请显示所需要的缓存空间,设置显示参数。接收设置对话框用于由用户设置接收的图像参数和存储位置,它由两方面组成,一是该窗口的初始化,二是处理该窗口的命令,用户根据需要完成接收图像的设置。
2.3.1PCI程序设计
程序要对PCI9056进行打开或复位、发出控制命令和完成数据传输等操作[9-10],这是通过调用PCI SDK提供的API函数来实现的,主要用到的API函数为:PlxPciDeviceOpen、PlxPciBoardReset、PlxRegisterRead、PlxRegisterWrite、PlxDmaSglChannelOpen、PlxIntrAttach、PlxDmaSglTransfer。
1)设备打开和复位:PlxPciDeviceOpen用来打开一个PCI芯片,首先根据DEVICE_LOCATION参数提供的信息定位要操作的芯片,打开该芯片并返回一个句柄,该句柄用于以后调用的API。PlxPciBoardReset用来复位一个PCI芯片。
2)设备寄存器读写操作:PlxRegisterRead用于对某一偏移量的内部寄存器进行读操作;PlxRegisterWrite用于对芯片中某一偏移量的内部寄存器进行写操作。需要进行读、写操作的内部寄存器包括中断控制/状态寄存器(INTCSR),其PCI总线一侧的地址偏移量为0x68,使用到的各位为:第8位(PCI Interrupt Enable),使能中断;第11位(Local Interrupt Input Enable),使能本地中断输入,和中断使能位关联使用,将该位置1将使能本地中断输入并产生一个PCI中断;第18位(Local DMA Channel 0 Interrupt Enable),本地DMA通道0中断使能位,它和本地中断使能关联使用。
3)中断和相应事件注册操作:PlxIntrAttach用于应用程序需要等待一个特定的中断发生时使用。该函数对所希望的中断源和事件进行注册,当中断产生时,该函数将激活相应的事件。
4)DMA通道操作:PlxDmaSglChannelOpen用于打开并初始化一个用于Scatter-Gather模式的DMA传输通道。函数的参数为设备句柄、要打开的DMA通道和DMA通道的相关设置,其中DMA通道的相关设置包括:EnableReadyInput,使能READY信号输入;DmaStopTransferMode,DMA停止传送模式;DmaChannelPriority,DMA通道的优先级;IopBusWidth,DMA通道使用的总线宽度;EnableBTERMInput,允许BTERM信号输入。
接收图像时,通过PlxPciDeviceOpen函数打开PCI9056;然后调用PlxDmaSglChannelOpen函数设定需要使用的DMA通道的参数并打开该通道;调用PlxIntrAttach注册中断源和相应的事件;最后循环调用WaitForSingleObject函数等待在PlxIntrAttach中注册的事件,根据该函数的返回值来判断中断是否产生,如果返回值为WAIT_OBJECT_0,表示所等待的中断已经产生,开始接收图像数据。
2.3.2图像记录程序
图像记录程序首先生成一个文件名,然后调用WaitForSingleObject函数,无限期的等待ScreenOutReadyTaskEvent事件被激活,该事件由接收图像程序在完成将图像数据通过DMA传送到缓冲区后激活;调用ResetEvent函数重置ScreenOutReadyTaskEvent事件;将接收到的数据按照顺序存储在文件之中。
常用操作系统以文件的方式存储数据,存储前并不知道文件的确切长度,只能动态分配空间,需要耗费一定的时间,而且可能导致数据的物理存储空间不连续,磁头需要反复寻道,从而降低存储速度。在该系统中,数据流是连续、实时的。如果仍然采用文件存储方式,为了不丢失数据,将需要很大的缓存器,记录速度也会降低。因此,系统采用记录方式来管理数据,即指定硬盘的前64个扇区为目录区。每次采集使用目录区里的一条记录来标识,记录的长度为64个字节。每条记录的采集号为盘上已有的记录数;起始扇区为未记录区的起始扇区,采集号从1开始,数据记录区从100扇区开始。
采用记录方式存储数据后,操作系统不能正常访问该硬盘,需要编写相应的系统管理程序来完成诸如添加记录、删除记录、显示记录、初始化硬盘等功能。添加记录时,根据用户的请求为新的记录一次性分配记录空间并填写目录区,然后启动采集过程。采集过程中,系统通过调用相应的数据存贮程序,将数据连续不断地写到物理上连续的存储空间上。
本文设计的红外图像数据远程传输和记录系统通过了各种的测试。
3.1数据记录测试
红外图像设备可能生成的图像数据格式包括:双波段图像,128×128×2,100 Hz;单波段图像,128×128、150 Hz,256×256、50 Hz,320×240、50 Hz,320×256、50 Hz。
针对以上每种格式进行测试,同轴电缆长度为20 m,记录时间为1小时。为了便于分析漏记率,红外成像系统端每帧发送的数据为累加数,例如320×256的图像格式,发送的数据为0~16383~0~16383~0~16383~0~16383~0~16383。完成记录后,从记录的文件中读取相应的数据并进行判断,结果表明数据漏记率小于10-4,满足使用要求。
3.2图像回放测试
设备能够对记录的图像数据按照要求进行顺序播放或者单帧回放,并按照要求显示原始的图像或者经过图像灰度拉伸算法处理后的数据已便于观测,如图8所示。
图8 图像回放功能测试
本系统是针对各种格式的红外图像而专门设计的数据采集系统,是对该类图像进行分析和研究的重要基础设备。目前系统已经研制成功并投入使用了一定时间,操作简单,功能丰富,工作稳定可靠,达到了设计目的。
[1] 郭旭敏,李艳宁,等.红外成像导引头信号调理卡的设计[J]. 计算机工程与应用,2012,31(7):80-83.
[2] 毛伟, 隋修宝, 陈钱,等.基于FPGA和ARM的红外图像实时显示和采集方法[J].激光与红外,2013,43(11):1223-1228.
[3] 王瑞,张彦军,孔陈杰.高速信号的长线传输[J]. 仪表技术与传感器,2010,6:51-53.
[4] 向冰. 高速图像串行总线传输[J].现代电子技术, 2006,24: 97-98.
[5] 闫景富,李淑秋,张震.HOTLINK串行信号的一种长线传输电路设计[J].微计算机信息, 2007, 23 (8):273-275.
[6] 刘玮,崔永俊. 基于PCI和RS-422的隔离多路信号源与上位机通信的设计与实现[J].计算机测量与控制,2015,23(2):614-616.
[7] 许永辉,孙闯,李世斌.基于PCI总线的图像目标模拟器设计与实现[J].现代电子技术, 2014,37(24):105-107.
[8] 张晓愚.基于CPCI总线的雷达数据采集与控制系统显控软件设计[J].计算机测量与控制, 2015,23(5):1802-1805.
[9] 杨红兵,佘明洪,张宇,等.基于PCI总线的矩阵电路在压变温压补偿系统中的实现与应用[J].计算机测量与控制, 2015,23(7):2570-2573.
[10] 郑云飞,张登福,王占领.基于PCI的ARINC429总线测试软件设计[J].计算机测量与控制,2014,22(10):3442-3444.
Infrared Image High-speed and Real-time Recording System Design
Wang Mingchang1,Xu Zipeng2
(1.China Airborne Missile Academy, Luoyang471009, China; 2.Zhengzhou Military Representative Office of Rocket Force, Zhengzhou450000, China)
Infrared image has the characteristics of low resolution and high frame rate. Target infrared features analysis and image processing algorithms need to lossless image data recording. To achieve these requirements, a design approach for the high-speed digital image transmission and recording system is presented. The approach adopts an overall structure of HOTLinkⅡ+ FPGA + PCI. Data is transferred from the infrared image device to the CYP15G0101 chip of the recording device through coaxial cable and a reliable point-to-point remote transmission is achieved. FPGA and PCI interface chip are used to realize data receiving and buffering. Software achieves facilities such as initialization, control and data transmission of the PCI chip by calling SDK API functions. Image data is continuously written into the hard disk, according to the predetermined format. Finally, functions such as data recording, playback and analysis are realized. The approach has been successfully applied to an infrared image recording device. After a long time test, recording time, omission rate and playback functions all meet the design requirements.
Infrared image; high-speed data recording; PCI
1671-4598(2016)04-0268-04DOI:10.16526/j.cnki.11-4762/tp.2016.04.077
TN919.3
A
2016-01-22;
2016-02-23。
王明昌(1977-),男,河南洛阳人,硕士,高级工程师,主要从事红外成像技术方向的研究。
徐子鹏(1984-),男,河北保定人,硕士,工程师,主要从事信息处理技术方向的研究。