zhaihua
驱动中牛
驱动中牛
  • 注册日期2003-10-11
  • 最后登录2007-07-24
  • 粉丝0
  • 关注0
  • 积分10分
  • 威望1点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
阅读:1089回复:5

求助:关于USB中IN传输

楼主#
更多 发布于:2003-12-11 20:11
在一篇帖子里讨论了IN中断如何产生的,讲的很好,但是,我有些不明白,我们知道当上一帧正确接受后,产生IN中断,但是在开始传输前,51把数据放在缓冲区,什么时候才能等到主机IN中断的到来啊?
谢谢!!
没钱的日子真难过! 大哥,拉兄弟一把.
jinghuiren
驱动巨牛
驱动巨牛
  • 注册日期2002-06-01
  • 最后登录2008-10-27
  • 粉丝0
  • 关注0
  • 积分291分
  • 威望460点
  • 贡献值0点
  • 好评度428点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2003-12-11 20:22
什么时候主机开始取数据什么时候就会有in中断来:)
数据传输是有主机启动的,当主机发出读数据命令并获得数据后,就会给设备ack应答,这个应答信号会导致usb芯片对mcu产生中断。

我说明白了吗?
zhaihua
驱动中牛
驱动中牛
  • 注册日期2003-10-11
  • 最后登录2007-07-24
  • 粉丝0
  • 关注0
  • 积分10分
  • 威望1点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2003-12-11 20:37
IN中断的产生我明白啦!呵呵
我的疑惑在于:举各例子吧,当外设需要向主机传输数据,首先外设把数据传输到缓冲区,设备的任务完成,因为PC主机是传输的主宰,就像皇帝选妃子一样,51怎么知道主机开始取数据,也可能缓冲区被写满,主机还没有取数据,设备传向缓冲区的数据怎么办?,
没钱的日子真难过! 大哥,拉兄弟一把.
jinghuiren
驱动巨牛
驱动巨牛
  • 注册日期2002-06-01
  • 最后登录2008-10-27
  • 粉丝0
  • 关注0
  • 积分291分
  • 威望460点
  • 贡献值0点
  • 好评度428点
  • 原创分0分
  • 专家分0分
地板#
发布于:2003-12-11 20:46
设备写到端点里的数据是要计数的,当端点满了后再写的话其后的数据就会丢失,因此如果你用的双缓冲的话,开始只能写两个包到端点里,然后等待中断,每收到一次中断就可以再写一个包。

如果主机一直不取数据,没办法,设备只好等。
arthurcao
驱动小牛
驱动小牛
  • 注册日期2003-10-12
  • 最后登录2012-07-08
  • 粉丝0
  • 关注0
  • 积分92分
  • 威望20点
  • 贡献值0点
  • 好评度7点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2003-12-12 15:31
受启发,真有厉害的,我努力。
arthurcao喜欢开源。
jinghuiren
驱动巨牛
驱动巨牛
  • 注册日期2002-06-01
  • 最后登录2008-10-27
  • 粉丝0
  • 关注0
  • 积分291分
  • 威望460点
  • 贡献值0点
  • 好评度428点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2003-12-12 18:36
呵呵,让你郁闷两年,我保证你比我厉害! :D
游客

返回顶部