【技术实现步骤摘要】
一种PCI运动控制卡驱动的开发方法
本专利技术涉及计算机和自动化控制领域,更具体的,涉及一种基于PCI总线型运动控制卡的驱动开发方法。
技术介绍
在现代化工业制造中,设备自动化一直是其中重要的环节,为满足机械设备的自动化加工,基于PC机的各种高性能运动控制卡应运而生,支持PCI总线的运动控制卡,也得到了越来越广泛的应用。PCI总线是个人电脑中常用的物理总线,因其具有可扩展性强、速度快等特点,已经成为PC机和外围设备通信的重要方式。工控机通过PCI总线传递控制指令到运动控制卡,控制卡执行相应的动作,同时将信息通过PCI总线反馈至工控机,已经成为了PC自动化控制的常用手段。因此,开发适合运动控制卡使用的PCI驱动,显得尤为重要。目前常见的控制卡PCI驱动开发方法有通过微软的WDM工具开发的,因其开发步骤繁琐,开发周期较长,在新的WINDOWS系统中已经被微软放弃。还有直接使用第三方工具开发驱动的,例如使用Jungo公司的Windriver工具进行开发,该方法首先加载第三方的PCI驱动程序,在驱动的开发、安装和使用过程中都非常繁琐。在PCI驱动在驱动识别方法上,目前基本是通过唯一的GUID进行识别的,导致不同的运动控制卡的驱动程序代码也大不相同,兼容性不强。尤其在使用Windriver工具的时候,因为该工具为了兼容大部分的PCI驱动程序,对底层驱动代码进行了封装,导致在开发驱动的过程中,不能直接对硬件进行操作,需要使用该工具提供的接口对硬件进行操作,这进一步限制了开发人员的的自由度,同时该工具价格昂贵,而且有时间限制,因此,开发具有自主知识产权的驱动程序,对于运 ...
【技术保护点】
1.一种PCI运动控制卡驱动开发方法,其特征在于,包括下列步骤:在WDF初始化阶段的EvtDevicePrepareHardware回调函数内,识别运动控制卡的硬件资源,并记录PCI的硬件通信地址;在WDF的队列消息模块,定义输入输出控制代码,并在回调函数EvtIoDeviceControl内,识别该控制代码,同时根据获取的通信地址偏移和记录的PCI通信地址,与运动控制卡的PCI总线进行通信;在WDF驱动的注册过程中,通过随机码和卡类型组合GUID码,标记每种运动控制卡驱动的唯一识别名称,并可以在应用程序中,通过该GUID码找到控制卡驱动程序。在应用程序中,通过使用Windows的DeviceIoControl接口和定义好的控制代码,发送驱动读写命令并读写数据;
【技术特征摘要】
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
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。