一种PCI运动控制卡驱动的开发方法技术

技术编号:19592833 阅读:48 留言:0更新日期:2018-11-28 04:42
本发明专利技术公开了一种PCI运动控制卡驱动的开发方法。该方法为:使用微软的Microsoft Driver Foundation(WDF)驱动模型,在驱动初始化阶段,识别运动控制卡的硬件资源,获取PCI总线数据通信地址;在WDF驱动的事件响应模块内,注册读写事件,根据事件类型和通信地址,进行数据的读写;根据不同的卡类型,通过随机码和卡号的组合,注册特定的全局唯一标识符(GUID)以区分不同的运动控制卡,并供电脑识别;应用软件通过调用微软的标准驱动通信接口DeviecIoControl,发送数据读写事件至驱动以实现和驱动的交互。使用该方法制作的驱动,集识别和通信与一体,安装更简单,并且相对于传统的WDM式驱动开发,代码更简洁、高效。

【技术实现步骤摘要】
一种PCI运动控制卡驱动的开发方法
本专利技术涉及计算机和自动化控制领域,更具体的,涉及一种基于PCI总线型运动控制卡的驱动开发方法。
技术介绍
在现代化工业制造中,设备自动化一直是其中重要的环节,为满足机械设备的自动化加工,基于PC机的各种高性能运动控制卡应运而生,支持PCI总线的运动控制卡,也得到了越来越广泛的应用。PCI总线是个人电脑中常用的物理总线,因其具有可扩展性强、速度快等特点,已经成为PC机和外围设备通信的重要方式。工控机通过PCI总线传递控制指令到运动控制卡,控制卡执行相应的动作,同时将信息通过PCI总线反馈至工控机,已经成为了PC自动化控制的常用手段。因此,开发适合运动控制卡使用的PCI驱动,显得尤为重要。目前常见的控制卡PCI驱动开发方法有通过微软的WDM工具开发的,因其开发步骤繁琐,开发周期较长,在新的WINDOWS系统中已经被微软放弃。还有直接使用第三方工具开发驱动的,例如使用Jungo公司的Windriver工具进行开发,该方法首先加载第三方的PCI驱动程序,在驱动的开发、安装和使用过程中都非常繁琐。在PCI驱动在驱动识别方法上,目前基本是通过唯一的GUID本文档来自技高网...

【技术保护点】
1.一种PCI运动控制卡驱动开发方法,其特征在于,包括下列步骤:在WDF初始化阶段的EvtDevicePrepareHardware回调函数内,识别运动控制卡的硬件资源,并记录PCI的硬件通信地址;在WDF的队列消息模块,定义输入输出控制代码,并在回调函数EvtIoDeviceControl内,识别该控制代码,同时根据获取的通信地址偏移和记录的PCI通信地址,与运动控制卡的PCI总线进行通信;在WDF驱动的注册过程中,通过随机码和卡类型组合GUID码,标记每种运动控制卡驱动的唯一识别名称,并可以在应用程序中,通过该GUID码找到控制卡驱动程序。在应用程序中,通过使用Windows的Device...

【技术特征摘要】
1.一种PCI运动控制卡驱动开发方法,其特征在于,包括下列步骤:在WDF初始化阶段的EvtDevicePrepareHardware回调函数内,识别运动控制卡的硬件资源,并记录PCI的硬件通信地址;在WDF的队列消息模块,定义输入输出控制代码,并在回调函数EvtIoDeviceControl内,识别该控制代码,同时根据获取的通信地址偏移和记录的PCI通信地址,与运动控制卡的PCI总线进行通信;在WDF驱动的注册过程中,通过随机码和卡类型组合GUID码,标记每种运动控制卡驱动的唯一识别名称,并可以在应用程序中,通过该GUID码找到控制卡驱动程序。在应用程序中,通过使用Windows的DeviceIoControl接口和定义好的控制代码,发送驱动读写命令并读写数据;2.如权利要求1所述的方法,其特征在于,在WDF初始化阶段的EvtDevicePrepareHardware回调函数内,识别运动控制卡的硬件资源,并记录PCI的硬件通信地址,包括:识别运动控制卡PCI总线的资源类型,包括内存资源和IO资源。如果识别IO资源,保存IO资源的起始地址和长度。如果没有识别到资源,则返回错误,并保存相应的错误信息。3.如权利要求1所述的方法,其特征在于,在WDF的队列消息模块,定义输入输出控制代码,并在回调函数EvtIoDeviceControl内,识别该控制代码,同时根据获取的通信地址偏移和记录的PCI通信地址,与运动控制卡的PCI总线进行通信,包括:自定义两个IOCTL代码,分别表示输入和输出数据的事件代码,在回调函数EvtIoDeviceCont...

【专利技术属性】
技术研发人员:袁林艾小云张任甦刘鹏曾逸
申请(专利权)人:深圳众为兴技术股份有限公司
类型:发明
国别省市:广东,44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1