Type-c设计,PD相关软硬件实现详解 (转)
Type-c入门,以及设计相关详解
参考文献
通用串行总线电力传输规范,版本2.0, 2016年3月25日
通用串行总线Type-C线缆和连接器规范1.2, 2016年3月25日
Type-c 的引脚功能
分为AB两边,每边12PIN
A6 和A7
- 兼容了USB 2.0接口,插座上A6,A7与B6,B7对应的引脚是连在一起的。
CC1和CC2:
- CC用于发现,配置和管理通过USB Type-C线缆建立连接
- 在实际使用中只使用一个CC通道,另外一个CC配置成Vconn,对emark供电
Emark是线缆上的一颗IC,会将线缆的供电能力输出,如果线缆的供电能力3A及以上必须输出信息。
SUB1和SUB2
- 复用功能,如Audio模式,DP模式,通过这两个线实现
VBUS
- 供电的线路,可在5V-20V之间调节,最大20V/5A 即100W供电
疑问:TI部分产品能实20V/10A 即200W的供电,协议如何处理。 - 通过CC通道和线缆or总线进行协商,主从端进行协商,具体的电压电流(使用单片机or IC 控制即控制cc上协商的数据从而改变输出)
高速信号线
- USB3.1 Tx1 Tx2,Rx1 Rx2进行高速的数据传送
Type-c 的配置处理
连接时包含一个配置处理的过程,目的有两个
- 检测一个DFP连接去一个UFP的连接
- 管理VBUS
配置过程
- SRC to SINK插入或者拔出检测
- 插入的正反方向检测
- 初始化电源( SRC-SINK) 和建立数据关系。
逻辑USB –C线上下拉电阻
逻辑USB –C ADAPTER上下拉电阻
-
供电( source) 通过Rp的阻值来告诉耗电( sink) 自己的默认供电电流:
例:5V1.5A的设备就是上拉电阻22K
Source端默认的上拉电阻是56K,通过改变上拉电阻的阻值(漏电流)来告诉设备有更强的驱动能力。 -
Sink 端的下拉电阻同Source
Type-c 信号介绍–USB各版本的差异
USB Type-C口角色定义
可以通过USB的PD协议进行动态的切换
数据角色
- DFP --Houst–主机
- UFP–Device–从机
电源角色
- SOURCE 纯供电方
- SINK 纯耗电方
- DRP( Dual role power) 双重角色的的可供电设备。
SOURCE到SINK连接
下图示意了CC线上链接的示意图
下图示意了CC线上不同的上下拉电阻,所代表的不同设备使用情况的检测。PD协议中有详细的规范。
- 如果cc1和cc2 两个都是开即没有连接
- 如果有一个cc检测到Rd,即cc线得到连接,
Sink端的结构
- Sink 必须有两个下拉电阻( Rd) 分别连接到 两条CC脚上。
- SINK通过检查到VBUS来确定一个Source的连接
- SINK通过CC脚上的上拉来建立和检查一个正确的高速USB数据路径( 正反向)
- 如果sink 支持PD和/或者VDM,需要CC通讯
Rd分别加在cc1和cc2上
Source端的结构
- Source 必须有两个上拉电阻( Rp) 分别连接到两条CC脚上, 并且同时监测SINK
- Source源在CC1和CC2上提供上拉电阻(Rp), 并监控两者以检测SINK。 在任何一个引脚上存在一个Rd下拉电阻表明正在连接一个Sink。 Rp的值表示主机支持的初始USB Type-C当前供电能力。
- Source用CC pin下拉特性来检测和建立高速USB数据路径的正确路由, 并确定哪个CC pin用于提供VCONN
- 一旦检测到SINK, Source将启用VBUS和VCONN
- Source可以动态的调节Rp值(默认52K), 来告诉SINK可以改变usb type-c电流
- Source应该实时监控Rd(sink端) 一旦SINK断开, 应该立刻断开已供电源( Vbus, Vconn)
- 如果Source 支持PD和/或者VDM,需要CC通讯
下图就是Source端的链接示意图:
DRP(Dual Role Port)双端口
- 在VBUS中启用/禁用电源, 最初在DFP模式中禁用VBUS
- 在建立一个特定的稳定状态之前, DRP、在将自身暴露为DFP和UFP之间交替进行,尝试检测设备的模式。
- 当DRP作为DFP呈现时, 它遵循DFP的操作来检测一个附加的UFP。如果检测到UFP, 它将应用VBUS,VCONN, 并继续作为DFP进行操作。
- 当DRP作为UFP呈现时, 它会监视VBUS,以检测它是否与DFP 相连,如果检测到DFP, 它将继续作为UFP运行
注:DRP模式中会不断的检测Vbus以及Vconn的电源,设备需要供电时会给上电源,但是通信模式不变
线路连接示意图:
Type-c 线定义
带Rmark的Type-c线
CC通道的配置目的
在功能上, 配置通道(CC)用于以下目的:
• 检测USB端口的连接/分离, 例如DFP到UFP, 配置VBUS
• 解析电缆方向和twist来建立USB数据总线路由,
• 建立两个连接端口之间的DFP和UFP角色
• USB电源传输通信
Type-C 接口可以实现两类附属模式( accessory mode)
- 音频模式( audio):通过检查到CC1和CC2上都有Ra时来进入音频模式
- 调试模式( Debug Accessory Mode ,DAM)
通过检查到CC1和CC2上都有不同的Rp和Rd阻值来决定进入不同的调试模式DTS或者TS
此模式使用较少
Type-C 采样BMC( Biphase Mark Coding) 编码
BMC( Biphase Mark Coding) 编码定义
数据是0,则电平不变,如果数据为1,则在数据有效位的中间产生一个数据翻转
BMC有一个固定的频率翻转,如果Data线上是0,则固定频率不变,如果是1,则在BMC的1/2频率上产生一次翻转。
- 传输速度为300kbps± 10%
数据到CC传输(发送)
4b5b的解释
CC数据到数据(接收)
PD协议
PD2.0和3.0的差异对比
USB PD包的结构
- Preamble :64bit[1010101…]0开始的包含64个0和1的序列,不进行4b5b编码。
-SOP:不同数据包的开始,像接收者指明包的开始,谁是此消息的接收者(SOP, SOP ', SOP ‘’)是单向的,发一个再回来一个。
USB PD消息
CRC是32位的, 引用头和所有数据。
• 不包括前言、 SOP和EOP。
• 多项式= 0x04C1 1DB7
• 初始值= 0xFFFF FFFF
EOP是单k码(5位)
• 它触发当前帧的CRC结束(开始计算)。
• 它可以在任何时候发送, 以提前结束一个数据包始
主从端电源协商协议
- Source插入发现设备
- Cable Plug返回信息,建立连接给ACK.SOP’’(此时连接已经建立)
- source capabilities 通过Rp,提供 供电能力信息,sink request 描述需要的电
- 接受(accept)则PS_ready 开始供电
设备的切换
电源的切换序列
电源的切换,这个在电力的角色切换,数据没有被切换
Sink不支持
Sink支持,但此时在忙,一会继续通信
数据的切换序列(空)
例子–USB Dock with DisplayPort
连接拓扑图
- cc进行初始化的操作
- SBUS做信号的传输
- TX2/Rx2 做高速信号的传输
支持音频拓展,DP的拓展
管脚分派
A5:cc直连
USB正常连接
A8:audio 设备的配置
B3B2:做DP的数据传输
- Discover SVIDs
- Discover Modes
• Enter mode
• Config displayport
以上配置都在cc中进行配置。
USB在STM32G0上的实现(空)
实现的方案
乘风破浪的USB Type-C™和PD
http://www.stmcu.org.cn/module/forum/thread-625939-1-1.html
满足USB Type-C™应用需求的STM32/ STM8解决方案包括:
· 使用STM8或STM32 MCU的入门级“仅USB-C”解决方案
· UCPD认证的STM32微控制器和保护 USBType-C™ 端口 TCPP01-M12 配套芯片,用于
· X-CUBE-USB-PD软件包,可简化在任何STM32 MCU上实施Type-C™端口管理器
ST MCU 现有STM32G4、STM32L5、 STM32G0等系列微控制器支持USB Type-C和Power delivery接口(UCPD)IP。UCPD功能与STM32CubeMX软件工具兼容,可以配置外设为Sink、Source或Dual Role
X-CUBE-USB-PD
STM32G0技术详解 _ Type-C-UCPD
https://zhuanlan.zhihu.com/p/84023742