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

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

3天内不再提示

什么是USB?USB的物理层和协议层有什么区别?

FPGA之家 来源:TopSemic嵌入式 作者:TopSemic嵌入式 2021-05-08 09:50 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

1.USB概述

USB设备现在是用的非常普遍的一种接口了,它即插即用的特性给人们带来了很大的方便。在嵌入式的应用中, USB经常被用来作为与上位机通信的接口,还用来通过U盘存储数据等。USB按通讯速度可分为低速,全速和高速设备。在我们的应用中,低速和全速是最为普遍的,在此我们对USB从物理层到协议层做一个简要的介绍。高速USB的原理是一样的,在理解了低速和全速设备的工作原理后再去理解高速设备就比较简单了,在此我们暂不讨论。

低速(Low Speed, 1.5Mbps):键盘,鼠标,手写笔

全速(Full Speed, 12Mbps):音频

高速(High Speed, 480Mbps):视频

USB协议是开放的,可以从官方网站usb.org下载。

2.主机,设备(Host, Device)

什么是USB?USB的物理层和协议层有什么区别?

上图是一个典型的USB全速主机和设备的连接示意图。主机要有对外的供电能力,图中可以看到作为主机的单片机,一个引脚用来控制三极管或MOSFET,提供5V的电源至USB口。设备供电有两种方法:一种是通过USB总线,从主机提供的5V获得,如我们常用的U盘;一种是自己从另外的电源获得,此时主机至设备的电源线可以不连。如果设备的1.5k上拉电阻是加在D-上,那么此设备将被主机识别为低速设备。高速设备的上拉与全速设备一样是加到D+,需要靠软件协议进一步区分。

通过USB总线获得供电的设备,分为两种配置:

低功率设备(Low-power devices): 最大电流不超过100mA

高功率设备(High-power devices): 刚连接后设备后的枚举阶段不超过100mA,配置完成后最大不超过500mA。

USB所有的通讯都是由主机发起。当主机检测到有设备连接时,首先会询问设备,让设备自报家门,看看设备都具备哪些能力,其中就包括最大电流,然后主机根据上报的描述进行相应的操作。这个过程叫自举(Enumeration)。设备通过描述符(Descriptor)来声明自己的能力,包括:

设备描述符(Device Descriptor)

配置描述符(Configuration Descriptor)

接口描述符(Interface Descriptor)

端点描述符(Endpoint Descriptor)

字符串描述符(String Descriptor)

端点(Endpiont)是USB通信的基本单元,每个USB设备都会包含若干个端点。主机下发的数据最终会根据设备地址和端点地址到达某一个端点,主机获取数据也是给某个端点发出读数据命令,此端点随后把存储在自己缓冲区的数据发给主机。

在端点之上是逻辑组织,多个端点可以归到一个接口,多个接口可以归为一个配置。而一个设备可以有多个配置。

3.USB物理层

什么是USB?USB的物理层和协议层有什么区别?

(USB Specification 2.0)

1 红色 Vbus(5V)

2 白色 D-

3 绿色 D+

4 黑色 GND

有的USB接口会多出一根ID线,以支持OTG(On The Go)。支持OTG的线两端是不一样的,其中一端插到OTG设备时会把设备接口的识别引脚ID拉低,此设备识别到自己的ID拉低后会进入主机状态(Host),连线另一端的设备ID没有拉低,默认进入设备状态(Device)。之后通过软协议可以主从切换。但是集中这种应用不是太多,一台设备要么作主机,要么作设备的情况比较多。

USB使用的是差分传输模式,有两根数据线D+和D-。

Differential 1:D+ 》 VOH(min) (2.8V) 且D- 《 VOL(max)(0.3V)

Differential 0:D- 》 VOH and D+ 《 VOL

J状态:对于低速USB是Differential 0,对于全速USB是 Differential 1

K状态:对于低速USB是Differential 1,对于全速USB是 Differential 0

