USB接口的引脚定义与通信协议

一、USB概念

Universal Serial Bus,简称 USB。中文翻译称为通用串行总线,是一种串口总线的标准,也是一种输入输出接口的技术规范

二、USB接口外形分辨

主要类型:Type-A,Type-B,Type-C,Micro,Mini,下面展示不同类型接口的形状

(一)Type-A

(二)Type-B

通常在打印机设备使用,另一端使用 USB-A 连接电脑(一些单片机程序下载接口也采用TypeB)

(三)Type-C

(四)Micro

(五)Mini

(六)Lighting

注意:本来不想写lighting的,因为苹果的lighting和usb并不是一个东西,这是苹果公司自己搞出来的私有接口规范,但是由于日常中也时有见到,所以还是记录一下。

需要注意的是,上图展示的都是公头,每一个公头都有与之对应的母头,引脚一一对应,由于形状相似,所以不再展示母头的图片,具体可以参考另一篇文章

三、USB口的引脚定义

(一)USB2.0

前面的图片展示的均为USB2.0协议下的接口,下面具体介绍每一个引脚的作用

看到这里,可能读者会有疑问,ID引脚(也就是4号)引脚有什么作用,为什么又分两种接法。
别着急,这将在后面的OTG(On-The-Go)部分进行详细讲解。

  这里再捎带提一下Lighting接口的引脚定义,因为lighting的引脚虽然不与USB2.0的规范完全一致,但其数据传输速度由于引脚的限制仅能达到USB2.0的传输速度(需要注意这并不代表其和USB2.0是同一个接口规范)
  Ligthing接口分为正反AB两面,具体引脚如下图所示

1.AB两面,引脚类型一样,排序次序不一样.
2.GND是地线。
3.S是信号接口,向手机发送信号,告诉手机现在是A面还是B面。
4.D+、D-是USB的数据线,传输数据。
5.V是USB的电源线,充电线。
6.NC是未定义的脚,暂时没用。

  由此也可以很容易做到lighting接口转USB TypeA,仅需要把电压、地、D+和D-与TypeA接口对应连接起来即可,至于lighting的通信协议,不再做讲解。

(二)USB3.0


GND-Drain 一般用于屏蔽层连接,它通常需要与地(GND)相连,以保证屏蔽效果,防止电磁干扰

  可见USB3.0相比USB2.0多出5条特殊引脚,用于实现全双工超速差分信号传输,USB2.0使用D+和D-实现半双工通信,而USB3.0新增差分信号发射对和差分信号接收对来实现全双工通信,目前许多支持USB3.0协议的接口同时还留有USB2.0定义的数据引脚(D+和D-),用于支持USB2.0通信。至于他们的通信协议,后面会专门讲。
  下面以Type-A、Type-B、Type-C为例稍微讲一下引脚分布,其他类型的接口也是同理。

1、 Type-A

  到这里你应该学会了如何区分Type-A的2.0接口和3.0接口,应该去看他的接口内的引脚数量(而不是去看那块塑料的颜色),如果引脚数量为4,那么肯定是2.0;如果可以看到引脚的数量为9,那么它可能是3.0接口,为什么是只是可能?因为有些不良商家,虽然用的是支持3.0的接口,但是在接线的时候只连接了2.0的引脚,其他的引脚甚至都没焊上,所以买的时候要小心...

2、Type-B

3、Type-C

(1)24Pin

Type-C的引脚定义也是大同小异,支持USB3.0协议的Type-C接口为24Pin接口,也称全能Type-C接口。


  巧妙的引脚设计使得Type-C在接口时无需辨别正反,正插反插都能达到同样的效果。
下面是每个引脚的具体定义

  可见24pin接口具备USB3.0协议中的所有针脚,但是同时还多出CC和SBU等引脚,这主要是用于实现新型的PD(PowerDelivery)快充协议,至于这些接口的协议,后面会说。
  除了24pin的Type-C接口,其实它还有16pin、12pin和6pin的引脚,下面具体来看

(2)16pin、12pin

   一些普通的设备不支持USB3.0,只有USB2.0,使用24Pin的TypeC很浪费,于是就有了16Pin的TypeC,相比24Pin,就是少了下图中阴影部分遮盖的超高速全双工信号传输通道,除了没有USB3.0高速传输外,其他别无二致,同样支持PD快充(后面协议部分会说)。
   16Pin一般为接口厂家、封装的正式名称,而日常生活中习惯称呼为12Pin。这是因为接口设计时,将TypeC母座两端的两个Vbus和GND出线都并拢了起来,虽然从口那里看是16条出线,但座子后面的焊盘只有12个。

  本来16pin、12pin的Type-C口应该放在前面的USB2.0引脚定义中讲,但是为了更加连贯直观的介绍Type-C口,本人是从USB3.0引脚定义的24pin Tpye-C口引申到16pin、12pin。

