编写USB驱动程序

时间:2022-12-04 16:11:04
现在想编一个驱动程序,xp中可以读取usb设备的信号和给usb设备发送信号,xp可以自动识别usb设备。谁有这方面相关资料或者代码,发给小弟看看!

32 个解决方案

#1


没有人会吗??

#2


三种方法
1.你到DDK里面着个开源得修改一下就可以了.在SRC目录下面,修改一个现成的WDM驱动就可以了.

2.或者如果你得系统够新的话,利用WinUSB的机制,直接写应用程序就可以了,不用写驱动.

3.要求更简单的话,写个应用程序,响应 OnDeviceChange这个命令,然后在从Param里面得出来就可以了.

代码又很多开源的,下一个去吧

#3


BAIDU一下 侦察USB设备,有很多..

#4


来学习的,顺便拿分走人。

#5


#6


推荐《圈圈教你玩USB》一书。代码详细。讲解思路由浅入深。

另外,如果你的驱动要识别所有的USB设备,这一点比较复杂,特别是现在有OTG。勇气可嘉,祝你成功!

网上很多人说开发USB驱动,大致需要一年左右的时间,本人认为未必。如果商业化的项目,一般都会有个类别之分,不需要识别所有的种类,例如HID类。大而全,维护困难。

#7


顶2楼的

#8


可以设置成USB HID类,不需要安装驱动,只要在应用程序中对其进行访问就可以了,比如silicon的U-EC5的仿真器就是这么做的。

#9


ding 

#10


看看ddk的sample

#11


我也需要这方面的知识啊,楼上楼下的哥们,会做的给小弟指点指点

#12


linux那些事  讲USB挺详细的

#13


标记下,毕业设计是这个......

#14


我也想学习

#15


saplecode看来挺复杂的啊

#16


引用 2 楼 action2005 的回复:
三种方法
1.你到DDK里面着个开源得修改一下就可以了.在SRC目录下面,修改一个现成的WDM驱动就可以了.

2.或者如果你得系统够新的话,利用WinUSB的机制,直接写应用程序就可以了,不用写驱动.

3.要求更简单的话,写个应用程序,响应 OnDeviceChange这个命令,然后在从Param里面得出来就可以了.

代码又很多开源的,下一个去吧



编写USB驱动程序

#17


学费是要花的
《USB应用开发宝典》无68013开发板且经验不足者慎购。
编写USB驱动程序

#18


我最近也在做USB方面的事,学习中

#19


Mark一下!

#20


WDK,去研究研究!

#21


观望的!

#22


学习学习。。。。。。。。。。。

#23


该回复于2011-07-30 10:24:51被版主删除

#24


我最近也在做USB方面的事,学习中

#25


我最近也在做USB方面的事,学习中

#26


我也正在学习,留个记号

#27


我也想学~

#28


该回复于2011-11-03 08:39:09被版主删除

#29


学习  学习~~~

#30


板子的USB驱动!!,

#31


7楼的哪些书可以看下

一般情况是没人去鼓捣USB驱动的,吃力不讨好,除非你有特殊应用需求

1.你提到需要 XP可以自动识别你的USB设备。 这点讲的不是很清楚,你是想免驱呢还是即插即用? 免驱的话就需要XP自带喽,哪只能是 Mass storage,HID,MIC,Camera,SCAN之类的设备。即插即用的话是个USB都应如此吧。 
更深一层说 XP 识别出USB设备是总线枚举时干的事,这时还没轮到你将要写的驱动程序上马呢,是通过USB0端点报告一些设备类型主要是Class 与 PID/VID , 这些都是USB设备端固件与XP的活计。

2. XP 获取Class或PID/VID 后,决定是用自带的哪些驱动“免驱” 还是从你提供的 *.inf 文件中加载你自已写的驱动了。

3. 实际上USB能用上的驱动都是现成的源码的,你用哪个USB主控厂家都会提供公版驱动程序源码。你也无非是拿来改改端点配置。改改INF文件。顶多就是加一些自已公司特定的 IRP_XXX  指令。比如说你做个USB Mouse 你上面加了个振动电机,标准的HID驱动没有控制这个的指令啊,你就自已加一个这功能。 但这样做太麻烦,一般用下面方法

4. 如果就是少量数完全可以用XP自带的HID设备,这样可以实现“免驱”。定义数据HID包类型是自定义的这样XP 不会把你的数据当Mouse或 键盘,你就可以用上位机程序*地处理这些数据了。缺点是只适合短小的数据处理 33 个字节吧。基本就是固件与上位机编程了。

5. 另一类就是要写比较多的内核层代码的了,这类多是虚拟驱动,比如你把个USB设备虚拟成网卡或显卡什么的。

#32