除此之外,通过把D+,D-当作单端信号拉低,拉高,可以表示一些特殊的状态。

SE0状态(Single Ended 0):D+ 低,D- 低

SE1状态(Single Ended 1):D+ 高,D- 高

Reset信号:D+ and D- 《 VOL for 》= 10ms

主机在要和设备通信之前会发送Reset信号来把设备设置到默认的未配置状态。即主机拉低两根信号线(SE0状态)并保持10ms。

看到这里也许有点晕,不过没关系,你如果看USB协议会更晕。

我们千万不要掉进这个坑里出不来,就像我们用串口也从来不会去触发一个起始信号,或者拉出一个结束信号一样,这些物理层信号状态的处理完全由芯片集成的USB控制器来处理。而且提供USB软件协议栈也是必须的,靠用户自己完全把所有细节搞清楚是不现实的。然而就像开车一样,你如果对汽车的原理有更深入的了解,一定更能充分的发挥出这辆车的性能。

继续,除了以上状态,还有:

Idle State, Resume State, Start of Packet, End of Packet, Disconnect, Connnect.

4.Packet

Packet是USB通讯最基本的单位。

什么是USB?USB的物理层和协议层有什么区别?

SOP:Start Of Packet,标志由空闲状态转入数据包发送。

SYNC:同步段,供USB设备进行时钟同步。

PID:Packet Identifier。种类比较多,下面再详细说明。

Address:设备和端点地址。一个主机可以挂接多个设备,主机会给每个设备分配不同地址。

Frame Number:帧号,每发一帧加1,达到7FFFH时变为0。

Data:数据段。

CRC:校验和。

EOP:End Of Packet。

通过不同的PID,数据包被分成4个大类,每个大类又包含一些小类:

令牌 (Token) OUT,IN,SETUP,SOF

数据 (Data) DATA0,DATA1

握手 (Handshake) ACK,NAK,STALL,NYET

特殊包 (Special) PRE,ERR

5.Transaction

一次Transaction总是从主机向设备发出一个令牌(Token)开始。再次强调,USB所有的通信过程都是由主机发起。三种令牌把Transaction分为三类:

OUT:主机发送数据给设备。

IN:主机从设备获取数据。

SETUP:主机对设备进行设置。

USB协议里的OUT和IN,都要站在主机的角度来看。下面是比较典型的获取,发送数据的例子:

什么是USB?USB的物理层和协议层有什么区别?

每一次Transaction,Token总是必需的,数据段和握手则视情况而定。比如在上一个例子中,当主机发出IN令牌获取数据时,如果设备没准备好数据,则可以返回NAK结束此Transaction。

6.Transfer

好了,有了以上这些,似乎万事俱备了。但是如果进一步想一下,那么还是有些问题不好解决。什么呢?比方说DATA数据段的长度规定多长好呢?主机多长时间发起一次通信比较好呢?

一个USB主机上是允许挂载多个设备的,而这些设备千差万别:比如像鼠标,按键后需要快速响应,把位置信息发送到主机,它的数据量很少,而像U盘则需要传输大量的数据。如果按鼠标的时候U盘正在传输数据怎么办呢?

为了解决上述问题,USB首先规定了四种传输类型:

控制传输(Control Transfers): 主要用来在设备刚连接到主机时对设备进行设置。还有平时对设备状态的管理。它需要双向的数据传输。

批量传输(Bulk Data Transfers): 主要用来进行量大,但对传输时间要求不严格的场景。例如U盘。

中断传输(Interrupt Data Transfers): 需要及时准确的传输信息的场景。中断传输总是单向的。比如鼠标。



同步传输(Isochronous Data Transfers): 一般需要占用相对固定的带宽,延时短而且比较确定。传输是单向的,数据出错后不需要重传。比如USB摄像头。

