0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

在USB中,定义了这四种类型包

0BFC_eet_china 来源:互联网 作者:佚名 2017-10-09 09:38 次阅读

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
    usb
    +关注

    关注

    59

    文章

    7418

    浏览量

    258008
  • 信号处理
    +关注

    关注

    47

    文章

    854

    浏览量

    102494
  • 串行总线
    +关注

    关注

    1

    文章

    164

    浏览量

    30432

原文标题:不用再为USB底层协议犯难了

文章出处:【微信号:eet-china,微信公众号:电子工程专辑】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    嵌入式微处理器一般可分为哪四种类型

    嵌入式微处理器是一种专门设计用于嵌入式系统中的微处理器。它们通常用于控制和管理电子设备的各种任务,例如自动化系统、家电、电子设备以及工业机械等。嵌入式微处理器可以根据应用的需求分为四种类型:通用
    的头像 发表于 04-21 09:45 127次阅读

    A/D转换的四种误差

    针对A/D转换可能出现的误差,主要分为以下四种情况,漂移误差、线型比例误差、非线性误差、非单调性误差。还有那些能够引起AD转换出现比较大的误差类别? 先说AD转换是怎么取值的,假设输入信号0-3V
    发表于 01-30 14:19

    雷达的种类有哪三种类型

    雷达是一种利用电磁波进行目标探测和跟踪的设备。它在军事、航空、海洋、天文和气象等领域具有广泛的应用。雷达的种类可以按照不同的分类方式进行划分。在本文中,我们将按照雷达的工作方式,将雷达分为三种类型
    的头像 发表于 12-21 11:38 1752次阅读

    decimal类型怎么定义

    decimal类型。 在C#中,要定义一个decimal类型的变量,可以使用decimal关键字和合法的标识符来声明变量,例如: decimal myDecimal; 这样就定义了一个
    的头像 发表于 11-30 10:52 572次阅读

    NI Package Manager创建程序

    的所有文件。Package Manager创建的程序扩展名为.nipkg。可以使用Package Manager创建三种类型的程序:文件程序、Windows安装程序(WinIns
    发表于 11-19 20:11

    四种类型的MOSFET的主要区别

    型晶体管,它属于电压控制型半导体器件。根据导电沟道类型和栅极驱动电压的不同,可以分为N沟道-增强型MOSFET、N沟道-耗尽型MOSFET、P沟道-增强型MOSFET、P沟道-耗尽型MOSFET四种类型
    的头像 发表于 11-07 14:51 799次阅读
    <b class='flag-5'>四种类型</b>的MOSFET的主要区别

    关于STC单片机IO口状态双向、推挽、开漏、高阻四种状态切换的疑问

    STC单片机IO口可以双向、推挽、开漏、高阻四种状态切换。切换过程IO口会变成什么状态,手册没有明确说明。比如推挽为0时切换到双向,IO口是0还是1,推挽为1时切换到双向,IO口
    发表于 09-27 07:57

    USB IP介绍

    符合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定义数据类型的应用,以便进一步理解PLC定义数据类型
    的头像 发表于 07-24 16:07 805次阅读
    浅谈PLC<b class='flag-5'>定义</b>数据<b class='flag-5'>类型</b>的应用

    OSPF的四种接口网络类型

    首先,强调一下:这里OSPF路由协议下选举DR、BDR是 在广播网络、NBMA网络中进行的 。既然提到了OSPF网络类型,那我们就先来了解一下吧。 OSPF的四种接口网络类型 网络类型
    的头像 发表于 07-05 09:48 1014次阅读
    OSPF的<b class='flag-5'>四种</b>接口网络<b class='flag-5'>类型</b>

    5G使用哪种类型的基站天线?

      5G使用哪种类型的基站天线?   用于5G的基站将由各种类型的设施组成,包括小型蜂窝,塔楼,天线杆以及专用的室内和家庭系统。   小型蜂窝将是5G网络的主要特征,特别是连接范围非常短的新毫米波
    发表于 05-05 11:51

    NoSQL数据库的四种类型

    在本文中,我们将简要介绍NoSQL数据库的四种类型
    的头像 发表于 04-25 17:21 3343次阅读