USB规范分类大全和USB协议关系树
基于USB的数据传输规范和最新的TYPE-C/USB数据传输接口,伴随着USB技术的发展,当前的USB及其子规范分类如下:
USB协议规范
USB协议的基础,从最初的USB1.0到最新的USB4版本。
USB协议是所有USB设备数据传输的基础。
USB中文网含有大量的USB规范介绍:
- USB2.0规范:http://www.usbzh.com/article/forum-11.html
- USB3.2规范:http://www.usbzh.com/article/forum-9.html
- USB百科 :http://www.usbzh.com/article/forum-2.html
从以上的文章可以帮助大家快速的学习和了解USB规范和基础。
HID规范
HID全称:human input device,主要实现的实现的是通过USB设备实现人机交互。如我们常用的USB键盘,USB鼠标等。HID规范定义了大量的HID设备,这些都是通过一个叫做报告描述符来进行设备类型和数据格式的描述上报的。
USB中文网对HID规范做了比较详尽的描述,可参考的资料如下:
- HID规范:http://www.usbzh.com/article/forum-5.html
- 本人收录的HID报告描述符大全:http://www.usbzh.com/article/forum-10.html
UVC规范
UVC全称USB video class,主要用于USB视频传输领域内。常见的UVC设备就是USB摄像头。
UVC支持三个版本,分别为UVC1.0,UVC1.1和UVC1.5,本站基于UVC1.5规范,并兼顾UVC1.0和UVC1.1,做了大量的调试分析笔记:
UAC规范
UAC规范全称USB AUDIO class,使用USB音频设备,如USB麦克风,USB音箱/USB耳机等音频设备。
UAC规范在3个版本,UAC1.0,UAC2.O和UAC3.0,比较常用的是UAC1.0,UAC2.0在windows10操作系统才开始支持。
- UAC规范(USB音频)http://www.usbzh.com/article/forum-1.html
- UAC设备实例分析 http://www.usbzh.com/article/forum-7.html
USB-C/TYPE-C
这是各类USB数据传输的接口类型,有TYPE-A,TYPE-B和最新的TYPE-C接口类型等。
基于最新的TYPE-C接口和线缆定义,可以实现USB设备的正反接入识别,USB设备快速充电,在USB4的规范基础上实现PCIE,雷电视频高速数据的传输等。
- USB-C/TYPE-C http://www.usbzh.com/article/forum-41.html
- DisplayPort http://www.usbzh.com/article/forum-39.html
- USB供电PowerDelivery http://www.usbzh.com/article/forum-40.html
- USB数据线颜色及usb数据线接法图解和USB接口引脚接线定义 http://www.usbzh.com/article/detail-206.html
CDC协议
CDC全称Communication Device Class。
CDC类是USB组织定义的一类专门给各种通信设备(电信通信设备和中速网络通信设备)使用的USB子类。根据CDC类所针对通信设 备的不同,CDC类又被分成以下不同的模型:USB传统纯电话业务(POTS)模型,USB ISDN模型和USB网络模型。其中,USB传统纯电话业务模型,有可分为直接线控制模型(Direct Line Control Model)、抽象控制模型(Abstract Control Model)和USB电话模型(USB Telephone Model)。
我们平常使用的USB转串口就是使用的CDC协议。
CCID协议
CCID全称:Integrated Circuit(s) Cards Interface Device。该标准是由几大国际级IT企业共同制定的一个标准,它提供了一种智能卡读写设备与主机或其它嵌入式主机实现相互通讯的功能。
MTP
媒体传输协议(英语:MediaTransferProtocol,缩写:MTP)是一个基于图片传输协议(PictureTransferProtocol,PTP)的自定义扩展协议。
USB开发者论坛在2008年5月将MTP标准化为一个成熟的USB类。自此以后MTP成为PTP的官方扩展,两者拥有相同的类代码。
BOT传输协议/UASP传输协议
BOT (Bulk-Only Transport),诞生于1999年,专为USB 1.1所设计,至今最快的USB 3.1都可向下兼容这个基本的BOT传输协议。BOT传输用于USB大容量存储。
UASP (USB Attached SCSI Protocol),简称UAS,与USB 3.0一同诞生于2008年。BOT传输用于USB大容量存储。
- BOT传输协议和UASP传输协议 http://www.usbzh.com/article/detail-354.html
SCSI与BOT和UASP关系
小型计算机系统接口(SCSI,Small Computer System Interface)是一种用于计算机及其周边设备之间(硬盘、软驱、光驱、打印机、扫描仪等)系统级接口的独立处理器标准。
SCSI并不是跟USB绑定的协议,任何在Host上数据总线传输的数据,都可以通过SCSI协议来实现指定功能。比如鼠标的数据先按照SCSI协议编码,经过USB传到电脑,电脑通过SCSI协议解析出鼠标进行的操作,反馈到指针。同样鼠标也可以通过PS/2接口传输数据,也是使用SCSI进行解析,USB和PS/2在通讯当中起到的只是数据桥梁的作用。
BOT是基于USB数据包传输的基础上,为了配合SCSI协议,专门为大容量存储设备量身打造,在USB和SCSI中间又添加了一层协议(某软件大佬曾说过没有什么结构是分层解决不了的。。)
高度概括一下BOT的内容就是:
UASP全称USB Attached SCSI Protocol,从名字就能可以看出其针对性。UASP相比BOT最大的改变就是命令可以并行的发送,类似SATA的NCQ功能。另外支持UASP的Host都使用了单独的控制芯片,不会消耗CPU资源。关于UASP相关的协议文档是 USB Attached SCSI -2
尽管从BOT换到了UASP,但是SCSI协议的操作还是基本保持一致的,除了多了几个公有命令要处理。
最后总结一下就是,最底层数据传输使用的USB,功能实现使用的SCSI,为了使USB和SCSI能衔接在一起,添加了BOT和UASP.