USB理论学习之五-----USB主机协议简介
- USB主机协议简介
- USB开发分为:
- USB外设开发
- USB核心驱动程序和USB主控制器驱动程序开发-----USB系统软件
- USB工业标准:
- 通用式主机控制器接口(UHCI)
- 开放式主机控制器接口(OHCI)
- 上述两者均有主机控制器和主机控制器驱动程序组成
- 主机控制器----面向硬件部分及生产厂商,规定接口,处理各种USB事务的各种功能模块以及给用户使用的寄存器定义
- 主机控制器驱动程序----USB协议栈软件与USB主机控制器硬件之间联系的接口,直接负责主机控制器硬件的配置和管理
- USB主机系统的功能:
- USB开发分为:
-
- USB主机系统的结构:
-
-
- USB总线接口层
- 指以USB主机控制器为核心的硬件部分,包括串行接口引擎以及之间的电气连接;
- USB主机控制器集成了USB根Hub,以及提供了USB设备的连接点;
- USB系统层
- 控制主机控制器来管理主机和设备之间的数据传输
- 包括三部分
- USB主控制器驱动程序
- USB核心驱动程序
- 主机软件
- USB用户层
- USB设备驱动程序
- 用户软件
- USB总线接口层
- USB主机控制器
- USB主机控制器即USB主机接口芯片的核心部分
- 实现功能:
- 处理主机和设备状态(暂态)
- 数据串行化和并行化(SIE模块)
- 产生SOF帧(1ms产生一个帧起始包划分USB总线的时间)
- 数据处理
- 协议引擎:USB协议层的接口
- 数据发送错误处理
- 超时错误
- 数据传输错误
- 协议级错误
- 远程唤醒:挂起态时USB系统通知主机控制器停止所有USB活动,包括产生SOF帧
- 根Hub:接口
- 主机系统接口:USB主机控制器芯片与核心CPU或系统内存之间的通信接口
- 主控制器驱动程序HCD
- 对USB主机控制器硬件和数据传输的一种抽象
- 向上仅对USB核心驱动程序服务
- 提供一个软件接口,HCDI
- 向下直接管理和检测主控制器硬件的各种行为
- HCD提供的功能主要有:
- 主机控制器硬件初始化
- 为USBD层提供相应的接口函数
- 提供根Hub设备配置、控制功能
- 完成四种类型数据传输
- USB核心驱动程序USBD
- 向上接收USB设备驱动程序和用户程序的各种请求和数据
- 向下把处理好的各种数据发送给HCD,最终与设备通信
- 通过管道接口和命令接口两套机制来实现其所有的服务
- 结构
-
-
-
- 主要的服务:
- 通过命令机制实现配置功能
- 通过命令和管道机制实现数据传输服务
- USB事件的指示
- 状态报告和错误检查
- 命令机制:
- 接口状态的控制
- 管道状态的控制
- 获取设备描述符
- 获取当前的配置设置
- 添加设备,USBD的软件接口USBDI使Hub能够将新接入的设备的信息通知给USBD----USBD为该设备分配地址----准备缺省的控制管道进行枚举和配置
- 移除设备
- 管道状态
- 发送类请求命令:接收设备类驱动程序的请求经过处理后发送给设备
- 发送用户定义的命令
- 建立用于替换的设置
- 建立一个配置
- 设备描述符:USBDI允许修改已存在的描述符或者增加新的描述符
- 管道机制:
- 缺省管道:利用控制传输和设备端点0进行数据传输,用于交换设备的配置信息等,受USBD直接管理
- 用户管道:不受USBD直接管理,由USBD的上层软件拥有和管理
- 进行更基本的数据传输
- 支持四种类型的数据传输
- 主要的服务:
-