该系列文章总目录链接与各部分简介: Android Qcom USB Driver学习(零)

USB接口类型

Android终端上常用的USB接口:TypeC(现在的主流),MicroB(以前的设备)

一、TypeC

Hardware Interface

USB-C引脚和功能指南

一文读懂USB TypeC与USB-…TypeC引脚定义

USB-C(USB Type-C)规范的简单介绍和分析

USB-C接口具有三个主要功能:

(1)允许设备协商并选择通过接口的适当功率水平。

(2)具有可翻转的连接器。接口的设计使得插头可以相对于插座翻转。

(3)支持USB 2.0,USB 3.0和USB 3.1 Gen 2标准。

(4)TypeC基于CC1/CC2通讯支持USB PD协议,高通基于D+/D-通信支持高通快充HVDCP高通快充握手协议,前提是基于BC1.2协议

(5)Typec接口要支持视频输出,必须支持DP,这就要看高通芯片的usb feature,而TypeA单是纯粹的数据接口,无法传输视频信号,但也有displaylink的技术能通过TypeA进行传输,通过将显卡计算的结果转为usb,传输后再将usb转为视频输出。

24Pin全功能的TypeC接口的成本较高,很多MCU没有USB3.0,于是就有仅支持USB2.0的16Pin的TypeC,去除SS的R/TX。

TypeC Pin Hardware schematic Function
VBUS USB_VBUS_CONN 总线电源
D ± USB_HS_TYP_C_DP USB_HS_TYP_C_DM USB2.0 高速(High Speed)差分信号
CC1/2 USB_CC1/2_CONN Configuration channel用于连接检测
R/T X1/2 ± USBC_SS_R/T X 0/1_CONN_P
USBC_SS_R/T X 0/1_CONN_M
USB3.0 SuperSpeed差分信号
SBUS1/2 USB0_SBU1/2 Sideband use 适用于传输非USB信号

Channel Configure

在USB2.0应用中,无需考虑CC方向检测问题,但USB3.0或者USB3.1应用中,必须考虑CC方向检测问题。CC1/CC2内部相连,最好分别使用5.1k下拉电阻,而不是共用一颗5.1k的电阻下拉到地。USBC硬件接口设计失误

USB Type-C的连接检测包括3部分的内容:

(1)连接检测;

(2)连接方向检测;

(3)Power Role检测。

Power Role

Source,通过VBUS或者VCONN供电。
Sink,通过VBUS或者VCONN接受供电。
DRP(Dual-Role-Power),既可作为Source,也可作为Sink。角色由设备连接后的CC决定,以及后续的power role switch过程决定。

Data Role

在USB 2.0及以前的时代,根据功能的不同,USB端口分为Host、Device、OTG等。快充协议芯片按照应用场景的不同,Type C又可称为以下三类角色:

DFP(Downstream Facing Port),一般作为Host或者Hub,在初始配置下通过VBUS或者VCONN向device供电,典型的就是电源适配器。
UFP(Upstream Facing Port),一般作为Device或者Hub,初始配置下通过VBUS或者VCONN由Host供电,例如接口转接线等。
DRD(Dual-Role-Data),类似于以前的OTG,既可以作为DFP,也可以作为UFP。设备刚连接时作为哪一种角色,由端口的Power Role
决定;后续也可以通过data role switch过程更改(如果支持USB PD协议的话),例如支持PD快充的移动电源、手机、电脑。

上拉电阻Pull-up resistor (Rp) +下拉电阻Pull-down resistor (Rd) ,通过Rp-Rd路径确定电缆连接及其方向,以及传达有关源电流能力的信息。对插头来说,正常情况下只有一个CC,通过检测CC引脚上的电压,连接线上的电压会低于未连接线上的电压,以此就可以判断连接的方向。如果是可供电的USB cable(Powered cable,E-Marker芯片),一个用做CC,另一个用作Vconn,给电缆芯片内部供电,则需要注意下拉电阻Ra,由于Ra不同于Rd,因此DFP仍能够通过检查DFP CC1和CC2引脚上的电压来确定电缆的方向。对于插座来说则有CC1/CC2两个通道。