(3)6pin

  对于玩具、牙刷等生活用品,产品定位上没有USB通信的需求,只需要USB取电充电。那么连USB2.0都可以省掉了。
  6Pin TypeC正式出道。6Pin TypeC仅仅保留Vbus、GND、CC1、CC2。接口两侧对称分布着两组GND、Vbus,使得防反插功能保留,粗线也让其更为方便的传输大电流,CC1、CC2用于PD设备识别,承载PD协议,以向供电端请求电源供给(可见6pin的TypeC尽管没有了USB2.0通信协议,但仍能支持PD协议)

  看到这里再会过头想想,对于Type-B、Mirco、Mini接口,如果我们仅仅使用它的供电功能,那D+和D-也没有存在的必要,但通常这些接口都带有这些引脚,对于仅仅需要供电而不需要通信的电路,D+和D-悬空即可。



四、OTG技术

(一)概念

OTG即On-The-Go的英文缩写,是由USB标准化组织公布的一项用于USB设备连接或数据交换的技术

(二)作用

通过OTG技术,可将原本作为终端的USB设备演变为主机,从而达到满足USB设备之间进行相互控制或管理的需求。

(三)原理与制作

  注意:接下来将以Type-A转Micro-B类型的OTG数据线和Type-A转Type-C类型的OTG数据线为例进行详解,由于第二个OTG数据线的制作涉及到Type-C所支持的PD快充协议,所以下面的第2点读者可以先跳过,等看完快充协议再回来看,可能更容易理解。

1、Type-A转Micro-B类型
  • 先了解主机与从机,简单理解:主机是控制方,从机是被控方。

  • USB 2.0规范定义了主机/外设关系,PC始终是主机,插入它的设备是外围设备。举例:以日常的数据线(Type-A~Micro-B)为例,用其将手机和电脑连接起来,那么默认手机就是从机,电脑就是主机,由主机向从机供电,并管理从机的数据。

  • 随着PDA,数码相机和各种其他便携式设备的技术进步,需要直接互连这些设备而无需增加计算机,USB 2.0不支持此功能(一种简单的应用情景就是用手机直接管理U盘,此时手机变成了主机,U盘变成了从机,如果任然按照以前的规定,这是不能实现的)。因此,为了克服这一限制,USB-OTG被发布。

  • 所以USB口中的ID引脚此时就发挥了作用,通过接地或者悬空(上拉)来让设备确定自己在本次通信中作为主机(Host)还是从机(Slave),而对于能够根据ID引脚的电平来确定自己是主机还是从机的设备(也就是能在特定情况下能作为主机管理其他设备),就称这个设备支持OTG技术,现在许多智能手机都支持OTG。

  • 对于普通的数据线(Type-A~Micro-B为例),Micro-B中的ID引脚通常是悬空的,这样移动设备在使用这条线时就知道自己是从机。
    同理,对于支持OTG的设备,若要求其能够作为主机管理其他设备,就需要专用的OTG数据线(我们常称为转接口或手机拓展坞),其图片和接线图如下所示


2、Type-A转Type-C类型

还需注意到上面的接口均以USB2.0接口为例,如果要制作支持USB3.0的OTG数据线,做法大同小异,只是多了一对超速发送差分信号对和一对超速接收信号对,将这多出来的四条脚对应连接即可(GND-Drain通常接地,用于屏蔽电磁干扰)

五、充电协议

(零) 协议升级的目的与发展现状

1、协议升级的理论依据

由于充电功率和电压电流相关P=UI,提高电压或者电流就可以提高充电功率,在电池容量一定的情况下,功率越大充电速度越快。

2、发展现状

现行快充技术主要分为两大阵营:低压快充和高压快充。

  • 低压快充以OPPO的VOOC闪充为代表,通过增大充电电流的方式来提高充电功率。

    • 优点:发热量小、能量转换效率高

    • 缺点:硬件需要定制,成本高,兼容性差

  • 高压快充以高通QC2.0为代表,其他厂家技术原理和高通一样都是基于BC1.2,通过增大充电电压来提高充电功率。

    • 优点:兼容性好、继承性好、稳定

    • 缺点:发热量大,能量转换效率低

    为什么高压低流相比低压高流更加容易让设备发热呢?
      因为手机中的锂电池电压范围为3.7V~4.35V,用高电压充电的话,虽然充电线的损耗是小了,但在手机里要增加降压电路,不但增加了成本,降压电路工作时也会产生损耗,实质就是把损耗从充电线移到了手机里了,这部分损耗的能量转化为热能使得设备发热明显。

    那为什么不全部改用低压大电流充电?
      低电压、大电流方案的主要缺点则是定制带来的高昂成本。从手机内部的相关元件、充电线再到充电器,全都需要根据实际情况进行定制和调校。以线材为例,常见的通用充电线材只能承载 3A 的电流,要实现 5A 大电流快充,就必须对充电线进行改造,同时加装额外的芯片。

  许多移动设备厂商在BC1.2的基础上进行改进,开发了许多私有快充协议,市面上有许多私有快充协议,想一口气将其全部学明白是非常困难的,下面只介绍常见的快充协议来更加直观地感受快充协议的工作过程。

