公开/公告号CN105573927A
专利类型发明专利
公开/公告日2016-05-11
原文格式PDF
申请/专利权人 中国电子科技集团公司第四十一研究所;
申请/专利号CN201510946782.2
申请日2015-12-17
分类号G06F13/10;
代理机构济南舜源专利事务所有限公司;
代理人肖峰
地址 266555 山东省青岛市经济技术开发区香江路98号
入库时间 2023-12-18 15:12:16
法律状态公告日
法律状态信息
法律状态
2018-03-13
授权
授权
2016-06-08
实质审查的生效 IPC(主分类):G06F13/10 申请日:20151217
实质审查的生效
2016-05-11
公开
公开
技术领域
本发明属于测试技术领域,具体涉及一种基于VISA的PXI设备访问方法。
背景技术
PXI是一种开放的标准,具有技术指标和性价比高、功能强、结构灵活、技术更新快以 及易于系统集成等优点,利用PXI产品可以短时快速开发出理想的测控仪器系统,是虚拟仪 器搭建的理想平台。PXI产品已广泛应用于通信、航天、军事和工业自动化测控等领域。
VISA是虚拟仪器体系结构的简称,是计算机与VXI、PXI、GPIB和串口仪器等之间通信 的软件接口集合。VISA作为标准函数,与仪器的I/O接口类型无关,与操作系统与编程语言 无关,只需要很小的修改,就可以从一个平台移植到另一个平台。基于VISA的PXI设备访问 方法,适合于PXI仪器系统的开发和应用。
在PXI设备研发过程中,常用的设备访问方法为基于设备资源描述符的方法,基于设备 槽号的方法和基于设备别名的方法。其中,基于资源描述符的方法是最根本的方法,其他方 法均是在设备描述符的方法的基础上进行的变化升级。
基于资源描述符的方法是设备访问时最基础的方法,但由于在PXI机箱中,不同位置的 PXI设备,资源描述符也不同,在使用时需要用户人为的借助系统设备管理器或者其他的设 备资源管理器软件中获知所需访问的设备的资源描述符,然后通过VISA标准库函数根据获得 的资源描述符直接访问设备。
基于设备槽号的方法是基于资源描述符方法的升级,但是在使用时需要用户通过人眼观 察获得设备的槽号信息,根据槽号位置、系统模板的配置和初始化文件pxisys.ini和机箱的 初始化文件classis.ini等资料间接获得设备的资源描述符,并对机箱进行配置后方可通过 VISA标准库函数根据获得的资源描述符间接访问设备,如果更换了机箱或者零槽控制器,则 需要重新进行机箱配置等操作。
基于设备别名的方法需要用户在第一次使用设备前在设备资源管理器软件中为设备添加 别名,建立资源描述符与别名的关联关系,然后通过VISA标准库函数根据别名访问设备,其 实本质上仍然是以资源描述符对设备进行访问,在更换机箱或者零槽控制器时,仍然需要再 次为设备增加别名。以上几种方法,在使用时均需要用户参与到配置过程,对用户来说,不 仅操作不便,还极容易因配置错误导致PXI系统的功能异常。
发明内容
针对现有技术中存在的上述技术问题,本发明提出了一种基于VISA的PXI设备访问方法, 通过该方法能够实现PXI设备资源的自动配置,能够保证系统中PXI设备访问的唯一性和准 确性,避免设备因配置不当、物理位置变化和设备ID冲突(系统中存在多块相同设备情况) 所造成的功能异常。
为了实现上述目的,本发明采用如下技术方案:
一种基于VISA的PXI设备访问方法,采用VISA标准库函数,VISA库函数定义如下:
viOpenDefaultRM():打开默认的VISA资源管理器并初始化VISA系统,用于管理VISA 系统中的各类设备;
viOpen():根据资源描述符打开指定的设备资源;
viClose():关闭指定的设备资源和VISA资源管理器;
viFindRsrc():根据预设的条件查询VISA系统中符合条件的设备资源,并返回查找到的 设备列表及设备数量;
viGetAttribute():获得设备指定属性的值;
所述的基于VISA的PXI设备访问方法按照如下步骤进行:
步骤1:将PXI设备的厂商号、设备号、子厂商号、子设备号、串号烧写入PXI设备的 配置寄存器中;
步骤2:利用VISA库函数viOpenDefaultRM()打开VISA资源管理器;
步骤3:查找PXI设备,获得匹配的设备数量nDevNum;
步骤4:根据步骤3的查找结果,获得PXI设备的串号,并自动获得PXI设备的资源描 述符;
步骤5:利用VISA库函数viOpen()打开资源描述符instrDesc指定的PXI设备,对PXI 设备进行访问操作;
步骤6:访问结束,利用VISA库函数viClose()关闭PXI设备和VISA资源管理器。
优选地,在步骤1中,具体包括
步骤1.1:将PXI设备的厂商号、设备号、子厂商号、子设备号烧写到PXI配置寄存器 中规定的地址;
步骤1.2:将PXI设备的串号烧写到PXI设备的配置寄存器中未使用到的保留的地址中。
优选地,在步骤3中,具体包括
步骤3.1:根据待访问PXI设备的厂商号、设备号利用VISA库函数viFindRsrc()查找 PXI设备;
步骤3.2:返回匹配到的PXI设备数量nDevNum和第一个符合条件的PXI设备的资源描 述符instrDesc,并判断匹配到的PXI设备数量nDevNum是否等于0;
若:判断结果是PXI设备数量nDevNum等于0,说明当前系统中没有待访问的PXI设备, 则将PXI设备重新插入并安装驱动后,然后执行步骤2;
或判断结果是PXI设备数量nDevNum等于1,说明当前系统中匹配到一个符合条件的PXI 设备,利用VISA库函数viGetAttribute()函数获得PXI设备的资源描述符instrDesc,然后 执行步骤5;
或判断结果是PXI设备数量nDevNum大于1,说明当前系统中匹配到多个符合条件的PXI 设备,利用VISA库函数viOpen()打开步骤3.1中获得的资源描述符instrDesc所描述的PXI 设备。
优选地,在步骤4中,具体包括
步骤4.1:根据PXI设备的资源描述符instrDesc获得PXI设备的总线号nBusNum、设备 号nDevNum以及功能号nFuncNum,并通过移位操作将其组合为控制寄存器的地址m_CtrlAdd;
步骤4.2:利用I/O函数将配置寄存器地址m_RegAdd和控制寄存器地址m_CtrlAdd分别 写入Windows的0xCF8和0xCFC端口;
步骤4.3:利用VISA库函数viIn32()获得PXI设备配置寄存器中对应配置寄存器地址 m_RegAdd的串号nSerialID;
步骤4.4:将串号nSerialID与待访问的PXI设备的串号进行对比匹配,并判断匹配是 否成功;
若:判断结果是匹配成功,返回当前的资源描述符instrDesc,然后执行步骤5;
或判断结果是匹配失败,利用VISA库函数viFindNext()获得步骤3.2中查找到的下一 个PXI设备的资源描述符instrDesc,然后执行步骤4.1。
本发明所带来的有益技术效果:
本发明提出了一种基于VISA的PXI设备访问方法,与现有技术相比,一种基于VISA的 PXI设备访问方法,该方法利用VISA标准库函数机制,通过在PXI设备配置寄存器中烧写设 备厂商号、设备号、子厂商号、子设备号、串号等信息,利用VISA资源管理器根据设备串号 等信息自动获取设备在系统中的资源描述符,从而对PXI设备进行操作和访问;通过该方法 能够实现PXI设备资源的自动配置,能够保证系统中PXI设备访问的唯一性和准确性,避免 了手动配置过程中的错误操作可能性,避免设备因配置不当、物理位置变化和设备ID冲突(系 统中存在多块相同设备情况)所造成的功能异常,既方便了用户,又保证了PXI模块访问的 唯一性和准确性。
附图说明
图1为本发明一种基于VISA的PXI设备访问方法的流程框图。
具体实施方式
下面结合附图以及具体实施方式对本发明作进一步详细说明:
如图1所示,一种基于VISA的PXI设备访问方法,本方法在基于资源描述符方法中增加 了自动获得资源描述符的过程,采用VISA标准库函数,VISA库函数定义如下:
viOpenDefaultRM():打开默认的VISA资源管理器并初始化VISA系统,用来管理VISA 系统中的各类设备;
viOpen():根据资源描述符打开指定的设备资源;
viClose():关闭指定的设备资源和VISA资源管理器;
viFindRsrc():根据预设的条件查询VISA系统中符合条件的设备资源,并返回查找到的 设备列表及设备数量;
viGetAttribute():获得设备指定属性的值。
具体的处理流程如下:
步骤1:将唯一的PXI设备的厂商号、设备号、子厂商号、子设备号、串号烧写到PXI 设备配置寄存器中,其中厂商号、设备号、子厂商号、子设备号烧写到PXI配置寄存器中规 定的地址,串号烧写到PXI配置寄存器中未使用到的保留地址中,如0xFC地址,即配置寄存 器地址m_RegAdd;
桌面上显示的PXI设备的配置寄存器如下:
步骤2:利用VISA库函数viOpenDefaultRM()打开VISA资源管理器;
步骤3:根据厂商号、设备号利用VISA库函数viFindRsrc()查找设备,并返回匹配到的 设备数量nDevNum和第一个符合条件的设备的资源描述符instrDesc;
步骤4:如果nDevNum等于0,说明当前系统中没有待访问的设备,将PXI设备插入并安 装驱动后返回步骤2进行操作;
步骤5:如果nDevNum等于1,说明当前系统中匹配到一个符合条件的PXI设备,利用 VISA库函数viGetAttribute()函数获得设备的资源描述符instrDesc,进入步骤11;
步骤6:如果nDevNum大于1,说明当前系统中匹配到多个符合条件的PXI设备,利用 VISA库函数viOpen()打开步骤3中获得的设备资源描述符instrDesc所描述的设备;
步骤7:根据设备资源描述符instrDesc获得总线号nBusNum、设备号nDevNum以及功能 号nFuncNum,并通过移位操作将其组合为控制寄存器的地址m_CtrlAdd;
步骤8:利用I/O函数将配置寄存器地址m_RegAdd和控制寄存器地址m_CtrlAdd分别写 入Windows的0xCF8和0xCFC端口;
步骤9:利用VISA库函数viIn32()获得PXI设备配置寄存器中对应配置寄存器地址 m_RegAdd的串号nSerialID;
步骤10:将nSerialID与待访问的设备的串号进行对比匹配,若匹配成功,返回当前的 资源描述符instrDesc,进入步骤11;若匹配失败,利用VISA库函数viFindNext()获得步 骤3中查找到的下一个设备的资源描述符instrDesc,打开后进入步骤7;
步骤11:利用VISA库函数viOpen()打开资源描述符instrDesc指定的设备,对设备进 行访问操作;
步骤12:访问结束,利用VISA库函数viClose()关闭设备和VISA资源管理器。
本发明一种基于VISA的PXI设备访问方法,通过在PXI设备配置寄存器中烧写设备厂商 号、设备号、子厂商号、子设备号、串号等信息,利用VISA库函数实现了PXI设备资源在系 统中的自动配置,避免了手动配置过程中的错误操作可能性,避免设备因配置不当、物理位 置变化和设备ID冲突(系统中存在多块相同设备情况)所造成的功能异常,既方便了用户, 又保证了PXI模块访问的唯一性和准确性。
当然,上述说明并非是对本发明的限制,本发明也并不仅限于上述举例,本技术领域的 技术人员在本发明的实质范围内所做出的变化、改型、添加或替换,也应属于本发明的保护 范围。
机译: 可用设备,例如打印机,一种计算机的访问提供方法,包括基于设备代码通过网络在计算机和可用设备之间建立连接,以及基于设备代码在计算机上安装设备驱动程序
机译: 一种基于移动设备登录的访问控制方法,用于访问存储在服务器中的私人设备的数据
机译: 一种基于访问码的链接系统和一种用于移动设备返回通道的双向时分营销的方法,以最大限度地提高同时多媒体广告的效果