usb 中传输类型

来源:互联网 发布:华山 险 知乎 编辑:程序博客网 时间:2024/06/05 03:11

usb 4种传输类型:控制传输,中断传输,等时传输(同步传输),批量传输。中断传输,等时传输(同步传输),批量传输每传输一次数据都是一个事务,而控制传输包括2个或者多个事务,建立过程(setup) 状态过程,或者数据过程。

批量传输(bulk ):

批量事务包括令牌包阶段,数据阶段,握手包阶段。

批量输出事务首先先发一个OUT令牌包,令牌包中有设备地址,端点号,然后发送数据包,数据包发送之后就是握手,设备返回ACK,或者NAK,或者是NYET,假如是断电挂起,但是数据接收正确时,返回STALL,假如数据接受失败,则不返回数据,让主机超时。

批量输入事务首先先发一个IN令牌包,令牌包中有设备地址,端点号,然后主机切换到接收模式,等待数据,假如设备没有数据时,返回NAK,或者是NYET,或者是STALL,或者数据包,主机接收到数据之后,准确无误后返回ACK,假如数据有误,则不返回任何数据,让设备超时。



中断传输:

所谓中断传输是设备通过描述符告知主机最长多长时间轮询设备,一般这种传输是一些鼠标(hid),键盘,轨迹球等等对时间要求较为严格的设备。


等时传输:

传输数据量较大,例如音频设备,视频设备等实时性较高的场合。不会对数据进行错误判断,如果需要,需要自行在软件包中添加CRC的校验。


控制传输:

先发送setup令牌包,然后接着必须发送DATA0数据包,接着进入了数据包过程或者是状态过程,假如是控制写过程,那么发送out令牌包,然后发送DATA1数据包,然后以此交替发送DATA0和DATA1,但是最后的状态过程必须使用DATA1.

      

端点类型:

每个端点是实际存储usb数据区,类似于一个缓冲区,不同设备的端点大小不一定相同。截图圈圈教你usb一书上的一段话,但是这个是协议规定的,可能真正设备端不能

满足这些要求,需要具体来看。





0 0
原创粉丝点击