用户中心

资讯 > 电动机与运动控制

基于PCI总线运动控制卡WDM驱动程序设计

来源:陈富章 李伟光 高严松 唐文媛2008.07.23阅读 7430

0 引言

  目前,开放式数控系统正得到日益广泛的应用,其中控制工程网版权所有,基于Windows和PC机的开放式数控系统将成为数控技术发展的趋势。本文研究的数控系统采用NC嵌入PC的开放式结构,并以Windows 2000操作系统为平台。NC嵌入PC型数控系统是指将运动控制卡插入计算机的扩展槽中,由PC机完成非实时性处理任务,实时控制则由运动控制卡来承担。由于在Windows环境下,用户态的应用程序不能直接访问硬件,而要通过调用执行于核心态的设备驱动程序间接地访问硬件资源,因而,应用程序要对该数控系统中的运动控制卡进行访问,必须为其开发设备驱动程序。

  本文以该数控系统中基于PCI总线的DSP运动控制卡为研究对象,主要讨论该运动控制卡在Windows 2000环境下的WDM驱动程序的设计。

  1 WDM驱动程序的结构及开发工具简介

  1.1 WDM驱动程序的结构

  Windows Driver Model (WDM)驱动程序是一种PnP(即插即用)驱动程序,它同时还遵循电源管理协议,并能在Windows 98,Windows 2000和Windows XP间实现源代码级兼容。在WD

M驱动程序模型中,每个硬件设备至少有两个驱动程序。其中一个驱动程序称为功能驱动程序,负责初始化I/O操作,处理I/O操作完成时带来的中断事件,并为用户提供一种连接设备的控制方式;另一驱动程序称为总线驱动程序控制工程网版权所有,它负责管理硬件与计算机连接[1]。

  WDM驱动程序采用分层的结构模型www.cechina.cn,如图1所示[2]。图1中左边是一个设备对象堆栈,设备对象是操作系统为帮助软件管理硬件而创建的数据结构。处于堆栈最底层的设备对象称为物理设备对象,简称为PDO。在设备对象堆栈的中间有一个对象称为功能设备对象,简称为FDO。在FDO的上面和下面还会有一些过滤器设备对象,简称为FiDO。位于FDO上面的过滤器设备对象称为上层过滤器,位于FDO下面的过滤器设备对象称为下层过滤器。在单个硬件的驱动程序堆栈中CONTROL ENGINEERING China版权所有,总线驱动程序管理计算机与PDO所代表的设备的连接。功能驱动程序管理FDO所代表的设备。过滤器驱动程序用于监视和修改I/O请求包(IRP)流。

基于PCI总线运动控制卡WDM驱动程序设计如图

图1 WDM设备对象和驱动程序的层次结构

  1.2 开发工具简介

  开发驱动程序的软件很多,如NuMega公司的DriverStudio、Jungo公司的WinDriver和Microsoft公司的DDK等。在使用中,虽然利用DDK开发的驱动程序代码非常简洁,结构清晰,效率也高,但是开发难度较大[3]。利用DriverStudio、WinDriver等第三方开发工具则使用简单,开发速度较快。因此选用NuMega公司提供的DriverStudio作为开发工具。

  NuMega公司的DriverStudio是一套用来简化微软Windows平台下设备驱动程序的开发、调试和测试的工具包。DriverStudio包括DriverWorks、DriverNetworks、SoftICE和VToolsD等工具模块。其中控制工程网版权所有,DriverWorks包含一个非常完善的源代码生成工具(DriverWizard)以及相应的类库和驱动程序样本,它提供了在C++下进行设备驱动程序开发的支持。

  2 运动控制卡的硬件结构

  所设计的运动控制卡采用TI公司的TMS320LF2407 DSP芯片为核心处理器。该运动控制卡的硬件系统包括PCI接口子模块、数字信号处理器(DSP)子模块和轴控制接口子模块。

  该运动控制卡的PCI接口采用PLX公司的PCI9052接口芯片,这是PLX技术公司为扩展适配板卡推出的能提供一种混合高性能PCI总线目标模式的接口芯片。它可与多种局部总线相连,并具有异步操作、中断产生器、FIFO等特点。运动控制卡与上位PC机通过PCI总线进行连接www.cechina.cn,PCI接口子模块通过双端口存储器RAM器件IDT7026与DSP子模块连接。双端口存储器(RAM)是一个双向FIFO数据存储器,起数据缓冲的作用。轴控制接口子模块则通过CPLD(复杂可编程逻辑器件)与DSP子模块连接。运动控制卡硬件结构示意图如图2所示[4]。

基于PCI总线运动控制卡WDM驱动程序设计如图

图2 运动控制卡硬件结构示意图

  3 运动控制卡驱动程序的设计

  使用DriverWorks为该运动控制卡开发WDM驱动程序主要有三个步骤:创建WDM驱动程序框架;实现驱动程序的具体功能;生成WDM驱动程序。下面是借助DriverWorks设计运动控制卡WDM驱动程序的具体方法。

  3.1 使用DriverWizard生成WDM驱动程序框架

  DriverWizard是DriverWorks创建WDM框架程序的工具。在创建一个PCI设备的WDM驱动程序框架时,共有十一步,其中以下几点需特别注意:

  

版权声明:版权归控制工程网所有,转载请注明出处!
继续阅读

频道推荐

关于我们

控制工程网 & CONTROL ENGINEERING China 全球工业控制、自动化和仪器仪表领域的先锋媒体

CE全球

联系我们

商务及广告合作
任小姐(北京)                 夏小姐(上海)
电话:010-82053688      电话:18616877918
rendongxue@cechina.cn      xiashuxian@cechina.cn
新闻投稿:王小姐

关注我们的微信

关于我们 | 网站地图 | 联系我们
© 2003-2020    经营许可编号:京ICP证120335号
公安机关备案号:110102002318  服务热线:010-82053688