chrys
驱动小牛
驱动小牛
  • 注册日期2002-05-30
  • 最后登录2008-07-09
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1500回复:3

usb收发数据是否可以同时进行?

楼主#
更多 发布于:2003-11-04 13:59
我的usb驱动只能在一个线程里进行收数据或发数据,如果我将收数据和发数据的处理分别放到两个线程里,让他们同时进行,系统立即崩溃,usb设备读和写不是分别使用不同的端点吗?为什么收发不能同时进行呢?

可以让收数据和发数据互不相干地自由地进行吗?

因为我的需求是收和发是随机的,完全有可能正在收的时候突然需要发送数据了,这个时候往往会出错,因为收数据的irp还没处理完,而且我的usb设备从上电起就一直不断里往主机送数据(大概10ms一个包,每个包大概1024字节),主机可以在任意时间往usb设备送数据,那么,这个“半双工”的usb设备该怎么处理这种矛盾的情况呢?
天才来自勤奋 知识要靠学习 [url= http://ndxz.126.com]――欢迎来我家做客――[/url]
pengenwen
禁止发言
禁止发言
  • 注册日期2003-03-07
  • 最后登录2016-04-11
  • 粉丝0
  • 关注0
  • 积分1586分
  • 威望8380点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2003-11-04 14:02
用户被禁言,该主题自动屏蔽!
jinghuiren
驱动巨牛
驱动巨牛
  • 注册日期2002-06-01
  • 最后登录2008-10-27
  • 粉丝0
  • 关注0
  • 积分291分
  • 威望460点
  • 贡献值0点
  • 好评度428点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2003-11-04 14:08
你用的是同步irp吧,如果使用异步irp,它们是排队处理的,但是还是用的时分复用的办法。也就是说写的同时读会被暂时停止,如果在下边1024的端点缓冲区没有满之前你的写完成了,那么就不会丢失数据了。
Jkw_Dev
驱动中牛
驱动中牛
  • 注册日期2002-11-03
  • 最后登录2014-11-28
  • 粉丝0
  • 关注0
  • 积分82分
  • 威望28点
  • 贡献值0点
  • 好评度8点
  • 原创分0分
  • 专家分0分
地板#
发布于:2003-11-04 19:59
js
游客

返回顶部