打印

未安装驱动的USB设备插入PC后 获取VID PID的操作是谁发的?

[复制链接]
5721|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
x_tin|  楼主 | 2009-11-27 09:51 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
USB设备插入电脑后,在提示安装驱动界面出现前 的 往端点0发控制传输 是什么东东发的...   发到哪一步,  我现在知道的 肯定是 发了获取设备描述符的请求,不然不会知道 VID PID..      有人能 帮忙说下 这里面的流程吗?        当安装驱动后.. 从BUS HOUND 工具 捕捉到 有完整的列举的过程, 那么是不是 说 驱动需要按顺序发送这些请求来列举? 然后驱动还要实现 对外提供功能性的 接口函数? 驱动是不是 就干这些事?           

还想了解的是:  USB的HOST控制器 应该是挂在PC的总线上的, 然后这个HOST控制器芯片 应该是有很多寄存器的, 需要初始化,然后往设备端发数据也应该是通过寄存器来的.   那么这些操作是WINDOWS 哪一级 做的事情?  通常我们说的驱动开发    的驱动应该是 不要 做这些事情吧?   那我们开发的驱动 比如要发送个获取设备描述符的请求  是怎么实现的喃? 应该是调用WINDOWS提供的什么东东了?  这是个什么东东喃?


非常感谢!

相关帖子

沙发
sz_kd| | 2009-11-27 10:05 | 只看该作者
vid ,pid是设备告诉我USB主机的

使用特权

评论回复
评分
参与人数 1威望 +1 收起 理由
x_tin + 1
板凳
x_tin|  楼主 | 2009-11-27 10:19 | 只看该作者
我是说 是"谁"发的获取设备描述符的请求的  因为这时 设备驱动未安装

使用特权

评论回复
地板
dqyubsh| | 2009-11-30 13:06 | 只看该作者
个人观点,主机发的不一定是设备描述符这类高级功能,应该在USB底层(硬件那一层)实现的。外设有自己的VID/PID,插入主机时,主机能感觉到USB总线电平的变化,然后问设备的VID/PID,根据这些信息查找对应的驱动程序。

至于主机端的USB硬件层是无需关心的,甚至于到USB驱动程序,也有比较通用的,你可以看下CYPRESS的USB驱动,它可以说是提供了详尽的支持。相比TI的DSP等芯片厂家,他做的驱动是最方便的。

说到驱动程序,我觉得,所有的USB上层驱动都是可用的。因为这是基于USB标准实现的。所以,一般没必要从DDK开始开发驱动,直接装一个认为好用的即可,然后调用该驱动支持的API,即可实现USB外设操作。

我在使用过程中,觉得CYPRESS的驱动很好用,推荐。

使用特权

评论回复
评分
参与人数 1威望 +1 收起 理由
x_tin + 1
5
lixiang69| | 2009-12-1 15:10 | 只看该作者
获取设备描述符都是主机发的

使用特权

评论回复
评分
参与人数 1威望 +1 收起 理由
x_tin + 1
6
x_tin|  楼主 | 2009-12-1 15:56 | 只看该作者
谢谢,我就是想 "主机"是指什么?   是指从USB插口看过去的电脑主机这样的一个整体,还是指其中的操作系统或者USB HOST 控制器这样的硬件?  或者是指 操作系统里面的哪一层驱动?   是指我们需要写的驱动喃 还是指下层 更底层的驱动?

使用特权

评论回复
7
x_tin|  楼主 | 2009-12-1 16:02 | 只看该作者
我现在了解到的是: 我们自己需要写的 叫功能驱动, 功能驱动还要调用更底层的驱动,发送描述符的操作也不是功能驱动发的.     现在又有问题:  既然CYPRESS提供的通用驱动只是 功能性的, 对外提供了 DEVICEIOCONTROL这样的接口, 也没有更进一步的功能啊?    那为什么就没有这样的适用于所有USB设备的驱动喃  然后提供 往端点 发数据的 接口,  然后功能性的东西 都有应用软件来 做喃 ?  这样不是更方便?

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

35

主题

153

帖子

0

粉丝