基于PCI总线的高速CCD图像存储系统设计
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分钟。
工程考虑:系统速度主要限制于两个瓶颈,一是硬盘本身,二是PCI总线。本系统虽然采用了高速硬盘,但还有一个操作效率的问题。数据从FPGA到PCI9054的传输介质采用一般硬盘线,此类硬盘线的上限频率为33M,限制数据采集速度;同时由于系统需要通过PCI总线转移数据,而计算机的PCI总线多为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
相关推荐
-
simonmao8385 | 2014-01-20
-
-
simonmao8385 | 2014-01-20
-
simonmao8385 | 2014-01-20
-
simonmao8385 | 2014-01-20
-
-
-
-
-
-
0750long | 2009-03-17
-
-
评论