apply
驱动牛犊
驱动牛犊
  • 注册日期2004-04-15
  • 最后登录2004-04-27
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1292回复:5

请教host和device之间的枚举问题

楼主#
更多 发布于:2004-04-15 15:57
我现在遇到一个问题!
就是档设备刚刚插上主机的usb端口的时候
主机发送一个get_Descriptor()
device收到后,会发送相应的18个Bytes的数据给主机
接下来主机就应该再发送Set_Address()
可是我在测试的时候,主机确没有发送这个请求包
这会是什么原因呢?
是我发送给主机的Get_descripter的数据不正确
还是因为什么其他的原因
这时候设备驱动程序已经开始起作用了吗?
bbiliu
驱动牛犊
驱动牛犊
  • 注册日期2004-02-20
  • 最后登录2005-01-27
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2004-04-15 16:21
看看以前的帖子很多这方面的内容啊。
一般是先get description(要求取9个字节)
设备发送9个字节的应答
然后主机会再次发送get description(这次要求20个字节)
设备发送20个字节的应答就可以了。不过设备描述符不要弄错了。
apply
驱动牛犊
驱动牛犊
  • 注册日期2004-04-15
  • 最后登录2004-04-27
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2004-04-15 21:30
可是我现在遇到的问题就是device送给主机get_descriptor()的回应包之后,主机没有继续发送下一个数据包,这是什么原因呢?
apply
驱动牛犊
驱动牛犊
  • 注册日期2004-04-15
  • 最后登录2004-04-27
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2004-04-15 21:35
嗯,刚才可能没有说清楚
现在只是到get_descriptor()的device请求的阶段,
我看了以前的介绍
下一步应该是主机发送set_address()啊
可是我现在遇到的问题就是主机什么都不发了
这是驱动的问题吗?
还是我的硬件问题啊
bbiliu
驱动牛犊
驱动牛犊
  • 注册日期2004-02-20
  • 最后登录2005-01-27
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2004-04-16 10:22
你的程序有问题。
一般这种情况的话,首先怀疑自己的程序。
你用BUS HOUND抓一下包看看。看主机有没有发出来你没有收到。
如果你的应答包不对的话,主机会继续请求三次的,没理由不动的。
apply
驱动牛犊
驱动牛犊
  • 注册日期2004-04-15
  • 最后登录2004-04-27
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2004-04-16 13:50
我也觉得应该是我的程序的问题
克现在的关键就是我不知道是那里出的问题!:(
我用bushound看过了
没有出现get_descriptot()
(80,06,00,01,00,00,40,ffh)
但是我在逻辑分析仪上观察到了这组数据
而且firmware已经有了反应
活送给主机相应的数据了
(12,01,00,02,00,00,00,40,7c,8d,5e,6f,00,00,00,00,00,01)
然后主机发送了status状态的数据包!
我发送了相应的握手信号ack
这又什么问题吗?
接下来主机就没有反应了
why?
游客

返回顶部