zealot0123
驱动牛犊
驱动牛犊
  • 注册日期2003-08-01
  • 最后登录2010-03-15
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1784回复:6

求助,如何使用中断方式传送USB数据

楼主#
更多 发布于:2003-08-02 09:04
本人在工作中遇到USB使用问题,希望各位大虾出手相救,在下感激不尽!

问题:
现有一个USB设备需要上传大量数据,同时上位机也要控制设备。以前我是用查询模式定时上位机去读取数据,这使得系统资源浪费并且不可靠,现在我想把上位机改成中断模式,即USB设备有数据后产生消息或事件通知上位机软件。(VC6.0)
salatek
驱动牛犊
驱动牛犊
  • 注册日期2003-07-29
  • 最后登录2003-08-04
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2003-08-02 11:45
记住:USB的中断是伪中断,即HOST不断去轮询DEVICE 有无中断。
salatek
jinghuiren
驱动巨牛
驱动巨牛
  • 注册日期2002-06-01
  • 最后登录2008-10-27
  • 粉丝0
  • 关注0
  • 积分291分
  • 威望460点
  • 贡献值0点
  • 好评度428点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2003-08-02 12:41
对的,除了远程唤醒外,usb设备不会在任何情况下发消息给主机!除非主机去查询,因此你不要认为它的中断和其他的中断是一样的,它只是在主机查询是对mcu产生中断而已!
flytomoon
驱动巨牛
驱动巨牛
  • 注册日期2003-07-09
  • 最后登录2004-10-18
  • 粉丝1
  • 关注1
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2003-08-02 12:46
USB无法发真正意义上的中断给主机,只能发中断给外围的MCU。记住,USB接口芯片就是一个接口,没有操从主机的能力。
flytomoon
驱动巨牛
驱动巨牛
  • 注册日期2003-07-09
  • 最后登录2004-10-18
  • 粉丝1
  • 关注1
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2003-08-02 12:48
就是提供一个和主机通讯的接口,至于他的开发,完全是对你的硬件,即使是上位机的开发,也是接受主机的命令。
liweibh
驱动牛犊
驱动牛犊
  • 注册日期2003-07-26
  • 最后登录2005-06-06
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2003-08-03 16:00
USB控制器不断查询下属的端点(一般是控制端点,Bulk-in和Bukl-out)的状态,当发生相应的中断时就会去处理端点的中断。并不是传统意义上的中断的概念。而且这个中断是USB控制器处理的,不是说主机在处理接口的中断请求。主机只是按固定的格式往端点里发数据。端点收发数据时才对USB控制器产生上面说的“中断”。 :)
大风 别的什么都没用,只要有希望,就什么都有。
shashaxz
驱动牛犊
驱动牛犊
  • 注册日期2002-11-07
  • 最后登录2004-08-12
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2003-08-04 08:41
我建议你用bulk only来实现,因为从各方面看来,bulk和interrupt并无大的区别,除了价格。
另外,usb HC一直在做总线的polling,并无中断产生,而主机方产生的中断,则与usb无关了。
游客

返回顶部