3733|9

60

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

谈谈 USB 开发的感受,[无驱动与有驱动] [复制链接]

其实利用USB与设备通信,PC机不一点要写驱动,例如直接利用CDC-ACM也可以实现数据传输,只需写个INF.
但为什么还是要自己在WDM中开发USB驱动呢?
看了下CDC文档,感觉好多情况下可以利用WINDOWS自带的一些API来写应用,为什么我们还要去写驱动呢.

大蛱们,谈谈看法

最新回复

帮你顶 可能对pc来说,有无驱动,都差别不太大, 有驱动,可以便于xp管理,分配资源,分配id等等, usb设备在无驱动情况下分配的电流值是很低的50-100ma左右, 有驱动的时候,最高可以达到500ma, 我个人觉得,主要是为了xp系统,进行管理和分配资源, 系统把设备进行分类后,就可以进行管理,提供可行的解决方案, 比如,现在usb设备都做成HID 设备, xp给自动驱动上了, 省着你自己写驱动了,这就是一个标准,管理带来的好处, 现在的,摄像头,鼠标,键盘,声卡等,很多都用hid 标准,不用自己写驱动了, 除了一些特定的高速设备,需要自己写一个驱动,来达到高速传输的要求, 好比为什么要ISO2000来指导企业,就是标准的问题  详情 回复 发表于 2010-5-13 23:20
点赞 关注

回复
举报

82

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
windows是提供了丰富的接口,我感觉我们做的只是封装下而已。
 
 

回复

84

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
俺脚着无驱的是系统提供的驱动,典型的有U盘,读卡器,键盘鼠标等,无驱的usb限制了usb的功能。
 
 
 

回复

82

帖子

0

TA的资源

一粒金砂(初级)

4
 
如果用Microsoft的Inbox驱动,那么设备端程序(Firmware)需要实现对应的 USB Device Class,工作量很大;如果自己开发设备驱动,那么Firmware的开发就可以简化,实现驱动需要的必须功能,很多东西可以在设备驱动中做。

就比如LZ说的实现CDC类可以用usbser.sys等Microsoft Inbox驱动,但是,你的设备需要实现CDC规范的东西。

用Microsoft inbox驱动的好处:设备易于使用,即插即用,用户安装驱动容易;坏处:设备开发难,某些功能受限;
用Vendor 自己开发驱动的好处:设备开发简单,有些东西可以在驱动中做;坏处:需要发布驱动,用户使用稍显麻烦。
 
 
 

回复

75

帖子

0

TA的资源

一粒金砂(初级)

5
 
引用 3 楼 huntercao 的回复:

如果用Microsoft的Inbox驱动,那么设备端程序(Firmware)需要实现对应的 USB Device Class,工作量很大;如果自己开发设备驱动,那么Firmware的开发就可以简化,实现驱动需要的必须功能,很多东西可以在设备驱动中做。

就比如LZ说的实现CDC类可以用usbser.sys等Microsoft Inbox驱动,但是,你的设备需要实现CDC规范的东西。

用……

用Microsoft inbox驱动的好处还有:系统兼容性好,由于Microsoft自己的驱动,不用担心操作系统兼容性;
用Vendor 自己开发驱动的好处还有:驱动维护比较麻烦,兼容性会稍微差一些。
 
 
 

回复

61

帖子

0

TA的资源

一粒金砂(初级)

6
 
引用 3 楼 huntercao 的回复:
如果用Microsoft的Inbox驱动,那么设备端程序(Firmware)需要实现对应的 USB Device Class,工作量很大;如果自己开发设备驱动,那么Firmware的开发就可以简化,实现驱动需要的必须功能,很多东西可以在设备驱动中做。

就比如LZ说的实现CDC类可以用usbser.sys等Microsoft Inbox驱动,但是,你的设备需要实现CDC规范的东西。

用M……


感谢 Huntercao, 你说"如果使用Microsoft的Inbox驱动 ... 设备端的 Firmwre开发工作量很大... 要实现CDC规范的东西...". 其实我觉得有点疑惑.
因为就我使用 CDC 的子类 ACM 来收发数据来说, 设备端的 Firmwre 只要把所有描述表填好,响应规范中的几个特定请求就可以了,之后的数据传输变得很简单.并没感觉工作量很大.
由于CDC 的其它子类没用过,但看过规范,感觉基本上就是实现请求多少的区别,让枚举通过就行了.数据传输都差不多.不知道你怎么理解呢?
 
 
 

回复

68

帖子

0

TA的资源

一粒金砂(初级)

7
 
引用 5 楼 eeko2005 的回复:

引用 3 楼 huntercao 的回复:
因为就我使用 CDC 的子类 ACM 来收发数据来说, 设备端的 Firmwre 只要把所有描述表填好,响应规范中的几个特定请求就可以了,之后的数据传输变得很简单.并没感觉工作量很大.
由于CDC 的其它子类没用过,但看过规范,感觉基本上就是实现请求多少的区别,让枚举通过就行了.数据传输都差不多.不知道你怎么理解呢?

协议实现确实不是很难,工作量可能也不大。主要的问题如下:
1. 在设备内部开发东西,调试和测试毕竟要麻烦一些;如果你设备CPU功能不够强大,或者不够通用,那么你可以参考的源代码和可复用的东西会很少。如果在设备驱动里面做,那么开发,调试,测试,更新都会容易一些。
2. 由于设备使用Microsoft inbox驱动,你不知道该驱动的行为,Microsoft也没有明确的Spec告诉你某项功能如何实现。有些时候,你需要去猜测驱动在干什么。如果有自己的设备驱动,那么你可以很明确地知道驱动需要什么,是怎么做的。
 
 
 

回复

75

帖子

0

TA的资源

一粒金砂(初级)

8
 
驱动开发,不一定都是WIN上的.如果楼主感兴趣的话,去用一下uC/OS-II试试,此内核没有什么外面驱动,所有的东西都得自已做,如果你的老板指定产品中就用uC/OS-II,你是写还是不写.
 
 
 

回复

80

帖子

0

TA的资源

一粒金砂(初级)

9
 
引用 7 楼 wsoon 的回复:
驱动开发,不一定都是WIN上的.如果楼主感兴趣的话,去用一下uC/OS-II试试,此内核没有什么外面驱动,所有的东西都得自已做,如果你的老板指定产品中就用uC/OS-II,你是写还是不写.


可能我之前没说清楚吧,我所想讨论的驱动是指 Windows 那边驱动, 并不是设备(单片机)的驱动.
 
 
 

回复

62

帖子

0

TA的资源

一粒金砂(初级)

10
 
帮你顶

可能对pc来说,有无驱动,都差别不太大,

有驱动,可以便于xp管理,分配资源,分配id等等,

usb设备在无驱动情况下分配的电流值是很低的50-100ma左右,

有驱动的时候,最高可以达到500ma,

我个人觉得,主要是为了xp系统,进行管理和分配资源,

系统把设备进行分类后,就可以进行管理,提供可行的解决方案,

比如,现在usb设备都做成HID 设备, xp给自动驱动上了,

省着你自己写驱动了,这就是一个标准,管理带来的好处,

现在的,摄像头,鼠标,键盘,声卡等,很多都用hid 标准,不用自己写驱动了,

除了一些特定的高速设备,需要自己写一个驱动,来达到高速传输的要求,

好比为什么要ISO2000来指导企业,就是标准的问题
 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/8 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表