USB接口介绍(下)
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接口介 相关文章:
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)
- Windows CE 进程、线程和内存管理(二)(11-09)