(一)BC1.2快充协议

1、介绍

  BC1.2 (Battery Charging v1.2)是USB-IF下属的BC(Battery Charging)小组制定的协议,主要用于规范电池充电的需求,该协议最早基于USB2.0协议来实现。USB2.0协议规定外设从USB充电器抽取电流的最大值为500mA,500mA的电流限制无法满足日益增长的快充需求。因此,BC1.2引入了充电端口识别机制,下面先了解一下下面几种端口类型。

2、协议识别过程

  • ①VBUS Detect Vbus 检测( VBUS检测)
    PD(portable device,便携式设备)中有个检测VBUS是否有效的电路,电路有一个参考值,高于这个值就认为是VBUS有效了,参考值不固定一般在0.8V~4V之间

  • ②Data Contact Detect 数据连接检测(这一步可以不看,感觉没什么必要())
    VBUS电压有效后,便携式设备必须确保数据引脚保持接触,然后再进行检测。如果终端设备在数据引脚接触之前过早做出决策,就可能错误地判断充电器类型,这个阶段不是必须的,因为USB端口可能支持数据协议也可能不支持。如果这个阶段超时900ms还没检测到D+或ID PIN的连接,就要求必须开始进行Primary Detection。

  • ③Primary Detection 首次检测(主充电器检测)
    该阶段主要作用是判断端口是充电口还是数据口,即终端设备区分具有充电标签的500mA以上端口(CDP和DCP)与500mA以下端口(SDP)。

    • 关闭DCD阶段的电流源后,终端设备必须在D+上使能0.5V至0.7V电压源,在D-上使能25μA至175μA流入电流源。
    • 如果在D-上出现0.5V至0.7V电平,则判定连接的是DCP或CDP;
    • 如果D-电压下降至零,则判定为连接的是SDP,则需要进一步进行判定:终端设备切入一个比较器,将D-电压与0.25V至0.4V进行比较。如果D-电压高于0.4V但低于逻辑低电平门限0.8V,终端设备则认为此端口用于充电;否则,判定为此端口用于数据连接。
  • ④Secondary Detection 二次检测
    该阶段作用是确认充电口能否支持数据协议,即区分CDP和DCP。

    • 按照反序执行③的测试。在D-作用0.5V至0.7V电压源,在D+作用50μA电流源。
      • 如果D+出现0.5V至0.7V电平连接,判定为DCP
      • 如果D+电压为零,判定为CDP
  • ⑤判定完毕,按照对应的结果进行供电或者传输数据。

3、波形展示

4、补充与衔接

  由于BC1.2并非强制性协议,许多厂家基于BC1.2研发了自己的私有快充协议。比如高通的QC2.0/QC3.0,联发科的PE(Pump Express)/PE+。高通的QC2.0/QC3.0和联发科的PE快充方案技术原理是一样的,都是通过增大充电电压来提高充电功率

(二)高通QC(Quick-Charge)协议

1、介绍  

美国高通专为配备Qualcomm骁龙处理器的终端而研发的快速充电技术。

  • QC1.0充电协议:
    突破了BC1.2充电协议的最大1.5A电流极限,达到5V2A,充电时间缩短40%

  • QC2.0充电协议:

  • QC3.0充电协议:

  • QC4.0充电协议:

2、协议识别过程