然后,为了解决设备的及时响应问题,USB每隔1ms (高速USB是每隔125us)发出一个SOF令牌,紧接令牌进行同步类型的传输,之后依次是中断类型,控制类型和批量数据传输类型。在每一个Frame内,Isochronous,Interrupt和Control都会保证一定的带宽。而Bulk型的传输优先级最低,不一定每帧都得到带宽进行数据传输。

什么是USB?USB的物理层和协议层有什么区别?

一个Transfer 由一个或多个Transactions组成。比如一次控制传输可以由Setup,IN,OUT等Transactions组成。Packet和Transaction是不允许被中间打断的,而Transfer的多个Transactions可以分多次传输。

7.小结

我们对USB的物理层和协议层做了简要的介绍。在接下来的文章里我们将通过实际的例子来看一下USB是如何工作的,并对很多工程师经常忽略或者没有意识到的一些问题进行探讨。

责任编辑:lq6


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 接口
    +关注

    关注

    33

    文章

    9443

    浏览量

    156108
  • usb
    usb
    +关注

    关注

    60

    文章

    8372

    浏览量

    281596
  • 物理层
    +关注

    关注

    1

    文章

    165

    浏览量

    35549
  • 上位机
    +关注

    关注

    27

    文章

    992

    浏览量

    56703

原文标题:单片机外围模块-USB总线基本概念。

