阅读:1518回复:2
控制传输过程中,设备在何时产生中断?
之前有位大虾些了一篇关于USB Host读取设备描述符的完整过程,原帖地址如下:
http://bbs.driverdevelop.com/htm_data/9/0704/100641.html 非常感谢原帖作者gofayao的付出,为我理解协议节省了许多时间。 但是本人也有疑惑,就是在这样的一次控制传输中,设备究竟是在什么时候产生中断?在原帖中作者指出: 主机在发送Packet96(即SETUP的令牌包后),会触发设备产生Setup包中断。而我的理解(根据厂家ST提供的Demo代码,该芯片是的一款Cortex-M3核的MCU,带USB接口),应该是设备在向主机发送Packet98(ACK信号)后产生中断,表示传输的正确完成。 同样的在这次控制传输的数据阶段,我个人的理解也是在Packet105后(设备收到主机的ACK信号后),会触发设备产生中断,表示数据的正确发送完成,而不是在收到来自Host的IN令牌包时(Packet103)就产生中断。 哪位帮着说明一下,我的理解是对还是错误的。因为我没有用过D12或68013其他芯片,但是我觉得所有芯片应该对此的处理是一致的。因此还希望大虾指点! 拜谢! |
|
沙发#
发布于:2007-10-29 14:29
SetUp包首先会产生中断,告诉设备收到了一个SetUp命令,
设备应答后主机会发送第一个命令包,即获得设备描述符的包,然后应该会触发一个In中断,不过我想大多数时候我们在收到Packet97后应答,完了之后直接往端点里写入描述符,等待In命令,主机收到这个描述符后会应答产生IN中断。 我想做设备端的程序只要清楚每一步的过程即可,至于具体的产生中断部件是硬件完成的,我们不需要过多的在乎,协议上有关于这个的详细描述,可以去看看 |
|
板凳#
发布于:2007-10-26 09:58
没有人看吗?
顶起 大家一起讨论下,知道的大虾热心回答一下哈,谢过。 |
|