基于USB的数据采集系统的设计与实现--总结

更新时间:2023-12-10 08:38:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

基于USB的数据采集系统的设计与实现

USB总线拓扑结构

一个USB体系由USB主机、USB集线器和USB功能设备组成。在一个USB系统中只可能有一个USB主机,相对计算机主机系统而言,USB主机也被称为USB主机控制器。USB主机控制器是硬件、软件的综合体。USB主机控制器同时包含一个根集线器,根集线器是一个USB系统的最初连接点,用以提供向下的更多的连接点。 USB的通信协议

USB的协议层描述了USB主机与USB外设交互的语法和协议,从中定义了字段、包、事务和传送的结构。协议同时还规范了数据链路的建立、正常或异常传送处理的动态过程。 信息包

包(Packet)是USB系统中信息传输的基本单元,所有数据都是经过打包后在总线上传输的。USB包由五部分组成,即同步字段 (sYNC)、包标识符字段(PID)、数据字段、循环冗余校验字段(CRC)和包结尾字段(EOP)。 常用的几种包格式 1.起始(SOF)封包

起始封包属于令牌封包的一种,但具有独自的PID类型名:SOF。这个封包常用于等时传输,并不应用于低速设备。 2.令牌(Token)封包

令牌封包由于USB的数据交换是由PC主机端所激活的,所以在每一个数据交换中必须以SYNC、PID、ADDR、ENDP与CRCS这5个数据域组合而成的令牌封包为起始。 3.数据(Data)封包

数据封包含有4个域:SYNC、PID、DATA与 CRC16。DAI…A数据域的位值是根据USB设备的传输速度及传输类型而定,且须以8字节为基本单位。也就是,若传输的数据不足8字节,或传输到最后所剩余的也不足8字节,仍须传输8字节的数据域。

4.握手(Handshake)封包

握手封包仅包含SYNC和一个PID数据域。 事务处理

事务处理是USB总线上数据传输的基本单位,主机和USB设备间的一次通信可能需要使用多个事务处理。事务处理由三个阶段组成:令牌阶段、数据阶段和握手阶段,其中,数据阶段和握手阶段是可选的。根据所含令牌包的种类,USB中的事务处理可分为七种类型:IN事务、OUT事务、SETUP事务、PING事务、SOF事务、SPLIT事务和PRE事。 USB传输方式

当USB插入USB总线时,USB控制器会自动为该USB设备分配一个数字来标示这个设备。另外,在设备的每个端点都有一个数字来表明这个端点。USB设备驱动向USB控制器驱动请求的每次传输被称为一个事务(Transaction),事务有四种类型,分别是 BulkTransaetion、 ControlTransaetion、 InterruptTransaction

和 IsoehronousTransaetion。每次事务都会分解成若干个数据包在USB总线上传输。每次传输必须历经两个或三个部分,第一部分是USB控制器向USB设备发出命令,第二部分是USB控制器和USB设备之间传递读写请求,其方向主要看第一部分的命令是读还是写,第二部分有时候可以没有。第三部分是握手信号。 基于USB的数据采集系统的整体设计

基于USB总线数据采集系统包括两部分:系统的硬件设计和软件设计。硬件部分完成数据采集功能,并将采集的数据通过USB接口传送给PC机。软件部分包括采集设备固件程序、设备的驱动程序和用户应用程序。整体设计思路为:用户应用程序通过设备的驱动程序与采集设备固件程序进行通信,进行采样参数配置并控制采样的启动和停止,采集设备固件程序根据配置对刀D芯片进行参数配置,启动采样并且将刀D芯片采集到的数据传递给用户应用程序,界面应用程序对采集到的数据进行实时显示。

基于USB数据采集系统的关键性能指标

和其他的采集系统一样,对于基于USB的数据采集系统,也同样关心系统的一些性能指标,主要包括:

1.接口方式:USB数据采集系统采用USB总线接口,应该同时兼容 1.1和2.0,但 1.1以下需要对采样率进行限制。 2.输入通道:同时支持的通道数。

3.测量的信号:工业采集中的采集信号多种多样,有电压、电流、气压等。 4.输入频带:对测量信号的频带要求。

5.采样率:是数据采集系统的重要参数,直接表明系统的采集性能。 6.采样分辨率:采样数据的精度,也是数据采集系统的重要指标之一。 基于USB数据采集系统的硬件构成

基于USB的采集系统硬件主要由三部分构成:USB接口模块、A/D控制模

块和完成。A/D转换模块。而USB接口模块和A/D控制模块通常有一块控制器芯片和其他接口的数据采集系统相比,系统不需要电源模块,而采用USB供电方式。

基于USB数据采集系统的软件构成

基于USB的采集系统软件分为三个部分:采集设备固件程序、设备驱动程序和用户应用程序。

基于USB的数据采集系统硬件设计 USB接口芯片选择

随着 USB的应用日益广泛,各个开发商也相继推出了各自的符合USB相应协议的USB控制器芯片,尽管各种芯片都是严格遵循USB的相关协议,但不同的厂商推出的产品还是有着一定的性能和用途差异,目前市场上主要有三类:专门为USB设计的芯片、内嵌通用微控制器的USB控制芯片、需要外接微控制器的USB控制芯片。

基于USB的数据采集系统软件设计

基于USB的数据采集系统软件部分总共分为三块:采集设备固件程序、采集设备驱动程序和用户应用程序。 采集设备固件程序

采集设备固件程序是指运行在STM32F103C微控制器上的应用程序。其主要功能是驱动硬件,完成和PC机的数据交互,驱动采样芯片,完成采样过程和采样数据上传。

USB通信模块

USB通信模块用于完成和PC之间的USB数据通信[25〕,其具体功能描述和对 外接口定义如下:

(l)完成一个用户自定义USB类,使得操作系统能够发现这个设备,并与之建立连接,通过接口 voidUSBModuleInit(void)对外提供。

(2)通过控制端点0接收PC端发送的命令数据,并保存到全局缓冲区。

(3)通过同步传输端点l向PC机上传采集数据,在 voidUSBMoul走Sendnata(vo记)中将采样数据全局缓冲区中的数据装入USB发送缓冲区。 采集设备驱动程序

当Windows操作系统探测到有新的设备接入时,就会依据设备的配置描述符的调用相应的设备驱动程序。Windows本身提供了一些常见的标准USB外围设备的驱动程序,在进行USB设备开发的工作中,有两种选择,一种是将你的USB设备配置成一些标准的USB设备,例如HID类或者 MassStorage类,另外一种是开发自己的USB设备驱动,后一种选择灵活性更大[28],在本文系统中选用的就是开发自己的USB采集设备驱动。 用户应用程序

对于基于USB的数据采集系统,用户应用程序是必须的。一般用户应用程序必须的功能是采样控制、采样数据读取以及数据显示,其他功能(例如数据存储、数据分析)可以根据应用系统的需要进行定制[34]。本文将实现一个基本功能集的用户应用程序。C一在USB通信、图像处理和数据处理方面具有得天独厚的优势,所以选择了 VC++6.0作为应用程序的开发平台。

本文来源:https://www.bwwdw.com/article/rg95.html

Top