kavan
驱动牛犊
驱动牛犊
  • 注册日期2003-05-19
  • 最后登录2004-04-16
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:2114回复:12

请问设备不能被计算机识别、枚举是怎么回事?

楼主#
更多 发布于:2003-11-24 16:04
请问设备不能被计算机识别、枚举是怎么回事?设备的用WINDRIVER向导检查,PID和VID都是0000不知道怎么回事,请指教。
xuqing119
驱动牛犊
驱动牛犊
  • 注册日期2003-11-23
  • 最后登录2003-12-01
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2003-11-24 17:01
在插上USB设备后,主机根据USB总线接口电平变化来发现有新设备,然后通过枚举来得到USB设备的相关信息,枚举通过对设备的端口0发控制数据包,来得到设备的描述符。这样主机就能够识别设备了。此中详细你可以参考任何一本USB的书籍,上面都有对枚举的详细叙述。
kavan
驱动牛犊
驱动牛犊
  • 注册日期2003-05-19
  • 最后登录2004-04-16
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2003-11-24 17:13
是问题是我知道,原来可以,现在枚举的系统不认这个设备,是未直的,无从下手啊,他的属性都没有啊。
only8008
驱动牛犊
驱动牛犊
  • 注册日期2003-10-08
  • 最后登录2004-12-29
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2003-11-24 19:51
用BUSBOUND看看通讯的数据交换过程。
kavan
驱动牛犊
驱动牛犊
  • 注册日期2003-05-19
  • 最后登录2004-04-16
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2003-11-25 14:40
USB没有枚举,BUSBOUND是看不到的,有没有高手能回答这个问题。回答的都很简单啊,有没有高手啊。
only8008
驱动牛犊
驱动牛犊
  • 注册日期2003-10-08
  • 最后登录2004-12-29
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2003-11-25 14:48
只要d+有电压就可以从busbound看到数据(busreset)。
我就是阿,枚举还没过了呢。
pengenwen
禁止发言
禁止发言
  • 注册日期2003-03-07
  • 最后登录2016-04-11
  • 粉丝0
  • 关注0
  • 积分1586分
  • 威望8380点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2003-11-25 15:20
用户被禁言,该主题自动屏蔽!
xuqing119
驱动牛犊
驱动牛犊
  • 注册日期2003-11-23
  • 最后登录2003-12-01
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2003-11-25 18:54
不能被识别可能是你驱动有问题,刚刚两位高手回复了我的帖子:枚举是系统自动进行的,不许要你考虑,所以你要做的就是作好驱动,至于怎么做驱动,我不清楚,我也在询问。
kavan
驱动牛犊
驱动牛犊
  • 注册日期2003-05-19
  • 最后登录2004-04-16
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2003-11-25 19:12
我用windriver做的驱动,但是系统也是认的未知设备,无法为设备事例找到一个功能驱动程序,我用softice driver 生成的文件通过DDK的编译,也是装不上的。请帮忙看看怎么回事。
附件名称/大小 下载次数 最后更新
2003-11-25_yg.inf (3KB)  0
xuqing119
驱动牛犊
驱动牛犊
  • 注册日期2003-11-23
  • 最后登录2003-12-01
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2003-11-25 19:24
1,关于枚举:flycat0101的回复中提到“发现新设备时,是windows系统中的usbd进行枚举”,你的意思就是我插上,然后我开始枚举,而且枚举过程我也很清楚,但是涉及到代码就不行了,不知道你有没有代码,可以让我参考一下!!!
当系统检测到有设备插入时,系统自动进行枚举,和你的代码没有任何关系,也就是说系统端的枚举过程可以不用考虑,当枚举完成后才会载入你所编写的驱动程序。
注意:枚举过程只和设备、系统有关,和你的驱动程序没有关系!
如果你想了解枚举的具体过程,可以看看linux下的代码,usb.c文件,如果想看windows下的源码,估计你得找微软要,给不给你我就不知道了,呵呵。


2,关于驱动:我看了很多有关驱动的资料和代码,但是总是很模糊:网上说用ddk编写,用windrive编写,但是我看到的驱动都是.inf格式的,里面的驱动都是大同小异的,不知道这里面有什么关系?是不是驱动也只要想.inf那样写就可以了吖?请指教,谢谢!
编写驱动有好多种方式,ddk、windriver都行。不过,首先你要了解WDM的运作方式。生成一个.sys的文件,然后才是编写.inf文件,这两个文件是缺一不可的。inf文件只是和你真正的驱动程序挂钩的一个文件,而真正完成数据收发和这没有关系,只和sys文件有关。这在用ddk时都是要进行的工作,而用windriver好像是根据你的输入的条件自动生成一些代码和inf文件,这个你可以看看这方面的资料。


以上是flycat0101对我的问题的答复,可能对你有帮助!!!
kavan
驱动牛犊
驱动牛犊
  • 注册日期2003-05-19
  • 最后登录2004-04-16
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
10楼#
发布于:2003-11-25 20:28
谢谢,xuqing119的回答,我考虑也是驱动的问题。
3种方式我都用过:
1、WINDRIVER自动生成但USB的设备系统认成PCI设备
2、softice driver生成驱动文件是VC6的编译下,INF文件正常但不能安装。
3、DDK生成的VC的文件夹中有所有关于硬件的程序和信息,所以在DDK的环境编译下,在I386的文件夹中的SYS 中生成SYS文件,但这个文件打不开。
生成的文件在下面,USB为68013,PID为6813,VID为04B4,真不知道那出了问题,谢谢请看看。
附件名称/大小 下载次数 最后更新
2003-11-25_lll.rar (43KB)  0
pengenwen
禁止发言
禁止发言
  • 注册日期2003-03-07
  • 最后登录2016-04-11
  • 粉丝0
  • 关注0
  • 积分1586分
  • 威望8380点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
11楼#
发布于:2003-11-26 08:25
用户被禁言,该主题自动屏蔽!
gehuadongqq
驱动牛犊
驱动牛犊
  • 注册日期2003-03-27
  • 最后登录2004-06-18
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
12楼#
发布于:2003-11-26 09:54
***************************************************
设备的用WINDRIVER向导检查,PID和VID都是0000
***************************************************
如果插上usb线缆,计算机端发现新设备,但是如果用windriver检查却发现PID和VID都是0000,极有可能是你的固件程序有问题。
1。你再仔细检查固件程序中响应setup包时给主机返回的描述符是否正确。
2。如果你自认为给主机返回的描述符是正确,那就再检查一下你返回的16位数据的高低字节是否正确。这往往是一个很容易忽略的小问题却引发了大麻烦!
以上是我的建议!
游客

返回顶部