基于FPGA的CCD相机的图像采集

时间:2022-10-26 11:15:18

基于FPGA的CCD相机的图像采集

摘要:介绍在特定环境下CCD相机图像数据的采集背景下的一种基于fpga的高速图像数据采集板卡设计方法,详细讨论了其系统结构和核心部分的内部功能模块,并给出了其核心:PCI IPcore的具体仿真结果。同时探讨了此板卡和外部的接口实现问题。

关键词:Camera Link;双端口;RAM; PCI;IPcore;DMA

中图分类号:TP274文献编号:A文章编号:1009-3044(2008)16-21335-02

Design of the Image Gather of ccd Camera Based on FPGA

LIU Jian-ji,YANG De-gui

(Department of Space Technology, College of Electrical Science and Technology, National University of Defense Technology, Changsha 410073, China)

Abstract: This paper mainly deals with the issues as follows:introducing the background of CCD camera data gathering in special environment,proposing a method of high speed image based on FPGA,and particularly discussing its system structure and its internal function module, and show the simulation result of the PCI IPcore.It also discuss how to implement the Camera link and PCI interface.

Key words: Camera Link;Dual;port;RAM;PCI;IPcore;DMA

1 引言

本数据采集板卡欲实现针对采集所得的CV-A10高速数字图像的处理和传输,同时实现和计算机的接口通讯。系统和数字摄像头的接口遵循Camera Link协议,和计算机的接口基于PCI总线。Camera Link是一个工业高速串口数据和连接协议,它是由NI、摄像头供应商和其他图像采集公司在2000年10月联合推出的,旨在简化PC机和摄像头之间的连接。Camera Link可为高速、高精度的数字摄像头提供简单、灵活的连接。而PCI总线由美国Intel公司首先提出,1992年由PCI SIG总线规范,是一种先进的高性能局部总线,可同时支持多组设备。PCI总线以33MHz/66MHz的时钟频率操作,采用32/64bit地址/数据复用总线,数据传输速率可高达132MB/s(33MHz/32bit),远远超过ISA总线5MB/s的速率。由于Camera Link支持高速的数据传输,而系统又要考虑到与计算机的接口问题,所以高速缓存的实现和DMA控制是设计急需解决的问题。

目前PCI接口开发大体有两种方式:一是使用专用的PCI接口芯片,如AMCC公司的S59xx,PLX公司的PCI9xxx系列;二是使用可编程器件如FPGA。如果使用厂家提供的专用接口芯片,用户可能只使用到他的部分功能,会造成一定的资源浪费,更重要的是专用芯片价格高,不经济。而使用可编程器件具有以下两个优点:另一方面用户可以根据需要设计PCI接口,不会浪费资源;一方面用户逻辑和接口部分可以做在同一个器件内,PCI接口和用户逻辑会结合得更紧密。使用可编程器件设计(如FPGA),将厂家提供的PCI IPcore(如ALTERA公司)引入到FPGA,根据插卡的功能进行最优化,不必实现所有的PCI功能,可以将PCI插卡的用户逻辑与PCI接口逻辑集成在一个芯片上,从而实现紧凑和高效的系统设计。

本文介绍了一种基于FPGA的高速图像数据采集板卡,其目的和作用就是负责从CV-A10 CCD相机的Camera Link接收数字图像数据,并通过PCI接口传送到终端进行分析和处理。

2 Camera Link协议

Camera Link协议包含六个方面的内容:1)摄像头和帧捕捉器之间的接口;2)接口的管脚;3)所需的缆线;4)信号范围;5)接口信号的形式;6)串行片上的数据流管脚。

Camera Link信号分为五类:1)电源信号:捕捉器不提供能源,而是由相机从专用的电缆提供。2)高速相机控制信号:四组低压差分信号(LVDS)――相机控制信号1(CC1)、相机控制信号2(CC2)、相机控制信号3(CC3)和相机控制信号4(CC4),它们分别是外部同步信号(EXSYNC)、重置信号(PRIN)、向前信号(FORWARD)和保留信号(Future Use)。3)低速串行通讯命令:Serial―To-Frame-Grabber(SerTFG), Serial―To-Camera(SerTC)。支持RS232异步串行通信协议。4)高速图像数据控制信号: FVAD、LVAD、DVAD和EEN,它们分别是帧允许信号、行允许信号、数据允许信号和使能信号。5)图像数据信号。

Camera Link的硬件结构分为三类:基础结构(Base)、中间结构(Medium)和完全结构(Ful1)。各种类型特征如表1所示。

表1 Camera Link接口硬件结构

3 系统的结构与实现

整个系统结构如图1所示

图1 数据采集卡的系统框图

由专用的支持Camera Link的接收器接收数据和控制信号,FPGA实现其所需的功能以及控制外部缓存和以ALTERA公司的PCI IPcore mt32实现PCI接口,其芯片采用的是Cyclone系列。下面分别介绍各部分的实现。

3.1 Camera Link接口

根据Camera Link协议的要求, MDR26连接器作为相机与数据采集卡的接口,并且有专用的LVDS信号至TTL信号的转换芯片可用来实现数据流的传输。Camera Link是基于LVDS信号的,下面先简单介绍LVDS信号。

