"); //-->
当你的手机插入了电脑后,为什么电脑可以识别你的手机设备?你并没有做任何操作,但是电脑会弹出提示框,告诉你,手机已插入,可以进行操作了,电脑和手机之间到底交流了什么东西?
回答这个问题,很简单,当插入手机后,电脑通过数据线的电平变化,知道有一个 USB 设备已经插入了,但是这个是什么设备,电脑其实还不知道。
所以电脑开始发送复位信号给设备(只复位 USB,并不是整个手机重启),之后电脑和手机之间开始简单数据交互,了解一个 USB 设备的基本信息,之后再次复位(据说这次复位是历史遗留导致的)。
这次复位之后,电脑会了解更多 USB 设备的信息。
在设置手机的地址后,将全面了解 USB 设备信息,比如有多少个配置,多少个接口,多少个端点等信息。
如果是手机,一般会识别为 U 盘(也可能不是 U 盘,如果不是,需要专门安装驱动),这是 USB 标准协议中定义好的设备,而大多数电脑安装了U盘驱动,所以电脑可以在不安装驱动的情况下像操作 U盘一样直接操作手机。
鱼鹰并没有分析手机的通信过程,所以以上内容是鱼鹰猜测的,大体是应该类似的。
但鱼鹰熟悉 CDC 设备,即模拟串口的USB设备,而所有的 USB 设备在插入后那一段时间的行为基本是确定的,这个是 USB 标准规定的,只要是 USB 设备,都会遵循该流程,所以我们可以借此了解一下,当 CDC 设备插入之后发生了什么通信过程呢?
通过逻辑分析仪,我们可以很方便的了解USB设备插入之后的通信流程:

可以看到,当设备插入后,除了复位信号外, USB 设备一直在接收主机发送过来的帧 SOF 包(密麻麻的数据包大部分是帧首包):

这个 SOF 数据包就像人的心跳一样,维持着设备与主机的联系(每隔 1 ms 发送)。
我们再细看两个复位信号(DP 和DM 同时为低电平):

看上面第7通道(收发完成中断),可以看到在两个复位之间存在数据交互情况,通过放大可以看到发生了一次控制传输过程:

再放大看其中建立阶段的数据包:

你会看到这不就是前面所说的传输事务嘛,而前面的建立阶段、数据阶段、状态阶段组成了一次完整的控制传输。
通过一次控制传输,主机终于知道插入的家伙一点点信息了(USB版本、设备类型、生产厂商、设备版本号等)。
但这些信息还不够,所以在第二次复位后,主机开始更加全面的了解设备信息了:

通过前面的多次控制传输,主机终于了解到这个设备是什么设备了,因为 CDC 设备驱动电脑会默认安装,所以你会发现不需要安装任何驱动即可操作该 USB,即通过串口软件收发数据(所谓免驱,不是真的不需要驱动,而是电脑系统自带)。
那么这些交互的数据里面到底包含了哪些具体信息,设备要告诉主机什么信息才能让主机正确识别设备?
下节开始全面揭晓USB通信的神秘面纱!
专栏文章内容及配图由作者撰写发布,仅供工程师学习之用,如有侵权或者其他违规问题,请联系本站处理。 联系我们
相关推荐
基于PIC32的蜂窝网机器到机器(M2M)通信解决方案
八路遥控发射器(CS901)
SP332 数据手册(英)
MPLAB® X IDE 编译调试(上)
分析师警告称,人工智能数据中心建设将推动铜短缺——2035年需求仅能满足70%,2025年预计缺口为304,000吨
中国广东将建设全球最大的12英寸光学硅碳生产基地
GeForce 590 驱动分支是首个不支持 GTX 9 和 10 系列 GPU 的分支——Linux 版本标志着定义时代显卡的终结
SP34063A 数据手册(英)
s3c4510b启动代码的疑问,请大家指点一下
希望提供英飞凌公司C167CS的详细资料
Segotep的Titanload 12V-2x6电缆使用更重型的销钉以防止熔毁——据称蛮力方法可将峰值温度降低高达72%
s3c4510b上应用程序的移植,急!!!!!
SP3481 SP3485 +3.3V低功耗半双工RS-485收发器 ...
做ARM开发板的请进!
苹果顶级设计师投奔Meta!硅谷AI硬件战火升级
基于PIC32的低成本图形解决方案
SP334 数据手册(英)
SP3481 SP3485 +3.3V低功耗半双工RS-485收发器
发射组件SB-100ATX
MPLAB® X IDE 编译调试(下)
SF05A/B组成的发射电路
OpenAI在\"玩火\"?头号对手罕见开炮:某些领导者为了\"宏大数字\",正拿命赌博
Buck芯片失效分析
Buck电路EMI优化实例
Microchip WiFi 模塊(MRF24WB0Mx系列) 的連線種類與方法—WiFi介紹与Infrastructure Mode
SB-50ALTX发射机
[求助]S3C44B0点1330单色屏,写正确,读出错!
科技巨头警告:存储芯片短缺情况或将失控!
SJ05B/C组成的接收电路
据报道,华硕暂停了ROG Matrix RTX 5090的出货——由于质量控制问题,价值4000美元的光环显卡目前可能已经停产