USB 原理及实战,16课时学习心得打卡
本帖最后由 21cnsound 于 2024-1-29 21:47 编辑第一课时:USB原理及实战一
1、USB四根线:Vbus是5伏,D+/D-是3.3伏,GND;
2、SETUP阶段,请求和描述符的概念;
3、数据负载阶段,IN和OUT都是对主机来讲的;
4、USB接口发展,USB1.0和USB1.1是通常说的低速USB,USB2.0是高速USB,USB3.0是超高速USB(单片机一般用不到);
5、USB主控制器:OHCI(USB1.1标准,非X86),UHCI(INTEL的USB1.0/1.1标准,与OHCI不兼容)、EHCI(INTEL的USB2.0标准)、xHCI(USB3.0标准)
6、USB拓扑结构:包含一个主机(包括主控制器和根集线器)和多个分层(最多7层,含主机)星型连接的外围设备;
7、USB协议分层:接口对应应用层(逻辑上的接口),端点对应数据传输层,总线接口对应物理层;
8、USB线缆:红Vbus,白D-,绿D+,黑GND,D+/D-是一对双绞线,可减少共模干扰,增加传输距离;
9、常用USB连接器,TYPE-A型、Micro-B型、Type-C型;
10、USB编码方式:不归零反转差分(Non-Return to Zero Indicates,NRZI)编码,电平不变表示逻辑1,电平变化表示逻辑0,每6个连续的逻辑1后插入一个逻辑0确保定时信息的同步;
11、USB总线状态:13个状态
差分1(VD+>VD-),差分0(VD+<VD-)
单端0(SE0,D+/D-均为低),单端1(SE1,D+/D-均为高)
J状态-低速(差分0时),J状态-全速/高速(差分1时)
K状态-低速(差分1时),K状态-全速/高速(差分0时)
恢复状态(K状态)
包起始SOF(USB数据总线从idle状态切换到K状态)
包末尾EOP(SE0持续两个基本时间单位,以及J状态持续一个时间单位)
12、USB速度与识别:低速(USB1.0和USB1.1,设备侧D-上拉1.5K电阻),全速(USB2.0,设备侧D+上拉1.5K电阻),D+/D-都没有上拉电阻时USB主控制器枚举时认为没有设备连接;
13、USB电源:低功耗最多100mA电流,高功耗最多500mA电流,超过500mA电流需要设备自供电或自供电+总线供电。
USB原理及实战二
1、从时间角度看,USB通信由一系列帧构成:
帧开始SOF(区别于8bit的总线状态SYNC),SOF这个数据包也是SYNC开始,EOP结束
每个帧/数据操作都有一系列数据包构成,数据包由同步信号SYNC开始、结尾是数据包结束EOP
一个数据操作至少有一个令牌数据包
2、数据包类型:令牌数据包(主机发送)、数据数据包(主机和设备都可发送)、握手数据包(主机发送)、特殊数据包(四种,主机发送)
3、数据包结构
PID共8位,4个类型位(4位左右对称,起校验作用),4个错误检测位,对应数据传输定义IN/OUT/SETUP/SOF
ADDR,可选,7位,共127个设备
EP,可选的端点地址,共4位,
PAYLOAD DATA,可选的加载数据,0-1023Byte
CRC,可选,5-16位
4、数据传输类型
IN/读取/上行,OUT/写入/下行
5、示波器波形分析,数据解析
USB原理及实战三
1、USB设备的通信通过管道实现
管道是主控制器到可寻址缓冲区(称之为端点),分为控制管道(控制传输,唯一的一个双向管道)和数据管道(中断、批量、同步,分IN/OUT,单向管道,可以有任意多个数据管道)
控制端点:支持控制传输,主要用户设备连接到主机时或对设备进行设置类的操作时。
中断端点:支持中断传输,适合高可靠、少量数据传输,通常用于HID设计,如键盘、鼠标、游戏杆。虽然叫中断端点、中断传输,但并不是中断方式,而是轮询方式实现。
批量端点:支持批量传输,可变时间内传输大量数据、大带宽传输,如USB存储、打印机。
同步端点:支持同步传输,连续性实时传输,需支持容忍错误的数据流,如流式音视频。
2、四种端点传输类型,特性对比
数据的拆分,最大书包长度64字节
控制传输:控制写传输、控制读传输、无数据控制传输,分setup stage、data stage、status stage三个阶段。
中断传输:小批量的和非连续的数据传输,包括中断读和中断写。
批量传输,令牌段、数据段、握手段
21cnsound 发表于 2024-1-31 10:49
USB原理及实战三
加油 jwg 发表于 2024-1-31 13:25
加油
一起加油。听说还送试验箱什么的{:lol:} 21cnsound 发表于 2024-1-31 19:54
一起加油。听说还送试验箱什么的
我也想弄个试验箱,学习下 USB原理及实战四
1、SETUP数据结构:
8Byte标准请求:1B+1B+2B+2B+2B
2、标准请求分类:
bRequest的值,11种
为6时表示GetDescriptor请求,指明需要发送的描述符类型
为1时表示ClearFeature请求,用于清楚或禁用USB设备、接口或端点的某些特性,该请求无数据阶段
为8时表示GetConfiguration请求,用于主机读取USB设备当前的配置值
为10时表示GetInterface请求,用于USB主机读取指定接口的设置值,即获取接口描述符中bAlternateSetting字段中的值
为0时表示GetStatus请求,用于USB主机读取USB设备、接口或端点的状态
为5时表示SetAddress请求,用于枚举阶段未设备分配一个唯一地址,地址在wValue字段中且最大值127
为12时表示SynchFrame请求,用于设置并报告端点的同步帧号,用于同步传输,只适用于
3、USB描述符:
设备描述符:是USB设备的第一个描述符,每个USB设备都得具有设备描述符,且只能有一个。
配置描述符:接口数量、设备供电方法。
端点描述符:主机通过端点与地址的组合与设备通信,因此该描述符存放了主机所需的设备端点的信息。
字符串描述符:为朱姐提供了设备名称、生成厂家、序列号或不同接口等信息
4、USB通信过程:动态监测、枚举、配置
期待楼主的大作!
页:
[1]