Yk2eR0's Blog.

USB简介

字数统计: 1.3k阅读时长: 4 min
2021/03/23 Share

通用串行总线(Universal Serial Bus)是连接计算机系统和外部设备的一种串口总线标准,也是一种输入输出接口的技术规范,被广泛的应用于PC和移动设备等

引脚1 Vcc(+5v)
引脚2 Data-
引脚3 Data+
引脚4 接地

USB由一个主机控制器和若干通过集线器设备以树形连接的设备组成.一个控制器下最多由5级Hub,包括Hub在内最多可以连接128个设备.(7位元物理地址)

USB封包格式:

偏移量 类型 大小
0 HeaderChksum 1 利用添加包头进行校验,不包括包头本身的校验
1 HeaderSize 1 包头的大小,包括可用的字符串
2 Signature 2 数据值为0x1234
4 VendorlID 2 USB供应商的ID
6 ProductID 2 USB产品ID
8 ProduuctVersion 1 产品版本号
9 FirmwareVersion 1 固件版本号
10 USB属性 1 bit 0:如果设为1,包头包含三个字串:语言,制造商,产品字串;Bit2:如果设为1,设备自带电源;如果设为0,无自带电源;Bit3 : 如果设为1,设备可以通过母线供电;如果设为0,无法通过母线供电.Bits 1 and 4-7: 保留
11 最大电力 1 设备需要的最大电力,以2ma为单位
12 设备属性 1 Bits0:如果设为1,CPU运行在24MHz;如果设为0,CPU运行在12MHz. Bit 3:如果设为1,设备的EEPROM可以支持400MHz;如果设为0,不支持400MHz. Bits 1,2and4…7: 保留.
13 WPageSize 1 l2C的最大写入界面大小
14 数据类型 1 该数值定义设备是软件EEPROM还是硬件EEPROM.
15 RpageSize 1 l2C最大读取页面大小.如果值为0,整个负载大小由一个l2C读取装置读取.
16 PayLoadSize 2 如果将EEPROM作为软件EEPROM使用,表示软件的大小;否则为0
0xxx Language string 4 语言字串.一标准USB字串格式表示(not necessary)
0xxx Manufacture string 制造商字串(not necessary)
0xxx Product string .. 产品字串 not necessary
0xxx Application Code 以標準USB字串格式表示
### 常用设备类别和ID:
ID 裝置 例子
0x00 [7] 保留值 無
0x01 [7] 音效裝置 音效卡
0x02 USB通訊控制裝置 網卡、數據機、串列埠
0x03 [7] 人機介面裝置(HID) 鍵盤、滑鼠
0x05 物理介面裝置 控制杆
0x06 [7] 靜止圖像捕捉設備 影像掃描器、Picture Transfer Protocol
0x07 [7] 列印裝置 打印機
0x08 [7] 大容量存取裝置 USB隨身碟、移動硬碟、記憶卡讀卡機、數碼相機
0x09 [7] 集線器 集線器
0x0A [7] 通信裝置 數據機、網絡卡、ISDN、傳真
0x0B 智慧卡裝置 讀卡器
0x0E [7] 影像裝置 網路攝影機
0xE0 [7] 無線傳輸裝置 藍牙
0xFE 特殊的應用 紅外線資料橋接器
0xFF [7] 定製裝置

USB复合设备

在USB系统中,USB主机(host)扮演主控(master)角色.出了设备的远程唤醒(remote wakeup)功能外,USB设备不会是时间的发起者,设备做到的只是相应主机的请求.
bb0ee9d2c2926e20eae3c58fef0b2b30.png
USB采用这种以主机为中心的模型的原因是节省花费.因此,在设计USB设备,特别是设计多功能USB设备时,应使USB设备端处理通信时尽量简单.

USB规范中几种重要描述符

在列举过程中,主机使用控制传输方式从设备请求描述符.描述符包含了设备的基本信息.主要描述符有:设备描述符(devicedescriptor),配置描述符(configuraTIon descriptor)、接口描述符(interface descriptor)以及端点描述符(endpoint descriptor).
一个USB设备对应一个设备描述符.一个USB设备可以有一个或多个配置,但在一个时刻内,只有一个配置是有效的(one ata Time).每个配置有一个或多个接口,只要配置有效,其所有接口都是有效的.每个接口可有多个端点,一个端点(除端点0外)不可以在一个配置下的多个接口间共享,但可以在不同配置下的接口间共享.端点是一个USB设备的一个唯一可寻址部分,用来作为主机和设备之间通信流的信息源或接收器.接口是端点的集合,是设备实现某种功能的最小载体.下图为USB描述符树.
a69a72698a29249190e6cf57b238f9fb.png

多功能USB设备的结构模型

USB规范讨论的是USB主机与USB控制器之间的通信协议,不涉及USB控制器和不同类型设备的通信协议问题.
a4b70f8e51da705d3bfea86dc83f2c65.png
需要解决两个问题:
1. USB主机和A设备,B设备如何通信:
设计是采用单个USB控制器还是多个USB控制器,其整体的结构应如何设计;
是否采用USB的标准设备类(设计USB设备的驱动能否被操作系统自动加载的问题)
2. USB控制器如何处理USB主机和A设备,B设备间的通信问题(多功能USB设备的内部通信问题):

原文作者:Yk2eR0

原文链接:https://www.yk2er0.fun/2021/03/23/usb-new/

发表日期:March 23rd 2021, 11:55:50 pm

更新日期:March 25th 2021, 11:12:12 am

版权声明:非商业用允许转载

CATALOG
  1. 1. USB封包格式:
  2. 2. USB复合设备
    1. 2.1. USB规范中几种重要描述符
    2. 2.2. 多功能USB设备的结构模型