程序项目代做,有需求私信(小程序、网站、爬虫、电路板设计、驱动、应用程序开发、毕设疑难问题处理等)

Rockchip RK3399 - USB OTG和extcon驱动

----------------------------------------------------------------------------------------------------------------------------

开发板 :NanoPC-T4开发板
eMMC16GB
LPDDR34GB
显示屏 :15.6英寸HDMI接口显示屏
u-boot2023.04
linux6.3
----------------------------------------------------------------------------------------------------------------------------

一、USB OTG

USB是主从模式的总线,主机称为Host,丛机称为Device(设备)。从机与从机之间、主机与主机之间(不包括USB4.0),不能互联。每次通信都是由主机发起,从机不能主动发起通信,只能被动的应答主机的请求。

USB OTGOn-The-Go)是一个扩展的USB标准,允许USB设备之间直接进行通信,而无需通过主机。这意味着设备可以在作为主机和从机之间切换角色,实现了更灵活的连接方式。例如,两台智能手机之间可以通过USB OTG直接连接并共享文件,而无需依赖计算机作为中介。

1.1 概述

对于标准USB2.0来说,一共有4根引脚,一对差分线D+/D-,还有地线GND、电源线VBUS

对于标准USB3.0来说:一共有9根引脚,为了兼容USB2.0除了拥有USB2.0的一对差分线D+/D-、以及地线GND、电源线VBUS外,还会拥有两对差分线(SSTX+SSTX-SSRX+SSRX-)和一根屏蔽地线;

USB2.0 OTG在标准USB2.0基础上增加了一根USB ID线,使用USB2.0 OTG的设备是可以通过ID脚位来判断其做为主机或是从机用途;

引脚 名称 线缆颜色 描述
1 VBUS 红色 +5V供电
2 D- 白色 差分数据-
3 D+ 绿色 差分数据+
4 ID N/A ID引脚为低电平时,则作为主机,此时VBUS需要为连接的USB设备供电
ID引脚悬空(高电平),则作为从机,此时VSBUS由连接的USB主机供电
5 GND 黑色

对于支持OTG功能的USB控制器,我们称之为USB OTG控制器。USB OTG控制器的工作模式有三种(通过程序控制):OTGDeviceHost

  • OTG:同时支持主机/从机,工作在这种模式时,我们可以通过IDVBUS两个脚的状态来识别是否接入了USB主机或USB设备;
  • Device:作为USB从机使用,由连接的USB主机提供VBUS电源;
  • Host:作为USB主机使用,可以外接USB设备,比如鼠标,键盘,并为所连接的USB设备提供VBUS电源;

USB常见的接口有USB Type-A/B/C三种,其中Type-A/B又有标准A/BMini-A/BMicro-A/B三种。无论是 Type-AType-B还是Type-C接口,只要设备支持USB OTG功能,就可以在两个设备之间实现直接连接和数据传输。实物图如下图所示:

接下来我们介绍一下这三种不同的接口是如何识别接入的是USB主机还是USB设备。

1.2 Type-A/B接口

1.2.1 Type-A

Type-A接口主要包括:标准Type-AMini-AMicro-A三种,每种接口有多少引脚呢?

接口 协议 引脚
Type-A(标准) USB1.0/2.0 VBUS、D+/D-、GND
Type-A(标准) USB3.0 VBUS、D+/D-、GND
两对差分线(SSTX+和SSTX以及SSRX+和SSRX-)和一根屏蔽地线
Mini-A USB1.0/2.0 VBUS、D+/D-、GND、ID
Mini-A USB3.0 未定义
Micro-A USB1.0/2.0 VBUS、D+/D-、GND、ID
Micro-A USB3.0 未定义
1.2.1 Type-B

Type-B接口主要包括:标准Type-BMini-BMicro-B三种,每种接口有多少引脚呢?

接口 协议 引脚
Type-B(标准) USB1.0/2.0 VBUS、D+/D-、GND
Type-B(标准) USB3.0 VBUS、D+/D-、GND
两对差分线(SSTX+和SSTX以及SSRX+和SSRX-)和一根屏蔽地线
Mini-B USB1.0/2.0 VBUS、D+/D-、GND、ID
Mini-B USB3.0 VBUS、D+/D-、GND、ID
两对差分线(SSTX+和SSTX以及SSRX+和SSRX-)和一根屏蔽地线
Micro-B USB1.0/2.0 VBUS、D+/D-、GND、ID
Micro-B USB3.0 VBUS、D+/D-、GND、ID
两对差分线(SSTX+和SSTX以及SSRX+和SSRX-)和一根屏蔽地线

