新闻中心

EEPW首页>模拟技术>设计应用> 基于PCI总线模块的多路串行数据采集系统

基于PCI总线模块的多路串行数据采集系统

作者: 时间:2012-04-12 来源:网络 收藏
ile/mndz/uploadfile/201204/20120412024922517.jpg" width=450>

  同步通信对时钟的同步要求非常严格,设计时应该注意收/发两方必须使用同一时钟来控制数据的传输。另外,_T32内存读写分为单周期模式和突发模式。突发模式即在给出首地址后主设备连续读写多个数据,这在FPGA中需要用户端地址每周期自动增1的操作。

3 系统软件开发

  3.1 驱动程序

设备的硬件资源由Windows操作系统根据PC机中所有设备对资源的占有来统一分配。为了保证系统的安全和稳定性,在Windows2000及其后的微软操作系统中,运行在ring3层的用户应用程序无法直接访问硬件,而必须通过运行于ring0层的设备驱动程序来访问。设备驱动不仅要实现对硬件的操作,还要为用户应用程序提供专用的API函数库,以方便用户实现对硬件的操作访问。

  Windows XP操作系统下的驱动程序一般是基于WDM(Windows Driver Model)模型开发的。该模型中的上层应用程序通过调用Win32 API函数发出对设备的访问请求,I/O管理器则根据这个请求构造合适的IRP(I/O Request Packet,I/O请求包),并将其传给设备驱动程序,接着由驱动程序直接访问硬件完成IRP处理,最后由I/O管理器把数据和结构返回给应用程序。

  WDM驱动比较常用的有以下三种方法:

  第一种是直接使用Windows DDK(Device

  Driver Kit,驱动程序开发包)开发的驱动程序面向Windows内核,该方法工作稳定,效率更高。但必须精通Windows内部体系结构及设备驱动程序的体系结构等,因此开发难度较大。

  第二种是使用DriverStudio。此工具软件已经做了很多基础性工作,也进行了一些封装。

  第三种是使用WinDriver,使用该方法时,开发者只需要在用户模式下编写程序来调用它提供的通用驱动即可。其中Drvier Wizard可以进行硬件诊断和自动代码生成。另外还可以将对速度要求较高的模块插入内核运行来获取更好的性能。本系统即采用WinDriver开发方法。

  3.2 WinDriver中的重要函数

  利用WinDriver开发驱动程序通常有两种方法:第一种是利用Driver Wizard生成的代码进行修改;第二种是直接利用WinDriver提供的API函数来编写自己的程序。本系统即采用这种方法,开发时首先要注意包含所有相关的头文件。其基本驱动程序的结构及API函数如下:

  3.3 中断实现

总线的通信方式有查询和中断两种方式。查询方式实现简单,但是难以适应实时性要求较高的场合,而且上位机软件资源占用率过大



评论


相关推荐

技术专区

关闭