170 likes | 332 Views
介绍一本驱动入门书. 适合初涉设备 驱动程序的 开发人员. 驱动开发工具选择. 方法二 方法 一. Visual C++. 寄生. 难!. DRIVERSTUDIO. DDK. WINDRIVER. PCI 驱动模块. 硬件访问. 开发 PCI 驱动主要解决三个问题: 1 。硬件访问 2 。中断处理 3 。 DMA 传输. 采用 IO 通信对硬件进行访问。 KIoRegister KMemoryRegister 等类.
E N D
介绍一本驱动入门书 适合初涉设备 驱动程序的 开发人员
驱动开发工具选择 方法二 方法 一 Visual C++ 寄生 难! DRIVERSTUDIO DDK WINDRIVER
PCI驱动模块 硬件访问 开发PCI驱动主要解决三个问题: 1。硬件访问 2。中断处理 3。DMA传输 采用IO通信对硬件进行访问。KIoRegister KMemoryRegister等类 对中断进行响应、处理。KInterrupt DMA DMA初始化DMA传输控制等。KdmaAdapter 中断处理
第四步:应用软件开发 采用Win32 API函数和驱动程序建立联系, 实现上层应用软件的相应功能。常用访问硬件 的API函数有: CreatFile( ):打开驱动程序,获取设备句柄 ReadFile( ):获取数据 WriteFile( ):向设备写数据 ControlIoDevice( ):实现与外围设备之间的读写操作 CloseFile( ):关闭设备
Graphical Programming 应用软件开发工具选择 MFC+API LabWindows/CVI
控件 LABVIEW编程 核心态 用户态 DLL 驱 动 调用 访问 Labview CIN接口
VC开发环境 VC开发环境使用相对复杂,需要花大量时间开发应用程序界面,界面开发远不如Labview便捷、美观,但是对于理解应用程序工作机理大有好处。 MFC类库 Win32API 采用VC开发的应用程序界面
小结 在这儿我只是给了大家一个开发PCI过程的思路,该做些什么事情?该学些什么东西?该采用哪些开发工具?而一些更具体、更细节的东西需要大家自己努力去学习。一个PCI控制器的英文资料就有300多页,学习PCI协议就得看一本书,所以,开发PCI设备最重要的应该还是大家对开发接口设备的热爱和兴趣!只有 这样,才能不断的克服你所遇到的所有困难。
PCI总线开发实例介绍 我曾经采用PLX公司生产的PCI9054总线控制器 和CPLD实现了基于PCI总线的高速数据采集系统, 系统采用主控DMA传输方式将采集数据存入PC, 并动态显示,测试结果良好。 驱动程序采用康柏公司提供的DriverStudio开发 工具包,上层应用软件采用VC++6.0开发环境,使用 MFC类库和API结合的方法成功的访问了硬件。
系统解决方案 PCI BUS 信号 调理 数据 转换 存储 单元 逻辑控制单元
基于PCI总线的数据采集卡 测试卡
上层应用软件 VC++6.0 开发 显示区 操作区 参数设定
测试效果 测试的波形上有干扰存在,所以在设计PC机板卡的时候一定要考虑机箱内部干扰
注意接口尺寸 B面元件面 一面共62根金手指 Protel中有标准封装
总结 PCI总线是当今计算机上最先进的总线,其局部总线的思想结束了I/O总线时代!开发PCI总线设备一定要开发总线驱 动程序,最先进的驱动模型是WDM,上 层应用软件访问硬件设备可以通过Window 提供的API函数,不管是采用Labview或 者是VC开发工具,API函数是必需的!设计开发PCI总线设备最重要的是信心和兴趣!