4.4 上位机软件设计
上位机主要完成数据的接收和保存文件等功能。由于采集卡是一种 PCIE 设备,
需要一种 PCIE 设备的驱动程序为基础进行开发。本设计选择 WinDriver 开发工具来
生成 PCIE 设备驱动和函数库,并基于该驱动在 Visual Studio(VS) 环境下进行上位机
整体功能的开发。在本节中,首先对 WinDriver 进行介绍,然后对驱动生成步骤进行
说明,接下来利用生成的驱动在 VS 环境下进行各种功能的开发,最后是上位机界面
的介绍和说明。
4.4.1
WinDriver 介绍及相关驱动生成
WinDriver 开发设备驱动使用的是底层驱动,与硬件通信的是 windrvr.sys 核心驱
动程序,只需在应用程序中调用 WinDriver 提供的函数库来实现底层各种功能。这些
函数库可与 WinDriver 内核进行交互,通过调用头文件 windrvr.h 中声明的函数来调
用核心模块相应功能,进而通过应用程序实现对外围硬件控制的目的。
WinDriver 的工作模式分为内核模式和用户模式,通过调用用户模式的库函数,
用户模式的库函数再调用内核模式完成对硬件的控制操作。整体的连接关系如图 4.34
所示。
WinDriver 内核驱动程序和用户驱动程序可由 WinDriver 根据设备的种类自动生
成封装。以某 PCI 设备为例,首先打开 WinDriver 软件,然后弹出如图
所示的界
面,该界面显示了当前与 PC 机连接的设备。
选择某一个 PCI 设备,点击 Generate .INF
,生成 INF 文件。弹出如图
所示的界面,框里显示了厂商 ID 和设备 ID 号,勾选上 Automatically install the INF
file 选项,点击 next , PC 机会自动生成和安装该 PCI 设备的 INF 文件,并生成 windriver
内核驱动文件。
图 4.37 显示了该 PCI 设备的配置空间。
接下来生成库函数和用户驱动程序,在该界面点击 Generate Code 按钮,弹出图
4.38 所示的界面,由于上位机是由 VS 开发,因此选择基于 VS 平台下生成驱动程序。
生成的库函数和用户驱动函数如图 4.39 所示,其中
文件是用户驱动文件,
里面定义了配置函数,读写寄存器函数等; _lib.c , _lib.h 是库函数文件,里面定义了
设备的打开与关闭,中断处理等函数。