2-1、QC2.0协议
  • ①将充电器通过数据线连接到手机上,充电器默认将D+、D-短接,这样手机端探测到充电器类型是DCP(专用充电端口模式),此时默认输出5V电压,手机正常充电;
  • ②如果手机支持QC2.0快速充电协议,则Android用户空间的hvdcp(high voltage dedicated charger port)进程启动,开始在D+上加载0.325V电压,并维持1.25S以上;
  • ③当充电器检测到D+上电压0.325V并维持超过1.25S后,充电器断开D+和D-的短接,由于D+和D-断开,故D-上的电压不在跟随D+变化,此时电压开始下降;
  • ④手机端检测到D-上的电压从0.325V开始下降并维持1ms以上时,hvdcp读取/sys/class/power supply/usb/voltage max 的值,如果是9000mv,则设置D+上电压为3.3V,D-上电压为0.6V;若为5000mv,则设置D+上电压为0.6V,D-上电压为0V;需要注意的是,如果D-设置为3.3V,说明该设备还支持QC3.0,就要进入后续的QC3.0协商过程,也就是说QC3.0是QC2.0的进步式协议
  • ④充电器检测到D+、D-上的电压后,就调整充电器的输出至相应电压
2-2 QC3.0协议
  • QC3.0就是一个步进式的协议,如增加200mv的输出电压,就是DM3.3V,DP发送0.6~3.3V的方波,一个方波增加一次电压;降低电压相反

(三)USB-PD协议(USB-Power Delivery)

1、介绍

  USB-PD是USB-IF(USB开发者论坛(USB-Implementers Forum))定制的基于USB Type-C的一种充电标准与技术,最大供电功率可达100瓦(W)。随着USB Type-C的普及,越来越多的设备(手机、平板、显示器、工作站、充电器等)使用USB-PD快速充电方案。

  需要注意的是,前面讲到的QC快充协议仅仅约定了有关充电的协商过程,但是USB-PD协议不仅约定了充电过程,还约定了数据通信过程,由于本节主要讲的是充电协议,所以暂不深究USB-PB的数据通信协议(后面再讲)。

  USB Type-C标准相对于旧标准的另一不同点是它引入了双角色能力,每根USB Type-C电缆的两端都是完全等同的,这就意味着连接起来的两台设备必须相互进行沟通以确定自己应作为主机还是外设而存在,角色的沟通需针对数据和电源分别进行,此工作在电缆接通之后就要进行。

  • 数据通讯
    • 主机端口被称为下行端口 (Downstream Facing Port, DFP)
    • 外设端口被称为上行端口 (Upstream Facing Port, UFP)。
  • 电源方面
    • 供电端被称为源端 (Source)
    • 耗电端被称为吸端 (Sink)。

  有的设备既可以有数据上的双角色 (Dual Roles of Data, DRD) 能力,又具有电源上的双角色 (Dual Roles of Power, DRP) 能力。CC线在两台设备连接期间能起到定义电源角色的作用,CC线采用类似USB2.0中D+和D-线的半双工通信方式。

