USB底层协议
USB它是串行总线,所以数据在总线上是一位一位传输的,先传输最低位数据,最后传输最高位数据。对于多个字节的数据传输呢,采用的是小端格式,即先传输低字节数据,最后传输高字节数据。
在USB中,数据是以包为单位进行传输的,所有的包都必须以SYNC字段开始,以EOP(End-of-Packet)结尾。在SYNC字段之后,紧跟着的是包标识符(PID),PID为一个字节,其中4位用于定义包的类型,另外4位是用来校验PID的,PID格式如下:
在USB中,定义了四种类型的包,令牌包、数据包、握手包和特殊包,包类型详细定义如下:
在令牌包的PID字段之后,还包含地址域,地址就包括设备地址和端点地址,设备地址共7位,总共可寻址128个地址,但是地址0是作为默认设备地址的,所以说,USB系统中,最多只能同时连接127个设备。端点地址共4位,可寻址16个端点。
在USB包最后,还包含5位的CRC检验码,CRC校验码只对PID后面的数据进行校验,不对PID进行校验,因为PID本身就包含4位校验码。
包格式
令牌包格式
令牌包格式定义如下:
这里的令牌特指IN、OUT、SETUP令牌,而SOF包格式定义如下:
令牌包实例如下:
数据包格式
数据包包含包标识符(PID)和0到多个字节的数据,数据包类型总共四种,DATA0、DATA1、DATA2和MDATA。数据包格式定义如下:
数据包实例如下:
上图为SETUP请求数据包,用于读取设备的设备描述符。
握手包格式
握手包有三种ACK、NAK和STALL,其中ACK表示数据传输完成并且无错误,NAK表示设备不能接收数据或者没有数据上传,STALL表示设备不能进行数据传输。而NYET和ERR握手包只针对高速设备,表示设备没有准备好或者出错。握手包格式定义如下:
ACK握手包实例如下:
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。
举报投诉
原文标题:不用再为USB底层协议犯难了
文章出处:【微信号:eet-china,微信公众号:电子工程专辑】欢迎添加关注!文章转载请注明出处。
相关推荐
嵌入式微处理器是一种专门设计用于嵌入式系统中的微处理器。它们通常用于控制和管理电子设备的各种任务,例如自动化系统、家电、电子设备以及工业机械等。嵌入式微处理器可以根据应用的需求分为四种类型:通用
发表于 04-21 09:45
•127次阅读
针对A/D转换中可能出现的误差,主要分为以下四种情况,漂移误差、线型比例误差、非线性误差、非单调性误差。还有那些能够引起AD转换出现比较大的误差类别?
先说AD转换是怎么取值的,假设输入信号0-3V
发表于 01-30 14:19
雷达是一种利用电磁波进行目标探测和跟踪的设备。它在军事、航空、海洋、天文和气象等领域具有广泛的应用。雷达的种类可以按照不同的分类方式进行划分。在本文中,我们将按照雷达的工作方式,将雷达分为三种类型
发表于 12-21 11:38
•1752次阅读
decimal类型。 在C#中,要定义一个decimal类型的变量,可以使用decimal关键字和合法的标识符来声明变量,例如: decimal myDecimal; 这样就定义了一个
发表于 11-30 10:52
•572次阅读
的所有文件。Package Manager创建的程序包扩展名为.nipkg。可以使用Package Manager创建三种类型的程序包:文件程序包、Windows安装程序(WinIns
发表于 11-19 20:11
型晶体管,它属于电压控制型半导体器件。根据导电沟道类型和栅极驱动电压的不同,可以分为N沟道-增强型MOSFET、N沟道-耗尽型MOSFET、P沟道-增强型MOSFET、P沟道-耗尽型MOSFET四种类型。
发表于 11-07 14:51
•799次阅读
STC单片机IO口可以在双向、推挽、开漏、高阻四种状态切换。在切换过程中IO口会变成什么状态,手册没有明确说明。比如推挽为0时切换到双向,IO口是0还是1,推挽为1时切换到双向,IO口
发表于 09-27 07:57
符合USB2.0中的全速规范• 可用资源:8个双向端点• 支持四种传输类型• 对于bulk和同步传输,还支持double buffer模式;使得一个buffer用于
发表于 09-12 08:24
的符号表示
电压表由圆圈内的字母 V 以及两个端子表示。
电压表的类型
电压表分为三种方式。电压表的分类如下图所示。
在结构的基础上,电压表有以下几种类型。
发表于 09-01 16:43
焊缝是焊接过程中两个或多个金属工件相连的地方。焊缝可以分为四种基本类型:齐缝焊缝、角焊缝、T型焊缝和角联焊缝。
发表于 08-07 14:17
•2082次阅读
滤波器是一种用于信号处理的重要工具,它可以去除信号中的噪声或者改变信号的频率响应。在信号处理领域中,有四种基本类型的滤波器被广泛使用。
发表于 08-04 09:40
•1894次阅读
PLC定义数据类型以下用一个例子介绍PLC定义数据类型的应用,以便进一步理解PLC定义数据类型。
发表于 07-24 16:07
•805次阅读
首先,强调一下:这里OSPF路由协议下选举DR、BDR是 在广播网络、NBMA网络中进行的 。既然提到了OSPF网络类型,那我们就先来了解一下吧。 OSPF的四种接口网络类型 网络类型
发表于 07-05 09:48
•1014次阅读
5G使用哪种类型的基站天线?
用于5G的基站将由各种类型的设施组成,包括小型蜂窝,塔楼,天线杆以及专用的室内和家庭系统。
小型蜂窝将是5G网络的主要特征,特别是在连接范围非常短的新毫米波
发表于 05-05 11:51
在本文中,我们将简要介绍NoSQL数据库的四种类型。
发表于 04-25 17:21
•3343次阅读
评论