基于Lab Windows/CVI的激光声遥感系统方案设计
1 引言
Windows操作系统因其卓越的性能已成为各个领域广泛采用的操作系统平台,由于Windows对系统底层操作采取了屏蔽的策略,因而对用户而言,系统变得更为安全,但这却给众多的硬件或者系统软件开发人员带来了不小的困难,因为只要应用中涉及到底层的操作,如直接访问I/O端口和物理内存等,开发人员就不得不深入到Windows的内核去编写属于系统级的虚拟设备驱动程序。笔者开发的激光声遥感系统显控软件中涉及到物理内存的访问和信号波形的显示,如采用VC++等语言开发,一方面开发虚拟设备驱动程序工作难度较大,另外波形的显示及选取定位等工作实现起来也较繁杂,而如果在Lab Windows/CVI环境下完成这一工作,这一切将变得十分轻松,而且使系统的性能更加出色。
2 关于Lab windows/CVI
Lab Windows/CVI 是美国NI(National Instrument)公司开发的Measurement Studio软件组中的一员,是32位的面向计算机测控领域的虚拟仪器软件开发平台,可在Windows 98/NT/2000等操作系统下运行。它以ANSIC为核心,将功能强大、使用灵活的C语言平台与用于数据采集、分析和显示的测控专业工具有机结合起来。它的交互式开发平台、交互式编程方法、丰富的功能面板和库函数大大增强了C语言的功能,为熟悉C语言的开发人员建立自动化检测系统、自动测量环境、数据采集系统、过程控制系统等提供了一个理想的软件开发环境。当前的最新版本Lab Windows/CVI 7.0更因其完全集成的工作平台(Workspace)、可生成代码的硬件配置助手以及经重新设计的数据采集界面为广大用户提供更灵活、高效又长期稳定的ANSI C编程,大幅增加了开发速度。它的用户界面函数库除了提供一般程序设计语言提供的控件外,还扩展了新的完善的带有图像、标记和分栏功能的树型控件、图形图例控件、以及“open GL”控件 等;新的图形控件具有平滑显示,抗混叠, 内置DataSocket以及另一个x轴的功能,能更有效地显示测量数据。另外,Lab Windows/CVI还支持多线程编程及物理内存访问,它不仅提供了用来进行数据存储和读取的内存管理函数,还在Utility函数库中提供了利用物理地址对内存直接访问的Physical Memory Access子类,本文中显控软件的设计正是基于它这几个方面的特性。
3、激光声遥感系统概述
激光声遥感系统是一种新型的水下目标遥感探测系统,它通过对接收到的水下目标反射的宽带窄脉冲信号进行实时处理来实现对水下目标的探测和定位。因此,在军事和国防建设中具有重要的意义。
系统的工作原理为高能激光束照射水面在水中产生高频宽带声脉冲信号,信号在传播的过程中遇到水下目标发生散射或反射后有部分声波会透过水面传播到空气中。在空中布放的声阵将接收到的声信号转换为电信号后送多波束接收机进行采集、处理、显示、分析,进而确定水下目标的方位和距离。
按系统要求,该接收机将完成对采样率高达384KHz的8路信号的波束形成、检波和短积分处理,并能够实时显示14个波束的目标信号方位─距离画面及光标所选目标的方位、距离数据,系统的DSP部分包括前置预处理分机、高速信号处理分机和显示控制分机三个部分。其中前两部分集成为专用的DSP分机,显控分机采用高性能微机,二者通过PCI总线接口卡进行控制和数据信息的交换。系统结构框图如图1所示。
图1 数字多波束接收机结构框图
系统工作时首先启动显控微机和DSP处理机,显控微机启动图形用户界面应用程序,接收用户设置输入,并检测激光系统发射信号;DSP分机中各采集处理模块的DSP处理器完成初始化工作后等待启动命令。激光系统发射后触发主控微机向DSP分机发送增益设置命令及启动信号。DSP分机对来自接收阵的信号进行采集和计算,形成目标的方位—距离波形数据并存入数据输出双口RAM中,数据满一帧后由显控微机进行读取、显示,并可以文件形式进行存储。接收机作为微机的一个外围设备,是按照数据空间进行读写操作的,根据微机内存资源配置情况,选择了内存的EXXXXH空间存储14个波束的数据(字存取),相邻两个波束数据交错排列,处于同一区间,区间分配情况如下表所示。
表1 波束数据缓冲区地址分配表
4、显控软件设计
4.1显控软件功能
该程序负责启动接收机工作,并完成14个波束的方位—距离数据显示,它首先将输入的增益值及波束号转换为控制码,然后以程序询问的方式认知发射机同步信号的到来,如接收到发射机同步信号,则控制接收机进入工作状态,并将控制码写入接收机控制寄存器的指定位,最后将该次发射所得处理结果显示输出,直至用户按“ESC”键停止程序的运行。
这部分软件运行于主控机上,以菜单驱动方式进行操作,其控制功能包括对接收机的增益进行设置、执行波束选择及声阵的高度输入等,并对接收机信号处理单元进行起停控制;显示功能则完成14个波束的方位—距离数据显示或对指定波束的波形进行输出,并能够以文字方式给出光标所在位置的目标方位及距离。全部功能可总结为如下几项:
(1) 系统及图形环境初始化;
(2) 接收程放增益及阵高度设置输入;
(3) 检测激光器发射信号,传送控制数据,启动DSP分机;
(4) 读取、显示14个波束的方位—距离数据;
(5) 给出光标所在位置的目标方位及距离;
(6) 波束数据存盘。
程序的设计上本着结构化设计思想,将整个系统功能分解为几个子功能模块分别开发调试,从而提高了程序的可读性和可维护性,也便于功能的扩充。下图给出显控软件主程序的流程:
- 用于雷达测试和验证的自动化测试设备(05-15)
- 基于Lab Windows/CVI的激光声遥感系统(08-27)
- 基于LabWindows的录波分析仪的设计(03-01)
- 利用VC++模拟示波器实现简谐振动合成 (02-21)
- LabWindows/CVI虚拟仪器设计技术基本控件使用之: Tab 控件(11-13)
- LabWindows/CVI虚拟仪器设计技术场景与游戏设计之:时钟制作(11-13)