接下来我们看看是如何实现的,首先我们要知道数据和供电是两个角色,数据和供电都有主从关系。就拿手机的Type-C接口来说,接口里搭载的PD协议里定义了 Data Role 和 Power Role 。
在USB2.0端口的Data Role里,USB根据数据传输的方向定义了HOST/Device/OTG三种角色,其中OTG即可作为HOST,也可作为Device,在Type-C中,也有类似的定义,只是名字有了些许修改。 1.DFP(Downstream Facing Port):
下行端口,可以理解为Host或者是HUB,DFP提供VBUS、VCONN,可以接收数据。在协议规范中DFP特指数据的下行传输,笼统意义上指的是数据下行和对外提供电源的设备。 2.UFP(Upstream Facing Port):
上行端口,可以理解为Device,UFP从VBUS中取电,并可提供数据。典型设备是U盘,移动硬盘。 3.DRP(Dual Role Port):
请注意DRP分为DRD(Dual Role Data)/DRP(Dual Role Power)双角色端口,类似于以前的OTG,DRP既可以做DFP(Host),也可以做UFP(Device),也可以在DFP与UFP间动态切换。典型的DRP设备是笔记本电脑。设备刚连接时作为哪一种角色,由端口的Power Role(参考后面的介绍)决定;后续也可以通过switch过程更改(如果支持USB PD协议的话)。
而在Type-C的Power Role里,同样根据USB PORT的供电(或者受电)情况,USB Type-C将port划分为Source、Sink等power角色