设备连接与分开检测:DFP需要检测到CC管脚上有某个电压时,判断UFP设备已插入或拔出,来提供和管理VBUS。当没有UFP设备插入时,必须关闭VBUS。因此所有的DFP设备需要CC逻辑检测与控制芯片以及VBUS开关电路。

标准下拉电阻为Rd=5.1k,上拉电阻Rp不确定。USB Type-C靠Rp的不同,从而在 CC pin检测到的电压就不一样,来控制DFP供电模式。

DFP Perspective

CC1 CC2 State Postion
Open Open Nothing Attched,没有连接的端口 N/A
Rd Open UFP attached,连接的方向由CC为Rd决定,通过VBUS供电而非VCONN
Open Rd
Open Ra Powered Cable/No UFP attached,检测Open状态等待UFP attached
Ra Open
Rd Ra Powered Cable/UFP attached,通过VCONN(插座)和VBUS进行供电
Ra Rd
Rd Rd Debug Accessory Mode attached 调试附件模式 N/A
Ra Ra Audio Adapter Accessory Mode attached 音频适配器模式 N/A

USB 主机和配件概览,是否支持 USB 主机和配件模式最终取决于设备的硬件。

USB OTG

NMOS or PMOS的功能介绍

  N-MOS,当VGS大于某个值会导通 ,若为导通的状态下,如果通路上有大电阻则电流接近0,实际电位则为低,P-MOS高端驱动,当VGS小于某个值以上,则会导通。高通4290上USB OTG的功能主要是基于PMI632 CC1_ID(OTG mode enable or CC1 pin for the USB Type-C connector (user programmable),若USB功能需要转为Host,与此同时Data Role以及Power Role的角色也就需要转变。

if (chg->typec_port) {
typec_partner_register(chg);
typec_set_data_role(chg->typec_port,TYPEC_HOST); //Data Role ↑↑↑
typec_set_pwr_role(chg->typec_port, TYPEC_SOURCE); //Power Role ↑↑↑
vote(chg->usb_icl_votable, USB_PSY_VOTER, true, chg->dcp_icl_ua);
vote(chg->usb_icl_votable, SW_ICL_MAX_VOTER, false,0);
power_supply_changed(chg->usb_psy);
}

二、MicroB

Android终端一般接口都是TypeC,MicroB 一般为标准的USB接口:VBUS、USB_D+、USB_D-、USB_ID、GND

Android Qcom USB Driver学习(一)的更多相关文章

  1. Delphi 调试连接 任意Android手机/平板/盒子(要安装Google USB Driver,并且还有USB的相关许多文章)

    Delphi有时候无法连接调试一些手机,解决方案: 1.安装Google USB Driver 2.通过设备管理器查看手机或平板USB的VID,PID 3.修改你的电脑上的android_winusb ...

  2. CVE-2016-2502-drivers/usb/gadget/f_serial.c in the Qualcomm USB driver in Android. Buffer Overflow Vulnerability reported by #plzdonthackme, Soctt.

    CVE-2016-2502-drivers/usb/gadget/f_serial.c in the Qualcomm USB driver in Android.Buffer Overflow Vu ...

  3. Android自动化测试之Monkeyrunner学习笔记(一)

    Android自动化测试之Monkeyrunner学习笔记(一) 因项目需要,开始研究Android自动化测试方法,对其中的一些工具.方法和框架做了一些简单的整理,其中包括Monkey.Monkeyr ...

  4. Android Wear(手表)开发 - 学习指南

    版权声明:欢迎自由转载-非商用-非衍生-保持署名.作者:Benhero,博客地址:http://www.cnblogs.com/benhero/ Android Wear开发 - 学习指南 http: ...

  5. Head First Android --- Enable USB debugging on your device

    1. Enable USB debugging on your device    On your device, open “Developer options” (in Android 4.0 o ...

  6. Android命令行工具学习总结

    15.setting命令 setting命令可以很方便的更改系统设置中的参数(如修改系统默认输入法) 安卓Settings模块浅析:https://www.jianshu.com/p/ed8508fe ...

  7. 移动设备 小米2S不显示CD驱动器(H),便携设备,MTP,驱动USB Driver,MI2感叹号的解决方法

    小米2S不显示CD驱动器(H),便携设备,MTP,驱动USB Driver,MI2感叹号的解决方法 by:授客 QQ:1033553122 用户环境 操作系统:Win7 手机设备:小米2S   问题描 ...

  8. android的USB MTP && USB CDC/USBnet(ECM, NCM, ACM) && USB gardget

    MTP的全称是Media Transfer Protocol(媒体传输协议),它是微软公司提出的一套媒体文件传输协议.早在智能手机普及前,数码相机和MP3播放器等都使用了MTP的前身PTP(Pictu ...

  9. Android接口和框架学习

    Android接口和框架学习 缩写: HAL:HardwareAbstraction Layer.硬件抽象层 CTS:CompatibilityTest Suite,兼容性測试套件 Android让你 ...

  10. Android 开源项目及其学习

    Android 系统研究:http://blog.csdn.net/luoshengyang/article/details/8923485 Android 腾讯技术人员博客 http://hukai ...

随机推荐

  1. 【转载】 SLI导致双显卡被TensorFlow同时占用问题(Windows下) ---------- (windows环境下如何为tensorflow安装多个独立的消费级显卡)

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明.本文链接:https://blog.csdn.net/qq_21368481/article/d ...

  2. 标准DQN在测试算法性能时为什么要将探索概率epsilon设置为0.05呢,而不是使用其他探索概率的epsilon-greedy策略或者直接使用greedy探索策略呢?

    标准dqn的策略网络参数更新所采用的规则为Q-learning中的更新规则,总所周知的是Q-learning是异策略算法,异策略算法就是行为策略和评估策略(更新所得策略)是不同的. 更新规则: q-l ...

  3. 【转载】 miniImageNet数据集介绍

    版权声明:本文为CSDN博主「miguemath」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明.原文链接:https://blog.csdn.net/wangkai ...

  4. python中不同方法的按索引读取数组的性能比较——哪种按索引读取数组的性能更好

    写python代码这么多年,从来也没有想过不同方式的读取python数组会有什么太大的性能差距,不过这段时间写代码突然发现这个差别还挺大,于是就多研究了一下. 本文研究的是使用不同方式来对python ...

  5. PHPExcel 使用学习

    基本实现步骤: <?php require "/PHPExcel/PHPExcel.php";//引入PHPExcel $objPHPExcel = new PHPExcel ...

  6. leetcode第 109 场双周赛

    6930. 检查数组是否是好的 - 力扣(LeetCode) 首先判断数组长度是不是最大值 + 1, 然后排个序,判断0到n - 2是不是都是1到最大值的一个排列,满足这些返回true就行了 clas ...

  7. 远程采集服务器指标信息(二)通过telnet执行远程命令

    远程采集服务器信息,比如说磁盘信息.内存信息. 现介绍java通过telnet执行命令采集服务器信息,比如说执行df.ls.top. 这里在linux环境通过root或者其他用户登录执行解析方式有点出 ...

  8. 快手 内推码:TYORVzmsw 秋招 应届生/实习生 真正本人内推 已有多人在我内推之后,接连顺利通过了HR筛选、用人部门筛选、面试!

    内推码:TYORVzmsw 校园招聘岗位列表:https://campus.kuaishou.cn/#/campus/jobs?code=TYORVzmsw 真正的本人内部推荐! 已有多人在我内推之后 ...

  9. mysql 5.7密码修改

    官网下载安装包:https://dev.mysql.com/downloads/mysql/ 一.停止mysqld服务 二.编辑配置文件 有的Linux版本是/etc/my.cnf 有的Linux版本 ...

  10. zabbix4.0配置短信报警

    1.准备工作 #访问短信网址:172.16.98.1,网线插LAN口 #账号&密码:admin 安装ubuntu系统模拟http请求工具(命令行模式) # apt-get install ht ...