第1章:USB OTG概述——什么是在线双角色,为什么它重要
大家好,我是这次课程的主讲人。在硬件设计这行干了十几年,跟USB打交道最多。每次遇到客户说“这个设备插到手机上怎么没反应”,十有八九就是OTG配置出了问题。所以咱们第一节课,先把USB OTG是什么东西、它能干什么、有什么好处,掰扯清楚。
1.1 什么是USB OTG?
OTG全称是USB On-The-Go,说白了一句话:让USB设备能够动态切换身份。标准USB系统里,主机(Host)永远是电脑,设备(Device)永远是U盘、键盘、手机。但OTG打破了这种“主从固定”的局面——一个小平板,插上U盘它就是Host,插上电脑它就是Device。我当年第一次看到手机能直接读U盘时,心想“硬件终于解放了”。
简记法:USB OTG = 一台设备既能当老大(Host),也能当小弟(Device),而且不需要电脑在中间牵着线。
技术上,OTG规范是USB-IF在2001年推出的补充标准,主要针对便携设备。它定义了三种角色:A-device(初始Host)、B-device(初始Device)和DRD(Dual Role Device)。A和B由Micro-AB插座中的ID引脚电平决定。我遇到过很多硬件工程师画原理图时忘了上拉ID引脚,结果设备永远识别不了外设——这就是个坑,后面咱们会详细讲。
1.2 核心角色与角色协商
我习惯把OTG设备分成三类,你对照着看就清楚了:
| 角色 | 说明 | 典型例子 |
|---|---|---|
| Host(主机) | 供电、发起会话、调度传输 | 手机接键盘、平板接U盘 |
| Device(设备) | 响应主机、被动通信 | 手机连电脑(充当存储设备) |
| DRD(双角色) | 根据ID和协议自由切换 | 支持OTG的智能手机、相机 |
角色切换靠的是SRP(会话请求协议)和HNP(主机协商协议)。举个例子:你把手机连到相机背面,相机觉得“我该当Host”,但手机说“让我来Host吧”,它们就通过HNP交换一下角色。我调试一台工业平板时,就因为这个协商时序没调好,导致每次切换都要拔插两次——后来发现是HNP响应超时参数设太短。嗯,这些细节后续章节会细说。
注意:不是所有支持USB的芯片都支持OTG。很多便宜的MCU只有Device模式,接上OTG外设根本认不出来。选型时务必确认支持双角色(DRD)或至少支持ID中断+SRP/HNP。
1.3 应用场景:你在哪些地方见过OTG?
其实你每天都在用,只是没留意而已。我列举几个最常见的:
- 手机直连U盘/读卡器:不用电脑,直接备份照片。
- 游戏手柄连手机:打得痛快,充电口还能同时供电?想多了,OTG供电有限,后面会讲。
- 相机/摄像机通过OTG线连打印机:现场出片,不需要SD卡中转。
- 平板外接鼠标键盘:秒变生产力工具。
- 工控设备通过OTG升级固件:现场工程师带一根双头Micro线就能烧录,省了电脑。
我个人印象最深的是有一次给客户做便携式频谱仪,用户要求既能连电脑当USB设备(传数据),又能接U盘存波形。如果不用OTG,就得两颗USB控制器——成本高不说,板子面积也不够。用了OTG后一颗芯片搞定,问题在于电源设计要兼顾供电方向……那又是一堂课。
1.4 USB OTG的主要优势
总结起来就三个字:省、活、便。
- 省成本:一个插座、一根线、一颗控制器,同时兼任Host和Device。
- 活场景:现场不用再找电脑当“”,两台便携设备直接互通。
- 便携带:习惯了双角色后,你会发现包里少带一根OTG转接线都难受(笑)。
当然,优势背后也有代价:电源管理复杂了、软件栈多了一套、ESD保护需求也翻倍。但总的来说,OTG是让嵌入式设备“主客合一”的绝妙方案。
1.5 知识图谱:USB OTG核心结构
下面这张SVG图,展示了OTG系统的核心角色和交互关系。你看一遍就能对整个框架有个直观认识。
理解这张图的关键:A-Device和B-Device不是固定的。如果DRD设备插上后通过HNP协商,B-Device也可能变成Host。这在后面的故障排查章节会反复用到,所以我建议你现在就把这张图印在脑子里。
1.6 一个小案例帮你加深印象
我记得刚入行那会儿,带我的老工程师让我给一台嵌入式设备加OTG功能。我照着参考设计画了原理图,结果样品回来手机死活不认。查了一整天,最后发现是Micro-AB插座的ID引脚没接上拉电阻——标准做法是ID悬空时默认Device,接地时才是Host。而我直接把ID脚对地短接,导致设备永远以为自己是Host,自然无法被电脑识别。那次之后,我养成了习惯:画OTG电路之前,先把ID引脚的初始电平表列出来。
这也是为什么我在这门课的第一个章节就强调角色定义——后面你排查故障时,十有八九都要回到“当前设备到底是Host还是Device”这个问题上。
1.7 OTG与标准USB的快速对比
| 对比项 | 标准USB (Host-Device) | USB OTG (DRD) |
|---|---|---|
| 角色数量 | 固定2种(Host/Device) | 3种(A/B/DRD) |
| 供电方向 | 始终从Host向外供(最大500mA) | 初始由A-Device供电,可协商切换 |
| 协议 | 只有标准枚举 | 增加SRP、HNP、ID检测 |
| 典型接口 | Type-A、Type-B、Micro-B | Micro-AB、Type-C |
| 应用领域 | PC外设为主 | 移动、嵌入式、IoT |
给新手的建议:如果你画板子,Micro-AB插座一定要选“带ID引脚的”型号(5脚)。市面上很多Micro-B插座只有4脚,没有ID,用它们做OTG是不可能的——除非你用Type-C,它通过CC引脚实现角色检测,原理类似但更复杂。
第一节课就讲到这里。你只需要记住三个关键词:双角色、ID引脚、HNP/SRP。后面的29节课,咱们就从硬件设计、驱动调试到故障排查,一步步把这个体系拆透了。