基于PCI总线的高速CCD图像存储系统设计

发布者:Delightful789最新更新时间:2013-02-05 来源: 21IC 关键字:PCI总线  CCD  图像存储系统 手机看文章 扫描二维码
随时随地手机看文章

1 引言

  侦察与监视在军事斗争中的地位举足轻重。在各种侦察/监视技术中,航空侦察占有重要的地位,可见光侦察是一种重要的侦察形式,无人侦察机显示出了广阔的发展前景,现代科学技术的发展为现代航空侦察与监视技术带来了新的发展契机。

  航空侦察一个主要的途径就是利用高性能高速摄像机进行航空拍照,采集各种图像信息。然而,数字化的侦察图像分辨率高、信息量大,使后续的处理、传输、存储等过程的实现变得极为困难,从而给机载图像/视频系统的设计与实现带来了巨大的挑战。为了解决这些问题,本文基于某型高速相机,利用低成本FPGA,构建了一个高性能的图像采集存储系统,完成对高分辨率、高帧率侦察图像的采集和存储。

2 某型高速相机简介

  系统选择的高速相机是一款高分辨率、高速度线扫数字相机,其图像传感器采用先进的CCD(Charge-Coupled Device)图像传感器,采用了世界尖端水平的高灵敏度扫描成像技术——高速率的TDI(Time Delay and Integration)技术、多重曝光技术并加强蓝色响应,从而使该型相机可提供比单输出线扫相机更好的灵敏度特性,总的数据传输率可高达200MB/s。

  相机接口主要包括后面板上的六个接口:其中四个为数据输出接口,每个接口包括16位数据信号,1位数据同步信号,1位同步时钟信号,信号的电平输出格式为LVDS电平格式;另外两个接口分别为控制信号接口和电源接口。在控制信号的作用下,相机同步输出包含同步时钟信号(STROBE)和水平同步信号(LVAL)在内的 8×8bit标准的灰度图像数据,图像分辨率可选择为4096×30`72(本系统采用分辨率)和2048×3072。

  相机控制接口信号中,行触发信号(EXSYNC)至关重要。它负责图像数据的触发输出,行触发信号的上升沿触发数据并指示数据有效。相机触发要求此信号存在下降沿,最小触发频率为300HZ。

3 系统硬件设计及工作原理

  本设计硬件系统主要包括电平转换,数据接收预处理和数据采集存储三个部分。图1为系统硬件原理框图。在总线结构上,系统采用了满足高速数据传输的PCI总线结构,PCI9054是PLX公司推出的一种32位33MHz的PCI总线主控I/O加速器,它采用多种先进技术,使复杂的PCI接口应用设计变得相对简单。

  从资源和成本方面考虑,FPGA选用Altera公司的低成本Cyclone系列芯片-EP1C6Q240C8。存储介质则选用SCSI磁盘阵列,它能满足高速、大数据量的存储。


图1 系统原理框图

  系统工作原理:

  系统上电,首先完成一系列初始化工作:PC通过底层驱动配置PCI9054的寄存器,使之处于正常工作模式(C模式)[2]; FPGA上电,配置用户电路(此时,FPGA内部逻辑和PCI9054都处于等待状态)。

  PC应用程序启动后,向PCI9054发送数据传输指令,PCI9054收到数据传输指令,通过LOCAL BUS通知FPGA开始工作:FPGA产生行触发信号(EXSYNC),触发相机进行拍照、传输数据。然后,PCI9054进入工作状态,开始采集数据,并将数据存储到磁盘阵列。FPGA内部逻辑和PC应用程序通过行计数判断一帧图像传输完毕,相继进入等待状态。但是,PC应用程序在接收完一帧图像,进入等待状态后,延续一定时间,会自动触发下一个数据传输指令通知FPGA开始下一帧图像传输。

  电平格式转换

  PCI9054芯片电平格式为3.3V LVTTL格式,相机输出信号的电平格式为LVDS格式,基于系统总体需要,有必要在进行图像预处理前将LVDS相机输出信号转换成LVTTL格式电平。

  数据接收预处理

  FPGA完成图像预处理功能。FPGA是以并行运算为主导的芯片,处理速度更快。数据预处理过程包括:数据缓冲、位并转换。

  数据缓冲[3]:相机利用4个通道输出图像数据,每个端口的数据传输以本端口时钟为参考,传输过程中由于各种差异如传输电缆的长度不同,使得各个端口的时钟信号产生相对的相位漂移,从而使四个端口数据输出不完全同步,这不利于图像数据的同步采集。为消除数据异步,FPGA内部设计了由4个FIFO组成的数据缓冲器组。每个端口的有效数据宽度为16bit,传送一行4096个数据需用512个时钟周期,因此FIFO深度设为512个字。相机送来的4个LVAL信号为各对应通道写使能信号, 4个STROBE信号作为对应通道写时钟。FIFO输出端采用系统时钟(15MHz)作为统一的数据同步时钟,并设计一个读请求信号,当FIFO半满时读取数据,经过缓存的数据以与系统时钟同步的64bit宽度格式输出。

  位并转换:PCI9054芯片LOCAL端的有效数据位数有两种选择:8bit和32bit(可更改9054寄存器设置,为了保证数据采集速度,本系统设置为32bit)。但是相机的输出数据通过缓冲之后仍然为64bit,为了满足PCI9054数据采集位数要求,必须将64bit数据进行位并转换,变成32bit传输。本系

  统设计在FPGA内部将数据的高32bit和低32bit分别送入二选一BUSMUX的输入端,系统时钟的电平选

  择数据输出。64bit数据转化成32bit数据传输,但数据率变成原来的两倍(30M/s)。

  数据采集存储

  对于整个系统来说,存储系统的持续存储速度是个至关重要的参数。数据的采集存储采用微机为主体,在其PCI总线上挂载一块SCSI的接口卡和9054接口卡,9054接口卡用于数据采集,SCSI接口卡上挂载两个SCSI硬盘,组成RAID-0的硬盘阵列,这样可以大大提高硬盘的持续存储速度。利用PCI9054进行数据采集时,数据的传输路径为:PCI总线-内存-硬盘阵列。现有两种传输方案可供选择:第一种为单线采集存储,显然,这种方案会降低数据的的采集速度。本系统选用第二种方案:流水线存储,如图2所示。理论上,流水线方式的数据采集速度应该是单线采集的两倍。


图2 流水线存储时序示意图[page]

4 部分软硬件程序设计

  PCI9054 Local Bus 硬件驱动

  PCI9054局部总线是外设(FPGA)和9054之间通信的桥梁。9054图像数据的采集需要使9054局部总线信号满足一定的时序要求,保证数据传输的同步,即需要FPGA端硬件驱动。驱动是用Verilog HDL代码编写的一个状态机,代码如下[2][4]:

  always @ (posedge CLK)

  begin

  casex (CurrentState)

  1‘b0: begin

  if (!LLADS_)

  begin LLREADY <= 1; CurrentState <= 1; end

  else begin LLREADY <= 0; end

  end

  1‘b1: begin

  if (LLBLAST_) //突发循环重复

  begin LLREADY <= 1; CurrentState <= 1; end

  else //最后一个循环

  begin LLREADY <= 0; CurrentState <= 0; end

  end

  default:

  CurrentState <= 0;

  Endcase end

  assign LLREADY_ = (LLREADY) ? 1‘b0 : 1‘b1;

  4.2 PCI9054驱动层和应用层设计

  系统所用PCI采集卡非windows标准硬件,驱动程序需要自行开发,这里使用WDM编程。为了提高速度采用双线程操作。由于写磁盘比较慢,如果等写完磁盘再读local bus显然效率太低,所以启动双线程双buffer读写数据[5]。

  部分程序代码:

  BOOL GetData()

  { ……

  //创建等待驱动中断线程以及写文件线程

  hEvent_Disk=GreateEvent(NULL,TRUE,TRUE,NULL); hEvent_Mem = CreateEvent(NULL,TRUE,FALSE,NULL);

  _beginthread(WaitForDataThread,0,NULL); _beginthread(WriteDiskThread,0,NULL);

  //启动DMA传输

  SetDma(); BlockDmaLocalToPci(dmabuffer, BLOCK_ONE_DMA);

  }

  void WaitForDataThread(void * pParam)

  {}

  void WriteDiskThread(void * pParam)

  {}

  4.3 数据传输指令生成

  PC应用程序产生数据传输指令,触发数据传输。指令的产生是通过9054在PC端的底层驱动,设置9054 LOCAL端USERO管脚电平,使FPGA进入工作状态,并产生相机行触发信号(EXSYNC),触发相机拍照传输数据。USERO信号为高电平时,FPGA和9054都处于等待状态;USERO下降沿触发数据传输,使FPGA和9054进入工作状态;数据传输完毕,USERO拉高。时序如图3。


图3 数据传输协议

5 系统测试及工程考虑

  本系统测试微机环境为:CPU,Pentium(R) 4. 2.40GHz;内存,333MHz,512MB/s;北桥芯片,845PE;操作系统,Windows Server 2003;SCSI硬盘空间,120G。

  系统测试结果:图像单线稳定存储速率为37.2 MB/s ,流水线稳定存储速率为71.2MB/s;持续记录时间为25分钟。

  工程考虑:系统速度主要限制于两个瓶颈,一是硬盘本身,二是PCI总线。本系统虽然采用了高速硬盘,但还有一个操作效率的问题。数据从FPGA到PCI9054的传输介质采用一般硬盘线,此类硬盘线的上限频率为33M,限制数据采集速度;同时由于系统需要通过PCI总线转移数据,而计算机的PCI总线多为32位、33MHz的总线,这个总线的理论数据为132MB/s,当总线上仅仅有一个设备时,实测实际总线持续传输速率在100MB/s以下,当总线上再挂载磁盘适配器时,总线的数据传输速率会更低。系统稳定性主要取决于FPGA内部逻辑的容错性和微机的稳定性。在高速存储的环境下,微机系统容易死机,因此微机选择具有高稳定性的Windows Server 2003操作系统作为图像采集的存储环境。

  本文作者创新点是利用FPGA和PCI9054完成了对高速、高分辨率图像的采集存储。

参考文献:

  1.High-Speed TDI Line Scan Camera-Camera User’s Manual. America: Dalsa, 2002

  2.PCI 9054 Data Book. America: PLX Technology, 2000

  3.王洪迅等,高速侦察图像数据的获取与缓冲. 微电子学与计算机[J].2004,10-1

  4.杜建国,Verilog HDL 硬件描述语言[M].北京:国防工业出版社,2004

  5.裴喜龙,基于PCI总线的高速数据采集卡系统设计与实现.微计算机信息[J],2006,7-1:129-131

关键字:PCI总线  CCD  图像存储系统 引用地址:基于PCI总线的高速CCD图像存储系统设计

上一篇:基于CAN总线和RFID的矿井定位系统设计
下一篇:基于CAN总线的电动汽车数字控制系统研究

推荐阅读最新更新时间:2024-05-02 22:32

基于EPLD的PCI总线仲裁器的设计与实现
    摘 要: 以自行研制开发的PCI高速总线背板为背景,系统地论述了PCI总线的仲裁机制、总线的缺省占用、仲裁信号协定及优先级仲裁算法,给出了采用EPLD实现仲裁器功能的编程设计。   关键词: PCI总线 仲裁机制 总线的缺省占用 仲裁信号协定 仲裁算法   随着VLSI/ULSI技术的发展,可编程逻辑器件EPLD/FPGA越来越受到人们的青睐,由于它具有集成度高、速度快、开发周期短、费用低、用户可定义功能及可重复编程和擦写等许多优点,其应用领域不断扩大。这些器件的灵活性和通用性使得它们已成为研制和开发复杂数字系统的理想选择。   在PCI总线技术规范的基础上,采用EPLD实现了高速PCI总线背板中
[嵌入式]
基于LabVIEW的光谱数据采集与分析
1.引言 随着科学技术的发展和光谱分析系统的广泛研究,人们对光谱分析系统的主要指标,如光谱测量范围、分辨率、精度等方面,都提出了越来越高的要求,光谱仪现在的发展方向是微型化、自动化和高精度化。因此,本文引入了新兴的虚拟仪器技术,设计了一个基于LabVIEW的光谱分析及数据采集系统,使光谱分析系统整体性能有所提高,并且操作简单,功能较强。 2.系统设计 2.1系统结构 根据光谱分析采集系统的工作流程,将整个系统分为光学系统设计、硬件设计及应用程序设计三部分工作。光谱分析系统是典型的基于光电探测器进行测量的光电检测仪器,所以结合系统的设计要求,为了满足微型化以及低成本的要求,考虑使用线阵CCD探测器。光栅分出的光由TCD1304AP型
[测试测量]
基于LabVIEW的光谱数据采集与分析
CCD摄像机功能使用介绍
市场上大部分摄像头采用的是日本SONY、SHARP、 松下 、LG等公司生产的芯片,现在韩国也有能力生产,但质量就要稍逊一筹。因为芯片生产时产生不同等级,各厂家获得途径不同等原因,造成CCD采集效果也大不相同。 CCD检测方法 在购买时,可以采取如下方法检测:接通电源,连接视频电缆到监视器,关闭镜头光圈,看图像全黑时是否有亮点,屏幕上雪花大不大,这些是检测CCD芯片最简单直接的方法,而且不需要其它专用仪器。然后可以打开光圈,看一个静物,如果是彩色摄像头,最好摄取一个色彩鲜艳的物体,查看监视器上的图像是否偏色,扭曲,色彩或灰度是否平滑。好的CCD可以很好的还原景物的色彩,使物体看起来清晰自然;而残次品的图像就会有偏色现象,即使面对一
[网络通信]
一种基于ARM和FPGA的嵌入式高速图像采集存储系统设计与实现
现代化生产和科学研究对图像采集系统要求日益提高。传统图像采集系统大都是基于PC机上,而在一些特殊的场合,尤其是在实时性要求较高时,普通的PC机显然无法满足应用要求。它主要包括图像采集模块、图像处理模块以及图像存储模块等。 1 系统结构及工作原理 本系统的结构模型,如图1所示。图像采集模块负责采集原始图像,并将原始图像数据送给FPGA,采用了可编程视频输入处理器SAA7113H。一帧图像采集完成后,ARM将图像数据通过FPGA取出,进行必要的处理,并形成图片文件存到CF卡中,本系统选用了Philips公司的LPC2214。 图像采集芯片将原始图像数据传到FPGA,FPGA将图像原始数据暂存于SRAMl中,当一帧图像存储
[工业控制]
一种基于ARM和FPGA的嵌入式高速<font color='red'>图像</font>采集<font color='red'>存储系统</font>设计与实现
基于CPLD的CCD采集系统设计
      摘要 介绍CCD驱动信号的VHDL语言设计方法。应用CPLD构建CCD采集系统的核心,由1片EPM7128S产生整个系统的时序逻辑,包括CCD时序信号发生、模拟开关切换信号、A/D转换控制信号、数据存储读写控制信号。    关键词 VHDL CPLD CCD MAXPLUSII   CCD(Charge Coupled Devices)即电荷耦合器件,是20世纪70年代初开始发展起来的半导体器件。作为一种高灵敏光电传感器,在科学、天文、工业等领域有广泛的应用。本文采用线阵CCD,研制一种眼镜自动检测仪器。   复杂可编程逻辑器件CPLD(Complex Programmable Logic Device)规模大
[应用]
基于DSP和PCI总线的通信数据采集系统
    摘要: 介绍一种基于DSP和PCI总线的移动通信数据采集系统。提出了一种双映射方式,成功地解决了DSP的主机通信接口(host port interface,简称HPI口)和PCI9052之间的通信连接。     关键词: 数字信号处理器 数据采集 PCI总线 随着移动通信突飞猛进的发展,移动通信的数据业务量急剧上升,监控大容量的移动数据业务成了电信运营商刻不容缓的需求。而移动通信数据的传输一般都是基于E1链路。因此从E1链路上采集通信数据成了移动数据业务监控最基础的一部分。 数字信号处理器能够高速地处理数据并具有强大的数字吞吐能力,在数据采集领域获得了广播的应用。而PCI总线也因为极高
[工业控制]
基于PCI总线的雷达视频高速数据采集接口设计
引 言     PCI总线(Peripheral Component Interconnect)是Intel公司推出的一种高性能32/64位局部总线,最大数据传输速率为132~264MB/s,是目前使用较为广泛的一种总线。在高速信号的实时处理中,利用PCI总线将采集数据直接传送到微机系统内存,可有效解决数据的实时传输和存储,为信号的实时处理提供方便。利用PCI总线进行高速数据采集,可以简化电路设计,而且这种高速数据采集接口模块可以在多次设计中重复使用,缩短产品的研发周期。在此通过对专用接口芯片PCI9054的性能分析,特别是对单周期读、写和存储器映射传输操作的时序进行了分析,提出了一种新的包括PCI9054单周期读、写和存储器
[嵌入式]
PCI总线I/O时序波形观测及分析
  引 言   PCI总线(Peripheral CompONent Interconnect)即外设部件互连,是一种新型的、同步的、高带宽的、独立于处理器的总线。从1992年创立规范到如今,PCI总线已成为了事实上计算机的标准总线。其所以能在各类总线中脱颖而出,是因为其具有传输速度快、支持无限猝发读写方式、支持并行工作方式、独立于处理器、提供4种规格、数据线和地址线采用了多路复用结构、支持即插即用功能等特点。本文重点介绍了PCI总线的写周期的时序波形的测量技术及分析方法,给出了时序波形的分析结果。   2 PCI总线的功能   2.1 连接到PCI总线上的设备   连接到PCI总线上的设备分为两类:   (1)主控
[嵌入式]
小广播
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved