打印
[DSP]

数字传输系统的 PCI 上位机 WinDriver 驱动设计

[复制链接]
3443|41
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
god9987|  楼主 | 2020-11-25 08:48 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
驱动程序是连接硬件板卡与操作系统内应用程序的桥梁。硬件板卡通过 PCI
与上位机连接,上位机可以在内核模式下访问硬件板卡,与硬件板卡进行通信;
然而在操作系统中应用程序运行在用户层,无法直接访问硬件板卡资源。因此用
户层应用程序必须通过驱动程序才能访问硬件板卡。驱动程序分为内核模式驱动
程序与用户模式驱动程序。用户模式驱动程序是运行于用户模式下的系统级代
码,一般用是为虚拟设备开发,在直接访问硬件板卡方面受到很大限制。内核模
式驱动程序是运行于内核模式的系统级代码,能够直接访问硬件资源,并且能够
使用 DMA,能够响应硬件设备的中断信号。所以一般为硬件设备开发内核模式驱
动程序。


使用特权

评论回复

相关帖子

沙发
god9987|  楼主 | 2020-11-25 08:49 | 只看该作者
用于开发内核层驱动程序的经典工具有 WDK、DDK 等。开发者要使用这些开
发工具开发驱动程序,第一要掌握深厚的操作系统知识,第二要了解硬件设备的
原理和资源。开发者需要花费大量时间和精力在构建驱动程序底层代码上。使用
WinDriver 开发驱动程序就可以免去构建底层驱动程序代码的步骤,从而为开发
者提高开发效率。WinDriver 软件为开发者构建了底层代码,提供高度封装的
API,支持开发者在用户模式下开发驱动。同时 WinDriver 允许用户层驱动程序
使用 DMA、处理中断响应。WinDriver 向开发者提供了内核插入模式以满足开发
者对驱动性能的要求。WinDriver 还为开发者提供了可视化的开发向导,允许开
发者在开发驱动程序之前通过开发向导浏览并诊断硬件设备资源。

使用特权

评论回复
板凳
god9987|  楼主 | 2020-11-25 08:50 | 只看该作者
WinDriver 是一套由 JUNGO 公司出版,支持用户层级设备驱动开发并且提
供高度封装的 API 库和友好的开发向导,用于开发设备驱动程序的组件,本文
所提到的 WinDriver 版本为 10.01。WinDriver 面向多种操作系统,支持开发者在Windows、WindowsCE 和 Linux 系统下开发驱动程序;使用 WinDriver 开发者可
以开发 PCI/PCMCIA/CardBus/ISA/EISA/CompactPCI/PCI  Express 驱动程序。
WinDriver 支持多种编译器,包括标准 C、C++、.NET、 VB、嵌入式 VC++等编译器。WinDriver 支持跨平台,即对于 WinDriver 支
持的所有平台,开发者只需要重新编译编写的驱动程序就可以让驱动程序运行在
新的平台上。WinDriver 还向开发者提供了非常友好的向导工具。开发者可以使
用向导工具查看硬件设备的资源信息,并检测硬件设备是否正常工作。如果硬件
设备能够正常工作,开发者可以使用向导工具建立一个能够对硬件设备进行基本
读写操作的驱动程序框架[
3]。WinDriver 向开发者提供了高度封装的 API 函数库,
帮助开发者完成驱动程序底层构架工作,极大地降低了开发驱动程序的难度。开
发者不必花费大量精力和时间在操作系统内核级编程上,只需要掌握 WinDriver
原理就能够快速进行 PCI 和 USB 等驱动开发。WinDriver 支持开发者在用户模
式下开发驱动程序,开发者不需要掌握硬件设备原理和操作系统内核机制,只需
要学会 WinDriver 的开发流程和调用 API 方法就能够编写驱动代码。虽然在用户
模式下编写驱动程序可以简化开发过程,但是在对代码执行效率要求高(如处理
中断信号)的部分,在用户模式下编写代码无法满足要求,必须在内核模式下编
写代码。为了解决这个问题,WinDriver 向开发者提供了内核插入模式(Kernel
PlugIn),允许开发者在用户模式下编写和调试代码,同时在内核模式下运行那
些性能要求高的部分,这种模式为驱动程序的效率和吞吐量提供了保障。在内核
插入模式下粗略估计吞吐量,大约每秒钟可以响应 100000 个中断。使用
WinDriver 开发 PCI 设备驱动代码可以通过 WinDriver 开发向导搭建驱动程代码
框架,然后修改框架代码,根据自己的需要编写定制功能代码,对于性能要求高
的部分可以采用内核插入模式实现;开发者也可以根据 WinDriver 文档,按照初
始化并打开硬件设备、申请资源、编写定制功能模块、释放资源、关闭硬件设备
的顺序,通过调用 API 实现驱动代码,对于性能要求高的部分采用内核插入模
式实现。

使用特权

评论回复
地板
god9987|  楼主 | 2020-11-25 08:52 | 只看该作者

使用特权

评论回复
5
god9987|  楼主 | 2020-11-25 08:54 | 只看该作者

使用特权

评论回复
6
god9987|  楼主 | 2020-11-25 08:55 | 只看该作者

使用特权

评论回复
7
god9987|  楼主 | 2020-11-25 08:56 | 只看该作者

使用特权

评论回复
8
god9987|  楼主 | 2020-11-25 08:57 | 只看该作者

使用特权

评论回复
9
god9987|  楼主 | 2020-11-25 08:58 | 只看该作者

使用特权

评论回复
10
god9987|  楼主 | 2020-11-25 08:59 | 只看该作者

使用特权

评论回复
11
god9987|  楼主 | 2020-11-25 09:01 | 只看该作者

使用特权

评论回复
12
god9987|  楼主 | 2020-11-25 09:02 | 只看该作者

使用特权

评论回复
13
god9987|  楼主 | 2020-11-25 09:03 | 只看该作者


使用特权

评论回复
14
god9987|  楼主 | 2020-11-25 09:04 | 只看该作者

使用特权

评论回复
15
god9987|  楼主 | 2020-11-25 09:06 | 只看该作者

使用特权

评论回复
16
god9987|  楼主 | 2020-11-25 09:07 | 只看该作者

使用特权

评论回复
17
god9987|  楼主 | 2020-11-25 09:09 | 只看该作者

使用特权

评论回复
18
god9987|  楼主 | 2020-11-25 09:10 | 只看该作者

使用特权

评论回复
19
god9987|  楼主 | 2020-11-25 09:11 | 只看该作者

使用特权

评论回复
20
god9987|  楼主 | 2020-11-25 09:12 | 只看该作者

使用特权

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

本版积分规则

54

主题

1028

帖子

0

粉丝