阅读:1430回复:5
d12如何将全部设备描述符发给主机
控制端点的最大包限制为16,全部设备描述符大小为18,必须分两次发送描述符,这是如何实现的,先发16个字节,等待主机将16个字节读走后,再发剩下的吗?这个过程的细节是怎样的。
大侠们救我。 |
|
沙发#
发布于:2003-08-03 09:37
是这样的,发完16字节后会有中断来,你把剩下的两个字节发过去就行了。
|
|
板凳#
发布于:2003-08-03 10:20
在收到SET_ADDRESS后的Get_descriptor后,我发回前16个字节设备描述符,以下是从BUSHOUND看到的。发给主机的数据只显示了8个字节,我想可能是我用的BUSHOUND是测试版的原因,不明白为何主机在读入前16个字节的设备描述符后要发一个get status请求?这之后的那个DI写入的数据并不是设备描述符的后两个个字节。
8.0 CTL 00 05 02 00 SET ADDRESS 00 00 00 00 8.0 CTL 80 06 00 01 GET DESCRIPTOR 00 00 12 00 8.0 DI 12 01 00 01 .... dc 00 00 10 .... 8.0 CTL a3 00 00 00 GET STATUS 01 00 04 00 8.0 DI 03 01 00 00 .... 8.0 CTL 23 03 04 00 SET FEATURE 01 00 00 00 8.1 DI 02 . |
|
地板#
发布于:2003-08-03 10:43
你的全部描述符没有发完吧,剩余的两个字节是在ep0tx(也就是端点0的in中断)中断里发给主机的
|
|
地下室#
发布于:2003-08-03 17:15
谢谢。枚举终于通过了,如大家所说的收到了USB总线发来的如下数据包
(1)80 06 00 01 00 00 40 00 GET DESCR (2)00 05 02 00 00 00 00 00 SET ADDRESS (3)80 06 00 01 00 00 12 00 GET DESCR (4)80 06 00 02 00 00 09 00 GET DESCR(CONFIG) (5)80 06 00 02 00 00 FF 00 GET DESCR(CONFIG) 枚举过程,GL灯一直闪,等到提示安装驱程时,指示灯熄灭了, 请问这是正常的吗?到这一步的时候应该是熄灭还是一直亮。 请教。 |
|
5楼#
发布于:2003-08-03 21:54
呵呵,恭喜呀,你已经通过了初步的枚举,最后以不是set config,好像是09 01 00 00 00 00 00 00。等结束了这一步设备就可以正常工作了。
|
|