文章目录
-
-
-
- USB 各层次数据
- USB 请求的发起端
- USB 自插入后到数据传输的过程
-
- USB 常用术语
-
-
- USB host controller
- hub
- root hub
- usb port
- Device
- 描述符
- 端点
- 状态机
- 数据封包
USB 各层次数据
在 usb 线上的数据分为两种
数据是 PHY 主动 发出的,用于验证链接
(包括枚举过程的device attach)
数据是 软件调用硬件接口发出的,用于数据传输
(包括枚举过程的后半部分)
包括 bulk传输或实时传输或中断传输
USB 请求的发起端
不管是哪种数据的通信,不管是哪种传输方式
都是 usb host 先发起, usb device 回应
例如 枚举过程的device attach
host 发 LFPS , 设备在插入上电,初始化后,会发回 LFPS包
例如 枚举过程的 获取描述符 ( 对应一次控制传输)
host 依次发起 setup 阶段 , DATA阶段, state 阶段.
device 依次响应 setup 阶段 , DATA阶段, state 阶段.
USB 自插入后到数据传输的过程
依次分为两种
1. 枚举
2. 目标数据传输
枚举
枚举包括很多内容
1. 主机对device的插入检测
2. 主机复位设备(在端口0)
3. 主机对设备 set address(在端口0)
4. 主机获取设备描述符(在端口0)
5. 主机获取设备配置描述符(同时获取接口描述符和端口描述符)(在端口0)
6. 主机根据 某一个设备配置描述符 配置设备(在端口0)
数据传输
目标数据传输包括多个内容
1. 在端口1 传送数据
USB 常用术语
USB host controller
一个芯片做好了 USB host controller 的数量就定下来了
有几个实例化,就有几个 USB host controller
hub
A Universal Serial Bus device that provides additional connections to the Universal Serial Bus.
在 usb 中, hub 分为两种
一种是 root hub
一种是 非root hub
root hub
一个 USB host controller 对应一个 root hub
A Universal Serial Bus hub attached directly to the Host Controller.
usb port
Point of access to or from a system or circuit.
For Universal Serial Bus, the point where a Universal Serial Bus device is attached.
相当于 usb 物理接口.
当然芯片本身会有几个usb port
本质上和 "绿联usb集线器上扩展出来的port" 无太大分别 , 但是层级不同
Device
device 有多种多样
一个U盘
一个鼠标,一个键盘
一个USB音响
描述符
描述符用来描述 Device.
设备描述符用来 描述 Device 是 哪个类的设备, 什么厂家的,有几个配置描述符
配置描述符用来 描述 有几个接口描述符
接口描述符用来 描述 有几个端点描述符
端点描述符用来 描述 端点
一般来说,
一个 接口描述符 对应一个 功能 , 比如 二合一的键盘鼠标 设备 , 该设备就有两个 接口描述符,一个对应 鼠标,一个对应键盘
端点
端点是 真实存在的物理概念,当一个 芯片造出来时,那么它有几个 端点就已经定死了.
数据往来于host 和 device ,更具体的来说是 往来于 端点
我们可以根据不同的端点,从而索引到不同的内存地址,从而将数据取出
端点默认有两个可用
1. status change pipe
2. Default Control Pipe
端点在设置后可用
1. 非0端点
状态机
状态机在 usb 中 很重要,表示了某个模块的状态,有以下几个模块存在状态机
usb host port
usb device
usb host device slot
数据封包
USB数据是由二进制数字串构成的,数据会发送到端点(可以认为是一个缓冲区)上
level 1 : 二进制数据 0 1
level 2 : 域
level 3 : 包Packet
level 4 : 事务Transaction
level 5 : 传输Transfer
level 6 : 管道Pipe
当做枚举的时候
就会在 Message Pipes(即端点0)上进行 多次 同步传输
一个传输由多个事务组成
一个事物由多个包组成
一个包由多个域组成