一、USB概念
Universal Serial Bus,简称 USB。中文翻译称为通用串行总线,是一种串口总线的标准,也是一种输入输出接口的技术规范
二、USB接口外形分辨
- 主要类型:Type-A,Type-B,Type-C,Micro,Mini
下面以USB2.0协议展示不同类型接口的形状
Type-A
Type-B
通常在打印机设备使用,另一端使用 USB-A 连接电脑(一些单片机程序下载接口也采用TypeB)
Type-C
Micro
Mini
需要注意的是,上图展示的都是公头,每一个公头都有与之对应的母头,引脚一一对应,由于形状相似,所以不再展示母头的图片,具体可以参考另一篇文章
三、USB口的引脚定义
1、USB2.0
前面的图片展示的均为USB2.0协议下的接口,下面具体介绍每一个引脚的作用
看到这里,可能读者会有疑问,ID引脚(也就是4号)引脚有什么作用,为什么又分两种接法。
别着急,这将在后面的OTG(On-The-Go)部分进行详细讲解。
2、USB3.0
可见USB3.0相比USB2.0多出5条特殊引脚,用于实现全双工超速差分信号传输,USB2.0使用D+和D-实现半双工通信,而USB3.0新增差分信号发射对和差分信号接收对来实现全双工通信,目前许多支持USB3.0协议的接口同时还留有USB2.0定义的数据引脚(D+和D-),用于支持USB2.0通信。至于他们的通信协议,后面会专门讲。
-
下面以Type-A和Type-B为例稍微讲一下引脚分布,其他类型的接口也是同理。
- Type-A
到这里你应该学会了如何区分Type-A的2.0接口和3.0接口,应该去看他的接口内的引脚数量(而不是去看那块塑料的颜色),如果引脚数量为4,那么肯定是2.0;如果可以看到引脚的数量为9,那么它可能是3.0接口,为什么是只是可能?因为有些不良商家,虽然用的是支持3.0的接口,但是在接线的时候只连接了2.0的引脚,其他的引脚甚至都没焊上,所以买的时候要小心...
-
Type-B
-
Type-C
-
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的引脚,下面具体来看 -
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。
-
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-悬空即可。
-
- Type-A
四、OTG技术
-
概念:OTG即On-The-Go的英文缩写,是由USB标准化组织公布的一项用于USB设备连接或数据交换的技术。
-
作用:通过OTG技术,可将原本作为终端的USB设备演变为主机,从而达到满足USB设备之间进行相互控制或管理的需求。
-
详解:
-
先了解主机与从机,简单理解:主机是控制方,从机是被控方。
-
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数据线(我们常称为转接口或手机拓展坞),其图片和接线图如下所示
到这里你已经学会如何自己做一个OTP转接口了。
-
五、充电协议
(零)协议升级的目的与发展现状
1、协议升级的理论依据
由于充电功率和电压电流相关P=UI,提高电压或者电流就可以提高充电功率,在电池容量一定的情况下,功率越大充电速度越快。
2、发展现状
现行快充技术主要分为两大阵营:低压快充和高压快充。
-
低压快充以OPPO的VOOC闪充为代表,通过增大充电电流的方式来提高充电功率。
-
优点:发热量小、能量转换效率高
-
缺点:硬件需要定制,成本高,兼容性差
-
-
高压快充以高通QC2.0为代表,其他厂家技术原理和高通一样都是基于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
- 按照反序执行③的测试。在D-作用0.5V至0.7V电压源,在D+作用50μA电流源。
-
⑤判定完毕,按照对应的结果进行供电或者传输数据。
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的方波,一个方波增加一次电压;降低电压相反
参考文章
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