1、端点:坐落USB设备或主机上的一个数据缓冲区,每个端点有其仅有的地址,有不同的传输特性(输入、输出、装备、批量传输端点)
帧: 是一个时间概念,在USB中,一帧便是1MS,包含了一系列总线动作。USB
将一帧分为好几份,每份便是USB的一个传输动作。
上行:设备到主机为上行,主机到设备为下行。
2、数据在USB中的发送是由低位到高位发送的。
3、USB的数据格局:
数字串构成域(有七种),域再构成包,包再构成业务(IN、OUT、SETUP),业务最终构成传输(中止传输、并行传输、批量传输和操控传输)。
域:
称号 |
值 |
含义 |
同步域(SYNC) |
固定为0000 0001 |
用于同步 |
标识域(PID) |
四位标识符+四位标识符反码 |
标明包的类型和格局,共16种 |
地址域(ADDR) |
7位地址 |
设备在主机上的地址(注1) |
端点域(ENDP) |
4位 |
|
帧号域(FRAM) |
11位 |
每个帧都有其编号,最大为0x800 |
数据域(DATA) |
|
|
校验域(CRC) |
|
|
注:1、地址000 0000被命名为零地址,是任何一个设备榜首次连接到主机时,在被主机装备、枚举前的默许地址,由此能够知道为什么一个USB主机只能接127个设备的原因。
2、端点域有4位,所以一个设备最多有16个端点。
包:
令牌包 |
SYNC+PID+ADDR+ENDP+CRC5(五位的校验码)(输入、输出、设置) SYNC+PID+11位FRAM+CRC5(五位的校验码)(帧开端包) |
数据包 |
SYNC+PID+0~1023字节+CRC16 |
握手包 |
SYNC+PID |
特别包 |
|
业务:
IN:令牌包、数据包、握手包
OUT:令牌包、数据包、握手包
SETUP:令牌包、数据包、握手包 这8个字节的内容便是规范的USB设备恳求指令(共有11条
传输:
传输由IN、OUT、SETUP中的业务构成,有中止传输、批量传输、操控传输、
同步传输、操控传输,其间中止传输和批量转输的结构相同,同步传输有最简略的结构,而操控传输是最重要的也是最杂乱的传输。
1、 中止传输:由OUT业务和IN业务构成,用于键盘、鼠标等HID设备的数据传输中
2、 批量传输:由OUT业务和IN业务构成,用于大容量数据传输,没有固定的传输速率,也不占用带宽,当总线忙时,USB会优先进行其他类型的数据传输,而暂时中止批量转输。
3、 同步传输:由OUT业务和IN业务构成,有两个特别当地,榜首,在同步传输的IN和OUT业务中是没有回来包阶段的;第二,在数据包阶段一切的数据包都为DATA0
4、 操控传输:最重要的也是最杂乱的传输,操控传输由三个阶段构成(初始设置阶段、可选数据阶段、状况信息过程),每一个阶段能够当作一个的传输,也便是说操控传输其实是由三个传输构成的,用来于USB设备初度加接到主机之后,主机经过操控传输来交流信息,设备地址和读取设备的描述符,使得主机辨认设备,并装置相应的驱动程序,这是每一个USB开发者都要关怀的问题
令牌包:
0x01输出(OUT)发动一个方向为主机到设备的传输,并包含了设备地址和标号
0x09输入(IN)发动一个方向为设备到主机的传输,并包含了设备地址和标号
0x05帧开端(SOF)表明一个帧的开端,而且包含了相应的帧号
0x0d设置(SETUP)发动一个操控传输,用于主机对设备的初始化
数据包:
0x03偶数据包(DATA0),
0x0b奇数据包(DATA1)
握手包:
0x02承认接纳到无误的数据包(ACK)
0x0a无效,接纳(发送)端正在忙而无法接纳(发送)信息
0x0e过错,端点被制止或不支持操控管道恳求
特别包0x0C前导,用于发动下行端口的低速设备的数据传输