探地雷达信号的数据采集与显示研究

摘要:介绍了使用数据采集控制板hy-6070c进行探地雷达信号的数据采集方法以及应用vc++编程进行数据堆积显示的软件编制结果。实际使用证明它们均正确有效。
关键词:探地雷达;数据采集;堆积显示
随着电子技术和计算机技术的迅速发展,几种商业化的探地雷达系统开始得到了初步应用,其中具有代表性的有加拿大探头及软件公司(ssi)的pulseekko系列、瑞典地质公司(sgab)的ramac钻孔地质雷达系统、美国地球物理探测设备公司(gssi)的sir系统及日本应用地质株式会社(oyo)的georadar系列等。但是,这些国外产品造价昂贵,且测量的局限性较大,严重地影响了它的普及。鉴于探地雷达具有广泛的用途对其进行了开发研制,目前已研制成功。由于篇幅限制,文中在此重点介绍数据采集部分和显示软件。
1数据采集
在探地雷达数据采集试验中,所使用的是hy-6070c通用数据采集控制板,此板的功能主要是a/d与d/a数据转换。其接口是isa总线型的,可以直接插入具有isa总线扩展槽的计算机中,在计算机的控制下构成信号采集、监视输入系统和模拟量电压信号、数字电压信号输入系统。hy-6070c板上安装有12bit分辨率的a/d转换器,其通过率为40khz。为用户提供了两种模拟信号输入方式:16路单端输入和8路双端输入。通过硬件设置,模拟电压信号输入范围可以是0~5v,土2.5v,±5v。此板还提供了1路12bitd/a转换模拟电压输出通道。在hy-6070c板上还装有可编程定时/计数器82c54,其中82c54的定时/计数器1和定时/计数器2级连,用以生成定时启动a/d转换的信号。定时/计数器o单独引出,供用户使用。hy-6070c板支持软件触发、定时触发和外触发3种a/d电路启动转换工作方式。支持软件查询和中断申请数据传送工作方式。hy-6070c板还为用户提供了16路数字输入/输出通道信号,接口电平符合ttl电平标准。
文中利用软件编程启动hy-6070c板的a/d转换功能。在软件触发方式下,每次启动a/d转换前由软件切换通道,然后发送a/d转换启动命令来触发a/d转换。当a/d转换完成后,可通过软件查询a/d完成位,当程序测到a/d完成位为“1”时,即可读取a/d转换的12bit数据。
a/d采样程序步骤如下:
(1)设置板上的模拟信号输入通道(共16个通道,编号为0~15);
(2)设置a/d触发方式,这里设置为软件触发;
(3)开始触发a/d转换;
(4)等待并查询a/d转换完成标志;
(5)对接收到的数据进行存储。
在hy-6070c数据采集卡内预先分配了各种地址,程序通过访问这些地址并对其进行相应的读写操作来控制a/d采样的实现。在实际应用中,可以直接利用由c语言编制的应用程序来控制采集卡进行a/d转换,只需调用头文件为dos.h中的outport(address,data)(address为地址值,data为要向该地址输出的数据)与inportb(adaddress)(adadress是a/d转换数据所存储的地址)两个函数即可,但是应用程序的使用环境必须是dos操作系统。这给应用程序的使用者带来了诸多不便。因此为了让用户方便使用,作者制作了基于windows操作系统的显示软件。由于windows操作系统不能像dos那样直接读取采集卡的板内地址,因此要想面向数据采集卡编程,首先需要安装数据采集卡的驱动程序,既让windows操作系统能够识别到此硬件。在接下来的编程中还必须使用到数据采集卡自带的两个文件,hkiomfc.h和hkiomfc.lib,在这两个文件中定义了对采集卡进行控制的变量与函数体,编程时即可直接调用。
2显示软件
利用visualc++6.0在windows操作系统下开发应用程序主要是使用mfc(microsoftfbundationclass)类库。mfc是微软为windows程序员提供的一个面向对象的windows编程接口,它简化了windows编程工作。使用mfc类库的优点:首先,mfc提供了一个标准化的结构,这样开发人员不必从头设计创建和管理一个标准windows应用程序所需的程序,而是从一个比较高的起点编程,可节省大量的时间;其次,它提供了大量的代码,指导用户编程时实现某些技术和功能。mfc库充分利用了microsoft开发人员多年开发windows程序的经验,并可以将这些经验融入到自己开发的应用程序中去。
visualc++6.0集成环境对mfc提供了多种界面友好的辅助工具,用appwizard可以生成新的类,可以对类成员进行维护。mfc提供了一种机制,把windows的消息与类的某个成员直接联系起来,减少程序员中间的处理过程。比如在菜单中加了一个命令项,指定其命令id,然后用classwizard可以指定此菜单id与类的成员函数相联系,所需要的编程就是实现该成员函数的代码,其他代码均由mfc和class-wizard负责处理。这种机制提高了程序开发效率,而且visualc++提供了mfc的所有源代码,这些源代码不仅可供参考,还为应用程序的调试提供了方便,源代码的开放性也是mfc获得成功的一个主要原因。
作者所设计的显示软件是基于单文档(sdi)框架结构的应用程序,其外观如图1所示。