USB总线在便携式数控测井系统中的应用
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总线,单片机发送的命令才有效。
4 软件设计
4.1 固件程序的设计
固件程序是指被固化到AT89S52中FLASH中的程序,它是设备运行的核心,其主要功能是控制USB接口芯片接收并处理USB驱动程序的请求(如请求设备描述符、请求或设置设备状态、请求设备设置、请求或设置设备接口等USB标准请求);控制USB接口芯片接收应用程序的控制指令;将存储在双口RAM中的数据通过USB控制器实时上传至PC。
USB控制器的工作原理是:当USB控制器从USB总线检测到主机启动的某一传输请求时,USB控制器通过中断方式将此请求通知USB接口系统,接口系统通过访问USB控制器的状态寄存器获得与此传
USB总线数控测井系 相关文章:
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)
- Windows CE 进程、线程和内存管理(二)(11-09)