文章出处:【微信号:zhuyandz,微信公众号:FPGA之家】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    VOOHU——SPE信号如何实现千米传输?解析其物理层设计

    实现长距离、高可靠的信号传输是SPE技术落地的基础。本文将探讨在单对线架构下,如何通过物理层设计应对信号衰减与工业环境干扰的挑战。
    的头像 发表于 12-02 17:48 379次阅读
    VOOHU——SPE信号如何实现千米传输?解析其<b class='flag-5'>物理层</b>设计

    ADP7000系列示波器特色功能:以太网物理层一致性测试,让网络物理层问题无所遁形

    传输速率的提升,以太网物理层面临更多信号完整性、协议合规性等挑战,造成网络问题,这使得以太网设备在研发、生产和应用环节的物理层一致性测试变得尤为关键。航天测控公司
    的头像 发表于 10-30 09:02 164次阅读
    ADP7000系列示波器特色功能:以太网<b class='flag-5'>物理层</b>一致性测试,让网络<b class='flag-5'>物理层</b>问题无所遁形

    睿远研究院丨IO-Link规范解读(三):物理层概览

    前言 物理层是 IO-Link 通信的 “硬件底座”,它直接决定了系统的可靠性、抗干扰能力和部署灵活性。打个比方,就像盖房子,物理层就是地基和骨架,地基不稳、骨架不牢,房子肯定住着不踏实。本期我们
    的头像 发表于 10-21 17:26 2734次阅读
    睿远研究院丨IO-Link规范解读(三):<b class='flag-5'>物理层</b>概览

    是德科技推出HDMI 2.2物理层合规性测试解决方案

    是德科技(NYSE: KEYS )宣布推出高清晰度多媒体接口 HDMI 2.2 物理层合规性测试解决方案,为发射器(源)和线缆设备提供强大的合规性与性能验证能力。是德科技的HDMI电气性能、验证与合
    的头像 发表于 09-01 17:33 1677次阅读
    是德科技推出HDMI 2.2<b class='flag-5'>物理层</b>合规性测试解决方案

    如何排除 USB 协议分析仪测试中的干扰源?

    USB协议分析仪测试中,干扰源可能来自物理层(如信号噪声、电源波动)、协议(如数据冲突、时序错误)或环境因素(如电磁辐射、设备兼容性问题
    发表于 08-01 15:00

    智原科技推出DDR/LPDDR通用物理层IP解决方案

    ASIC设计服务暨IP研发领导厂商智原科技(Faraday Technology Corporation)宣布推出可支持第三至第五代DDR/LPDDR的通用物理层IP,适用于联电(UMC)22ULP
    的头像 发表于 07-25 16:41 839次阅读

    传感器网络通信协议的核心技术要素

          无线传感网络协议是规范无线传感器网络节点通信的技术标准体系,其架构由分层协议模型构建。 协议层级包含物理层、数据链路层、网络
    的头像 发表于 04-02 10:30 766次阅读
    传感器网络通信<b class='flag-5'>协议</b>的核心技术要素

    分布式IO模块:架起城轨交通物理层与控制的信息桥梁

    物理层与控制的桥梁,为城市轨道交通的高效运行提供了强有力的技术支撑,极大地提高了系统的灵活性和可扩展性,为城轨交通的智能化、网络化发展奠定了坚实基础。
    的头像 发表于 03-11 17:08 559次阅读
    分布式IO模块:架起城轨交通<b class='flag-5'>物理层</b>与控制<b class='flag-5'>层</b>的信息桥梁

    使用示波器的汽车以太网物理层调试案例

    何使用示波器识别和调试汽车以太网物理层信号完整性问题。以下是在Inspectron公司进行的汽车以太网调试研究案例,该公司设计并制造内窥镜、嵌入式 Linux 系统和摄像检测工具。
    的头像 发表于 02-19 15:34 1788次阅读
    使用示波器的汽车以太网<b class='flag-5'>物理层</b>调试案例

    青稞RISC-V通用系列

    沁恒基于USB及PD技术提供物理层、控制器、集线器、桥接芯片
    的头像 发表于 02-19 13:42 731次阅读

    EE-338: Blackfin处理器与电力线网络物理层器件Intellon INT5200的接口

    电子发烧友网站提供《EE-338: Blackfin处理器与电力线网络物理层器件Intellon INT5200的接口.pdf》资料免费下载
    发表于 01-08 15:08 0次下载
    EE-338: Blackfin处理器与电力线网络<b class='flag-5'>物理层</b>器件Intellon INT5200的接口

    以太网物理层IOP测试设备TestBase-EIOP说明

    经纬恒润推出升级版TestBase-EIOP1100,这是一款专门针对车载以太网物理层交互性(lOPInteroperability)测试设计的自动化测试设备。该设备严格遵循OPEN联盟制定的IOP测试标准,支持对100BASE-T1和1000BASE-T1进行IOP测试。    
    的头像 发表于 01-08 10:21 794次阅读
    以太网<b class='flag-5'>物理层</b>IOP测试设备TestBase-EIOP说明

    国产高性能物理层以太网PHY收发器适用于数据中心、智能计算等应用市场

    国产高性能物理层以太网PHY收发器适用于数据中心、智能计算等应用市场
    的头像 发表于 12-26 09:58 1229次阅读
    国产高性能<b class='flag-5'>物理层</b>以太网PHY收发器适用于数据中心、智能计算等应用市场

    以太网物理层IOP测试设备TESTBASE-EIOP

    OPEN联盟(OPEN Alliance)是一个由OEM、Tier1和Tier2共同组建的非盈利开放性的行业联盟,旨在将以太网技术在汽车环境中应用及推广。 TESTBASE-EIOP是经纬恒润自主研发的车载以太网物理层IOP(交互性)自动化测试设备,可完整覆盖OPEN TC8 IOP测试标准。
    的头像 发表于 12-25 17:48 1651次阅读
    以太网<b class='flag-5'>物理层</b>IOP测试设备TESTBASE-EIOP

    MultiGABSE-AU物理层PMA子及PMD子的相关机制

    在之前的文章中,我们介绍了IEEE 802.3cz[1]协议,MultiGABSE-AU物理层中XMII、PCS子以及两个可选功能的相关内容,本篇将介绍MultiGABSE-AU物理层
    的头像 发表于 12-23 10:20 1683次阅读
    MultiGABSE-AU<b class='flag-5'>物理层</b>PMA子<b class='flag-5'>层</b>及PMD子<b class='flag-5'>层</b>的相关机制