基于USB的LDT实时数据采集系统设计
激光多普勒测量技术(LDT)具有精度高、动态响应快、测量范围大,非接触测量的特点,成为气体、流体测量的强有力的工具。近年来,它在固体测量领域得到了长足的发展,被广泛应用于固体表面的粗糙度、运动速度场、位移场、振动场等的精密测量。它的迅猛发展对信号的采集提出了越来越高的要求:高动态范围、低功耗、便于携带、能与计算机进行实时高速数据传输。针对这种要求,提出了一种基于USB的LDT实时数据采集系统。
USB(Universal Serial Bus)总线是由Intel,Com-paq,Microsoft,IBM,DEC,Northern Telecom等7家公司共同研制的一种针对PC的串行接口标准。它的热插拔、即插即用、连接简单、高带宽、可总线供电等优点几乎使其成为目前计算机外设的首选通信接口。
该文依据的是USB1.1协议规范,总线一共4根:5V电源线、地线及两根以差分形式驱动的数据线D+、D-。连接设备的电缆最长可达5 m,通过USB集线器以菊花链拓扑形式实现多达5级的拓扑连接,可外接127个USB设备。USB总线可以提供5V、500mA电流,并支持节约能源的挂机和唤醒模式。它规定的12Mbps传输速率,与一个标准的串行口相比,大约快出100倍,与一个标准并行口相比,大约快出10倍。
1 系统硬件设计
1.1 硬件总体结构
USB实时数据采集系统硬件如图1-1所示。DSP控制器TMS320F240内部的模数转换模块包括两个独立的采样/保持电路和两个10位双积分型的转换器,16路模拟输入通道,可同时转换2路信号。
16路模拟输入信号由多路模拟开关选择被检测信号接入A/D转换器,A/D转换的结果经TMS320F240写入FIFO存储器。
TMS320F240通过信号线IS选通USBN9603,将其作为DSP的I/O口访问。USBN9603的D+脚外接一个1.5K的上拉电阻,使其工作在全速方式下,USBN9603的MODE1、MODE2均接至地电位,设定USBN9603为非总线复用方式。操作时序是将地址线A0置高,将欲读写的地址从数据线D0~D7写入,然后将A0置低,读写D0~D7中的数据。
由DSP对A/D转换的结果进行FFT分析、小波分析等,并通过USBN9603与主机交换数据,接收控制命令。
1.2 USBN9603控制器
目前市场上有两类USB接口控制器:一类是带USB接口的MCU,如Cypress的CY7C6xxxx第列、Intel的930xx系列等,嵌入了8051系列微控制器。其系统结构和指令集大家都比较熟悉,便于硬件开发和软件编程,然而开发工具较昂贵。另一类是专用接口控制器,如朗讯公司的USS820、国家半导体公司的USBN960x、PHILIPS公司的PDIUSBD11等,都留有与MCU、DSP的接口,搭配灵活。
USBN9603是一个支持USB1.1协议的节点控制器。具有静态模式和异步唤醒功能;5V/3.3V供电;具有一个双向的控制节点Endpoint0、3个发送端点、3个接收端点;具有两种模式的8位并行接口(复用模式和非复用模式);改进的DMA传输方式;串行接口引擎SIE,主要负责时钟恢复、EOP检测、位填充、位解填充、CRC编解码、组帧、拆帧、包类型识别及节点状态识别等。
2系统软件设计
USB系统软件设计分为3个部分:USB外设端的固件、主机操作系统上的客户驱动程序以及应用程序。应用程序通过客户驱动程序与系统USBDI(USBDevice Interface)进行通信,由系统产生数据的传送动作,固件则响应各种来自系统的标准要求,完成各种数据的交换工作和事件处理。
2.1 固件(firmware)设计
固件是指被固化到TMS320F240中的程序。它完成两个任务:控制A/D的采样和通过USB控制器与主机通信。USB有控制、中断、批量、等时等4种数据传输模式。其中控制传输用于传送一些系统控制命令,每个USB设备都必须有控制传输的通道;中断传输适用于鼠标等人工输入的设备使用;等时传输适用于对数据实时性要求较高的场合,如视频、音频数据,但其设备和进程的同步设计有较大难度,且它不能提供错误检查机制;批量传输能提供错误检查机制,适用于打印机、调制解调器等不定期传送大量数据的中速设备。
系统采用两种传输方式:控制传输和批量传输。控制传输用来实现位于主机上的USB总线驱动程序(USBD模块)以及编写的功能驱动程序对设备的各种控制操作;批量传输用来完成将采集数据从设备传送到主机。
2.2 驱动程序设计
USB系统驱动程序采用分层驱动模型:USB设备驱动程序、USB函数层。其中函数层由通用串行总线驱动程序模块(USBD)和主控制器驱动程序模块(HCD)组成。它由Windows98提供,负责管理USB设备驱动程序和USB控制器之间的通信;加载及卸载USB驱动程序;与USB设备通用端点建立通信来执行设备配置、数据与USB协议框架和打包格式的双向转换任务。
- 通用串行总线架构(USB)的目的主要基于以下三方面考虑(12-15)
- 通用串行总线(USB)电缆隔离器电路(12-15)
- 解决通用串行总线(USB)控制器有感叹号(12-14)
- USB通用串行总线内部结构解析(12-14)
- 基于ARM Cortex3的低功耗无源USB-CAN透明传输的实(10-08)
- USB数据通信接□模块的通用串行总线简介(10-17)