USB总线协议基础知识
时间:12-15
来源:互联网
点击:
timer又有何意义?这个"timer"(或tick)在usb中使用一个特殊的packet实现,即是SOF。这个SOF由USB HOST
相当精确的以每1.00 ms ±0.0005 ms的时间周期发送给usb device,来在二者之间定时。从而usb function能
够“及时”的了解到“现在时刻”。 现在我们在usb host和usb function之间建立起了“对时”机制。那么接下
来看看刚才设想的“自动”传输如何实现。事实上,一旦usb host及usb function双方建立了一种时间机制,那
么这种“自动”传输是很容易实现的。usb 实现同步式传输或中断式传输总是以一种类似于批量数据传输的方式
进行的,唯一不同的是传输的触发不再是“被动”的,而是由SOF所建立的tick触发。
- 首先,时间到达,usb host发起第一个Packet--in(或out),表示要开始数据传输了。
- 其次,usb function(或usb host)发起以data1(或data0)为起头的payload data,开始一次交互。
- 再其次,如果是中断式传输,usb host(或Usb function)发起ack回应这次交互,如果是同步式传输,
- 该步跳过。
如此重复上述步骤,即usb host等待下一个tick到达,并开始新一轮的交互。
这里我们注意到了,同步式传输和中断式传输二者虽然都是时间触发,但是中断式传输需要ack应答,而相反,
同步式传输不需要。这个最大的区别决定了同步式传输是一种非可靠传输,但是因此换来了更多的usb传输时间。
也因此,同步式传输的 payload data(对应wMaxPacketSize )通常相较于其他传输方式比较大,因为它消掉了
ack所占有数据传输时间。这里还有一个地方值得注意的是tick的设定,这个tick也是需要事先usb host 和
usb function达成共识的参数之一。
USB总线协议基础知 相关文章:
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)
- Windows CE 进程、线程和内存管理(二)(11-09)