针对设备对系统资源需求的不同,在usb规范中规定了4种不同的数据传输方式:
1.等时传输
2中断传输
3控制传输
4批量传输
不同的传输方式对应不同的传输端点。
控制传输
主要用来传输设备控制指令,设备状态查询,确认命令。当usb设备收到这些数据和命令后,将依据先进先出的原则按队列的方式处理到达的数据。
中断传输
该方式传送的数据量很小,但这些数据需要及时处理,以达到实时效果,此方式主要用在键盘,鼠标,以及游戏手柄等外部设备上。当usb宿主要求设备传输数据时,中断端点会以一个固定的速率传送数据。(设备不能主动发起一次传输,中断传输可理解成间隔传输,usb主机每隔一段时间,检查设备是否有数据)
等时传输
该方式用来连接对数据的正确性要求不高而对时间极为敏感的外部设备,如麦克风,电话等。等时传输方式以固定的传输速率,连续不断的在主机与usb设备之间传输数据,在传输数据发生错误时,usb并不处理这些错误,而是继续传输新的数据。
批量传输
该方式用来传输要求正确无误的数据。通常打印机,扫描仪和数码相机以这种方式与主机连接。
usb的数据传递首先是基于传输(Transefer)的:中断传输,批量传输,同步传输,控制传输。
传输(Transefer)是基于一个或多个事物(transaction)构成,事物可分为in事务,out事务,setup事务。
事物(transaction)由一个或多个包(packet)构成,包可以分为令牌包(SETUP),数据包(DATA),握手包(ACK),和特殊包
包(packet)是由多个域构成,域可分为同步域(sync),标识域(pid)地址域(addr),端点域(endp),帧号域(fram),数据域(data),校验域(crc)。