在XP里写一个驱动,能够通过PSoC的USB接口完成PSoC板子和主机之间相互的数据传输,并且以各种方式把数据保存在电脑里,该怎么做呢?请各位大侠指导指导!

#1


没有人会吗??

#2


三种方法
1.你到DDK里面着个开源得修改一下就可以了.在SRC目录下面,修改一个现成的WDM驱动就可以了.

2.或者如果你得系统够新的话,利用WinUSB的机制,直接写应用程序就可以了,不用写驱动.

3.要求更简单的话,写个应用程序,响应 OnDeviceChange这个命令,然后在从Param里面得出来就可以了.

代码又很多开源的,下一个去吧

#3


BAIDU一下 侦察USB设备,有很多..

#4


来学习的,顺便拿分走人。

#5


#6


推荐《圈圈教你玩USB》一书。代码详细。讲解思路由浅入深。

另外,如果你的驱动要识别所有的USB设备,这一点比较复杂,特别是现在有OTG。勇气可嘉,祝你成功!

网上很多人说开发USB驱动,大致需要一年左右的时间,本人认为未必。如果商业化的项目,一般都会有个类别之分,不需要识别所有的种类,例如HID类。大而全,维护困难。

#7


顶2楼的

#8


可以设置成USB HID类,不需要安装驱动,只要在应用程序中对其进行访问就可以了,比如silicon的U-EC5的仿真器就是这么做的。

#9


ding 

#10


看看ddk的sample

#11


我也需要这方面的知识啊,楼上楼下的哥们,会做的给小弟指点指点

#12


linux那些事  讲USB挺详细的

#13


标记下,毕业设计是这个......

#14


我也想学习

#15


saplecode看来挺复杂的啊

#16


引用 2 楼 action2005 的回复:
三种方法
1.你到DDK里面着个开源得修改一下就可以了.在SRC目录下面,修改一个现成的WDM驱动就可以了.

2.或者如果你得系统够新的话,利用WinUSB的机制,直接写应用程序就可以了,不用写驱动.

3.要求更简单的话,写个应用程序,响应 OnDeviceChange这个命令,然后在从Param里面得出来就可以了.

代码又很多开源的,下一个去吧



编写USB驱动程序

#17


学费是要花的
《USB应用开发宝典》无68013开发板且经验不足者慎购。
编写USB驱动程序

#18


我最近也在做USB方面的事,学习中

#19


Mark一下!

#20


WDK,去研究研究!

#21


观望的!

#22


学习学习。。。。。。。。。。。

#23


该回复于2011-07-30 10:24:51被版主删除

#24


我最近也在做USB方面的事,学习中

#25


我最近也在做USB方面的事,学习中

#26


我也正在学习,留个记号

#27


我也想学~

#28


该回复于2011-11-03 08:39:09被版主删除

#29


学习  学习~~~

#30


板子的USB驱动!!,

#31


7楼的哪些书可以看下

一般情况是没人去鼓捣USB驱动的,吃力不讨好,除非你有特殊应用需求

1.你提到需要 XP可以自动识别你的USB设备。 这点讲的不是很清楚,你是想免驱呢还是即插即用? 免驱的话就需要XP自带喽,哪只能是 Mass storage,HID,MIC,Camera,SCAN之类的设备。即插即用的话是个USB都应如此吧。 
更深一层说 XP 识别出USB设备是总线枚举时干的事,这时还没轮到你将要写的驱动程序上马呢,是通过USB0端点报告一些设备类型主要是Class 与 PID/VID , 这些都是USB设备端固件与XP的活计。

2. XP 获取Class或PID/VID 后,决定是用自带的哪些驱动“免驱” 还是从你提供的 *.inf 文件中加载你自已写的驱动了。

3. 实际上USB能用上的驱动都是现成的源码的,你用哪个USB主控厂家都会提供公版驱动程序源码。你也无非是拿来改改端点配置。改改INF文件。顶多就是加一些自已公司特定的 IRP_XXX  指令。比如说你做个USB Mouse 你上面加了个振动电机,标准的HID驱动没有控制这个的指令啊,你就自已加一个这功能。 但这样做太麻烦,一般用下面方法

4. 如果就是少量数完全可以用XP自带的HID设备,这样可以实现“免驱”。定义数据HID包类型是自定义的这样XP 不会把你的数据当Mouse或 键盘,你就可以用上位机程序*地处理这些数据了。缺点是只适合短小的数据处理 33 个字节吧。基本就是固件与上位机编程了。

5. 另一类就是要写比较多的内核层代码的了,这类多是虚拟驱动,比如你把个USB设备虚拟成网卡或显卡什么的。

#32


在XP里写一个驱动,能够通过PSoC的USB接口完成PSoC板子和主机之间相互的数据传输,并且以各种方式把数据保存在电脑里,该怎么做呢?请各位大侠指导指导!