基于USB的数据采集系统的研究与设计总结

2020-03-02 04:08:17 来源:范文大全收藏下载本文

基于 USB 的数据采集系统的研究与设计

目前,市场上有几百种 USB 设备,包括 USB 集线器、打印机、扫描仪器、存储器、数码相机和调制解调设备等。在数据采集系统中应用 USB2.0 接口总线,首先计算机系统要支持 USB2.0 协议。目前计算机几乎都支持 USB1.1 协议,如果支持 USB2.0 协议,那么系统的 USB 主机就必须包含USB2.0 根集线器,用于给系统提供一个或多个设备端口;同时,系统还必须安装相应的驱动程序。

USB总线的物理连接和电气特性

USB数据传输采用四根电缆,其中两根(D+、D-)是用来传送数据的串行通道,另两根(VBUS、GND)是符合标准的电源线,为下游的USB设备提供电源。其中,D+、D-是串行数据通信线,它支持两种数据传输速率,对于高速外设,USB以全速 12Mbps或高速 480Mbps传输数据;对于低速外设,USB则以 1.5Mbps的传输速率传输数据。USB总线会根据外设情况在不同的传输模式中自动地转换。VBUS通常是+5V电源,GND是地线。

USB 的电源

USB 的电源主要包括两方面:

电源分配:即 USB 的设备如何通过 USB 总线获得主机提供的电源; 电源管理:即通过电源管理系统,USB 的系统软件和设备如何与主机协调工作。

(1)电源分配

每段 USB 都在电缆上提供了数量有限的电源。主机向与它直接相连的 USB 设备提供电源,并且每

个 USB 设备都有自己的电源。那些完全依靠电缆提供能源的设备称作“总线功能”设备。相反,那些有

另外电源的设备称作“自供电”设备。而且,集线器也可为连接在它上面的 USB 设备提供电源。

(2)电源管理

USB 主机与 USB 系统有相互独立的电源管理系统。USB 的系统软件和主机的电源管理系统相互作用,处理系统的电源事件,如挂起和恢复等。另外,USB 设备还有额外的功耗管理特性,允许软件对他们进行功耗管理。 USB 总线拓扑结构

USB将USB设备和USB主机连接在一起。USB的物理互连是一个分层的星形拓扑结构,集线器在每个星形的中心。每段线路都是主机与集线器或功能设备之间,或者集线器与另一个集线器或功能设备之间的点对点连接 USB通信流

USB 在主机的软件和 USB 功能设备之间提供了通信服务。功能设备根据不同的客户软件与功能设备的相互作用对通信流有不同的要求。通过将 USB 功能设备的各种通信流分离,USB 能更好地全面利用总线。通信流利用总线访问来完成主机和功能设备之间的通信。通信流在设备的端点中止,设备的端点可以

识别所有通信流。

USB 逻辑设备对 USB 系统来说是一个端点的集合。接口是端点聚集而成的端点集,是功能设备的体现。USB 系统软件用默认的控制管道管理设备。客户软件用管道束(与端点集相关)来管理接口。客户软件要求数据通过USB在主机上的缓冲区和USB设备上的端点之间移动。而在 USB 上移动之前,由主机控制器(或者 USB 设备,由传输方向决定)将数据进行封装。当总线访问是在 USB 上移动数据包时,主机控制器也协同操作。

设备端点(Device Endpoint)

端点是 USB 设备唯一可识别的部分,是主机和设备间通信流的终点,每个 USB 逻辑设备都由独立端点集(这个集合就是接口)组成。当设备连接时,系统为每个逻辑设备分配了唯一的地址,设备的每个端点在设计时就给定了一个由设备决定的唯一的标识符—端点号。每个端点都有由设备决定的数据流方向。设备地址、端点号和方向的组合允许唯一指定一个端点,每个端点都单一的连接,支持一个方向的数据流输入(从设备到主机)或输出(从主机到设备)。

管道

USB管道是设备端点和主机软件之间的联系。管道可以通过存储器的缓冲区在主机软件与设备端点

之间传输数据。有两种相互独立的管道通信模式:

1.流:在管道中传输的数据没有 USB 定义的结构。

2.消息:在管道中传输的数据有某些 USB 定义的结构,只能用于控制传输。

帧和微帧(Frames and Microframes)

USB 工作在全速/低速状态时,主机控制器每隔 1 毫秒发送一帧数据;而工作在高速状态时,主机控制器每隔 125 微秒就发送一帧数据。一帧(或微帧)数据可包含几种事务。USB 数据传输类型是从 USB 系统软件的管理角度来描述的。传输(Transfer)是指在客户软件和它的功能模块之间的一个或多个信息传输的总线事务。传输类型决定于客户软件和它的功能模块之间的数据流特性。USB 定义了 4 种传输类型,以满足在总线上进行不同类型的数据的传输需要。

USB数据传输类型

批量传输用于传输突发的大量的数据,全速模式时以 8,16,32 或 64 字节(高速模式时是 512 字节)的信息包传送。由于对出错的数据自动的进行重发,批量数据可确保无误发送。

控制传输至少有两个阶段:建立阶段和状态阶段。控制传输也可以根据不同的情况选择是否需要在建立阶段和状态阶段包含一个数据阶段。

中断传输主要用于定时查询设备是否有中断数据要传输,是一种主机定时侦听设备。设备的端点

模式器的结构决定了它的查询频率,在 1-255ms 之间。中断传输在高速时的数据载荷可达 1023 字节,在全速时的载荷量小于 64 字节。中断传输主要应用于键盘、操纵杆和鼠。

