新闻中心

EEPW首页>嵌入式系统>设计应用> 基于PCI总线的高速CCD图像存储系统设计

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

作者: 时间:2013-02-05 来源:网络 收藏

4部分软硬件程序设计

  PCI9054LocalBus硬件驱动

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

  always@(posedgeCLK)

  begin

  casex(CurrentState)

  1‘b0:begin

  if(!LLADS_)

  beginLLREADY=1;CurrentState=1;end

  elsebeginLLREADY=0;end

  end

  1‘b1:begin

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

  beginLLREADY=1;CurrentState=1;end

  else//最后一个循环

  beginLLREADY=0;CurrentState=0;end

  end

  default:

  CurrentState=0;

  Endcaseend

  assignLLREADY_=(LLREADY)?1‘b0:1‘b1;

  4.2PCI9054驱动层和应用层设计

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

  部分程序代码:

  BOOLGetData()

  {……

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

  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);

  }

  voidWaitForDataThread(void*pParam)

  {}

  voidWriteDiskThread(void*pParam)

  {}

  4.3数据传输指令生成

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


图3数据传输协议

5系统测试及工程考虑

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

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

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

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

参考文献:

  1.High-SpeedTDILineScanCamera-CameraUser’sManual.America:Dalsa,2002

  2.PCI9054DataBook.America:PLXTechnology,2000

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

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

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


上一页 1 2 下一页

评论


相关推荐

技术专区

关闭