USB 协议 (三) 基础知识

文章目录

        • 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. 在端口1 传送数据
USB 常用术语

USB 协议 (三) 基础知识_第1张图片

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
本质上和 "绿联usb集线器上扩展出来的port" 无太大分别 , 但是层级不同
Device
device 有多种多样
一个U盘
一个鼠标,一个键盘
一个USB音响
描述符
描述符用来描述 Device.
设备描述符用来 描述 Device 是 哪个类的设备, 什么厂家的,有几个配置描述符
配置描述符用来 描述 有几个接口描述符
接口描述符用来 描述 有几个端点描述符
端点描述符用来 描述 端点

一般来说,
一个 接口描述符 对应一个 功能 , 比如 二合一的键盘鼠标 设备 , 该设备就有两个 接口描述符,一个对应 鼠标,一个对应键盘

端点
端点是 真实存在的物理概念,当一个 芯片造出来时,那么它有几个 端点就已经定死了.
数据往来于host 和 device ,更具体的来说是 往来于 端点  // 注意,不是往来于配置,接口
我们可以根据不同的端点,从而索引到不同的内存地址,从而将数据取出

端点默认有两个可用
	1. status change pipe 	// 端点x  // 中断端点 	// hub通知host的媒介
	2. Default Control Pipe // 端点0  // 控制端点	// host访问device的媒介
端点在设置后可用
	1.0端点							// 中断/实时/批处理 端点
状态机
状态机在 usb 中 很重要,表示了某个模块的状态,有以下几个模块存在状态机
usb host port
usb device
usb host device slot // 这是一个软件模块
数据封包
USB数据是由二进制数字串构成的,数据会发送到端点(可以认为是一个缓冲区)上
level 1 : 二进制数据 0 1 	//  两种 0 1 //没有时钟同步的 二进制数据传输(翻转)
level 2 ://	七种 SYNC PID ADDR ENDP FRAM DATA CRC)
level 3 : 包Packet			//  三种 令牌包 数据包 握手包
level 4 : 事务Transaction	// 	三种 IN OUT SETUP
level 5 : 传输Transfer		//  四种 中断传输 同步传输 批量传输 控制传输
level 6 : 管道Pipe			//  两种 Message Pipes , Stream Pipes
当做枚举的时候
就会在 Message Pipes(即端点0)上进行 多次 同步传输
一个传输由多个事务组成
一个事物由多个包组成
一个包由多个域组成

你可能感兴趣的:(USB,USB)