2、协议详解

  在不采用电源传输协议的USB Type-C接口中,电源从源端传输到吸端的方法如下图所示。

  USB Type-C的源端总是包含有一个用于接通/关断VBUS的MOSFET开关,它也可能具有VBUS电流的检测能力,其主要作用是对过流状况进行检测,另外还会含有VBUS的放电电路。CC1和CC2的检测电路在源端和吸端都会存在。

  CC (Channel Configuration) 线的作用是对两个连接在一起的设备进行电源供应的配置。初始情况下,USB Type-C接口的VBUS上是没有电源供应的,系统需要在电缆连接期间进行设备角色的定义,插座上的CC线被上拉至高电平的设备将被定义为电源供应者即源端,而被下拉至低电平的设备将被定义为电源消费者即吸端。

  上图显示出了确定电源供求角色、电缆方向和电流供应能力的方法。源端的CC1和CC2通过电阻Rp被拉高,被监测着的CC1/CC2在没有连接任何东西时总是处于高电平,一旦吸端接入,CC1或CC2的电压就被电阻Rd拉低了。由于电缆中只有一条CC线,因而源端可以分辨出是哪个CC端被拉低了。吸端的CC1/CC2的电压也同样被监测着,一旦发现某条CC线被拉高了,其电压水平就让吸端知道源端电流供应能力。电路中的上拉电阻Rp也可以用电流源代替,这在集成电路中很容易实施,而且可以不受V+电源电压误差的影响。

  吸端的下拉电阻Rd的定义值是5.1kΩ,因而CC线的电压是由源端上拉电阻Rp的值(或电流源的电流值)决定的。也就是说电缆接通以后,CC1或CC2根据电缆的插入方向而被上拉至较高电压。本案中的电缆没有处于扭转状态,源端的CC1和吸端的CC1之间被接通,CC1上出现由Rp和Rd分压以后的电压,此电压将由吸端进行测量并由此知道源端的电流供应能力是多少,具体见下表

  引入电源传输 (Power Delivery, PD) 协议以后,USB Type-C系统的总线电压可以增加到最高20V,源端和吸端之间关于总线电压和电流的交流通过在CC线上传输串行的BMC编码来完成,此时系统框图如下所示。

   BMC(Bi-phase Mark Code, 双相标记码),此码是一种单线通信编码,数据1的传输需要有一次高/低电平之间的切换过程,数据0的传输则是固定的高电平或低电平。每个数据包都含有0/1交替的前置码、报文起始码 (Start of Packet, SOP)、报文头、信息数据字节、CRC循环冗余编码和报文结束码(BMC通讯数据可以用USB PD解码器进行解码),具体参见下图。

  现在的源端内部包含了一个电压转换器,它是受源端PD控制器控制的。根据输入电压条件和最高总线电压的需求,该电压转换器可以是Buck、Boost、Buck-Boost或反激式转换器。经过CC线进行的PD通讯也在PD控制器的管控之下。USB PD系统还需要有一个开关可以将Vconn电源切换至一条CC线上。

  当电缆的连接建立好以后,PD协议的SOP通讯就开始在CC线上进行以选择电源传输的规格,接下来的过程就和QC协议中移动设备和电源端通过D+和D-来进行协商传输规格的过程一样,大致流程就是:

    1. 吸端申请获得源端的能力数据。
    1. 源端提供它的能力数据信息。
    1. 吸端从源端提供的能力数据信息中选出适当的电源配置参数并发出相应的请求。
    1. 源端接受请求并将总线电压修改成相应的参数。在总线电压变化期间,吸端的电流消耗会保持尽可能地小。源端提升总线电压的过程是按照定义好的电压提升速度来进行的。
    1. 总线电压达到最后的数值以后,源端会等待总线电压稳定下来,再发送出一个电源准备好信号。到了这时候,吸端就可以增加其电流消耗了。当吸端希望总线电压降低的时候,同样的通讯过程也会发生。

  在总线电压下降期间,源端会激活一个分流电路,通过主动的总线放电使总线电压快速降低。达到额定值以后,源端会等待一段稍长的时间让总线电压稳定下来,然后再送出一个电源准备好信号。

  这样的通讯方法可确保总线上的任何电源变化都落在源端和吸端的能力范围内,避免出现不可控的状况。当Type-C电缆的连接被断开时,总线上的电源也被关断,任何新开始的连接都会进行电缆连接检测,电压也总是处于5V,这样就可以避免在电缆接通时有高电压从一台设备进入另一台设备 。

  电子标签:支持超速数据传输的USB 3.1电缆或是电流承载能力超过3A的电缆必须使用电子标签进行标识。下图所示红色方框即为eMark芯片,其作用就是对电缆特性进行标识。这种具有活力的电缆也可以包含用于信号整形的IC,它们都需要从电缆的VCONN端子获得电源供应。例如OPPO VOOC闪充,其通过低压大电流的方式增大充电功率,则在电缆中需要假装额外的eMark芯片来标记使用特殊的电缆特性。

  电源双重角色: 有的USB Type-C设备既可做源端,又可做吸端,它们被称为支持双重角色的设备 (Dual Role for Power, DRP)。这种设备的CC1和CC2端在互连以前处于高低电平交替变换的状态,一旦连接发生,两者的CC端都会发生改变,如下图所示。

  在这次连接事件中,左边的DRP设备选择做了源端,右边的DRP设备选择做了吸端。这个情形也可能反转过来,除非一台DRP设备已经被设定为源端优先(例如它由外部电源适配器供电时),或是被设定为吸端优先(例如处于由电池供电的情形)。

  电源角色的转换在连接期间也是可以发生的,只要连接在一起的两台DRP设备中有一台设备发起了角色变换的要求就行,下图显示了这样的角色变换的过程。

3、补充

  具体的PD协商过程大概就是使用约定好的数据包进行通信,这里不再做过多讲解,如要深究,可参考https://www.elecfans.com/d/2090655.html

(四)其他快充协议

有兴趣可以参考一篇文章带你了解常见快充协议

六、数据传输协议

待补充…

七、传输速率

待补充…

八、参考资料

参考文章
https://blog.csdn.net/u010783226/article/details/120142717
https://blog.csdn.net/qq_27854611/article/details/120316581
https://blog.csdn.net/weixin_45694615/article/details/108532889
https://blog.csdn.net/zzsddre/article/details/124420624
https://blog.csdn.net/ljj342018214/article/details/119250582
https://blog.csdn.net/wuhenyouyuyouyu/article/details/122636950
https://www.zhihu.com/question/318132575
https://zhuanlan.zhihu.com/p/196757396
https://www.cnblogs.com/cai-zi/p/14500144.html

posted @ 2024-11-13 02:56  wyuu101  阅读(1696)  评论(0编辑  收藏  举报