wgq
wgq
驱动小牛
驱动小牛
  • 注册日期2001-07-23
  • 最后登录2013-12-09
  • 粉丝3
  • 关注0
  • 积分40分
  • 威望342点
  • 贡献值0点
  • 好评度97点
  • 原创分0分
  • 专家分0分
阅读:993回复:2

USB驱动开发问题:能否控制到协议包级别

楼主#
更多 发布于:2004-11-06 11:03
在驱动设计中,会遇到因设备问题导致数据传送失败问题,此时需要复位后重发,但无法知道设备端已经接收了多少数据(数据有一定的格式),如果重建URB进行重发将导致设备端接收数据混乱,导致设备无法正常工作。
有没有方法获取到设备端已经接收到得数据个数的方法(比如:具体到协议包64BYTE),这样重发时可以避免重复发送已发送数据。

qq
wgq
wgq
驱动小牛
驱动小牛
  • 注册日期2001-07-23
  • 最后登录2013-12-09
  • 粉丝3
  • 关注0
  • 积分40分
  • 威望342点
  • 贡献值0点
  • 好评度97点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2004-11-08 08:28
是否必须自己开发USBD层驱动才可以控制到协议包级别吗??
哪位高手有经验请指点一下,谢谢!
qq
wgq
wgq
驱动小牛
驱动小牛
  • 注册日期2001-07-23
  • 最后登录2013-12-09
  • 粉丝3
  • 关注0
  • 积分40分
  • 威望342点
  • 贡献值0点
  • 好评度97点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2004-11-16 10:07
自己解决了问题,与大家分享一下。

在调用CALLUSBD时,URB中包含了已传输数据的个数,即使本次带调用失败,也可以返回已传输数据的个数。因此不需要知道具体的协议包。在进行排错处理时可以重新进行后续数据的处理。

原来写驱动时没有注意到,原来很简单!! :D
qq
游客

返回顶部