1、基于 PCIe2.0 的 Camera Link 接口相机模拟系统设计 兰功盾 赵占锋 魏高峰 周志权 哈尔滨工业大学(威海)信息与电气工程学院 威海广播电视台 摘 要: 目前, 为了进行空间科学实验, 多种卫星搭载航天 CCD 相机以便获取图像数据;而在地面对星载图像处理系统的工业检测需要大的分辨率及更高灵敏度的 CCD工业相机;Camera Link 格式的视频信号接口具有传输速率快、电子噪声干扰小等优点, 广泛的应用于航天 CCD 相机中;由于 CCD 工业相机的价格高昂、输出不够灵活等限制原因, 需要设计一款基于 PCIe2.0 的 Camera Link 接口相机模拟系统, 代替航天
2、 CCD 相机, 作为星载图像处理系统检的检测时的信号源;该相机模拟系统以 FPGA 为核心, 由 DDR3 存储器、Camera Link 驱动芯片、PCIe 接口等组成, 实现输出分辨率高达 8 0006 000 的多种分辨率的图像数据, 可以灵活的输出测试所需的特定图像, 为星载图像处理系统检的检测提供稳定灵活的图像数据, 以满足对星载图像处理系统检测测试的需求。关键词: Camera Link 接口; PCIe2.0; 航天 CCD 相机; FPGA; 作者简介:兰功盾 (1993-) , 男, 辽宁大连人, 硕士研究生, 主要从事信号处理理论与技术方向的研究。作者简介:赵占锋 (19
3、80-) , 男, 博士, 副教授, 主要从事信号处理理论与技术方向的研究。作者简介:周志权 (1973-) , 男, 博士, 教授, 主要从事信号处理理论与技术方向的研究。作者简介:魏高峰 (1967-) , 男, 主要从事信号处理理论与技术方向的研究。收稿日期:2017-04-24Design of Camera Simulation System Based on PCIe2.0 Camera Link InterfaceLan Gongdun Zhao Zhanfeng Wei Gaofeng Zhou Zhiquan School of Information and Electri
4、cal Engineering, Harbin Institute of Technology (Weihai) ; Weihai Radio and Television Station; Abstract: Currently, a variety of satellites equipped with aerospace CCD cameras to acquire image data.The industrial detection of aerospace image processing system requires the CCD industrial camera with
5、 large resolution and higher sensitivity.The video signal interface on camera link is widely used in aerospace CCD camera because of the advantages of high transmission speed and low electronic noise interference.Because of the high price of aerospace CCD industrial camera, and the inflexible output
6、, a camera link interface camera simulation system based on PCIe2.0 is designed to replace the aerospace CCD industrial camera, as the signal source on the detection of aerospace image processing system.The camera simulation system is composed of the FPGA, DDR3 memory, Camera Link driver chip, PCIe
7、interface and other components, and FPGA is the core.The camera simulation system can realize that the output image resolution is up to 80006000, and output specific images required by the industrial detection.Therefore, the camera simulation system can provide stable and flexible high resolution im
8、age data to meet the demand by industrial detection of aerospace image processing system.Keyword: Camera Link interface; PCIe 2.0; aerospace CCD cameras; FPGA; Received: 2017-04-240 引言随着我国空间技术的发展, 进行了大量的空间科学实验, 其中图像数据是空间科学实验的一个重要部分。目前技术成熟、应用广泛的 CCD 图像传感器则是获得图像数据的主要手段1。在空间科学实验中, 需要对 CCD 图像传感器得到的图像进行图
9、像采集、处理。而为了对星载图像采集处理系统进行测试评估, 需要 CCD 图像传感器对星载图像采集处理系统输出特定的图像, 以便进行功能的检测及图像处理能力的测试。随着星载图像采集处理系统的不断发展, 对星载图像采集处理系统的检测则要求的图像内容越来越丰富灵活, 数据量越来越大2。但是, CCD 图像传感器的价格昂贵, 在测试的过程中易损坏, 造成高昂的成本, 且难以做到灵活的输出某些特定的图像数据, 实现不同分辨率及帧频的图像输出。因此, 在对图像处理器的测试过程中, 设计一款相机模拟系统来代替 CCD 图像传感器则变得尤为重要。目前市面上的相机模拟系统较为常见, 且种类繁多功能强大各具优势,
10、 但是普遍使用标准格式的视频信号接口, 在高分辨率, 大数据量的图像数据输出时, 此类接口的视频信号发生器则在传输速度上无法满足。在高分辨率, 大数据量的图像数据输出时, 此类接口的视频信号发生器则在传输速度上无法满足实际的需求。非标准格式的视频信号接口 Camera Link 技术有很多的优点, 算是目前图像传输速率最快的一种接口, 同时, 它使用低压摆幅差分电流模式驱动, 降低了电子噪声干扰, 因此在航天上有很广泛的应用。因此, 本文设计了一款基于 PCIE-Camera Link 的相机模拟系统可以弥补上述的不足, 在实际的工程应用中就要重要的意义。本文设计一款基于 PCIe2.0 的
11、Camera Link 接口相机模拟系统, 代替 CCD 图像传感器, 实现向图像处理系统输出大数据量的图像数据, 完成对图像处理系统的检测测试, 可以灵活的输出测试所需的特定图像, 实现不同分辨率以及帧频的图像输出, 并且可以减小 CCD 图像传感器易损坏的高成本的风险, 具有广阔的应用前景。1 硬件总体设计本文设计一款基于 PCIe2.0 的 Camera Link 接口相机模拟系统, 实现上位机通过 PCIE2.0, 将产生或接收的标准视频图像数据下传给模拟系统, 模拟源系统将图像数据以 Camera Link 标准的低压查分信号 (LVDS) 输出, 以达到模拟Camera Link
12、接口工业相机的目的。上位机通过 RS422 与模拟系统进行通信, 对其发送起始指令以及控制模拟系统实现 Base、Medium、Full 三种不同的模式配置, 以及不同分辨率及帧频的视频图像信号输出, 同时, 信号模拟系统也通过 RS422 向上位机反馈其工作模式及状态。该相机模拟系统由 FPGA、DDR3 存储器、Camera Link 驱动芯片组成。FPGA 是整个系统的核心, 所有的接口都是由它控制的, 完成整个系统不同工作模式的配置与数据高速存储、传输。系统基本框图如图 1 所示。图 1 相机模拟系统基本框图 下载原图课题设计的模拟源系统需要满足以下的功能需求:(1) 用户可以通过 P
13、CIe 接口向模拟源系统灵活的导入图像, 以实现输出所需的特定图像;(2) 模拟源系统可是保证高分辨图像输出的实时性;(3) 模拟源系统可以实现高分辨的的图像数据输出, 最高分辨率可达到80006000, 帧频为 12.5Hz;(4) 模拟源系统可以实现 Base、Medium、Full 三种不同配置模式的 Camera Link 格式输出。1.1 Camera Link 接口模块本次设计的相机模拟系统采用 Camera Link 驱动芯片以实现 Camera Link 格式的图像数据输出。并且, 针对相机模拟系统的功能需求, 在对星载图像采集处理单元进行地面检测时, 相机模拟系统需要可以实现
14、 Base、Medium、Full 三种不同配置模式的 Camera Link 格式的视频信号输出。其中, 每个 Camera Link驱动芯片中包含 3 个端口。Camera Link 格式图像输出时, 采用标准的 MDR26连接器。3 种不同 Camera Link 配置模式所需要的驱动芯片个数及连接器个数如表 1 所示。表 1 3 种配置模式的端口分配 下载原表 Camera link 是一个工业高速串行数据的连接协议, Camera Link 收发转换芯片是由 National Semiconductor 公司制造的 28 位 Camera Link 芯片组来完成。目前, 用于 Cam
15、era Link 模式图像输出的主流驱动芯片始终速度有 75 MHz 和85MHz, 则两种驱动芯片不同模式下的输出速率如表 2 所示。表 2 不同时钟速度的输出速率 下载原表 视频图像信号模拟源系统的功能需求中提出, 实现最大分辨率达到 8 0006 000, 帧频为 12.5 Hz 的 Camera Link 格式图像数据输出。此时 Camera Link 接口图像数据输出速率达到 4 800 Mbps, 因此需要采用 85 MHz 的 Camera Link驱动芯片, 并以 Full 模式工作。综上所述, Camera Link 视频信号输出板将采用三片 85MHz 的 Camera L
16、ink 驱动芯片 DS90CR287 以及两个 MDR26 连接器实现Camera Link 格式图像数据输出, 以满足模拟源系统的功能需求。DS90CR287 芯片的电路如图 2 所示。图 2 DS90CR287 芯片电路 下载原图Camera Link 接口标准的数字相机中, 分别有一个相机到采集设备和采集设备到相机的串行通信信号:SerTFG 和 SerTC, 以及 4 组低压差分的相机控制信号CCl-CC4。因此, 在本课题设计的相机系统中也加入这几个信号。为了保证较远距离通信情况下系统得可靠性, 这两个信号也是采用 LVDS 技术进行传输。因此同样需要串/并转化和电平转换。本文将分别
17、采用 DS90LV019 芯片及DS90LV032ATM 作为相机模拟系统和 FPGA 之间的转换芯片。其电路图分别如图3 及 4 所示。1.2 FPGA 主控模块Xilinx 公司的 Kintex-7 系列是一种新型 FPGA, 能以不到 Virtex-6 系列一半的价格实现与其相当性能, 性价比提高了一倍, 功耗降低了一半, 具备支持PCIE2.0、DDR3SDRAM 以及多全局时钟和丰富的布线资源等特点, 能较好满足模拟器设计过程中对资源的需求。因此, 本次设计选用 Xilinx 公司的 Kintex-7系列的 XC7K325T, 该 FPGA 支持具有 PCIE 硬核, 支持 PCIE
18、 2.0, 最高可达8个通道。图 5 为 Camera Link 接口芯片与 FPGA 的连接示意图。图 3 DS90LV019 芯片电路 下载原图图 4 DS90LV032ATM 芯片电路 下载原图图 5 FPGA 与协议芯片的连接示意图 下载原图1.3 PCIe 接口模块本设计中, 相机模拟系统采用通过 PCIe2.0 接口的方式, 接收上位机高速下传的图像数据。理论上, 采用 PCIe2.0 接口4 通道, 有效传输速率可达16Gbps。本次设计中, 相机模拟系统实际工作中 PCIe2.04 接口接收上位机下传数据时的传输速率可以达到接近 11Gbps, 要远大于 Camera Link
19、 接口 full模式工作时的最大传输速率。因此本设计中, 采用的 PCIe2.04 接口来接收图像数据, 可以满足 Camera Link 接口实时输出的速率要求。PCIE 协议由事务层、数据链路层和物理层组成。它的结构图如图 6 所示。其中事务层具有完整的协议, 处理不同的命令和事务层的处理需求;数据链路层负责连接事务层和物理层, 起到一个桥梁的作用, 解析事务层下发的数据包并将结构传给物理层。接收物理层的数据, 打包传给事务层;物理层传输逻辑控制数据从电气接口上完成数据传输。在本次设计中, 使用 Xilinx 公司 Kintex7 系列 FPGA 提供的 PCI-Express 的 IP核
20、完成 PCIE2.0 接口的数据下传功能。PCIE 核集成了 PCIE 的事务层、数据链路层、物理层和配置管理层。相当于将PCIE 桥接芯片集成到 FPGA 中, 用户只需要在开发 FPGA 程序时, 调出 PCIE 硬核, 做简单的设置, 在事务层上提交事务层 TLP 包的接收和发送, 就能完成PCIE 功能。硬核的结构图如图 7 所示。图 6 PCIE 协议结构 下载原图图 7 Kintex7 中核接口结构图 下载原图针对课题设计的相机模拟系统的功能需求, PCIe 接口需要高速的接收下传的图像数据, 传输速率需高于 5.3Gbps。因此, 在 PCIe 数据下传单元中采取 PCIe DM
21、A 的方式进行数据接收, 采用 DMA 方式的优点是可以不需要 CPU 的干预, 可以极大的发挥 PCIe 的数据传输速率。1.4 SDRAM 存储器模块相机模拟系统工作时, 需要通过 PCIe 接口接收上位机下传的大量图像数据, 同时以 Camera Link 格式输出图像数据, 由于 PCIe 接口与 Camera Link 接口的传输速率不同, 则会出现不同时钟域的数据传输问题。此外, Windows 不是实时操作系统, 在下传图像数据时, 无法对模拟源系统的发出的中断请求做及时的处理。为了解决这两个问题, 设计中在相机模拟系统中设计了一个数据缓存单元。模拟源系统的功能需求中指出, 需要
22、完成高分辨的视频图像信号输出, 因此数据缓存单元将会对大量的图像数据进行缓存处理, 仅使用 FPGA 的片上资源难以满足需求, 所以课题中采用 FIFO 加 DDR3 两级缓存的方式对下传至模拟源系统的大量图像数据进行缓存组织。设计中在相机模拟系统中设计一个缓冲区作为 DDR3 数据缓存单元, 该缓存单元由两片镁光公司生产的 MT41J256M16HA-107 型号 DDR3 存储芯片组成。每片DDR3 存储芯片具有 15 位地址线以及 16 位数据线, 容量达到 512 MB。由于模拟源系统内部的数据传输多为 32bit, 若采用 16bit 数据总线的 DDR3 存储芯片, 则在 FPGA
23、 软件设计中将会出现数据位拆分及合并问题, 增加了 FPGA 软件设计的难度。因此 DDR3 数据缓存单元的硬件设计中, 采用两片 DDR3 存储芯片作为一个缓冲区, 共用 15 位地址线, 数据线扩展为 32 位, 容量扩展至 1GB。MT41J256M16HA-107 型号 DDR3 存储芯片采用了 ODT 技术, 所以设计中芯片的DQ、DS、DM 信号不需要串入终端电阻, 其余的 A14:0、BA2:0、RAS#、CAS#、WE#、CS#信号均需要串接一个 22 欧姆的终端电阻上拉到 0.75V 的参考电压上。0.75V 的参考电源的电源芯片采用 TI 公司的 LDO 芯片TPS5120
24、0DRCT, 该芯片较为广泛的应用于 DDR3 的供电模块中。设计中, 在对 DDR3 进行数据读写操作时, 需要使用 Kintex7 系列 FPGA 中集成的存储器接口生成器 (MIG) , 以便设计 DDR3 的接口控制器。因此 DDR3 数据缓存单元的两片 DDR3 存储芯片需要接到 FPGA 中特别的 BANK 中。在对 DDR3SDRAM数据缓存模块的软件程序编写中, 由于采用了 Xilinx ISE 工具 CORE Generator 里的存储器接口产生器 MIG (Memory Interface Generator) , 用户只需在 FPGA 器件中通过用户接口 (User I
25、nterface) 提供相应的时序, 就可以对 DDR3 进行读写操作。DDR3SDRAM 存储器接口的解决方案逻辑框图如图 8 所示。图 8 K7FPGA 存储器接口的解决方案逻辑框图 下载原图在本次设计中, Camera Link 接口输出时, 视频信号的数据流要保持恒定的速率不间断输出, 因此系统实现中加入了一个内部缓存控制模块, 控制 DDR3 进行分时工作, 其工作的状态图如图 9 所示。图 9 DDR3 分时工作状态图 下载原图在内部缓存控制模块中加入两个 fifo 分别作写 fifo 与读 fifo, 在 Camera Link、接口输出数据时, 要判断读 fifo 中的数据是否
26、低于设定的阈值, 若不低于, 则继续将 fifo 中的数据读出, 发送到 Camera Link 接口模块, DDR3 保持空闲;若低于该阈值, 则 DDR3 进行读操作, 同时读 fifo 保持数据读出给Camera Link 接口模块。对于写 fifo 同样设定一个阈值, 判断写 fifo 中的数据是否多于设定的阈值, 若多于该阈值, 则 DDR3 进行写操作, 则将写 fifo 中的数据写入 DDR3, 否则 DDR3 保持空闲。并且 DDR3 的读命令优先级高于写命令。在课题中, 对相机模拟系统的 DDR3SDRAM 进行读写操作调试, 向 DDR3SDRAM 写入一段数据再读出, 不
27、断重复, 比较读出的数据是否正确。通过 Xilinx ISE 工具 Chip scope 进行波形抓取, 实际结果如图 10 所示。图 1 0 读写操作的实际时序图 下载原图2 上位机软件设计整个 Camera Link 相机模拟系统能够完成复杂的数据传输, 上位机控制它完成所有的功能。用户可以操作上位机产生或者接收标准的图像数据并下传给模拟系统, 发送操作命令并显示当前的状态;并控制系统工作在不同 Camera Link 的模式配置下, 显示当前的模式配置;按照需要输出的图像的分辨率及图像深度, 向模拟系统发送相应的指令, 完成不同分辨率、帧频以及图像深度的图像数据的输出。上位机用 MFC
28、开发, 产生或接收标准的视频图像数据, 并控制 Camera Link 接口相机模拟系统, 实现数据传输及工作模式的设置, 它的设计方案如图11 所示。图 1 1 上位机软件设计方案示意图 下载原图3 结论本文设计的 Camera Link 相机模拟系统可以实现通过上位机将图像数据经由PCIe2.0 接口高速下传给相机模拟, 数据下传速率不低于 10Gbps。计算机驱动PCIe2.0 接口下传数据的传输速率测试如图 12 所示。由测试结果可以看出 PCIe DMA 方式下传数据速率达到 1 400MB/s 以上, 远高于课题的需求。图 1 2 PCIe2.0 传输速率测试结果 下载原图在对本次
29、设计的相机模拟系统进行测试中, 使用实验室已具备的 Camera Link采集卡对相机模拟系统输出的图像数据进行, 采集结果如图 13 所示。由测试结果可以看出, 本课题设计相机模拟系统可以很好的模拟出 Camera Link 格式图像数据输出。图 1 3 相机模拟系统数据结果 下载原图因此, 相机模拟系统可以实现 Camera Link 接口的 Full 模式数据的实时输出, 完成分辨率为 8 0006 000、像素深度为 8bit 的图像的输出, 图像输出帧频可达 12.5Hz。本文设计的 Camera Link 相机模拟系统可以在对星载图像采集处理系统进行检测时, 代替高分辨的航天 CC
30、D 相机, 灵活的输出高分辨的特定的测试图像数据。参考文献1韦韧.星载科学试验用 CCD 相机设计与实现D.北京:中国科学院空间科学与应用研究中心, 2010. 2张坤.国外星用 CCD 图像传感器的研制现状J.中国电子科学研究院学报, 2007 (3) :324-328. 3吴川, 郝志成.基于 FPGA 的视频信号发生器设计J.电子技术, 2011 (3) :30-31. 4刘杰, 牛燕雄, 董伟, 等.基于 FPGA 的视频信号发生器设计与应用研究J.仪器仪表学报, 2008 (3) :654-657. 5熊川, 李天赞.基于存储技术的数字视频信号产生器J.桂林航天工业高等专科学校学报,
31、 2006 (4) :6-7. 6Wang Mingfu, Yang Shihong, Wu Qinzhang.Design of large-arragy CCD real-time display systemJ.Optics and Precision Engineering, 2010, 18 (9) :2053-2059. 7He Zhongxiang, Yang Shihong, Wu Qinzhang.Design of a realtime display system based on cameral linkA.Proceedings of2009 4th Internat
32、ional Conference on Computer Science and EducationC.Nanning:IEEE, 2009:431-434. 8邬静阳.基于 CAMERA LINK 接口的虚拟数字相机的研究D.长春:长春理工大学, 2013. 9王小艳, 张会新, 孙永生, 等.Camera Link 协议和 FPGA 的数字图像信号源设计J.国外电子元器件, 2008, 16 (7) :59-61. 10Wang Minghao, Chen Tao, Wu Xiaoxia.High frame rate digital image acquisition and display system based on camera link interfaceJ.Microelectronics&Computer, 2011, 28 (3) :149-153. 11魏明.基于 Camera Link 接口的 CMOS 数字相机技术研究D.长春:长春理工大学, 2005.