买专利,只认龙图腾
首页 专利交易 科技果 科技人才 科技服务 商标交易 会员权益 IP管家助手 需求市场 关于龙图腾
 /  免费注册
到顶部 到底部
清空 搜索

【发明授权】一种基于Linux的PXI/PXIe总线设备驱动系统_北京航天测控技术有限公司_202010504652.4 

申请/专利权人:北京航天测控技术有限公司

申请日:2020-06-05

公开(公告)日:2023-06-27

公开(公告)号:CN111857839B

主分类号:G06F9/4401

分类号:G06F9/4401;G06F13/10

优先权:

专利状态码:有效-授权

法律状态:2023.06.27#授权;2020.11.17#实质审查的生效;2020.10.30#公开

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

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

全文数据:

权利要求:

百度查询: 北京航天测控技术有限公司 一种基于Linux的PXI/PXIe总线设备驱动系统

免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。