×
单片机 > 单片机程序设计 > 详情

51单片机在便携式数控测井系统中的应用

发布时间:2020-06-15 发布时间:
|

1 引言

    随着测井技术的飞速发展,各种测井数据的实时采集和处理在现代测井系统中已必不可少。传统的地面数据采集系统与主机之间的通信模式是采用PCI总线或RS-232串行总线。PCI总线虽然有很高的传输率,且支持“即插即用”,但是它的扩展槽相当有限,且插拔不方便,不适合便携式系统的要求;RS-232串行总线虽然连接方便,但是带宽非常有限,传输速率较低。为了克服以上通信方式的缺点,要求寻找一种新的通信方式进行数据传输,而通用串行总线USB的出现很好地解决了这些问题,很容易就能实现低成本、高可靠性、高速率的数据通信。

2 USB总线简介

    USB的优点:

    ①速度快。USB接口的最高传输率可达12 Mb/s;提供低速方式,速率为1.5 Mb/s。扣除用于总线状态控制和错误检测等数据传输,最大理论速度也能达到1.2 Mb/s和9.6 Mb/s。

    ②设备安装和配置容易。安装USB设备不必再打开机箱,加减已安装过的设备完全不用关闭计算机。所有USB设备支持热拔插,系统对其进行自动配置,彻底抛弃了过去的跳线和拨码开关设置。

    ③易于扩展。通过使用Hub扩展可连接多达127个外设。标准的USB电缆长度为3m(低速为5m),通过Hub或者中继器可使外设距离达到30m。可以使用多种连接方式进行扩展。

    ④采用总线供电。USB总线可为连接在其上的设备提供5V电压/lOOmA电流的供电。USB设备也可采用自供电方式,或者两者结合的方式。

    ⑤使用灵活。USB共有4种传输模式:控制传输、同步传输、中断传输、批量传输,以适应不同设备的需要。

3 硬件电路设计

    由测井仪器送至地面的信号有三类:模拟信号、脉冲信号以及编码信号,所以地面数据采集系统首先对这三种不同的信号进行预处理,然后送至各自的通道进行数据采集再通过USB总线将数据传送至上位机进行实时的处理。系统硬件框图如图1所示。


图1系统硬件框图

    由井下传送至地面的模拟信号、脉冲信号、编码信号分别经过相应接口面板的凋理后,进入A/D转换器(MAXl97)、脉冲计数器(82C54)、解调器,在CPU的控制下,实现控制算法,进行相应的数据采集、解码,并将采集到的数据存放在相应的RAM中。另一方面,CPU还要完成USB协议处理、响应USB接口芯片的中断处理、完成数据交换,同时还有一些附加功能(如驱动数控面板的LCD显示等),由于单片机自身资源的有限,仅仅使用一片单片机难以胜任,为此我们扩展了一片单片机(两片单片机均为AT89S52),采用多单片机分配任务、协同工作,让一片单片机实现采集控制,另外一片实现USB协议下的实时数据通信。

    使用多单片机固然能按要求实现任务,但两片单片机之间的数据通信问题也随之而来。传统的多单片机之间的通信是通过串口来实现的。但在设计中,由于采集单片机的数据量非常大,若使用串口进行通信,由于单片机的串行寄存器SBUF只能保留一个字节的数据,必然造成采集数据的严重丢失或错误。针对这样问题,在设计中采用了采集单片机与通信单片机之间通过双端口RAM(ID’F7132)共享数据的方案,它一方面可以存储采集单片机采集到的数据,另一方面可以实现两单片机之间的高速、实时数据通信。

    USB接口芯片采用Philips公司的PDIUS—BDl2(简称D12),可以实现4种不同的模式:非同步模式、同步输出模式、同步输入模式以及同步输入/输出模式。D12与通信CPU的电路连接如图2所示。


图2 AT89S52与PDIUSBDl2的接口电路图

