20世纪60年代末期,Hewlett-Packard设计出了所谓的HP-IB(Hewlett-Packard Interface Bus)作为独立仪器与计算机之间的沟通通道。由于其高速的数据传输率(对当时而言),很快便广为大家所接受,因此后来IEEE便将此接口更名为GPIB(General Purpose Interface Bus)。然而为了应付更为复杂的测试环境与挑战,GPIB便显得捉襟见肘。1987年VXI协会成立,并制订了所谓instrument-on-a-card的标准,也就是VXI (VMEbus eXtensions for Instrumentation)。VXI以其模块化而且坚固的架构,的确为量测与自动化产业带来不少的好处。
近十年来,随着个人计算机的剧烈革命与普及,以PCI Bus为架构的仪器模块大为发展。因此1998年PXI System Alliance(PXISA)成立,让PXI(PCI eXtensions for Instrumentation)成为一个开放的标准架构。PXI的平台不仅具有类似VXI的开放架构与坚固的机构外型,更由于其设计了一连串适合仪器开发所用的同步信号,而使得PXI更适合作为量测与测试、控制自动化的平台。
1 PXI简介
简单来说,PXI是以PCI(Peripheral Component Interconnect)及CompactPCI为基础再加上一些PXI特有的信号组合而成的一个架构。PXI继承了PCI的电气信号,使得PXI拥有如PCI bus的极高传输数据的能力,因此能够有高达132Mbyte/s到528Mbyte/s的传输性能,在软件上是完全兼容的。另一方面,PXI采用和CompactPCI一样的机械外型结构,因此也能同样享有高密度、坚固外壳及高性能连接器的特性。PXI与CompactPCI相互关系如图1所示。
1.1 PXI系统内部结构
一个PXI系统由几项组件所组成,包含了一个机箱、一个PXI背板(backplane)、系统控制器(System controller module)以及数个外设模块(Peripheral modules)。在此以一个高度为3U的八槽PXI系统为例,如图二所示。系统控制器,也就是CPU模块,位于机箱的左边第一槽,其左方预留了三个扩充槽位给系统控制器使用,以便插入因功能复杂而体积较大的系统卡。由第二槽开始至第八槽称为外设槽,可以让用户依照本身的需求而插上不同的仪器模块。其中第二槽又可称为星形触发控制器槽(Star Trigger Controller Slot)。
1.2 PXI特有信号
背板上的P1接插件上有32-bit PCI信号,P2接插件上则有64-bit PCI信号以及PXI特殊信号。那么PXI特有的信号又是什么呢?PXI的信号包含了以下几种,其完整的架构如图3所示
1.2.1 10MHz参考时钟(10MHz reference clock)
PXI规格定义了一个低歪斜(low skew)的10MHz参考时钟。此参考时钟位于背板上,并且分布至每一个外设槽(peripheral slot),其特色是由时钟源(Clock source)开始至每一槽的布线长度都是等长的,因此每一外设槽所接受的clock都是同一相位的,这对多个仪器模块的同步来说是一个很方便的时钟来源。基本的10MHz参考时钟架构如图4所示。
1.2.2 局部总线(Local Bus)
在每一个外设槽上,PXI定义了局部总线以及连接其相邻的左方及右方外设槽,左方或右方局部总线各有13条,这个总线除了可以传送数字信号外,也允许传送模拟信号。比如说3号外设槽上有左方局部总线,可以与2号外设槽上的右方局部总线连接,而3号外设槽上的右方局部总线,则与4号外设槽上的左方总线连接。而外设槽3号上的左方局部总线与右方局部总线在背板上是不互相连接的,除非插在3号外设槽的仪器模块将这两方信号连接起来。局部总线架构如图5所示。
1.2.3 星形触发(Star Trigger)
设槽2号的左方局部总线在PXI的定义下,作为另一种特殊的信号,叫做星形触发。这13条星形触发线被依序分别连接到另外的13个外设槽(如果背板支持到另外13个外设槽的话),且彼此的走线长度都是等长的。也就是说,若在2号外设槽上同一时间在这13条星形触发在线送出触发信号,那么其它仪器模块都会在同一时间收到触发信号(因为每一条触发信号的延迟时间都相同)。也因为这一项特殊的触发功能只有在外设槽2号上才有,因此定义了外设槽2号叫做星形触发控制器槽(Star Trigger Controller Slot)。请看图6的星形触发架构说明。
1.2.4 触发总线(Trigger Bus)
触发总线共有8条线,在背板上从系统槽(Slot 1)连接到其余的外设槽,为所有插在PXI背板上的仪器模块提供了一个共享的沟通管道。这个8-bit宽度的总线可以让多个仪器模块之间传送时钟信号、触发信号以及特订的传送协议。
2 基于PXI总线的测控系统的硬件子系统
PXI总线在测控系统中应用具有很大的优势,这很明显,然而单独一个PXI机箱和几块PXI模块,是很难满足各种各样的测控需求的。无论是工业还是军工,过程信号是千变万化,仅有的几个PXI模块(虽说有上千种,但仍然不能达到一种模块测一种信号,而且,也不需要一个模块测一种信号)要满足不同的需要,就要对过程中的信号进行有效的转换,或提供执行机构可以认识的信号。
2.1 硬件子系统的一般组成
一般情况下,工业信号是不能直接进入PXI模块进行测量的,因为有些信号不能直接测出,必须间接测量计算得出,或者是出于对仪器的保护,必须进行调理,然后测量。PXI模块的控制信号已不能直接驱动执行机构,必须对控制信号进行调理。一般情况下,一个完整的硬件子系统通常包括输入信号调理、输出信号调理、PXI测控模块、PC机,如图7所示:
常用PXI总线测控系统硬件子系统模型中,PXI测控模块是核心,其主要参数决定了测控系统的稳定性、可靠性、准确性。常用的通用测控模块,PXI生产厂商已经投入应用。我们只要根据测控的目的或要求,选用性价比最高的即可。输入信号调理和输出信号调理必须由集成商自行研制。无疑研制这些调理也必须符合PXI相应的规范。现以航天测控公司开发的引信通用测试平台为例,简述PXI总线的测控系统的软硬件子系统。
2.2 某通用引信测试平台硬件子系统
“某通用引信测试系统”是采用PXI总线技术组建的引信通用测试系统,按照测试流程规定的步骤,自动完成引信中的电阻、电压、电流、电容、时间等参数的测试,并对测试参数作相应的处理。
引信测试中通常电阻、电压、电流、电容、时间等参数,在测试方法的设计中我们仍采用电子测量领域中有效的测量方法,即:
1)采用数字多用表作为电阻、电压、电流等基本参数的测量工具。为配合数字多用表的测量,并实现被测信号选择过程的自动化,引入了继电器采样开关,对多路测量信号采样后,单路输出至数字多用表测试端口进行测量。
2)考虑到测试平台的通用性,我们采用了继电器输出控制作为系统与被测对象的可灵活设置的连接端口。针对不同型号的引信,通过软件设置继电器输出控制开关的端口连接关系,完成通道之间的转换与重组,并与继电器采样开关连接,是不同型号的引信在测试方法上达成一致。
3)对时间参数的测量采用通用计数器进行,对长时间计时可利用软件查询计数器溢出的次数,计算出时间总量即可。这种方式不仅可确保瞬间时段的测量精度,还能满足长时间测量的要求并确保测量精度。
4)对电容参数的测量,为简化设计、降低研制成本,在满足测量精度的前提下,我们将采用间接法(即通过测量RC时间常数推算电容的方法)测量电容。
硬件子系统主要分为如下几部分:PXI组合和供电控制及转接组合部分。PXI 组合主要由上位计算机、PXI模块和PXI总线组成,这是硬件子系统的核心。供电控制及转接组合部分主要由系统机箱、信号输入输出转接和引信供电电源部分组成,这是硬件子系统的输入调理和输出调理。其中PXI部分主要完成信号的测试控制,供电控制与转接组合部分主要实现引信电源输出、信号输入输出等功能。见图8:
PXI测控组合是测试平台的核心部分,其主要工功能是:组合PXI模块,在计算机的控制下,完成对引信各种参数的测试后,由PXI总线将测试数据传送到计算机,再由计算机进行后续的数据处理。其中,
1)PXI8330是连接计算机与PXI各个功能模块的通信桥,它是PXI系统中使用外部控制器的理想接口,也可以把多个主机箱连到一个接口上,因而具有很强的灵活性和很高的数据吞吐率。PXI8330模块安插在PXI机箱的最左边的插槽。
2)PXI4070为6位半数字多用表可对电压、电流、电阻等基本电参数进行高精度的测量。
3)PXI-6115为多功能数据采集模块,对电容充放电过程进行检测、外部模拟量进行测试和计数器计时等。
4)AMC4600为24路继电器通用开关模块,3块AMC4600可为系统提供72路继电器开关通道。用于为数字量多用表、通用计数器、数据采集模块提供测量输入通道,同时也可对电阻、电压、电流、电容、时间的测量进行隔离。
5)AMC4502为32路数字I/O模块,具有发送I/O数据和进行控制的功能。每个通道可以用作输入通道也可用作输出通道,且通道采用光电隔离。
6)AMC4306为16通道记时器模块。可同时对16路1微秒到420秒的时间间隔进行测量
2.3 时间信号的测量
PXI总线数字过程存储器AMC4306可用于对时间信号的测量。当模块进入准备就绪状态后可对十六个输入通道上的信号进行连续采样,根据触发方式不同,在相应的条件下触发计时器开始计时。该模块能自动记录16通道端口的变化过程。AMC4306进行记时的时候,时间起时信号进入通道X,时间终止信号进入通道Y。通道X的信号发生变化时,记时器记下此时通道X的状态变化相对于触发点的时间;通道Y的信号发生变化时,同样记时器也把该通道状态变化相对于触发点的时间记录下来。通道Y和通道X两者的时间差即为被测试时间。当然AMC4306记时器模块的一个通道也可以进行时间测量,不论何时只要通道的信号的状态发生改变,AMC4306就会把信号变化的时间点记录下来,这样通过状态变化差也就把时间记录下来。时间测试见图9、图10:
一个被测时间量分为时间起始信号和时间终止信号,它是一个电平信号。要经过电平转换方可变成计数器可测试的电平信号,故在时间量和测试模块之间又加入了电平转换处理。
2.4电容测试
鉴于目前市场上没有PXI总线控制的电容测量模块,为简化设计,考虑采用间接法测量电容,即用一个恒定电压源通过RC回路对被测电容充电,当电容两端的电压达到某一固定值时,通过电压比较器输出状态特征,用计数器测量出 RC时间常数,由软件推算电容值,测量误差可由软件进行补偿。
对如图11所示的简单的RC充电回路而言,电容两端的电压是逐渐变化的,随着充电时间的增加,电容上的电压按指数规律逐渐增大,电路中的电流逐渐减少,当Uc=E时,电流为0,其电压、电流变化曲线如图12所示:
通常将RC的乘积称为时间常数,即τ=RC(秒)。根据RC充电电路曲线和电容充电时间与电压的关系;t>5τ时,整个充电过程结束。
2.5 电压、电流和电阻的测量
此次选用的6位半数字多用表模块PXI4070模块可对电压、电压和电阻等基本参量进行高精度测量。其主要技术指标为:直流电压:300V,精确度±0.019‰;交流电压:300V,准确度:±0.7‰;直流电流:3A;电阻:100MΩ。上述测试范围和精度都完全可以满足测试要求。
3 基于PXI总线测控系统的软件子系统
如果说硬件子系统是测控系统的基础,那么软件子系统就是测控系统的灵魂。硬件子系统为满足不同的实际需求,可能有很大差别。然而,软件子系统,如果设计一个很好的框架,在改动很少甚至不用改动的情况就能满足不同的需求。硬件设计完毕,调试成功后很少再出现问题。硬件子系统存在的某些缺陷,有时只能有软件子系统来弥补。
3.1 软件子系统的一般组成
软件子系统的设计,必须考虑软件系统的稳定性和可扩充性。设计一个软件系统,如果只针对某一具体的项目,完成后的软件稳定性很差,移植到其他项目很难,就是移植过去,花费的时间不如重新编写。所以为了适应不同的需求,应将各种测控系统的共性抽象出来,设计一个可重用的框架。通常,一个比较合理的测控系统框架包含三个部分:系统级组态、项目级组态、测控执行,如图13所示。
3.2 系统级组态设计
系统级组态一般是对硬件子系统的配置进行组态,并将组态的结果保存到数据库中,这些组态包括系统组态、单元组态、对特定模块的组态、其他可重用信息的配置等。这些信息保存到系统数据库中。数据库的实现方法不外乎两种,其一,自定义的数据格式,以二进制或文本方式保存起来,其二,用现成的通用的数据库如Access,SQL Server等保存起来。自定义格式保密性强,但随机访问较麻烦,而通用的数据库,保密性差一些,但查询很方便。相比较而言,对于组态结果主要是查询,所以选择通用数据库是比较明智的。
在系统级组态中,涉及到对硬件子系统的配置,通常是指一个完整的测控系统中包括哪些PXI模块,这些模块的资源号、和资源字符串是最重要的,我们可以在表格中人工输入,然后保存起来,这是一个常规的做法,最巧妙的办法是调用VISA库中的函数,让计算机自动搜索PXI模块。对于单元组态,我们可以将测控系统分成多个回路,对每一回路来说,无论闭环还是开环,均有某一个或多个的模块的通道组成。我们单元组态的目的就是将这些回路的组合信息保存起来,给他取一个比较友好的名字,对操作人员来说,友好的名字应该比单纯的通道编号容易记住。
3.3 项目级组态设计
我们设计一个测控系统,其目的要用于实际的项目,项目的不同可能要使用的PXI模块有所差别,最愚蠢的办法是针对特定的项目开发特定的软件。系统级组态中,我们已经具有了测控系统中所包含的硬件信息,这些信息是可变的,但获取这些信息的程序未变。如果设计良好项目级组态框架,我们同样可以实现类似功能。基于选择系统级数据库类型的同一原因,我们选择通用的数据库保存项目级组态结果。
对于某一项目,由于其继承于系统级组态结果,所以它拥有全部的单元组态信息。然而,特定的项目可能包含多种不同的工况,并不是每一工况都需要所有的PXI模块参与。我们针对不同的工况,挑选必需的回路,就是我们使用项目级组态的方法和目的。这些回路在某一工况中使用,通常不是并行使用的,可能和顺序有很大关系,这就是要规定测试流程。总之,通俗的讲,项目级组态就是选择测控回路和规定回路的动作序列。
3.4 测试执行
我们使用项目级组态,保证测控系统满足不同目的的需要。有了这些信息,再编制通用的执行程序就易如反掌。当数据量较大时,保存到通用数据库中与保存为自定义格式的文件相比,保存速度是瓶颈。测试或控制过程中的所有数据都应保存起来,大量的数据,在计算机内存中缓存后,一次性写入到自定义文件内,效率更高,所以对实时数据来说,应以自定义格式的文件保存。
3.5 某通用引信测试平台软件子系统
通用引信测试平台软件在Windows 2000/XP操作系统下,使用C++平台开发和运行。由于本测试平台的测试对象涉及多种被测引信,每种被测引信的测试方法、测试项目、测试结果的处理等都不同,并且随着对被测对象测试经验的积累在测试系统实际使用中测试流程可能需要改变。使用传统的顺序流程编程方法很难实现这样一种多变复杂的系统。因此,本测试平台的应用软件采用框架式结构设计,即采用数据驱动的方法,使测试人员通过管理测试过程中的一些配置数据,不必修改测试程序,就可完成测试任务。
该集成开发环境可以根据测试系统的特点,建立描述测试系统的数据库,并采用图形化的人机交互的输入方法实现测试流程的输入。通过取出数据库中的测试流程,就可以实现测试程序的自动执行,完成测试任务。这种方法不仅可以提高测试程序的输入效率,而且使测试人员可以脱离繁琐的编程工作,集中精力研究测试对象和测试流程。
某通用引信测试系统软件根据实际测试的需要,划分为:数据管理、测试任务设置和执行测试三大功能,其中数据管理又划分为流程数据管理和结果数据管理两大部分。各部分功能如下:
1)流程数据管理:完成对通用测试配置数据库的维护功能,采用树型结构管理测试卡、测试项目、测试点的信息。具体要求能够直观地增加、删除、修改任意节点,移动拷贝任意节点。
2)测试任务管理:能够进行任务配置,确定一次测试所做的测试内容,执行顺序等。根据系统需要,从已有的测试流程中,选择或组合测试项目,形成一个测试任务。
3)测试程序:选择要执行的测试任务,根据测试流程,执行测试项目。
4)结果数据管理:完成对测试结果的查询、输出功能,包括查询、预览结果报表、删除、打印
5)测试数据库:从功能上可将测试数据库分为三种:
a. 测试流程数据库:记录所有与测试流程有关的数据信息,包括流程描述的文字、结构和数据信息,使用仪器的配置信息,流程控制信息等。它是测试平台的最基本的数据库。
b. 测试任务数据库:记录每一个测试任务中所包含的所有测试项目并建立与测试流程数据库有关的有机联系。
c. 测试结果数据库:记录测试执行过程中所有的测试结果数据,供存档、数据处理及报表生成使用。
4 结论
通过对基于PXI便携式测控系统的研究,首要明确的是确定系统的结构,对系统进行分析。PXI总线技术,作为前沿的技术,其应用是广泛的,而且也可以做得很小,如果与现代软件工程、面向对象编程等技术有机结合,可以设计出很好得通用的测控系统来。