一种PXI/PXIe仪器的控制方法及存储介质技术

技术编号:38772760 阅读:15 留言:0更新日期:2023-09-10 10:45
本发明专利技术公开了一种PXI/PXIe仪器的控制方法及存储介质,用于银河麒麟操作系统,包括:获取目标仪器的总线地址,基于目标仪器的总线地址,打开目标仪器对应目录下的资源文件,并保存返回的文件句柄,获取地址空间大小;根据地址空间大小,将地址空间映射到内存,并保存内存基地址,获取操控目标仪器的出入口,进行内存读写,实现目标仪器对应配置空间的访问操作,完成目标仪器的控制。本发明专利技术通过内存映射向PCI/PCIe总线设备发送和接收数据,实现在银河麒麟操作系统下适用驱动PXI/PXIe仪器。河麒麟操作系统下适用驱动PXI/PXIe仪器。河麒麟操作系统下适用驱动PXI/PXIe仪器。

【技术实现步骤摘要】
一种PXI/PXIe仪器的控制方法及存储介质


[0001]本专利技术涉及测试仪器
,特别涉及一种PXI/PXIe仪器的控制方法及存储介质。

技术介绍

[0002]PXI/PXIe仪器是基于PCI/PCIe总线的模块化虚拟仪器,通过计算机软件操控、显示实现仪器功能。
[0003]银河麒麟操作系统是一种基于linux的新型国产操作系统。在银河麒麟操作系统下控制PXI/PXIe仪器需要支持银河麒麟的驱动程序,而目前国内外PXI/PXIe仪器厂家提供的驱动程序及其依赖的底层I/O库都以Windows系统为主,不能在银河麒麟操作系统下运行。上述问题导致市面上大量的PXI/PXIe仪器无法在银河麒麟操作系统下使用。

技术实现思路

[0004]为解决上述问题,本专利技术提供了一种PXI/PXIe仪器的控制方法及存储介质,通过内存映射向PCI/PCIe总线设备发送和接收数据,实现仪器驱动,解决现有驱动程序和底层I/O库不支持国产银河麒麟操作系统,PXI/PXIe仪器不能使用的问题,实现在银河麒麟操作系统下适用驱动PXI/PXIe仪器。
[0005]本专利技术提供了一种PXI/PXIe仪器的控制方法,该控制方法用于银河麒麟操作系统,具体技术方案如下:
[0006]S1:获取目标仪器的总线地址,所述目标仪器为PXI/PXIe仪器;
[0007]S2:基于所述目标仪器的总线地址,打开所述目标仪器对应目录下的资源文件,分别保存返回的文件句柄;
[0008]S3:在银河麒麟终端下,根据返回的文件句柄信息,获取地址空间大小;
[0009]S4:根据地址空间大小,将地址空间映射到内存,并保存内存基地址;
[0010]S5:根据内存基地址获取操控目标仪器的出入口,进行内存读写,实现目标仪器对应配置空间的访问操作,完成目标仪器的控制;
[0011]S6:完成目标仪器的控制后,释放地址空间映射的内存;
[0012]S7:关闭资源文件。
[0013]进一步的,所述获取目标仪器总线地址,具体过程如下:
[0014]S101:在目标仪器模块未插入机箱的情况下,开启计算机,在银河麒麟系统终端下运行lspci指令,记录系统中当前设备的pci总线地址,关闭计算机;
[0015]S102:将目标仪器模块插入机箱,重新开启计算机,运行lspci指令,查看增加的设备总线地址,即为该目标仪器模块的总线地址。
[0016]进一步的,所述打开所述目标仪器对应目录下的资源文件,具体为:在银河麒麟操作系统的系统目录下打开以对应目标仪器的总线地址命名的文件夹,通过open函数打开该文件夹中的基址寄存器文件。
[0017]进一步的,在S4后还包括:根据数据宽度计算地址偏移;将地址偏移量进行向下对齐处理,使其为相应偏移步进的整数倍。
[0018]进一步的,所述根据内存基地址获取操控目标仪器的出入口地址,具体为:将需访问的配置空间内存基地址加上所述地址偏移量得到待访问地址,所述待访问地址即操控仪器的出入口。
[0019]进一步的,对多个目标仪器进行控制时,在S1前,还包括构建结构体数组,存放目标仪器信息,所述目标仪器信息包括指示目标仪器打开状态的变量、记录空间映射内存地址的变量和记录目标仪器数量的变量。
[0020]进一步的,所述记录目标仪器数量的变量,初始值置0,范围设置在0