这里不做过多展开介绍,更多可以参考:USB2.0、USB3.0和typec引脚定义》

1.2.3 角色识别

对于有ID引脚的USB接口,可通过VBUSID两个脚的状态来识别是否接入了USB主机或USB设备;

(1) 当OTG设备(SoC USB OTG端口)插入USB主机(比如PCType-A),USB主机会给USB从机VUSB供电,VBUS_ON引脚检测到上升沿,触发中断。OTG设备会对ID引脚进行状态检测,当检测到高电平时,OTG设备切换成从机模式;

切换成从机模式后,USB DP(高速设备为DP,低速设备为DM)上产生一个高电平脉冲,此时PC识别到一个USB设备插入,windows会提示用户。

(2) 当USB从设备(OTG连接线+U盘,micro USB的第4脚是直接连到GND的)插入OTG设备(SoC USB OTG端口)时。SoC USB OTG端口的ID引脚检测到下降沿,OTG设备切换成主机模式。

切换成主机模式后,主设备通常会将VBUS_DRV拉高,然后通过限流电路给从设备供电,这时候USB DP(高速设备为DP,低速设备为DM)上可以测试到高电平脉冲。

于是软件可以通过主动读取这两个脚的电平或者异步响应这两个脚的中断来获知状态的变化。从而控制USB OTG控制器工作在主机/从机模式。

需要注意的是:上图绘制只有5根接线,如果是USB3.0通信协议,还会有两对差分线(SSTX+和SSTX以及SSRX+和SSRX-)和一根屏蔽地线。

1.3 Type-C

1.3.1 介绍

Type-C接口又叫USB-C接口。Type-C接口尺寸为8.3×2.5毫米,小于当前PCType-A接口,但略大于Micro-B接口。Type-C相对于其它接口的优势:

  • 可选集成DisplayPortHDMI,用于视频传输;
  • 通过USB Power Delivery技术,可用于3C产品(如笔记本电脑、智能手机)的充电;
  • 它无需区分正反;

Type-C规格所定义的插座及缆线可让使用者在插入其产品与缆线时,毋须考虑连接器的位置(正反皆可)。缆线两端皆可使用Type-C插头,如有需要亦可在缆线一端使用旧型Type-A/B插头。

为了满足更高频宽的应用,Type-C规格在连接器中加入了多组USB3.0TX/RX差分线。

1.3.2 引脚

(1) Type-C母头

(2)Type-C公头

Type-C接口比Type-A/B接口的引脚多多了,标准的Type-C接口有24个引脚,共有有4对TX/RX差分线,2对USBD+/D-,一对SBU,2个CC,另外还有4个VBUS和4个地线;

描述 描述
A1 GND 接地 B12 GND 接地
A2 SSTXp1 SuperSpeed差分信号#1,TX,正 B11 SSRXp1 SuperSpeed差分信号#1,RX,正
A3 SSTXn1 SuperSpeed差分信号#1,TX,负 B10 SSRXn1 SuperSpeed差分信号#1,RX,负
A4 VBUS 总线电源 B9 VBUS 总线电源
A5 CC1 Configuration channel B8 SBU2 Sideband use (SBU)
A6 Dp1 USB 2.0差分信号,position 1,正 B7 Dn2 USB 2.0差分信号,position 2,负
A7 Dn1 USB 2.0差分信号,position 1,负 B6 Dp2 USB 2.0差分信号,position 2,正
A8 SBU1 Sideband use (SBU) B5 CC2 Configuration channel
A9 VBUS 总线电源 B4 VBUS 总线电源
A10 SSRXn2 SuperSpeed差分信号#2,RX,负 B3 SSTXn2 SuperSpeed差分信号#2,TX,负
A11 SSRXp2 SuperSpeed差分信号#2,RX,正 B2 SSTXp2 SuperSpeed差分信号#2,TX,正
A12 GND 接地 B1 GND 接地

引脚功能描述如下:

功能 引脚 描述
USB3 A2,A3,B2,B3,A10,A11,B10,B11 USB3数据传输
USB2.0 A6/B6(D+),A7/B7(D-) USB2.0数据传输
配置 CC1,CC2 配置功能接口,插拔检测,供电协议信息传输,VCONN功能
辅助信号 SBU1,SBU2 辅助信号
供电 VBUS,VCONN,GND 供电

