allanzhou9527
驱动牛犊
驱动牛犊
  • 注册日期2006-03-01
  • 最后登录2008-01-17
  • 粉丝0
  • 关注0
  • 积分710分
  • 威望72点
  • 贡献值0点
  • 好评度71点
  • 原创分0分
  • 专家分0分
阅读:1517回复:2

控制传输过程中,设备在何时产生中断?

楼主#
更多 发布于:2007-10-25 15:10
之前有位大虾些了一篇关于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其他芯片,但是我觉得所有芯片应该对此的处理是一致的。因此还希望大虾指点!

拜谢!
allanzhou9527
驱动牛犊
驱动牛犊
  • 注册日期2006-03-01
  • 最后登录2008-01-17
  • 粉丝0
  • 关注0
  • 积分710分
  • 威望72点
  • 贡献值0点
  • 好评度71点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2007-10-26 09:58
没有人看吗?
顶起
大家一起讨论下,知道的大虾热心回答一下哈,谢过。
jinghuiren
驱动巨牛
驱动巨牛
  • 注册日期2002-06-01
  • 最后登录2008-10-27
  • 粉丝0
  • 关注0
  • 积分291分
  • 威望460点
  • 贡献值0点
  • 好评度428点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2007-10-29 14:29
SetUp包首先会产生中断,告诉设备收到了一个SetUp命令,
设备应答后主机会发送第一个命令包,即获得设备描述符的包,然后应该会触发一个In中断,不过我想大多数时候我们在收到Packet97后应答,完了之后直接往端点里写入描述符,等待In命令,主机收到这个描述符后会应答产生IN中断。

我想做设备端的程序只要清楚每一步的过程即可,至于具体的产生中断部件是硬件完成的,我们不需要过多的在乎,协议上有关于这个的详细描述,可以去看看
游客

返回顶部