MyException - 我的异常网
当前位置:我的异常网» WinCE » USB Driver的结构,该怎么解决

USB Driver的结构,该怎么解决(5)

www.myexceptions.net  网友分享于:2015-08-26  浏览:90次



Windows提供了USB的系统类驱动程序,它处理USB上的所有底层通信,这样其他驱动程序就有了一个定义好的接口可以使用。USBHub.sys是USB集线器的驱动程序。USBD.sys是USB类驱动程序,它使用图4中UHCD.sys或OpenHCI.sys分别驱动两种类型的控制器UHCI(USB Host Controller Driver),OHCI(Open Host ControllerInterface)。当PCI枚举器发现USB主机控制器后,就会装入相关的驱动程序。 

通常一些设备都需要开发者写一个核模式的驱动程序来使硬件正常工作。在核模式下驱动程序通过IRP(I/O Request Packet)来组织和操作一些由其他部分发过来的要求和命令。而IRP又是通过URB(USB Request Blocks)来实现的。但对于一些HID(Human Interface Device)的USB设备,象键盘、鼠标和游戏操纵杆之类的设备可以被操作系统自动识别并且支持,开发者不需要再另写驱动程序。 

3 USB接口10M以太网卡的实现 

3.1 选择器件 

目前市场上USB的接口产品有两种,一种是集成了USB接口的单片机,另一种是不带单片机的USB接口芯片。由于前者需要专用的开发机故开发成本较高,本文将介绍一种使用廉价USB接口芯片USBN9602(NS公司)加高速的51单片机实现10M以太网卡的方案。 

在做设计之前一定要计算好外设所要求的带宽和USB的速度是否匹配。一个USB以太网卡应该包括USB通信接口(USBN9602)、8051单片机以及IEEE802.3的MAC层和物理层。USBN9602在全速工作方式下可以达到12Mbit/s,采用USBN9602基本可以满足10M以太网的带宽需求。为达到较高的传输速率,USBN9602还应该用DMA方式与单片机通信。电路框图如图5所示。 

3.2 设计单片机控制程序 

对于单片机控制程序,目前没有任何厂商提供自动生成微码(firmware)的工具。USB单片机控制程序通常由三部分组成,第一、初始化单片机和所有的外围电路(包括USBN9602);第二、主循环部分,其任务是可以中断;第三、中断句柄,其任务是对时间敏感的,必须马上执行。 

3.3 开发USB网卡驱动程序 
开发USB设备驱动程序通常采用WindowsDDK来实现,但现在有许多第三方软件厂商提供了各种各样的生成工具,象Compuware的Driver Works,BlueWaters的DriverWizard等软件能够方便地生成高质量的USB的驱动程序。没有DDK或WDM基础的开发人员可使用KRFTech公司的开发软件WinDriver,它的最新版本4.32已经支持USB驱动程序的开发。最后的驱动程序调试工作可以使用Compuware的Softice或Microsoft的Windows Debugger来进行。 

Windows下的网卡驱动程序需符合NDIS规范(Network Driver Interface Specification)。网络驱动程序不直接调用操作系统的例程,而是通过NDIS进行系统调用,NDIS还根据需要调用了驱动程序提供的例程,共同完成网卡的功能。 

USB网卡驱动程序可分为NDIS中间介质小端口驱动程序和USB驱动程序两部分,然后将两部分驱动程序动态连接。如果USB设备未连接和被禁止,使USB驱动不可用,那么NDIS驱动会返回一个NOT_AVAILABLE的状态。这种实现方法可以保证用户不必重新安装NDIS或重启就可以连接或拔掉USB设备。
参考资料:http://www.mcublog.com/blog/user1/6950/archives/2006/9808.html
------解决方案--------------------
一点都不懂usb。。。学习了

------解决方案--------------------
学习一下,支持啊
------解决方案--------------------
不错啊,学习一下啊
------解决方案--------------------
关注!
------解决方案--------------------
自己写驱动,学习.
------解决方案--------------------
好东西值得一看
------解决方案--------------------

------解决方案--------------------
我现在同样碰到usb的问题,大家多数可能对开发usb设备的驱动比较熟悉,
不同板子的bsp不同,它的usb低层驱动就不一样。

我现在想问一下,不同的芯片比如amd+cs5536与intel+852gm+ich4的板子,
usb的低层驱动如何修改,主要改那些文件?

