《基于PCI总线的模拟高速CCD数据输出系统.docx》由会员分享,可在线阅读,更多相关《基于PCI总线的模拟高速CCD数据输出系统.docx(10页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、基于PCI总线的模拟高速CCD数据输出系统ronggang导语:在阐述相关设计要求的根底上,介绍了一种用于测试目的、基于PCI总线的模拟高速CCD数据输出系统的开发经过,包括系统的硬件设计和相关软件的开发,着重对设计思路和方法做了具体介绍摘要:在阐述相关设计要求的根底上,介绍了一种用于测试目的、基于PCI总线的模拟高速CCD数据输出系统的开发经过,包括系统的硬件设计和相关软件的开发,着重对设计思路和方法做了具体介绍。关键词:PCI总线PCI9054WinDriverbalign=centerHighSpeedDataOutputtingSystemBasedonPCIBusPiHai-feng
2、LiZi-tianXuXiu-zhenXueLi-jun/align/bAbstract:Followedtheexpatiationofdesignrequirement,thedevelopmentprocessforasystembasedonPCIbusisexpounded,whichisassumedasCCDhighspeeddataoutputtingsystemandusedfortesting.Thedesignideaandmethodisemphasized.Keywords:PCIbusPCI9054WinDriver光谱成像仪是集光学、光谱学、精细机械、电子技术及计
3、算机技术于一体的新型探测仪器。其中,CCDchargecoupleddevice成像系统,将收集到的光谱信息转换为可处理、存储的电信号。由于数据量庞大,CCD成像系统所收集的数据在存储之前通常都要经过压缩处理。在光谱成像仪的研制经过中,需要这样一种测试设备,它模拟光谱成像仪CCD成像系统,对外持续输出已知数据及时序信号。通过将已知的发送数据,和经过压缩后接收到的数据进展比照,可以量化地检测数据压缩系统的性能指标。0.系统要求及设计思路本文中高速数据输出卡的功能是完成对光谱成像仪CCD系统数据输出经过的模拟。光谱成像仪CCD系统的数据输出格式如下:align=center图1光谱成像仪CCD系统
4、数据输出格式/align其中,图象数据与辅助数据分时共用数据线,在帧正程传送256行x512列x12bit图像数据,在帧逆程传送128x12bit辅助数据,一帧周期的数据共有131200x12bit,而一幅完好的光谱图象要包含512帧数据。系统输出时钟为8.9MHz,全部输出信号为LVDS电平接口。为到达模拟效果,要求数据输出卡以一样的数据格式及接口,持续不连续地对外输出数据;同时,为测试后续数据压缩系统所采用压缩算法针对不同特性图像数据的有效性,还要求数据输出卡可以较为方便的更换输出数据。针对以上系统要求,选用了基于PCI总线的设计方案:将要输出的图像数据文件放置于特定内存区中,作为为数据源
5、,根据计算机控制,循环对该数据文件所在内存区进展读取,并将读取的数据向外发送。进而到达模拟CCD系统数据输出的效果。假如要更换输出数据,只需将新的数据重新置入内存区,具有较强的灵敏性,使测试经过更为简洁。1.系统的硬件设计高速数据输出卡的硬件构造框图如下列图所示,PCI总线设备接口选用专用接口芯片PCI9054,系统时钟信号分别来自计算机所提供的PCI时钟和卡自身所带的8.9MHz晶振。整个经过的时序控制由可编程逻辑器件完成,由其控制对PCI9054产生定时中断,PCI9054响应这个外部中断,并在PCI总线上对计算机发出PCI中断信号,当上位机检测到PCI9054这个中断信号后,就立即控制P
6、CI9054以连续DMA方式从上位机指定的内存区域读取数据,并向外发送至大容量FIFO进展数据缓冲。FIFO中的12位的图象数据以及数据时钟、帧同步两个时序信号经过LVDS驱动器转换为差分信号,发送至后续设备进展处理。align=center图2高速数据输出卡硬件构造框图/align在本系统中,将PCI9054设定为C工作形式,即32位地址、32位数据、总线非复用工作形式。由于PCI9054从上位机读取数据均发送到FIFO一个设备,因此其Local端地址线不起任何作用,而数据线仅选用高12位。此外,在本设计中采用串行EEPROM93LC56B对PCI9054进展配置,在上电后,PCI9054自
7、动读取93LC56B中的数据,设置相关存放器,完成初始化操纵。鉴于本系统高速,大数据量的特点,一般常用的FIFO无法适应要求,因此选用了384Kx8bit的视频帧存储器AL422B,作为数据缓冲。AL422B由3M位的DRAM组成,工作频率最高可达50MHz,有独立的输入、输出接口及读写时钟,可同时进展读写操纵;/RE,/WR,/REST及/WRST四个输入信号分别控制AL422B的读、写与读指针、写指针复位操纵。本系统中,将两片AL422B并联,扩展为384Kx16bit的FIFO存储器。整个经过的时序控制由可编程逻辑器件完成,它的工作包括:向PCI9054发出定时中断信号,由其向上位计算机
8、申请中断;控制数据缓冲器AL422B的读写时序,包括其初始化复位操纵;产生PCI9054所需的时序信号。2系统软件开发整个系统的软件包括PCI9054驱动程序与上位机应用程序,图像数据预处理格式转换程序及可编程逻辑器件CPLD的VHLD程序。在此,仅对PCI9054驱动程序与应用程序的开发作以扼要介绍。WinDriver是Jungo公司出品的开发工具包,它支持的总线构造包括PCI/CardBus/ISA/ISAPnP/EISA/CompactPCI和USB,可大大简化生成硬件驱动程序和开发应用程序的经过。本次开发使用的是WinDriver6.03版。WinDriver已经内置了包括PCI905
9、4在内的多种PCI/USB接口芯片的驱动程序,因此只需将设计完成的PCI卡插入计算机,然后运行Windriver的向导程序,并在列表中选择相应的PCI接口芯片,只要硬件接口连接正确,即可生成相应的.inf文件。inf文件包含了设备类型、消费厂商、型号及拷贝文件的途径等PCI硬件设备的信息,通过inf文件,Windows才可以找到PCI卡并完成对其驱动程序的安装。align=center图3使用WinDriver生成PCI卡硬件设备信息文件.inf文件界面/align上位机软件开发采用用户形式,其流程图如图4所示:align=center图4上位机软件流程图/align由于AL422B并不象其它
10、通用FIFO那样能提供数据空、半满、全满等逻辑信号,因此只能根据其数据发送速率、FIFO容量及PCI总线速率,来设定一个定时中断。这个定时中断设定为数据输出卡向外发送一帧数据所需的时间,约为14.8ms,即数据输出卡每向外发送一帧数据,必定会从上位机缓冲区中读入一帧数据。由于在启动定时中断前,数据输出卡已经预先读取一帧,因此,即便上位机对定时中断的响应有一定延迟,也不会出现FIFO被读空的情况。同时,由于FIFO的深度为384K,近似于3帧的数据量,因此也不可能出现FIFO被写满,而造成数据丧失的情况。定时中断由卡上的CPLD根据输入时钟准确产生,在定时中断效劳程序中,程序依次读取一幅完好光谱
11、图像中的一帧数据,假设全部512帧数据被读完,那么指针归零,从头再次开场,以此保证光谱图像数据的循环发送。下面给出了中断效劳程序的局部源代码。WinDriver针对PCI9054芯片,提供了大量API函数可供调用,因此使对PCI9054的编程操纵非常方便。voidWINAPIPLX_IntHandlerRoutineP9054_HANDLEhPlx,P9054_INT_RESULTintResult中断效劳程序DWORDdwIntStatus;P9054_DMAReadWriteBlockhPlx,0x0,PVOIDpBuffer,SEND_BLOCK_SIZE,FALSE,P9054_MOD
12、E_WORD,P9054_DMA_CHANNEL_0;控制PCI9054以DMA方式从上位机缓冲区读取1帧数据ifblock_numpBuffer=pBuffer+SEND_BLOCK_SIZE;block_num+;每发送1帧数据后,数据指针向后挪动一帧的数据量,已发送帧计数加1elsepBuffer=Buffer;block_num=0;512帧发送完后,指针回零,进而实现512帧数据的循环读取dwIntStatus=P9054_ReadReghPlx,P9054_INTCSR;P9054_WriteReghPlx,P9054_INTCSR,dwIntStatus|0x00000d00;开
13、中断,中断效劳程序完毕,等待下一次中断3.测试结果和结论将高速数据输出卡安装在计算机上,运行应用程序,即可使数据输出卡进展工作。下列图是通过示波器收集的数据输出卡上局部信号的时序图。align=center图5PCI高速数据输出卡局部信号时序图/align其中,LINTi#为PCI9054的局域端中断输入,由CPLD的定时中断信号产生;INTA为PCI9054在PCI总线上输出的中断恳求信号;WE为数据输出卡上FIFO的写使能信号,当其有效时,向FIFO写入数据;INT_EN为定时中断使能信号,由它控制CPLD开场产生定时中断。有图中可看出,在预读取一帧数据后,定时中断使能信号有效,CPLD开
14、场向PCI9054发出定时中断信号;PCI9054接收到此信号后,随即通过PCI总线向上位计算机恳求中断;在经过延时后,中断被响应;在中断效劳程序中,数据输出卡从计算机内存中读出数据,读取一帧数据的时间是14.6ms。由时序图中可以看到,数据输出卡读取一帧数据的时间即WE信号有效时间,小于向外发送一帧数据的时间即定时中断间隔,由此可保证FIFO内数据不会被读空。根据以上的试验结果,可以充分讲明高速数据输出卡已实现了设计要求。在高速数据输出卡的开发经过中,采用了专用PCI接口芯片PCI9054和总线软件开发工具包WinDriver,能使我们从繁琐复杂的PCI协议和底层驱动程序中摆脱出来,将更多的
15、精力投入硬件电路设计及软件功能的实现,大大节省了开发周期。目前此卡已用于实际的测试工作中,圆满完成了设计要求。参考文献:1.李贵山,陈金鹏.PCI部分总线及应用.西安电子科技大学出版社,2003年2.PCILocalBusSpecification,Revision2.2.December18,19983.PCI9054DataBook,Version2.1.plxtechJanuary20004.WinDriverv6.00UsersGuide.JungoLtd,17thMarch20035.李爱玲,张伯珩等.基于CPLD的CCD相机图像信号模拟器的设计()微计算机信息)2006年第1-2期P151-152、P162