USB只是一个协议,所谓协议也可以理解为规矩,要知道所有协议都是对现实世界的二次包装。譬如行人过马路,通过设定红绿灯的规矩,把过马路这个过程分成了:红灯等待,绿灯行走。对一个要过马路的人来讲,单纯从过马路所需要的物理时间考虑,遵守红绿灯规则会降低她的过马路效率。但是在人流车流拥挤的地方,假如没有红绿灯,行人可能根本没有机会过马路,至少我在上海的体验是这个样子的。所以协议的设计通常是从一定的范围来考虑问题,保证所有相关的东西在这个协议下能够正常高效的工作。USB就是这样一个协议。
usb中的主机和设备
主机和设备是我们首先会接触到的usb概念,通过usb相互通信的设备中必定至少有一个主机以及至少一个设备。这里的主机可以形象的类比于教官,设备相当于学生,教官可以命令学生跑步,站军资; 反过来学生可不能命令教官。术语叫 master-slave。
再细分,主机和设备都是由什么构成的呢? 答案是控制器controller以及物理层phy。控制器就是大脑,phy就是四肢,配合着完成任务。
usb通信
人类通过具有一定含义的语言进行交流,usb通过具有一定含义的数据包进行交流。本质上,语言也可以打包成数据包是不是?不同的包构成了usb不同类型的传输,就像不同的语言能完成和不同地方的人的交流。
控制传输
这是usb主机和设备之间相互打招呼的过程,主机询问设备:
- 你到底是什么东东? 当我们刚认识某个人时,总是会关心这个人家是哪里的,学什么专业的,还是不是单身,反正很多套路。控制传输就是usb用来打招呼的套路。之所以称为套路,因为其确实有着固定的发包模式,这里就暂时不介绍了。
bulk传输
批量传输,一种快速的具有握手功能的异步传输方式。
isochronous传输
等时传输,一种流媒体传输方式。
interrupt传输
中断传输,一种基于时间片的小批量数据传输。
这些不同的传输具有不同的特点,usb设备按照自己的功能定义,通过利用相应的传输来实现。常见的譬如:
- U盘 批量传输
- 摄像头 等时传输和中断传输
- 键盘 中断传输
好了,有这些概念就够了,具体的传输构成就不介绍了。