1 引 言
在智能仪器、信号处理以及工业自动控制等领域,都存在着数据的测量与控制问题,常常需要将外部的温度、压力、流量、位移等模拟量进行采集。目前常用的数据采集方式是通过数据采集板卡,常用的有ISA总线,PCI总线,422,485等接口形式的A/D采集卡,这种板卡不仅安装麻烦,而且易受计算机插槽数量和地址、中断资源的限制。通用串行总线(UniversalSerialBus,USB)的出现,很好地解决了以上问题。本文所设计的就是基于USB总线的快速12 b的数据采集系统。
2 USB总线简介
USB总线是Intel,DEC,Microsoft,IBM等公司联合提出的一种新的串行总线接口规范,是为了解决日益增加的PC外设与有限的主板插槽和端口之间的矛盾而制定的一种串行通信标准。USB具有较高的传输速度:USB协议1.1支持低速(1.5 Mb/s)和全速(12 Mb/s)2种传输模式,而2.0协议支持的速度提高到480 Mb/s。他的数据传输速度比标准串/并口高,且具有使用简单、支持即插即用、易于扩展等特点。
USB接口采用4线电缆,其中2根信号线,1根电源线和1根地线,电源线可以向外设提供最大5 V,500 mA的电流。USB接口有4种传输方式:控制传输、批量传输、终端传输和同步传输,可以满足不同传输的需要。
3 USB接口的数据采集系统的设计实现
整个系统主要由4部分组成:USB接口芯片及外围电路、控制电路、数据缓冲电路和A/D转换电路。USB接口芯片选择了Cypress公司的EZ-USB 2131Q,该芯片内嵌8051控制器,因此整个系统以EZ-USB控制器为核心,由EZ-USB经控制电路实现对A/D转换电路和数据缓冲电路的控制,模拟信号转换后的数据送入数据缓冲器,当数据缓冲器存满之后,通知EZ-USB控制器,由主机取出数据。整个系统框图如图1所示。
3.1 USB接口电路设计
EZ-USB2131Q是CYPRESS公司生产的EZUSB系列芯片的一种,该芯片集成了USB外设接口所需的功能电路,其原理框图如图2所示。
AN2131Q具有24个I/O引脚,16 b地址总线和8 b数据总线,可以进行外部存贮器的扩展。
图2中的微处理器是一个具有快速执行周期和加强特性的8051核,其性能是标准8051的5倍,指令系统与标准的8051兼容。他使用内部RAM存储固件和数据,上电后USB主机通过USB总线将固件和外设特性描述符下载到RAM中,然后重新连接,按照描述符中定义的外设特性完成重列举。这使得USB有一个“软”解决方案,即USB外设的设计者可以随时设置和升级固件,不受端口数、缓冲大小、传输速度及传输方式的限制。
本系统中EZ-USB的外围电路主要包括EZ-USB芯片和PC机的接口电路、电源模块及EZ-USB 供电电路、E2PROM枚举电路(I2C总线上连接 E2PROM存储设备的PID,VID),其主要功能是保证EZ-USB芯片的正常工作并实现和PC机的通讯;功能电路是利用他的I/O引脚实现的,由于EZ-USB的 I/O是可编程的,通过寄存器设置PA口的高4位和PB口为输入,用来传输数据缓冲器中的12 b数据,利用 C口接收中断和产生控制信号。
EZ-USB为块传输、控制传输和中断传输提供了16个端点,在数据采集系统设计中使用了块传输方式,使用终端2-in来传输数据,允许的最大数据包为64 B;终端1-out和终端3-out输出控制信号。
3.2 A/D转换电路
系统中A/D转换芯片采用了MAXIM公司的MAX122,该芯片是12 b的高速的A/D转换器。在完全转换模式下,他的转换时间可以达到2.6μs,采样率为333 kS/s。MAX122有5种工作模式,在数据采集系统中,采用了模式2即连续转换模式。在这种模式下,每次转换需要13~14个时钟脉冲节拍,转换可以不间断地进行,但是需要提供开始转换使能信号,并且要保证使能信号和时钟信号同步,读信号和片选始终处于有效状态。数据输出使能信号一直有效,在转换结束时产生新的数据。
3.3 控制电路及数据缓冲电路
A/D转换器MAX122的采样率较高,得到的数据不能通过USB总线直接传送给主机,因此需要在A/D转换器和主机之间连接数据缓冲器,A/D转换器产生的数据先存储在缓冲器中,当缓冲器数据存满之后,通知主机取走数据。这里的数据存储器使用的是128 k×8的静态RAM,使用2片并接将数据线扩展成16 b。
控制电路是整个系统的核心,系统中采用一片Altera公司的EPM7128设计实现控制电路,该器件具有在线调试的功能,因此给设计带来了很大的方便。控制电路的原理框图如图3所示。
控制电路主要由以下部分组成:逻辑控制电路、时钟电路、三态缓冲电路、时序逻辑控制电路和地址发生器。逻辑控制电路接收USB控制器发出的控制信号,产生三态缓冲电路和时钟电路的控制信号;三态缓冲电路控制数据传输方向,是由MAX122传输到RAM,还是由RAM传输到USB控制器;时钟电路用 来产生MAX122的时钟信号CLKIN和转换开始信号CONVST,以及地址发生器的时钟信号;时序逻辑电路调整相关信号之间的同步,保证电路的时序正确;地址21发生器由计数器来实现,提供RAM的读写地址信号。
系统的工作过程如下:控制电路接收到开始采集信号时,控制三态缓冲电路的数据传输方向为A/D转换器转换的数据存入SRAM中,并且使时钟电路产生A/D转换器的转换开始信号CONVST、时钟CLKIN 信号和地址发生器的时钟信号及控制信号。CONVST和CLKIN信号还必须通过时序逻辑控制电路调整使2个信号同步,CONVST信号在下一个时钟信号(CLKIN)上升沿来到之前保持低电平至少50 ns,确保转换时间为13个时钟周期。并且地址发生器的时钟信号也要和CONVST信号同步,使A/D转换器产生的数据能存入正确的地址中。
控制电路接收到读数据的信号时,便产生控制信号,使三态数据缓冲器的数据传输方向是从SRAM到USB控制器,地址发生器产生的地址信号是SRAM的读地址。当地址发生器的计数器计数到1FFFFH(128 kb),即RAM的最后一个地址时,计数器发生溢出,产生溢出中断信号INT0和INT1到USB控制器的PC口的第2位和第3位(设置为8051辅助功能位),当USB接收到中断信号之后,在中断服务程序中,进行相应的读处理。
SRAM的读/写是相互独立的,由地址发生器产生地址信号,地址发生器由计数器来实现。当开始采集数据时,对RAM进行写操作,地址发生器产生的地址信号清0,同时必须使能RAM的写使能,在写使能低有效时,数据就写入SRAM。时钟信号和A/D转换器的转换时钟相一致,每产生一个数据,地址自动加1。当采集结束时,主机发出命令取出数据,对RAM进行读操作,当第一个读脉冲到达时,地址发生器产生的地址信号清0,时钟信号和USB控制器读的周期相一致,每读一个字节,地址自动加1。
4 系统驱动程序设计
USB接口的数据采集系统其系统软件包括3个方面:USB外设固件(Firmware)、主机操作系统上的用户驱动程序和用户操作界面的应用程序。
USB外设固件框架是由EZ-USB软件开发包中提供的,根据用户的需要填写其中的函数,这些函数主要包括:
TD_Init()(用于初始化Firmware的全局状态变量);
TD_Poll()(用于调用实现外设主要功能的用户子程序)。
这2个函数是用户一定要填写的。
数据采集系统中TD_Init()主要包括PA,PB和PC的初始化以及其他用到的寄存器的初始化。
TD_Poll()主要包括控制信号和数据传输的实现。初始化时,必须按照一定的顺序对寄存器进行操作。
另外,还必须注意INT0和INT1中断响应程序的 处理。
EZ-USB的用户驱动程序包括下载Fireware的驱动程序和功能驱动程序,前者称为ezloader,后者称为通用驱动程序GPD。
用户应用程序的开发就是基于通用驱动程序GPD的接口进行的。用户操作界面的应用程序使用VC++6.0来实现,在应用程序中对EZ-USB硬件进行读写调用CreatFile,CloseFile,ReadFile,WriteFile,IOControl等对设备直接操作的函数。
5 结 语
本文系统介绍了基于USB接口的快速12 b数据采集系统,完成了软硬件的设计工作。由于采用了USB接口,使数据采集卡可以即插即用,弥补了传统采集板卡插拔困难的不足,目前该系统工作稳定,采样的精度和数据传输的速度都达到了预期的目的,已经用于测试测控系统中,效果很好。
参考文献
[1]Compaq,Intel,Microsoft,NEC,Universal Serial Bus Specification,Revision 1.1 Sep 23, 1998.
[2]Cypress EZ-USB Technical Reference Manual Version 1.9,May 2000.
[3]Chris Cant.WDM设备驱动程序开发指南 [M].北京:机械工业出版社,2000.
[4]颜荣江.EZ-USB2100系列单片机原理、编程及应用[M].北京:北京航空航天大学出版社,2002.