精品]基于usb总线的高速数据采集系统设计内容摘要:

USB 设备的连接与断开。 管理主机与设备之间的标准控制流。 管理主机与设备之间的数据流。 收集状态及一些活动的统计数字。 控制主机控制器与 USB设备的电气接口,包括提供有限的能源。 USB驱动 (USBD) USBD 提供了供操作系统组件特别是设备驱动程序访问设备的一组接口。 这些操作系统组件只能通过 USBD 来访问 USB。 USBD 的具体实现基于不同的操作系统。 一个 USBD 可以访问一个或多个 HCD,而一个 HCD 可能与一个或多个主机控制器相连。 某些操作系统可能允许对 USBD 的初始化进行一些设置。 从客户的观点来看,与客户进行通信的 USBD 管理着所有连接着的 USB 设备。 1. USBD 概况 USBD 的客户直接命令设备或从通道直接输入和输出数据流。 USBD 为客户提供两组工具。 命令工具和通道工具。 命令工 具允许客户配置和控制 USBD 操作同时配置及控制 USB 设备。 命令工具提供了对设备标准通道的所有访问。 通道工具允许 USBD 客户管理特定设备的数据和控制数据的传输。 通道工具不允客户直接访问设备的标准通道。 图 26 给出了 USBD 的总体框架。 图 26 USB 驱动结构 (1) USBD 初始化 具体的 USBD 初始化工作是与操作系统有关的。 当 USB 系统初始化时, USB 的管理信息被创建,其中包括缺省地址设备及它的标准通道。 当一个设备连上 USB 时,它响应特殊的缺省地址,直 到他的唯一地址由主机给出。 为了让 USB系统能与新的设备进行通信,设备在刚连上总线时,设备的却省地址必须是可用的。 在设备的初始化期间,设备的缺省地址被修改成一个唯一的地址。 (2) USBD 通道使用 通道是设备与主机的逻辑连结。 一个通道由且仅由一个客户所拥有。 虽然通道的基本属性不因通道的拥有者而改变,但在两类不同客户所拥有的通道之间还存在一定的差异: 服务 通道接口 命令接口 信息和流通道 配置管理 设备数据访问 总线设备管理 能量控制 主机控制器驱动 主机控制器驱动 主 机控制器 主机控制器 标准通道 他们由 USBD 拥有和管理。 其他的通道 它们由 USBD 的客户拥有和管理。 虽然标准通道经常用于完成一些客户通过命令接口所传递的请求, 但是它们不能由客户直接访问的。 (3) USBD 服务功能 USBD 提供如下种类的服务: 通过命令工具配置设备 通过命令工具及通道工具提供传输服务 事件通知 状态报告及错误恢复 2. USBD 命令工具功能 USBD 命令工具允许客户访问设备。 通常,这些命令允许客户以读写形式访问某个设备数据及控制部份。 客户要做的仅是提供设备的标识码和相关数据缓冲区或空缓冲区指针。 USBD 命令传输时并不需要 USB 设备是已被配置好。 USBD 提供的设备配置设施大部分 使用是用命令传输。 下面的是有关命令工具提供的功能: ( 1)接口状态控制 USBD 客户必须能够设置具体的接口。 接口状态的改变使得所有与该接口相连的通道都进入新的状态。 另外接口的所有通道都能够被重新设置或废弃。 ( 2)通道状态控制 USBD 通道状态由两部份组成 主机状态。 反映的端口状态。 通道状态值总是包含上述两部份。 USBD 的客户管理由 USBD 报告通道状态,且客户能够与端口交互以改变它状态。 ( 3)获取描述码 USBD 提供取得标准设备描述符,设备配置描述 符,字串描述符和设备类或者厂商定义的描述符的功能。 ( 4)取得当前配置参数 USBD 提供取得任何设备当前配置参数的描述符的功能。 如果设备没有被配置,则不返回描述符。 当客户请求为设备设置特定的参数时也返回当前配置的描述符。 返回的配置信息中包括如下一些内容: 所有存放在设备上的配置描述符,包括接口的所有其他可替换配置。 返回接口的当前的配置的描述符。 接口当前配置中的某一端口 (一个接口可能具有多个端口 )的通道句柄。 接口当前配置中的某一端口的最大允许包长。 另外,对于任一 通道, USBDI 必须提供返回该通道的当前正使用的最大包长的值的机制。 ( 5)增加设备 USBDI 必须提供某种机制以便于当增加新的设备的时候,集成器驱动器能通知 USBD 并能取得该新 USB 设备的 USBD 标识。 USBD 的任务包括分配设备地址并且为设备准备使用的标准通道。 ( 6)设备断开 USBDI 必须提供某种机制以便于集线器控制器通知 USBD 特定的设备已断开。 ( 7)管理状态 USBDI 必须提供取得和清除设备或接口或通道上与设备有关的状态的功能。 ( 8)向设备发送与设备类有关的命令 USBD 的客户,特别是特定类的和自适应的驱动器使用 USBD 提供的该种机制向设备送出一个或多个设备类命令。 ( 9)向设备发送特殊的厂商定义的命令 客户使用 USBDI 提供的该种机制向设备送出一到多个厂商定义的命令。 ( 10)更改接口配置 USBDI 必须提供更改特定接口配置的机制。 修改了配置后,接口的新通道句柄替换了旧的通道句柄。 在上述的请求执行的过程中,接口必须是空闲的。 ( 11)创建设备配置 配置软件向 USBD 提出进行设备配置的请求时提供一个包含配置信息的数据缓冲区。 USBD 根据提供 的配置信息为设备端口请求资源。 如果所有的资源请求都得到满足, USBD设置设备配置参数,并且返回当前设备所有活跃态接口句柄和与该接口中的某一端口相连的通道句柄。 接口的设置可使用缺省参数。 ( 12)设置描述符 对于支持该项行为的设备, USBDI允许升级设备上的描述符或者增加新的描述符。 3. USBD通道设施 USBD 的通道设施使客户与设备之间高速的低附加信息的数据传输成为可能。 数据传输的高性能是通过将 USBD的一部份通道管理任务转交给客户来实现的。 所以通道设施比 USBD命令设施所提供的数据传输服务更直 接。 通道设施不允许访问设备的标准通道。 只有在 USB 及设备的配置都顺利完成后,客户才有可能进行 USBD 的通道传输。 当设备被配置的时候 USBD 根据配置参数为设备的所有通道请求资源。 当特定的接口或通道空闲的时候,客户可以更改配置。 客户为输出的通道提供一个满的数据缓冲区,并且在请求完成以后取得传输状态信息。 客户可以根据返回的状态信息判断传输是否顺利完成。 客户为输入通道提供空的数据缓冲区,并且在请求完成以后得到一个具有数据的缓冲区及传输的状态信息。 客户可根据该状态信息判断传输数据的数量及 质量。 根据所支持的数据传输类型, USBD共有四种通道类型 :控制传 输、同步数据传输、中断传输、块传输。 USB设备 USB 设备可被划分三层: 底层是传送和接收数据包的总线接口 中间层处理总线接口与不同端点之间的数据路由端节点是数据的终结提供处或使用处,它可被看作数据源或数据接收端 (Sink) 最上层的功能由串行总线设备提供,比如鼠标,或 ISDN 接口。 USB设备状态 USB设备有若干可能的状态,其中一些对于 USB与主机 (host)来 说是外置的,而另外一些对 USB设 备来说是内置的,表 21描述的 就是这些外置状态之间的转化关系。 表 21外呈 (可见 )的设备状态 连接 加电 缺省 编址 配置 挂起 说 明 不 _ __ __ __ __ 设备尚未连接至接口 .其他特性无关 是 不 _ _ __ __ 设备已连接至接口,但未加电 . 其他特性无关 . 是 是 不 __ _ __ 设备已连接至接口,并且已加电 .但尚未被复位 . 是 是 是 不 __ __ 设备已连接至接口,已加电 . 并被复位 . 但尚未分配地址 .设备在缺省地址处可寻址 . 是 是 是 是 不 _ 设备已连接至接口,已加电 . 并被复位 .且分配了唯一地址 .尚未被配置 . 是 是 是 是 是 不 设备已连接至接口,已加电 . 并被复位 .且分配了唯一地址,并被配置 .设备功能可被使用 . 是 是 __ __ __ 是 设备在至少 3 毫秒以内探测不到总线活动,自动进如挂起 .设备功能不可用 . 通用 USB设备操作 所有的 USB 设备支持通用的操作集,下面简要地描述这些操 1. 动态插接与拔开 USB 设备必须在任意时刻允许被插接与拔开。 提供连接点或端口的集线器应当负责汇报端口的状态改变情况。 当主机探测到连接操作后,会使得所连的集线器端口生效,设备也会因此而复位,一个被复位了的 USB 设备有如下特性: 对缺省 USB 地址发生响应 没有被配置 初始状态不是挂起 当设备从一个集线器端口移去时,集线器会使得原来连接的端口失效,并且通知主机设备已移去。 2. 地址分配 当 USB 设备连接以后,由主机负责给此设备分配一个唯一的地址,这个操作是在设备复位及端口使能操作以后。 3. 配置 USB 设备在正常被使用以前,必须被配置,由主机负责配置设备。 主机一般 会从 USB设备获取配置信息后再准定此设备有哪些功能。 作为配置操作的一部分,主机会设置设备的配置值,并且,如果必要的话会选择合适的接口的备选设置。 只须一个简单配置,一个设备可能支持多重接口。 一个接口是一组端结点集合,它们代表了设备向主机提供的单一的功能或特性,用来与这组相关端结点通信的协议以及接口内各端结点的目的可以作为一个设备类的一部分或者由厂商制定具体定义。 另外,一个配置中的结口可能有备选设置。 这些备选设置会重定义相关端结点的数目或特性。 如果是这样的话,设备必须支持 GetInterface(接口请求 )与 Set Interface(接口设置 )请求,来汇报及选择指定的接口的设备选设置。 4. 数据传送 数据可能以四种方式在 USB 设备端结点与主机之间传送。 四种传送方式参见第五章。 在不同设置下,一个终端结点可能被用于不同的传输方式,但一旦设置选定,传送方式就选定了。 5. 电源管理 USB 总线电源是一个有限的资源,在设备标识阶段,主机估测电源的需求。 如果电源的需求量超过 USB 总线所能提供的电量,主机软件则不能选择那个配置。 USB 设备应将电源需求量限制在一个单 元以下,直到被配置。 中止 (挂起 )的设备,不管是否已经配置过了,应将总线耗电降到第 7章定义的标准以下。 视接到设备的端口电源负载能力而定, USB 设备在配置了以后可从 VBus 汲取达 5个单元的电量。 远程唤醒能力参许一个被挂起的 USB 设备发达信号给处于挂起状态的主机。 这个信号会使得主机醒来,处理触发事件。 USB 设备通过配置描述来向主机汇报其远程唤醒的能力。 USB 设备的远程唤醒能力应能被禁止的。 6. 请求处理 除 SetAddress( )请求以外,在安装完成返回 ACK 信号以后,设备就开始处理请求。 在某一状态成 功结束以前,设备应当“完成”对请求的处理。 许多请求费时较多,像这样的请求,该设备类应定义一个方法而不是等待交换状态信息阶段的结束来表示该操作已经完成。 像这样的操作有:集线器端口的复位至少需 10ms 来完成。 当端口复位产生时,SetPortFeature(PORTRESET)请求就结束了。 当端口状态改变并表明此端口已经生效时,一个信号就会产生表明复位信号已经结束。 这种技术可以防止当主机知道某一个请求费时较长的情况一直探测此请求是否已完成。 7. 请求错误 如果一设备收到一个请求,它或是在设备中无定义,或是不适 用于当前设置,或是数值不对,这时就会产生一个请求错误。 设备在下一个数据传输阶段或状态交换阶段返回一个表明错误的 STALL PID信号,一般在下一个数据传输返回更好,这样可减少不必要的总线活动。 USB设备请求 所有的 USB设备在“设备的缺省控制通道 ”处对主机的请求发出响应。 这些请求是通过使用控制传输来 达到的,请求及请求的参数通过 Setup包发向设备,由主机负责设置 Setup包内的每个域的值。 每个 Setup包有 8个字节。 见表 22。 表 22 Setup数据包的格式 偏移量 域 大小 值 描述 0。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。