USB 封包格局
USB 的封包格局和前期的internet封包格局十分相似,要了解USB連接原理就一定要先了解封包格局。
OFFSET | TYPE | SIZE | VALUE |
---|---|---|---|
0 | HeaderChksum | 1 | Checksum of the header by adding the header bytes, excluding the header checksum. |
1 | HeaderSize | 1 | Size of the header, including strings if applicable. |
2 | Signature | 2 | Signature: 0x1234 |
4 | VendorID | 2 | USB Vendor ID |
6 | ProductID | 2 | USB Product ID |
8 | ProductVersion | 1 | Product version |
9 | FirmwareVersion | 1 | Firmware version |
10 | UsbAttributes | 1 | USB attributes:
Bit 0: If set to 1, the header includes all three strings: language, manufacture, and product strings; if set to 0, the header does not include any strings. |
11 | MaxPower | 1 | Maximum power the device needs in units of 2 mA. |
12 | Attribute | 1 | Device attributes:
Bit 0: If set to 1, the CPU speed runs at 24 MHz; if set to 0, the CPU speed runs at 12 MHz. |
13 | WPageSize | 1 | Maximum I2C write page size |
14 | DataType | 1 | This value defines if the device is application EEPROM or device EEPROM.
0x01: Application EEPROM |
15 | RpageSize | 1 | Maximum I2C read page size. If the value is zero, the whole PayLoadSize is read in one I2C read setup. |
16 | PayLoadSize | 2 | Size of the application, if using EEPROM as an application EEPROM; otherwise the value is 0. |
0xxx | Language string | 4 | Language string in standard USB string format if applicable. |
0xxx | Manufacture string | … | Manufacture string in standard USB string format if applicable. |
0xxx | Product string | … | Product string in standard USB string format if applicable. |
0xxx | Application Code | … | Application code if applicable. |
设备分类
依附在总线上的设备可所以需求特定的驱动程序的彻底定制的设备,也或许归于某个设备类别。这些类别界说了某种设备的行为和接口描绘符,这样一个驱动程序或许用于一切此种类别的设备。一般操作体系都为支撑这些设备类别,为其供给通用驱动程序。
设备分类由USB规划论坛设备工作组决议,并分配ID。
假如一个设备类型归于整个设备,该设备的描绘府bDeviceClass的域保存类别ID;假如它这是设备的一个界面,其ID保存在界面描绘府的;bInterfaceClass域。他们都占用一个字节,所以最多有253种设备类别。(0x00和0xFF保存)。当bDeviceClass设为0x00,操作体系会查看每个接口的bInterfaceClass以确认其类别。
每种类别可选支撑子类别(SubClass)和协议子界说(Protocol subdefinition)。这样能够用于主设备类型的不断修订。
常用设备类别和ID有:
- 0x00
- 保存值
- 0x01
- USB音频设备, 像声卡这样的设备。
- 0x03
- 人机接口设备, 键盘鼠标等
- 0x06
- 静止图画捕捉设备,用在USB上的Picture Transfer Protocol。
- 0x07
- USB打印设备, 打印机。
- 0x08
- USB大容量存储设备keydrive, 可移动硬盘,MMC卡、SD卡、CF卡读卡器, 数码相机,数字音频播放器等。 这一类设备显现成一个文件体系。
- 0x09
- USB hubs。
- 0x0A
- USB通讯设备(“CDC”) used for调制解调器(包含软件调制解调器),网卡(穿插电缆),ISDN,传真。
- 0x0E
- USB视频设备, 相似摄像头,电视卡的动态图画捕捉设备。
- 0xE0
- 无线控制器,如蓝牙dongles。
- 0xFF
- 定制设备。
USB接头
接头是由USB协会所指定,接头的规划一方面为了支撑很多USB的根本需求,另一方面也防止以往许多相似串行接头所呈现的问题。
- 接头规划的恰当经用。
- 不或许把USB接口插错。
- 接头能相对廉价地很多生产。
- 在USB网络中,接头被强制运用定向拓扑。USB不支撑环形网络,因而不兼容的USB设备之间接口也不兼容。不像其他通讯体系(如RJ-45电缆)不能运用转化插头,防止环形USB网络发生。
- 适度的插拔力。
- 因为接头的结构,在将USB插头刺进USB座时,插头外面的金属保护套会先接触到USB座内对应的金属部份,之后插头内部的四个触点才会接触到USB座。金属保护套会衔接到体系的地址,供给途径使静电能够放电,防止因静电经过电子零件而形成损坏。
电源
USB 接头供给一组5伏特的电压,可作为相衔接USB设备的电源。实际上,设备接收到的电源或许会低于5V,只略高于4V。USB规范要求在任何景象下,电压均不能超越5.25V;在最坏景象下(经由USB供电HUB所衔接的LOW POWER设备)电压均不能低于4.375V,一般景象电压会挨近5V。
一个 USB 的根集线器最多只能供给 500mA的电流。如此的电流已足以驱动许多电子设备,不过衔接在总线供电HUB的一切设备,需求同享 500mA 的电流额度。一个由总线供电的设备能够运用到它所衔接埠上答应输出的一切电源。
总线供电的HUB能够将电源供给衔接在 HUB 上的一切设备,不过 USB 的规范只答应总线供电的 HUB 下流串接一层总线供电的设备,因而,总线供电的 HUB 下流不答应再串接另一个由总线供电的 HUB。许多 HUB 有外加电源,因而能够供给电源给下流的设备,不会耗费总线上的电源。若设备需求的电压超越5V,或是需求电流超越500mA,都需求运用外加电源。
相关于之前其他交流介面仅能传递消息材料,高电压USB插槽自身还能供给5V(伏特)的自动电压,及0.5A(安培)的电流,因而关于一些小型设备而言,能够不用再外接电源供给设备,就能运用来自USB插槽的电力顺畅运作。运用这特色,也有厂商开宣布恰当的排线,将USB拿来当作供电插座般运用,例如作为移动电话的充电器,或是供给小型电灯的电力需求,反而与本来用来衔接电脑用的主要用途无关。
同类规范比较
Storage
USB 运用USB mass storage device class规范完成Storage设备的衔接.它开端被用于传统的磁盘和光盘驱动,可是现在现已扩展到支撑很多不同的设备.USB不能用于计算机内部存储设备的根本总线: 像ATA(IDE), Serial ATA (SATA), 和SCSI.
可是, USB有一个十分重要的长处,那就是它能够在不封闭计算机的情况下动态的装置和删去USB设备,这使它成为一个有用的外部设备.今日,很多的生产商供给便携式USB移动硬盘或许一个空的,能够兼容内部驱动的盒子.这些内部驱动一般供给一个转化驱动接口,用以转化IDE, ATA, SATA, ATAPI, 或许 SCSI 到USB port。关于用户来讲,就像衔接了一个内部的驱动。其他的竞赛规范是eSATA以及Firewire.
人机接口设备(HID)
USB没有彻底替代AT键盘接口和PS/2键盘鼠标接口,可是事实上现在一切主板制作商都供给至少多于一个USB接口。到2004年,大多数新主板都配有多个高速USB 2.0接口,虽然有些是内置在主板上的,需求运用电缆衔接到坐落主机前面板或许旁边面的接口。相同的对游戏操纵杆,手柄,写字板和其他人机接口设备的支撑逐步从原声卡上的“MIDI/游戏”接口和PS/2接口上转移到USB上。现在带着USB转PS/2接口转化插头的USB键盘鼠标恰当遍及,他们能够运用恣意2种接口之一。
运用专用键盘鼠标的苹果电脑1999年一月也开端运用USB接口。开端的IPOD只要IEEE1394接口,后来在3G的IPOD,苹果电脑开端支撑USB2.0,可是还不能用作充电,现在的IPOD,现已全面兼容USB与IEEE1394,两者均可充电以及衔接计算机。
扩展
PictBridge规范能够使得顾客运用的图形设备互相互通(例如数码相机直接经过打印机输出)。一般它运用USB做为其底层通讯协议。