通用串行总线(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设备不会是时间的发起者,设备做到的只是相应主机的请求.
USB采用这种以主机为中心的模型的原因是节省花费.因此,在设计USB设备,特别是设计多功能USB设备时,应使USB设备端处理通信时尽量简单.
USB规范中几种重要描述符
在列举过程中,主机使用控制传输方式从设备请求描述符.描述符包含了设备的基本信息.主要描述符有:设备描述符(devicedescriptor),配置描述符(configuraTIon descriptor)、接口描述符(interface descriptor)以及端点描述符(endpoint descriptor).
一个USB设备对应一个设备描述符.一个USB设备可以有一个或多个配置,但在一个时刻内,只有一个配置是有效的(one ata Time).每个配置有一个或多个接口,只要配置有效,其所有接口都是有效的.每个接口可有多个端点,一个端点(除端点0外)不可以在一个配置下的多个接口间共享,但可以在不同配置下的接口间共享.端点是一个USB设备的一个唯一可寻址部分,用来作为主机和设备之间通信流的信息源或接收器.接口是端点的集合,是设备实现某种功能的最小载体.下图为USB描述符树.
多功能USB设备的结构模型
USB规范讨论的是USB主机与USB控制器之间的通信协议,不涉及USB控制器和不同类型设备的通信协议问题.
需要解决两个问题:
1. USB主机和A设备,B设备如何通信:
设计是采用单个USB控制器还是多个USB控制器,其整体的结构应如何设计;
是否采用USB的标准设备类(设计USB设备的驱动能否被操作系统自动加载的问题)
2. USB控制器如何处理USB主机和A设备,B设备间的通信问题(多功能USB设备的内部通信问题):