这里D12使用的是多路地址/数据总线配置方式,单片机的INT—N应配置为电平触发中断。D12在ALE下降沿的时候对单片机的输出地址进行锁存。这种方式下,单片机也是使用指令MOVX对D12进行操作,倘若输出的地址为奇数表示对D12发送指令,输出的地址为偶数时,则表示对D12进行数据传输。D12的地址由片选信号(P2的任一口线)决定。USB设备采用自供电方式,将EOT引脚需要通过串联电阻连接到Vbus上,使用EOT来检测USB总线是否连接上,只有连接上USB总线,单片机发送的命令才有效。[page]

4 软件设计

    4.1 固件程序的设计

    固件程序是指被固化到AT89S52中FLASH中的程序,它是设备运行的核心,其主要功能是控制USB接口芯片接收并处理USB驱动程序的请求(如请求设备描述符、请求或设置设备状态、请求设备设置、请求或设置设备接口等USB标准请求);控制USB接口芯片接收应用程序的控制指令;将存储在双口RAM中的数据通过USB控制器实时上传至PC。

    USB控制器的工作原理是:当USB控制器从USB总线检测到主机启动的某一传输请求时,USB控制器通过中断方式将此请求通知USB接口系统,接口系统通过访问USB控制器的状态寄存器获得与此传输有关的各种参数,并根据具体传输参数,对USB控制器的控制寄存器和数据寄存器进行相应的操作,以完成主机的传输请求。

    4.2 设备驱动程序的设计

    USB驱动程序是支持即插即用功能的标准WDM驱动程序,结构如图3所示。Windows对构成一个USB总线主机的不同软件部分进行了十分清楚的划分,其中USB总线客户软件包含了用来控制不同USB总线外设的设备驱动程序,它通过Windows所定义的软件接口与根集线器驱动程序进行通信,而USB根集线器驱动程序则要通过包含在USBD中的USBDI(通用串行总线驱动程序接口)实现与通用串行总线驱动程序(USBD)的通信。然后,USBD会选择两种主控制器驱动程序(HCD)之一同其下方的主控制器进行通信。最后,主控制器驱动程序会赢接实现对USB物理总线的访问(通过PCI枚举器软件)。


图3 USB驱动程序体系结构

    开发设备驱动程序需要专门的开发工具,目前常用的开发工具有Windows DI)K和Driver—Studio。NuMega公司开发的DriverStudio是一个强大的开发工具包,它包括VtoolsD、Driver—Works、DriverNetworks和调试工具SoftlCE等等。用DriverWorks开发基于WDM的USB设备驱动程序时,将自动生成WDM的工程文件,通常包括5个*.h和2个*.cpp文件,此外还自动生成*.inf文件,开发者只要根据自己的需要稍做修改即可。

    ·USBLOG.cpp:包括DriverEntry()、LoadRegisrtyParameters()、AddI)evice()例程,主要实现初始化设备的功能。

    ·USBLOGDevice.cpp:主要实现电源管理、系统控制、设备的移除、设备的开始等功能。

    ·USBLOG.inf:设备的安装文件,说明设备的安装信息。

    4.3 应用程序的设计

    应用软件由两部分组成:动态链接库和应用程序。动态链接库负责与内核态的USB功能驱

    动程序通信并接收应用程序的各种操作请求,而应用程序负责对地面系统采集、处理的各种数据进行实时绘图显示、分析、打印和存盘等。软件设计可以采用Visual C++等。

5 结束语

    将USB技术应用到便携式数控测井系统中,可以使上、下位机之间的数据传输速率和误码率得到明显的改善,传输速率能达到8Mbps以上,误码率能降至10-7以下。应用USB技术,可以大大降低数据的丢失率,使采集的数据得到实时显示,同时,为便携式数控测井系统接口的简便化、高速化和可靠性打下坚实的基础。 

关键字:USB总线  数控  测井系统

『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
Keil(MDK-ARM)系列教程(七)_菜单