[发明专利]一种基于Linux的PXI/PXIe总线设备驱动系统有效
申请号: | 202010504652.4 | 申请日: | 2020-06-05 |
公开(公告)号: | CN111857839B | 公开(公告)日: | 2023-06-27 |
发明(设计)人: | 毕硕;杜影;刘康丽;安佰岳;赵砚博 | 申请(专利权)人: | 北京航天测控技术有限公司 |
主分类号: | G06F9/4401 | 分类号: | G06F9/4401;G06F13/10 |
代理公司: | 北京理工大学专利中心 11120 | 代理人: | 刘西云;李微微 |
地址: | 100041 *** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 linux pxi pxie 总线 设备 驱动 系统 | ||
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命令码为块写指令时,所述输入输出子单元用于从CMD命令码中解析并存储块写bar寄存器的物理基地址、寄存器地址偏移量以及写入方法,其中,所述写入方法包括写入一段寄存器或者循环写入同一个寄存器的同一位置;
当CMD命令码为块读指令时,用户空间程序使用Linux系统的read函数调用所述块读子单元,并将待读取的设定长度和设定内容传给所述块读子单元;所述块读子单元用于根据输入输出子单元中存储的块读bar寄存器的物理基地址与寄存器地址偏移量的和值确定块读地址,然后按照读取方法在匹配成功的PXI/PXIe总线设备的块读地址中读取设定长度的设定内容;
当CMD命令码为块写指令时,用户空间程序使用Linux系统的write函数调用所述块写子单元,并将待写入的设定长度传给所述块写子单元;所述块写子单元用于根据输入输出子单元中存储的块写bar寄存器的物理基地址与寄存器地址偏移量的和值确定块写地址,然后按照写入方法在匹配成功的PXI/PXIe总线设备的块写地址中写入设定长度的数据;
当发生已注册的中断号的中断时,Linux系统自动调用所述中断服务子单元;所述中断服务子单元用于判断当前中断号对应的中断标志寄存器、偏移地址、掩码以及回读数值与当前匹配成功的PXI/PXIe总线设备的配置文件是否匹配,若匹配,则Linux系统向用户空间程序发送SIGIO信号,通知用户空间程序发生中断。
2.如权利要求1所述的一种基于Linux的PXI/PXIe总线设备驱动系统,其特征在于,当CMD命令码为普通读指令PXIIn8时,用户空间程序从所述bar寄存器地址中读取8位数据。
3.如权利要求1所述的一种基于Linux的PXI/PXIe总线设备驱动系统,其特征在于,当CMD命令码为普通写指令PXIOut8时,用户空间程序从所述bar寄存器地址中写入8位数据。
4.如权利要求1所述的一种基于Linux的PXI/PXIe总线设备驱动系统,其特征在于,所述初始化子单元还用于为待驱动的PXI/PXIe总线设备向Linux系统申请主设备号和次设备号,其中,不同种类的PXI/PXIe总线设备的主设备号不同,同一种类的多个PXI/PXIe总线设备的次设备号不同。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京航天测控技术有限公司,未经北京航天测控技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010504652.4/1.html,转载请声明来源钻瓜专利网。