VxWorks操作系统下的USB驱动详解

需积分: 9 8 下载量 98 浏览量 更新于2024-08-02 收藏 179KB DOC 举报
"本文主要总结了VxWorks操作系统下的USB驱动相关知识,涵盖了USB设备的物理特性、速度标准、连接方式、设备结构以及传输类型。此外,还介绍了VxWorks中的USB协议栈结构和数据传输流程。" 在VxWorks操作系统中,USB驱动涉及到的关键点如下: 1. **USB设备物理特性**:USB设备通过4条电缆连接,包括电源线、地线、两根数据线,以及一条脉冲线。设备的速度分为低速(1.5Mbps)、全速(12Mbps)和高速(480Mbps)。USB规范经历了从USB1.1(1998年)到USB2.0(2000年)的发展。 2. **连接架构**:USB设备通过PCI总线连接到USB控制器,常见的控制器类型有OHCI(Open Host Controller Interface)、UHCI(Universal Host Controller Interface)和EHCI(Enhanced Host Controller Interface)。一个USB控制器最多能连接127个设备,且单条线缆长度不超过5米,但可以通过hub扩展至30米。 3. **主机-设备通信模式**:主机(Host)与USB设备间采用主-从模式工作,所有通信由主机发起,同一时刻只有一个设备能与主机进行通信。USB物理设备可抽象为一个或多个逻辑设备。 4. **USB逻辑设备层次**:逻辑设备包含配置(configuration)、接口(interface)和端点(endpoint)。端点是数据交换的终点,类似于网络编程中的套接字。管道(pipe)是驱动与设备端点之间数据传输的通道,包括设备端点、设备号、传输方向、带宽需求和延迟要求。 5. **传输类型**:USB支持四种传输方式: - 控制传输:用于读写设备,所有设备的端点0默认用于控制管道。 - 同步传输:适用于定时的大批量数据传输,可能丢弃数据包。 - 批量传输:确保大批量数据到达,但实际速率可能低于理想值。 - 中断传输:用于异步小批量数据,如键盘或鼠标事件。 6. **VxWorks下的USB协议栈**:主要包括四层:客户驱动、USBD、HCD(Host Controller Driver)以及硬件层的USB主控制器。数据传输路径是客户驱动创建USB_IRP包,经USBD转换为URB包,再由HCD处理成HRB包,最终由硬件执行。 7. **带宽分配**:控制传输占用10%的可用带宽,批量传输则无法达到USB的最大理论速率,导致实际传输速度低于理想值。 VxWorks中的USB驱动设计和实现需要考虑到USB设备的物理特性、通信模式、传输类型以及协议栈的层次结构,以确保高效、可靠的数据传输。理解这些概念对于开发和调试VxWorks环境下的USB驱动至关重要。