Type-c设计,PD相关软硬件实现详解


Type-c入门,以及设计相关详解

  • 参考文献
  • Type-c 的引脚功能
    • Type-c 的配置处理
    • 逻辑USB –C线上下拉电阻
    • Type-c 信号介绍--USB各版本的差异
  • USB Type-C口角色定义
    • SOURCE到SINK连接
      • Sink端的结构
      • Source端的结构
      • DRP(Dual Role Port)双端口
      • Type-c 线定义
    • CC通道的配置目的
    • Type-C 接口可以实现两类附属模式( accessory mode)
    • Type-C 采样BMC( Biphase Mark Coding) 编码
      • BMC( Biphase Mark Coding) 编码定义
      • 数据到CC传输(发送)
      • 4b5b的解释
  • PD协议
    • USB PD包的结构
    • USB PD消息
    • 主从端电源协商协议
      • 电源的切换序列
      • 数据的切换序列(空)
  • 例子--USB Dock with DisplayPort
    • 连接拓扑图
    • 管脚分派
  • USB在STM32G0上的实现(空)

参考文献 通用串行总线电力传输规范,版本2.0, 2016年3月25日
通用串行总线Type-C线缆和连接器规范1.2, 2016年3月25日
Type-c 的引脚功能 Type-c设计,PD相关软硬件实现详解
文章图片

分为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线上下拉电阻 Type-c设计,PD相关软硬件实现详解
文章图片

逻辑USB –C ADAPTER上下拉电阻
Type-c设计,PD相关软硬件实现详解
文章图片

  • 供电( source) 通过Rp的阻值来告诉耗电( sink) 自己的默认供电电流:
    例:5V1.5A的设备就是上拉电阻22K
    Source端默认的上拉电阻是56K,通过改变上拉电阻的阻值(漏电流)来告诉设备有更强的驱动能力。
  • Sink 端的下拉电阻同Source
Type-c设计,PD相关软硬件实现详解
文章图片

Type-c 信号介绍–USB各版本的差异 Type-c设计,PD相关软硬件实现详解
文章图片

USB Type-C口角色定义 可以通过USB的PD协议进行动态的切换
数据角色
  • DFP --Houst–主机
  • UFP–Device–从机
电源角色
  • SOURCE 纯供电方
  • SINK 纯耗电方
  • DRP( Dual role power) 双重角色的的可供电设备。
SOURCE到SINK连接 下图示意了CC线上链接的示意图
Type-c设计,PD相关软硬件实现详解
文章图片

下图示意了CC线上不同的上下拉电阻,所代表的不同设备使用情况的检测。PD协议中有详细的规范。
Type-c设计,PD相关软硬件实现详解
文章图片

  • 如果cc1和cc2 两个都是开即没有连接
  • 如果有一个cc检测到Rd,即cc线得到连接,
Type-c设计,PD相关软硬件实现详解
文章图片

Sink端的结构
  • Sink 必须有两个下拉电阻( Rd) 分别连接到 两条CC脚上。
  • SINK通过检查到VBUS来确定一个Source的连接
  • SINK通过CC脚上的上拉来建立和检查一个正确的高速USB数据路径( 正反向)
  • 如果sink 支持PD和/或者VDM,需要CC通讯
Type-c设计,PD相关软硬件实现详解
文章图片

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端的链接示意图:
Type-c设计,PD相关软硬件实现详解
文章图片

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设计,PD相关软硬件实现详解
文章图片

Type-c 线定义
Type-c设计,PD相关软硬件实现详解
文章图片

带Rmark的Type-c线
Type-c设计,PD相关软硬件实现详解
文章图片

CC通道的配置目的 在功能上, 配置通道(CC)用于以下目的:
? 检测USB端口的连接/分离, 例如DFP到UFP, 配置VBUS
? 解析电缆方向和twist来建立USB数据总线路由,
? 建立两个连接端口之间的DFP和UFP角色
? USB电源传输通信
Type-c设计,PD相关软硬件实现详解
文章图片

Type-C 接口可以实现两类附属模式( accessory mode)
  • 音频模式( audio):通过检查到CC1和CC2上都有Ra时来进入音频模式
    Type-c设计,PD相关软硬件实现详解
    文章图片
  • 调试模式( 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%
    Type-c设计,PD相关软硬件实现详解
    文章图片
数据到CC传输(发送)
Type-c设计,PD相关软硬件实现详解
文章图片

4b5b的解释
Type-c设计,PD相关软硬件实现详解
文章图片

Type-c设计,PD相关软硬件实现详解
文章图片

CC数据到数据(接收)
Type-c设计,PD相关软硬件实现详解
文章图片

PD协议 PD2.0和3.0的差异对比
Type-c设计,PD相关软硬件实现详解
文章图片

USB PD包的结构 Type-c设计,PD相关软硬件实现详解
文章图片
- Preamble :64bit[1010101…]0开始的包含64个0和1的序列,不进行4b5b编码。
-SOP:不同数据包的开始,像接收者指明包的开始,谁是此消息的接收者(SOP, SOP ', SOP ‘’)是单向的,发一个再回来一个。
Type-c设计,PD相关软硬件实现详解
文章图片

USB PD消息 Type-c设计,PD相关软硬件实现详解
文章图片

CRC是32位的, 引用头和所有数据。
? 不包括前言、 SOP和EOP。
? 多项式= 0x04C1 1DB7
? 初始值= 0xFFFF FFFF
【Type-c设计,PD相关软硬件实现详解】EOP是单k码(5位)
? 它触发当前帧的CRC结束(开始计算)。
? 它可以在任何时候发送, 以提前结束一个数据包始
主从端电源协商协议
  1. Source插入发现设备
  2. Cable Plug返回信息,建立连接给ACK.SOP’’(此时连接已经建立)
  3. source capabilities 通过Rp,提供 供电能力信息,sink request 描述需要的电
  4. 接受(accept)则PS_ready 开始供电
    Type-c设计,PD相关软硬件实现详解
    文章图片
设备的切换
Type-c设计,PD相关软硬件实现详解
文章图片

电源的切换序列
电源的切换,这个在电力的角色切换,数据没有被切换
Type-c设计,PD相关软硬件实现详解
文章图片

Sink不支持
Type-c设计,PD相关软硬件实现详解
文章图片

Sink支持,但此时在忙,一会继续通信
Type-c设计,PD相关软硬件实现详解
文章图片

数据的切换序列(空)
例子–USB Dock with DisplayPort 连接拓扑图
  • cc进行初始化的操作
  • SBUS做信号的传输
  • TX2/Rx2 做高速信号的传输
支持音频拓展,DP的拓展
Type-c设计,PD相关软硬件实现详解
文章图片

管脚分派 A5:cc直连
USB正常连接
A8:audio 设备的配置
B3B2:做DP的数据传输
Type-c设计,PD相关软硬件实现详解
文章图片

  • Discover SVIDs
  • Discover Modes
  • Type-c设计,PD相关软硬件实现详解
    文章图片

    ? Enter mode
    ? Config displayport
Type-c设计,PD相关软硬件实现详解
文章图片

以上配置都在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?端口管理器
Type-c设计,PD相关软硬件实现详解
文章图片

ST MCU 现有STM32G4、STM32L5、 STM32G0等系列微控制器支持USB Type-C和Power delivery接口(UCPD)IP。UCPD功能与STM32CubeMX软件工具兼容,可以配置外设为Sink、Source或Dual Role
Type-c设计,PD相关软硬件实现详解
文章图片

X-CUBE-USB-PD
STM32G0技术详解 _ Type-C-UCPD
https://zhuanlan.zhihu.com/p/84023742

    推荐阅读