同步传输用于保证时间优先的数据流,如音频和视频数据流,传输的时间对于数据来说是非常必要的条件,在全速模式时,一个同步包包含 1023 字节;在高速模式时,一个同步包包含 1024 字节。

数据采集系统的硬件

数据采集系统在总体上分为硬件和软件两大部分。数据采集系统的硬件部分

主要包括芯片的选择、数据采集和传输电路以及电源转换电路等。数据采集系统的软件部分主要由三部分组成:USB 固件程序(Firmware)、USB 设备驱动程序以及应用程序;三部分程序之间相互协作来完成整个采集系统的功能。

USB芯片选择

目前 USB 芯片大致分为 5 大类型:

1) 单独运作的 USB 接口芯片;

2) 内含 USB 单元的微处理器(MPU);

3) 特定的接口转芯片,如 USB 转 RS-232 或 USB 转 ATA/ATAPI 等;

4) PC 端或主机端的 USB 控制器;

模数转换芯片的选择

目前,随着数据采集应用的日益普遍,为了满足不同场合和分辨率的要求,模数转换芯片也是种类繁多。选择 A/D 转换芯片需要考虑器件本身的性能和具体的应用要求。选择 A/D 转换芯片要考虑一些参数指标,如芯片精度、芯片的转换速度和芯片的转换量程等。

1) 精度:与系统测量的信号范围有关,但估算时要考虑到其他因素,转换器位数应该比总精度要求的最低分辩率高一位。常见的 AD 器件有 8 位,10 位,12 位,14 位,16 位等。

2) 速度:应根据输入信号的最高频率来确定,保证转换器的转换速率要高于系统要求的采样频率。

3) 模拟信号类型:通常 AD 器件的模拟输入信号都是电压信号,而 DA 器件输出的模拟信号有电压和电流两种。

为了匹配 USB2.0 的高速传输特性,满足广泛的实际需要,本设计选用的是采样速度快、分辨率高的 A/D 转换器 MAX125。

数据采集系统的固件程序设计

固件程序主要负责完成两项任务:一是作为驻留在设备中的内部应用程序,响应主机的列举请求,实现配置设备并将设备的配置信息(如支持哪些传输类型和端点)告知主机,进而为主机和设备之间进行数据通信做好准备工作:二是作为整个设备的控制中心,根据用户应用系统的特定要求,实现对外围设备的具体控制。USB控制器芯片借助CPU执行固件程序来控制芯片的活动,以实现数据传输功能。固件的设计就是使在USB总线上的传输能获得快速的、有效的数据传输速度。它的操作方式与硬件联系紧密,包括USB设备的连接、列举、重列举、USB协议和中断处理等。

列举和重列举

列举和重列举是 USB 设备的一个非常重要的机制。是在初始阶段必须经历的阶段,只有这两个过程成功的完成,USB 设备才可能实现系统中设计的功能,否则,设备只能是一个主机不能识别的最原始的设备,或者是功能不完全的设备。

设备端点的配置

端点配置是在TD_Init()函数中实现的。USB数据通过端点缓冲区进入FX2 和从FX2 中取出。为了保证 480Mb/s高速的传输速率,外部逻辑经常在没有FX2 内嵌的CPU参与的情况下,直接与端点FIFO交换数据。USB设备启动时,要配置端点使它获得足够的带宽和FIFO深度,使数据传输更加平稳和高速。

当应用程序要求CPU处理外部逻辑和USB之间的数据流时(或者根本就没有连接外部逻辑时),固件可以将端点缓冲区作为RAM块或(使用特定的自动增量指针)FIFO访问。

设备驱动程序的组成

驱动程序是一些例程的集合,它们被动的存在,等待主机系统软件(PnP管理器、I/O管理器、电源管理器等)来调用或激活它们。WDM驱动程序的功能模块基本由五个部分组成:入口例程,即插即用例程,分发例程,电源管理例程和卸载例程。

1.入口例程:处理驱动程序的初始化;

2.即插即用例程:处理 PnP 设备的添加,删除和停止;

3.分发例程:处理用户应用程序发出的各种 I/O 请求;

4.电源管理例程:处理电源管理请求;

5.卸载例程:处理驱动程序的卸载。

USB 设备驱动程序的开发

目前,用于开发设备驱动程序的工具大概有以下几种:

1.直接使用Windows DDK:这种方法开发难度大,而且有很多烦琐的工作要作,大部分都是通用的基础性的工作,但是,使用这种方法,需要对WDM驱动程序的整体结构有一个很好的认识和把握。

2.使用Driver studio:工具难度会低一些,工具软件己经作了很多基础性的工作。也封装了一些细节,使用者只需要专心去执行需要的操作。但由于封装的问题,可能会带来一些bug,有可能导致项目的失败。

3.使用Win Driver:几乎没有难度(从开发驱动的角度)。很容易,但只能开发硬件相关的驱动,事实上所写的只是定制和调用了它提供的通用驱动而已,工作效率不是很高。但开发花费的时间很少。

嵌入式生产数据采集系统研究论文

小水电信息数据采集监控系统研究论文

基层农业统计数据采集与处理系统研究

数据采集系统设计研究论文

野外数据采集与巡护信息系统

数据采集论文:基于USB接口技术实现在线签名的数据采集和通信

农业数据采集体系设计思考论文

临夏州气象基础数据支撑系统研究

单位数据采集系统用户手册

团员数据信息采集表

《基于USB的数据采集系统的研究与设计总结.doc》
基于USB的数据采集系统的研究与设计总结
将本文的Word文档下载到电脑,方便收藏和打印
推荐度:
点击下载文档
下载全文