256,每完成一个目标仪器的地址空间映射则视为打开一个仪器,此时将所述记录目标仪器数量的变量加1,并将所述指示目标仪器打开状态的变量置1,将映射后的地址赋给所述记录空间映射内存地址的变量。
[0021]进一步的,当所述记录目标仪器数量的变量的值超过设定的范围值时,则将其值置0,从小到大依次查找指示目标仪器打开状态的变量的值为0的编号,将找到的第1个编号作为新的仪器句柄。
[0022]进一步的,在进行目标仪器的打开、读写以及关闭操作前,设有线程锁。
[0023]本专利技术还公开了一种计算机存储介质,所述存储介质上存储有PXI/PXIe仪器的控制程序,所述PXI/PXIe仪器的控制程序被处理器执行时实现上述任一所述的PXI/PXIe仪器的控制方法的步骤。
[0024]本专利技术的有益效果如下:
[0025]本专利技术通过内存映射向PCI/PCIe总线设备发送和接收数据,可在不具备驱动程序的情况下,实现银河麒麟操作系统下的PXI/PXIe仪器控制,包括仪器打开、I/O空间访问、内存空间访问和仪器关闭等,方法通过构建结构体数组,采用线程锁,能够完成系统中多个仪器的管理,规避多进程冲突。
附图说明
[0026]图1是本专利技术方法的控制流程示意图。
具体实施方式
[0027]在下面的描述中对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本专利技术的一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。
[0028]在本专利技术实施例的描述中,需要说明的是,指示方位或位置关系为基于附图所示的方位或位置关系,或者是该专利技术产品使用时惯常摆放的方位或位置关系,或者是本领域技术人员惯常理解的方位或位置关系,或者是该专利技术产品使用时惯常摆放的方位或位置关系,仅是为了便于描述本专利技术和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本专利技术的限制。此外,术语“第一”、“第二”仅用于区分描述,而不能理解为指示或暗示相对重要性。
[0029]在本专利技术实施例的描述中,还需要说明的是,除非另有明确的规定和限定,术语“设置”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是直接连接,也可以通过中间媒介间接连接。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本专利技术中的具体含义。
[0030]实施例1
[0031]本专利技术的实施例1公开了一种PXI/PXIe仪器的控制方法,用于银河麒麟操作系统,如图1所示,具体步骤流程如下:
[0032]S1:获取目标仪器的总线地址,所述目标仪器为PXI/PXIe仪器;
[0033]本实施例中,具体过程如下:
[0034]S101:在PXI/PXIe仪器模块未插入机箱的情况下,开启计算机,在银河麒麟系统终端下运行lspci指令,记录系统中当前设备的pci总线地址,关闭计算机;
[0035]S102:将PXI/PXIe仪器模块插入机箱,重新开启计算机,运行lspci指令,查看增加的设备总线地址,如:03:0b:0,即为该目标仪器模块的总线地址。
[0036]S2:基于所述目标仪器的总线地址,打开所述目标仪器对应目录下的资源文件,分别保存返回的文件句柄;
[0037]具体的,在银河麒麟操作系统"/sys/bus/pci/devices/"目录中打开以对应PX本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种PXI/PXIe仪器的控制方法,其特征在于,用于银河麒麟操作系统,包括:S1:获取目标仪器的总线地址,所述目标仪器为PXI/PXIe仪器;S2:基于所述目标仪器的总线地址,打开所述目标仪器对应目录下的资源文件,分别保存返回的文件句柄;S3:在银河麒麟终端下,根据返回的文件句柄信息,获取地址空间大小;S4:根据地址空间大小,将地址空间映射到内存,并保存内存基地址;S5:根据内存基地址获取操控目标仪器的出入口,进行内存读写,实现目标仪器对应配置空间的访问操作,完成目标仪器的控制;S6:完成目标仪器的控制后,释放地址空间映射的内存;S7:关闭资源文件。2.根据权利要求1所述的PXI/PXIe仪器的控制方法,其特征在于,所述获取目标仪器总线地址,具体过程如下:S101:在目标仪器模块未插入机箱的情况下,开启计算机,在银河麒麟系统终端下运行lspci指令,记录系统中当前设备的pci总线地址,关闭计算机;S102:将目标仪器模块插入机箱,重新开启计算机,运行lspci指令,查看增加的设备总线地址,即为该目标仪器模块的总线地址。3.根据权利要求1所述的PXI/PXIe仪器的控制方法,其特征在于,所述打开所述目标仪器对应目录下的资源文件,具体为:在银河麒麟操作系统的系统目录下打开以对应目标仪器的总线地址命名的文件夹,通过open函数打开该文件夹中的基址寄存器文件。4.根据权利要求1所述的PXI/PXIe仪器的控制方法,其特征在于,在S4后还包括:根据数据宽度计算地址偏移;将地址偏移量进行向下对齐处理,使其为相应偏移步进的整数倍。5.根据权利要求4所述的PX...

【专利技术属性】
技术研发人员:胡宇唐小峰马雅男徐振飞牛健行
申请(专利权)人:成都天奥测控技术有限公司
类型:发明
国别省市:

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

1