因为我在使用usb鼠标时有的板子可以用,有的不可以用?我想应该是低层
的驱动有问题。hcd文件夹是不是低层的驱动文件了?
------解决方案--------------------
值得学习!
------解决方案--------------------

------解决方案--------------------
好东西啊,不错啊.
------解决方案--------------------
你的艺术水平太高了
------解决方案--------------------
好东西值得一看
------解决方案--------------------
呵呵 希望如此啊

文章评论

60个开发者不容错过的免费资源库
60个开发者不容错过的免费资源库
 程序员的样子
程序员的样子
看13位CEO、创始人和高管如何提高工作效率
看13位CEO、创始人和高管如何提高工作效率
编程语言是女人
编程语言是女人
代码女神横空出世
代码女神横空出世
当下全球最炙手可热的八位少年创业者
当下全球最炙手可热的八位少年创业者
一个程序员的时间管理
一个程序员的时间管理
中美印日四国程序员比较
中美印日四国程序员比较
Java程序员必看电影
Java程序员必看电影
不懂技术不要对懂技术的人说这很容易实现
不懂技术不要对懂技术的人说这很容易实现
程序员的鄙视链
程序员的鄙视链
旅行,写作,编程
旅行,写作,编程
Java 与 .NET 的平台发展之争
Java 与 .NET 的平台发展之争
程序猿的崛起——Growth Hacker
程序猿的崛起——Growth Hacker
程序员最害怕的5件事 你中招了吗?
程序员最害怕的5件事 你中招了吗?
初级 vs 高级开发者 哪个性价比更高?
初级 vs 高级开发者 哪个性价比更高?
写给自己也写给你 自己到底该何去何从
写给自己也写给你 自己到底该何去何从
总结2014中国互联网十大段子
总结2014中国互联网十大段子
为什么程序员都是夜猫子
为什么程序员都是夜猫子
2013年中国软件开发者薪资调查报告
2013年中国软件开发者薪资调查报告
10个调试和排错的小建议
10个调试和排错的小建议
亲爱的项目经理,我恨你
亲爱的项目经理,我恨你
科技史上最臭名昭著的13大罪犯
科技史上最臭名昭著的13大罪犯
为啥Android手机总会越用越慢?
为啥Android手机总会越用越慢?
程序员都该阅读的书
程序员都该阅读的书
要嫁就嫁程序猿—钱多话少死的早
要嫁就嫁程序猿—钱多话少死的早
Web开发人员为什么越来越懒了?
Web开发人员为什么越来越懒了?
程序员周末都喜欢做什么?
程序员周末都喜欢做什么?
程序员和编码员之间的区别
程序员和编码员之间的区别
程序员必看的十大电影
程序员必看的十大电影
那些争议最大的编程观点
那些争议最大的编程观点
程序员应该关注的一些事儿
程序员应该关注的一些事儿
程序员的一天:一寸光阴一寸金
程序员的一天:一寸光阴一寸金
做程序猿的老婆应该注意的一些事情
做程序猿的老婆应该注意的一些事情
那些性感的让人尖叫的程序员
那些性感的让人尖叫的程序员
我的丈夫是个程序员
我的丈夫是个程序员
我是如何打败拖延症的
我是如何打败拖延症的
10个帮程序员减压放松的网站
10个帮程序员减压放松的网站
Web开发者需具备的8个好习惯
Web开发者需具备的8个好习惯
程序员眼里IE浏览器是什么样的
程序员眼里IE浏览器是什么样的
5款最佳正则表达式编辑调试器
5款最佳正则表达式编辑调试器
“肮脏的”IT工作排行榜
“肮脏的”IT工作排行榜
我跳槽是因为他们的显示器更大
我跳槽是因为他们的显示器更大
十大编程算法助程序员走上高手之路
十大编程算法助程序员走上高手之路
老美怎么看待阿里赴美上市
老美怎么看待阿里赴美上市
鲜为人知的编程真相
鲜为人知的编程真相
2013年美国开发者薪资调查报告
2013年美国开发者薪资调查报告
什么才是优秀的用户界面设计
什么才是优秀的用户界面设计
聊聊HTTPS和SSL/TLS协议
聊聊HTTPS和SSL/TLS协议
软件开发程序错误异常ExceptionCopyright © 2009-2015 MyException 版权所有