一种基于Linux的PXI/PXIe总线设备驱动系统技术方案

技术编号:26170090 阅读:35 留言:0更新日期:2020-10-31 13:36
本发明专利技术提供一种基于Linux的PXI/PXIe总线设备驱动系统,事先搭建好资源管理服务模块和内核驱动模块,在驱动新的PXI/PXIe总线设备时,只需要为不同PXI/PXIe总线设备写一个配置文件,再将新的配置文件加入资源管理服务模块,该新的PXI/PXIe总线设备接入Linux系统时,资源管理服务模块即可自动加载相应的内核驱动模块,也即成功加载PXI/PXIe总线设备的底层驱动,实现PXI/PXIe总线设备各种功能的通用接口,使开发人员只需要关注PXI/PXIe总线设备应用程序本身的逻辑关系,专注于用户空间驱动程序的开发,无需再关注硬件的具体操作,从而减少开发虚拟仪器驱动的工作量,简化PXI/PXIe总线设备的开发流程。

【技术实现步骤摘要】
一种基于Linux的PXI/PXIe总线设备驱动系统
本专利技术属于测试设备
,尤其涉及一种基于Linux的PXI/PXIe总线设备驱动系统。
技术介绍
PXI/PXIe总线设备大部分都是作为虚拟仪器使用,每种不同的仪器设备都需要相应的设备驱动。在Linux系统中基于PCI总线的做法是根据总线设备的具体情况开发内核模块以及用户空间的应用程序。内核驱动模块运行于内核空间,用于初始化、操作寄存器、处理中断等一些直接操作硬件的工作。为了把PXI/PXIe总线设备作为虚拟仪器使用还需要开发用户空间的应用程序来实现相应的功能。在做仪器应用程序开发时也要关注内核,对于不同的PXI/PXIe总线设备都要修改编译内核模块,需要进行很多重复性工作。
技术实现思路
为解决上述问题,本专利技术提供一种基于Linux的PXI/PXIe总线设备驱动系统,能够减少开发虚拟仪器驱动的工作量,简化PXI/PXIe总线设备的开发流程。一种基于Linux的PXI/PXIe总线设备驱动系统,包括资源管理服务模块与内核驱动模块,其中,所述内核驱动模块本文档来自技高网...

【技术保护点】
1.一种基于Linux的PXI/PXIe总线设备驱动系统,其特征在于,包括资源管理服务模块与内核驱动模块,其中,所述内核驱动模块包括初始化子单元、探测子单元、输入输出子单元、块读子单元、块写子单元以及中断服务子单元;/n所述资源管理服务模块用于存储待驱动的PXI/PXIe总线设备的配置文件,其中,所述配置文件包括厂家代码、仪器代码、中断标志寄存器、偏移地址、掩码以及回读数值;资源管理服务模块还用于根据Linux系统的system()函数来调用insmod命令加载所述初始化子单元;/n所述初始化子单元用于被加载后,通过Linux系统内核中传递参数的宏module_param_array来获取资源...

【技术特征摘要】
1.一种基于Linux的PXI/PXIe总线设备驱动系统,其特征在于,包括资源管理服务模块与内核驱动模块,其中,所述内核驱动模块包括初始化子单元、探测子单元、输入输出子单元、块读子单元、块写子单元以及中断服务子单元;
所述资源管理服务模块用于存储待驱动的PXI/PXIe总线设备的配置文件,其中,所述配置文件包括厂家代码、仪器代码、中断标志寄存器、偏移地址、掩码以及回读数值;资源管理服务模块还用于根据Linux系统的system()函数来调用insmod命令加载所述初始化子单元;
所述初始化子单元用于被加载后,通过Linux系统内核中传递参数的宏module_param_array来获取资源管理服务模块中存储的配置文件,然后将其中的厂家代码和仪器代码存储于Linux系统中;
Linux系统探测当前接入的PXI/PXIe总线设备的配置文件与其自身存储的厂家代码和仪器代码是否匹配,若匹配成功,所述探测子单元用于将匹配成功的PXI/PXIe总线设备存储空间中所有bar寄存器的物理基地址分别映射为Linux系统内存的虚拟地址;同时,若匹配成功的PXI/PXIe总线设备的配置文件中包含有效的中断标志寄存器,则探测子单元还用于根据该PXI/PXIe总线设备存储空间中的中断号向Linux系统注册中断,使得发生该中断号的中断时,Linux系统可自动调用所述中断服务子单元;
用户空间程序调用匹配成功的PXI/PXIe总线设备时,使用Linux系统的ioctl函数将设定的CMD命令码传给输入输出子单元,其中,CMD命令码包括普通读写指令、块读指令以及块写指令;当CMD命令码为普通读写指令时,所述输入输出子单元从CMD命令码中解析出bar寄存器的物理基地址和寄存器地址偏移量,Linux系统获取该bar寄存器的物理基地址对应的虚拟地址与寄存器地址偏移量的和值,再确定该和值所在的虚拟地址对应的bar寄存器地址,然后用户空间程序从所述bar寄存器地址中读取或写入指定位数的数据;当CMD命令码为块读指令时,所述输入输出子单元用于从CMD命令码中解析并存储块读bar寄存器的物理基地址、寄存器地址偏移量以及读取方法,其中,所述读取方法包括读取一段寄存器或者循环读取同一个寄存器的同一位置;当CMD命...

【专利技术属性】
技术研发人员:毕硕杜影刘康丽安佰岳赵砚博
申请(专利权)人:北京航天测控技术有限公司
类型:发明
国别省市:北京;11

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

1