低压差分信号技术(LVDS)是使用非常低幅度信号(大约350mV)通过一对差分PCB走线或平衡电缆传输数据的。它允许单个信道传输率达到每秒数百兆比特(Mbps)。它特有的低振幅及恒流源模式驱动只产生极低的噪声,消耗非常小的功率。而同时差分数据传输方式比单线数据传输对共模输入噪声信号有更强的抵抗能力。在两条差分信号线上流经的电流及电压振幅相反,噪声信号同时耦合到两条线上,而接收端只关心两信号的差值,于是噪声被抵消。由于两条信号线周围的电磁场也是相互抵消,故差分信号传输比单线信号传输电磁辐射小得多。而恒流源模式不易产生尖峰,从而进一步减小了噪声。由于LVDS差分信号技术降低了对噪声的关注,所以可采用较低的信号电压幅度。这个特性非常重要,它使提高数据传输率和降低功耗成为可能。低驱动振幅意味着数据可更快地开关。由于驱动器是恒流源模式,功耗几乎不会随频率而变化。Camera Link产品即为此功能设计。Camera Link发送器可将21bit或28bit TTL数据转化为4或5个LVDS信道通过PCB走线或电缆传送到接收器后还原为21bit或28bit TTL数据。这种从宽位TTL总线到很少的LVDS信道转换充分降低了功耗,减少了噪声和电磁干扰(EMI),并且大幅度节省了PCB空间及连接件的尺寸和数量。每块MDR26可接收4路并行LVDS数据和1路LVDS的Camera Link时钟信号。连接器从相机得到 LVAD、FVAD、DVAD和EEN信号,可作为高速数据的同步信号。PORT口传输的是并行的图像数据信号,在本设计中由于相机输出的图像为8位,因此,仅用A口。同时连接器还负责向相机传输控制信号CC1、CC2、CC3和CC4,以完成外界和相机的通讯。

3.2 缓存模块

前文中提到基于Camera Link的数字相机的采集速率和需存储的数据量很大。当图像帧速较大时数据量可达百兆以上,超过PCI的数据传输速率(132MB/s)。为了便于和PCI接口,增加板上缓存就成为一种必需,将海量数据实时存储在卡上,便于与计算机进行通讯以待进一步处理。在这里拟选用同步双端口RAM。从技术角度上讲,同步双端口RAM能使读写双方独立操作,并且由于片内同步了逻辑的控制,一个时钟即能使地址数据和控制信号同步,操作简便。因此,使用双端口RAM 不但能提高系统性能,还能简化设计和提高数据传输的速率。

3.3 FPGA模块

FPGA控制模块是整个数据采集卡的核心部分,我们要通过它实现数据的获取、存储和模块间通讯的功能。FPGA模块接收MDR26模块传输的相机信号,同时产生控制信号CC1、CC2、CC3和CC4,实现和相机的通讯。再将接收到的数据存储在高速缓存里,并应用Altera公司的PCI IPcore PCI_mt32设计PCI接口。其中PCI接口部分的设计是本卡的设计核心与难点所在。

在设计中,和计算机PCI总线有关的功能完全由PCI IPcore来完成,我们只要实现其LOCAL总线的有关功能即可。所以在硬件功能实现的设计中,除了启动时的初始化设置,对于PCI IPcore内部配置寄存器的设置我们不需做很多的工作,主要是关注LOCAL配置寄存器和DMA以及双端口RAM接口的设计。

图像数据从接收芯片输入FPGA后将8位数据组合成32位,并在片内FIFO缓存,以便于与双端口RAM 的数据接口相匹配,同时给出双端口RAM 接口的写控制信号,而DMA传输控制模块在产生PCI接口的读写控制信号的同时也将给出双端口RAM 接口的读控制信号,由于本系统对双端口RAM 采用乒乓结构进行读写,根据地址的划分,把双端口RAM分成高低两部分,当图像数据写入低地址部分时,PCI接口则以DMA方式读取高地址部分的数据,而当图像数据写入高地址部分时,PCI接口读取的是低地址部分的数据。当图像数据写满高地址或者低地址部分的时候,转入另外的半块双端口RAM,并通知DMA传输控制模块读取数据进入FIFO。所设计的DMA传输控制模块包括DMA控制逻辑,DMA寄存器,DMA 寄存器配置FIFO和两个独立的FIFO数据通道,利用IPcore在PCI Bus和PCI Local Bus之间所起的桥梁作用将复杂的PCI总线转化为本地总线,结合对状态数据和测试数据的处理,设计结构如图2所示。

图2 设计结构图

板卡首先在Target模式下接收主机发送过来的DMA寄存器的配置数据,然后系统向主机发送reqn信号以请求在master模式下发动DMA方式进行数据传输,当系统获得gntn信号并且缓存传输数据的FIFO准备好以后,双端口RAM里面的数据将通过DMA方式传送到主机的内存当中。其中PCI IPcore local bus的部分仿真结果如下图所示。

图3 PCI IPcore local bus 仿真结果

4 结束语

以上对Camera Link协议作了简单介绍,提出了自己的Camera Link数据采集卡方案;列出了系统构图,并对各部分的具体功能加以介绍,阐述了各个模块的实现方法。采用IPcore将PCI总线转化为本地总线,节省了成本,更充分利用了资源,更紧凑更高效地实现了系统设计;采用DMA方式满足了系统对数据采集率的超高速要求;采用FPGA器件实现了系统关键模块的设计,对模块的功能进行了严格仿真。整个系统的硬件设计已经应用于实际。

参考文献:

[1] Altera Corporation:PCI Compiler User Guide[S].San Jose,CA,95l34.

[2] Altera Corporation:Cyclone Device Handbook[S].San Jose,CA,USA.2003.

[3] JAI Corporation:A10-70 Operation Manual. JAPAN.2004.

[4] Specifications of the Camera Link Interface Standard for Digital Camera and Frame Grabbers[M],2000,37.

注:本文中所涉及到的图表、注解、公式等内容请以PDF格式阅读原文。

上一篇:基于数据挖掘的高职《C语言程序设计》课程能力... 下一篇:论数码与传统相机拍摄