基于usb的数据采集系统的研究与设计本科毕业论文(编辑修改稿)内容摘要:

层就不能运转,第 7层只能允许连接功能设备。 一个 USB 主控制其最多可连接 127 个外设(包括根集线器)。 USB 通信流 USB 在主机的软件和 USB 功能设备之间提供了通信服务。 功能设备根据不同的客户软件与功能设备的相互作用对通信流有不同的要求。 通过将 USB 功能设备的各种通信流分离, USB 能更好地全面利用总线。 通信流利用总线访问来完成主机和功能设备之间的通信。 通信流在设备的端点中止,设备的端点可以识别所有通信流。 如图 25 所示为 USB 主机 /设备详细示意图。 图 25 USB 主机 /设备详细示意图 河南师范大学本科毕业论文 6 主机和 USB 设备物理上的简单连接要求大量的层和实体之间相互作用。 USB 总线接口层提供主机和设备之间的物理 /信号 /包的连通性。 USB 设备层是 USB 系统软件所具有的观点,也是 USB 系统软件对设备执行普通 USB 操作的层。 功能层通过合适的匹配的客户软件层向主机提供通信的能力。 USB 设备和功能层在他们的层内都有一个逻辑通信的情况,但是实际上他们是 通过 USB 总线接口层完成数据传输的。 USB 逻辑设备对 USB 系统来说是一个端点的集合。 接口是端点聚集而成的端点集,是功能设备的体现。 USB 系统软件用默认的控制管道管理设备。 客户软件用管道束(与端点集相关)来管理接口。 客户软件要求数据通过 USB 在主机上的缓冲区和 USB 设备上的端点之间移动。 而在 USB 上移动之前,由主机控制器(或者 USB 设备,由传输方向决定)将数据进行封装。 当总线访问是在 USB 上移动数据包时,主机控制器也协同操作。 图 26 USB 通信流 河南师范大学本科毕业论文 7 图 26 所示为通信流在端点与主机端的存储器缓冲区之间的管道传输。 主机上的软件通过一组通信流与逻辑设备通信。 这组通信流使设备的通信要求与 USB 提供的传输特性有效地匹配 [10]。 设备端点 端点是 USB 设备唯一可识别的部分,是主机和设备间通信流的终点,每个 USB 逻辑设备都由独立端点集(这个集合就是接口)组成。 当设备连接时,系统为每个逻辑设备分配了唯一的地址,设备的每个端点在设计时就给定了一个由设备决定的唯一的标识符 — 端点号。 每个端点都有由设备决定的数据流方向。 设备地址、端点号和方向的组合允 许唯一指定一个端点,每个端点都单一的连接,支持一个方向的数据流输入(从设备到主机)或输出(从主机到设备)。 USB 系统的输入输出都是针对主机而言,比如说定义了设备的一个输出端点,这里所说的输出就是指数据从主机传输到 USB 设备,而不是从设备输出。 而输入端点,存放的是要从 USB 设备传到主机的数据,这些数据对主机来说是要输入的,所以就称为输入端点,尽管它在设备上。 所有的 USB 设备都要求实现用端点 0 作为输入和输出端点的默认控制方式。 USB 系统软件用这个默认的控制方式对逻辑设备进行初始化 和一般的操作(比如配置逻辑设备),就像默认的控制管道一样。 通过默认的控制管道可以访问设备的配置信息,并允许对一般的 USB 状态和控制进行访问。 功能设备在执行的过程中可能需要额外的端点。 除了默认管道所需的端点之外,其它端点只有在配置为设备的正常部分后才可以使用。 管道 USB 管道是设备端点和主机软件之间的联系。 管道可以通过存储器的缓冲区在主机软件与设备端点之间传输数据。 有两种相互独立的管道通信模式 [11]: 1. 流:在管道中传输的数据没有 USB 定义的结构。 2. 消息 :在管道中传输的数据有某些 USB 定义的结构,只能用于控制传输。 由两个端点号为 0 的端点组成的管道称为默认管道,这个管道在 USB 设备上电或接收到一个总线复位信号后一直可用,而其他管道在 USB 设备配置后才开始存河南师范大学本科毕业论文 8 在。 USB 系统软件用默认的控制管道决定设备的识别和配置要求并配置设备。 在设备配置后默认控制管道也可以由特定的设备软件使用, USB 系统软件保留默认控制管道的所有权,并协调其他客户软件对管道的使用。 客户软件程序通常通过 I/O 请求包( IRP)向管道请求数据传输,完成之后客户软件等 待或者接收通报。 如果需要,客户软件程序可以使管道返回所有未处理的IRP。 当与 IRP 相关的总线事务成功完成或者因为错误结束时,客户软件程序都会收到 IRP 的完成报告。 IRP 可以要求多数据有效载荷在总线上传输客户数据。 这个多数据有效载荷IRP 的数据有效载荷是要求的最大包的大小,而最后的一个数据有效载荷是所有IRP 的剩余部分数据的大小。 对于没有填满 IRP 数据缓冲区的短输入信息包 IRP(即小于数据有效载荷的最大值),根据客户程序的要求,可能是以下两种含义中的一种: 1. 客户程序可能期望 IRP 中数 据总量的大小可变。 在这种情况下,不能填满IRP 数据缓冲区的短信息包可以只作为指出 “数据单元结束”的带内界定符。 此时,这个 IRP 应当能无错误地取消,并且主机控制器应该处理下一个 IRP。 2. 客户程序可能期望一个指定大小的数据总量。 在这种情况下,没有填满 IRP 数据缓冲区的短信息包是一个错误指示器。 这时, IRP 应该被取消,管道应该被终止,并且任何和该管道有关的挂起的 IRP 也应该被取消。 帧和微帧 USB 工作在全速 /低速状态时,主机控制器每隔 1 毫秒发送一帧数据;而工作在高速状态时,主机 控制器每隔 125 微秒就发送一帧数据。 一帧(或微帧)数据可包含几种事务。 图 27 表示帧和微帧的产生 图 27 帧和微帧的产生 河南师范大学本科毕业论文 9 USB 数据传输类型 [12] USB 数据传输类型是从 USB 系统软件的管理角度来描述的。 传输( Transfer)是指在客户软件和它的功能模块之间的一个或多个信息传输的总线事务。 传输类型决定于客户软件和它的功能模块之间的数据流特性。 USB 定义了 4 种传输类型,以满足在总线上进行不同类型的数据的传输需要。 批量传输 批量传输用于传输突发的大量的数据,全速模式时 以 8, 16, 32 或 64 字节(高速模式时是 512 字节)的信息包传送。 由于对出错的数据自动的进行重发,批量数据可确保无误发送。 当主机准备接收批量数据时,它发出一个 IN 令牌包。 设备端点通过返回一个数据包,或者如果不能返回数据,则返回 NAK 或者 STALL 握手包作为应答。 NAK 表示设备暂时不能返回数据,而 STALL 表示端点永久地被停止,需要 USB 系统软件的干预。 如果主机接收到有效的数据包,它就通过一个 ACK 握手包响应。 如果主机在接收数据时检测到错误,它将不返回任何握手包给设备。 当主机准备传 输批量数据时,它首先发送一个 OUT 令牌包,之后再发送数据包(或者是 PING 特殊令牌包)。 如果设备无错地接收到数据包,那么设备将返回下列三个握手包中的一个(高速设备,也可能是第四种握手包 NYET): 1) ACK:表示数据包被无错地接收,通知主机可以发送下一个包。 2) NAK:表示数据被无错地接收,但是由于功能设备暂时的条件(比如说,缓冲区满了)而阻止它接收数据,因此主机应该重发数据。 3) STALL:如果端点被停止,则返回 STALL 以告诉主机不要重试传输,因为设备上有错误条件。 如果接收的 数据包有 CRC 或者位填充错误,那么将不返回任何握 河南师范大学本科毕业论文 10 手包。 批量传输格式如图 28 所示。 控制传输 控制传输至少有两个阶段:建立阶段和状态阶段。 控制传输也可以根据不同的情况选择是否需要在建立阶段和状态阶段包含一个数据阶段。 如图 所示的控制建立( SETUP)事务。 在建立阶段, SETUP 事务用于将信息发送到功能设备的控制端点。 如图 29 说明了建立事务的格式。 收到 SETUP 包的设备必须接收 SETUP 的数据并用 ACK 应答,但是如果数据损坏,则丢 弃数据并且不返回握手信息。 而且如果有数据阶段,则数据的数量和方向必须在紧接着的下一个阶段指定。 如果数据量超过了先前确定的数据包的大小,数据将在几个事务中分别传输。 控制传输的数据阶段由一个以上的 IN 或者 OUT 事务组成,并遵守与批量传输同样的协议规则。 数据阶段中的所有事务都必须有相同的方向,即同为 OUT 或者同为 IN。 图 28 批量传输 图 29 控制传输的 SETUP 事务 河南师范大学本科毕业论文 11 控制传输的状态阶段是控制事务的最后一个事务,并且也遵循与块事务同样的协议序列,状态阶段是以相对前面的数据流方向而变化的,并且总是使用 DATA1 PID。 例如,如果数据阶段 由输出事务构成,则状态阶段是单一的输入事务。 如果控制传输没有数据阶段,那么状态阶段由输入事务构成。 图 210 说明了控制传输事务读写顺序以及数据时序位和控制读写序列的数据 PID 类型。 中断传输 中断传输主要用于定时查询设备是否有中断数据要传输,是一种主机定时侦听设备。 设备的端点模式器的结构决定了它的查询频率,在 1255ms 之间。 中断传输在高速时的数据载荷可达 1023 字节,在全速时的载荷量小于 64 字节。 中断传输主要应用于键盘、操纵杆和鼠标。 中断传输事务可由 输入或输出构成。 一收到输入标记,设备便可返回数据、 NAK 或 STALL。 如果端点没有新的中断信息可供返回,设备在数据时相里返回 NAK 握手包。 如果中断端点的停止特征被设置了,设备将返回 STALL 握手包。 如果有中断等待的事务,设备在数据包中返回中断信息。 作为对数据包接收的反应,如果主机无错的被接收数据,则发出 ACK 握手包;如果数据包损坏,则不返回握手包。 图 说明了中断传输格式。 图 210 控制读写序列 河南师范大学本科毕业论文 12 中断传输 同步传输 同步传输用于保证时间优先的数据流,如音频和视频数据流,传输的时间对 于数据来说是非常必要的条件,在全速模式时,一个同步包包含 1023 字节;在高速模式时,一个同步包包含 1024 字节。 在每一个 USB 帧中,为同步传输分配了一定 USB 带宽。 为了减少内部的事务操作,同步传输没有握手信号,也不具有重发机制,如图 212 所示。 同步传输不使用数据轮换位机制,在全速模式时,同步数据只使用 DATA0 PID 标志;在高速模式时,同步数据使用 DATA0、 DATA DATA2 和 M DATA。 在全速模式时,对于每个端点,一帧中只有一个同步包;在高速模式时,对于每个端点,一个微帧中就可 以包含多个同步包。 四种传输方式的总结 图 212 同步传输 河南师范大学本科毕业论文 13 控制传输在所有的 USB 设备中都需要使用,因为主机对 USB 设备的配置命令都需要通过控制传输来传送,而设备的描述信息也需要通过控制传输传递给主机。 至于同步传输,应用于实时性要求较高,而准确性要求较低的场合,比如视频设备要求图像不能有明显的滞后,而如果传输的某些字节出错,人眼也无法察觉,这时就使用同步传输来传送视频数据流。 中断传输和批量传输都属于异步传输方式,他 们的主要区别在于传输数据的速度不一样,一般来说,批量传输比中断传输要快得多。 本设计是采用批量传输的方式进行传输的。 USB 总线信号环境 USB 串行数据是用 NRZI( NonReturntoZero Inverted,不归零翻转)进行数据的编码,编码过程是在通过 USB 数据线进行传输之前进行的。 图 213 就是在通过 USB 数据线进行信息传输时包含的步骤。 NRZI 编码首先由 USB 代理进行,它负责发送信息。 接下来,编码后的数据被放入 USB 数据线,这是由差分驱动程序完成的。 接收器放大传来的差分数据,并把 NRZI 数据发送到解码器。 对数据进行 编码和采用差分信号 进行传输有助于确保数据的完整性和消除噪声干扰。 NRZI 数据编码 在 NRZI 编码中,“ 1”表示电平不变,而“ 0”表示电平的变化。 图 214 所示的是一个数据流和它相对应的 NRZI 编码。 上面的图的高电平表示数据线上的 1 状态,下面的表示的是 NRZI 编码。 连续的一串 0 使 NRZI 数据在每个位周期都触发,而连续的一串 1 则导致数据中长期都没跳变。 图 213 采用 NRZI 编码和差分信号的传输方式 河南师范大学本科毕业论文 14 图 NRZI 数据编码 位填充 数据编码序列: 图 215 位填充 为了保。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。