USB论坛-百合电子工作室USB专题站

 找回密码
 我要注册
搜索
热搜: USB学习板
查看: 3936|回复: 2
打印 上一主题 下一主题

关于USB键盘的问题 向高手请教

[复制链接]

1

主题

0

好友

9

积分

新手上路

Rank: 1

跳转到指定楼层
楼主
发表于 2013-4-2 10:16:36 |只看该作者 |倒序浏览
我是用ISP1362做一个模拟键盘

现在发现有如下些问题和疑问:

1.枚举的前面过程都是正确的,通过device monitor的数据包分析确定前面传送的数据包是正确的,但是当程序到了最后一步,即传送report描述符后程序却进入了bus reset处理,之后就是不停的循环前面过程,一直停不下来。

2.我想知道一个正常的程序如果是传送report描述符以后应当进入什么状态,难道是idle?

回复

使用道具 举报

6

主题

0

好友

1158

积分

管理员

Rank: 9Rank: 9Rank: 9

沙发
发表于 2013-4-2 10:43:24 |只看该作者
1、一般USB设备未对主机命令(或请求)作出正确回应会引起总线复位(bus reset),所以在传送完report后,主机肯定还有命令传过来。

2、主机请求完报告描述符后,并不一定会进入idle状态,但一定会向设备发送一个Set_Configuration命令用于激活此设备,设备必须对这一命令作出一个响应,如果主机发来的配置值(配置描述符里可以定义多个配置的)在设备中不存在的话应返回STALL握手包,否则返回ACK扎手包。

一般USB数据监视软件不会捕捉Set_Configuration命令以及STALL、ACK等状态包,或者需要经过其它设置才会捕捉,所以您会误以为传送完报告描述符后整个枚举过程就完了。
回复

使用道具 举报

1

主题

0

好友

9

积分

新手上路

Rank: 1

板凳
发表于 2013-4-3 10:46:17 |只看该作者
baiheee 发表于 2013-4-2 10:43
1、一般USB设备未对主机命令(或请求)作出正确回应会引起总线复位(bus reset),所以在传送完report后,主 ...

谢谢,确实是没有对set_configuration命令进行解析所致!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 我要注册

USB开发网 (渝ICP备09006681号-4)

GMT+8, 2024-4-25 14:50 , Processed in 0.053925 second(s), 24 queries .

百合电子工作室版权所有
回顶部