用于飞行器分离测速的数据采集处理系统
6通道A/D转换后组合成24位数据输出,每路需要用3片HM628512构成512K×24bits的缓存器。两路各3片HM628512的地址信号及控制信号都由FPGA给出。同一路的3片存储器以位扩展的方式连接在一起,共用一组地址线,数据线分开。为了实现两组存储器同时进行读写操作,需要将数据输入总线和输出总线隔离。采用FPGA进行地址发生及逻辑控制,极大地减小了系统设计的难度。双路存储器(A路,B路)的构成原理框图如图6。
1.2.5 PCI接口电路
PCI总线近年来迅速推广并已成为PC机主流总线。它是一种局部总线,通过主桥路挂接到主CPU上。它是独立于处理器的同步总线,支持总线主控和猝发方式传送,数据/地址宽度为32位/64位,总线时钟频率0~33MHz,灵活配置并支持即插即用。而它的宽数据位、高位输数据率、多种运用方式为计算机外设与主机的高速信息交换带来了极大的便利。
javascript:window.open(this.src);" style="cursor:pointer;"/>
表1 采集卡占用主机的内存、端口及中断资源
映射内存BASE0 | 映射内存BASE1 | 映射内存BASE2 | 映射端口BASE3 | 映射端口BASE4 | 邮箱中断 |
配置S5933 | A路缓冲存储器512K×24bits | B路缓冲存储器512K×24bits | 设置采集卡端口1 | 设置采集卡端口2 | 中断12 |
2 系统主控分析软件的设计
系统主控分析软件是利用VC++语言编写而成的,包括以下几个功能模块:PCI接口虚拟驱动程序、采集器初始化子程序、采集控制子程序、内存管理子程序、波形显示及数据处理子程序。
本测速系统软件基于Windows98操作系统运行。Win98系统禁止对底层硬件资源直接进行访问。应用程序必须通过虚拟设备驱动程序来访问硬件资源,因此本采集卡需要相应的驱动程序支持。VxD(Virtual Device Driver)是用来扩展Windows操作系统功能的一类程序。它最初用来支持硬件设备的管理,以DLL的形式链入Windows操作系统的核心层(ring 0)。VxD主要解决不能被ring 3层应用程序处理的一系列问题。Win9x系统的核心(Kernel)由虚拟机管理器(VMM)和VxD的集合组成。Kernel提供了900多个服务函数来管理内存、控制物理设备、处理中断管理文件系统等。这些服务函数都可由自己编的VxD调用。多路采集卡驱动程序利用Vireo Software公司的VtoolsD工具及VC++编写,实现了对采集卡内存的访问以及响应采集卡的中断请求。
javascript:window.open(this.src);" style="cursor:pointer;"/>
3 数据算是及实验结果
实验中采集到的数据经过平滑等预处理后,可以得到飞行器分离的速度及加速度数据,飞行器分离的速度曲线见图7、图8,加速度曲线见图9。结果表明,测速系统在测量精度上比高速摄像机提高了两个数量级,更好地保证了飞行器的地面实验。配以不同的传感器以及相应的数据处理分析软件,该系统可以应用于不同的测量分析领域,具有良好的可移植性和可扩展性。