Type-C插座中明显消失的是之前Type-AType-B接头的ID引脚。在Type-C中,使用配置通道 (CC) 引脚这种不同的处理方式来决定设备是作为主机,还是作为外设。CC引脚所执行的功能与ID引脚之前执行的功能一样;它们表明了设备是作为主机、设备,还是兼具二者的功能。接下来我们重点介绍CC引脚的功能。

1.3.3 DFP/UFP/DRP

USB规范中为主机、从机定义了两个专业术语:

  • DFPDownstream Facing Port):Source,下行端口,可以理解为一个主机,DFP作为sourceVBUSVCCON供电的,简单理解为一个提供电源的设备,如:电源适配器;
  • UFPUpstream Facing Port):Sink,上行端口,可以理解为从机,UFP可以理解为受电端口,DFP为供电端口,UFPVBUS中取电,并可提供数据。典型设备如:U盘、移动硬盘;

USB规范中如果一个设备的接口是DFP,则其必然是主机或者说具有主机的功能,一个接口是UFP,则其必然是从设备或者说其具有从设备的功能。

而在Type-C规范中,对原有的两种角色进行了扩充和重定义等,在Type-C规范中定义了DRPDual Role port),DRP可以做为DFP也可以做为UFP,可以供电,也可以受电;典型设备是:笔记本电脑、充电宝;

  • DPR接到UFP装置,DRP会转换为DFP
  • DRP接到DFP装置,DRP会转换为UFP;
  • 当两个DRP装置接在一起,两个装置会Random地,一方为DFP,一方为UFP

充电宝为UFPSink)的应用:电源适配器给充电宝充电。

充电宝为DFPSource)的应用:充电宝给手机或其他设备充电。

1.3.4 角色识别

Type-C的接口双方角色的识别其实是通过Type-C接口中的两根CC线进行检测设置的。如下图所示:

注:这里的线缆器件是指有eMark芯片的线缆会用到VCONN供电,当一个CC 确认方向后Source端的另一个CC会切换成VCONNeMark供电,带有eMark芯片的线缆能通过CC与设备进行通信,反馈此线缆的温度,承受电流能信息,对于大功率充电的安全性还是有很大帮助的。

上图中左侧为DFP,右侧为UFP

亲爱的读者和支持者们,自动博客加入了打赏功能,陆陆续续收到了各位老铁的打赏。在此,我想由衷地感谢每一位对我们博客的支持和打赏。你们的慷慨与支持,是我们前行的动力与源泉。

日期姓名金额
2023-09-06*源19
2023-09-11*朝科88
2023-09-21*号5
2023-09-16*真60
2023-10-26*通9.9
2023-11-04*慎0.66
2023-11-24*恩0.01
2023-12-30I*B1
2024-01-28*兴20
2024-02-01QYing20
2024-02-11*督6
2024-02-18一*x1
2024-02-20c*l18.88
2024-01-01*I5
2024-04-08*程150
2024-04-18*超20
2024-04-26.*V30
2024-05-08D*W5
2024-05-29*辉20
2024-05-30*雄10
2024-06-08*:10
2024-06-23小狮子666
2024-06-28*s6.66
2024-06-29*炼1
2024-06-30*!1
2024-07-08*方20
2024-07-18A*16.66
2024-07-31*北12
2024-08-13*基1
2024-08-23n*s2
2024-09-02*源50
2024-09-04*J2
2024-09-06*强8.8
2024-09-09*波1
2024-09-10*口1
2024-09-10*波1
2024-09-12*波10
2024-09-18*明1.68
2024-09-26B*h10
2024-09-3010
2024-10-02M*i1
2024-10-14*朋10
2024-10-22*海10
2024-10-23*南10
2024-10-26*节6.66
2024-10-27*o5
2024-10-28W*F6.66
2024-10-29R*n6.66
2024-11-02*球6
2024-11-021*鑫6.66
2024-11-25*沙5
2024-11-29C*n2.88
posted @   大奥特曼打小怪兽  阅读(1857)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
如果有任何技术小问题,欢迎大家交流沟通,共同进步

公告 & 打赏

>>

欢迎打赏支持我 ^_^

最新公告

程序项目代做,有需求私信(小程序、网站、爬虫、电路板设计、驱动、应用程序开发、毕设疑难问题处理等)。

了解更多

点击右上角即可分享
微信分享提示