资源描述
LOGO 主要内容本章的学习要解决三个问题为什么提出SCPI?SCPI是什么?SCPI怎么用?SCPI的目标SCPI语法与风格(Syntax and Style)SCPI标准命令(Command Reference)SCPI数据交换格式(Data Interchange Format)SCPI仪器类别(Instrument Classes)LOGO为什么提出SCPI?程控仪器发展简史1960s,商用程控仪器出现1975年,IEEE 488-1975后来成为IEEE 488.1-19871987年,IEEE488.21990年,九家仪器公司联合推出SCPI建立在IEEE488.2基础上面向测试信号或测试功能倡导仪器控制的一致性1999年重新修订为 SCPI-1999LOGO第一节 SCPI的目标及主要内容一.SCPI的目标SCPI的目标是缩短自动测试设备程序开发时间SCPI通过为仪器控制和数据使用提供广泛兼容的编程环境来达成这一目标。所有SCPI仪器都使用标准化的程控消息、仪器响应和数据格式从而实现兼容的编程环境LOGO第一节 SCPI的目标及主要内容程控命令面向测试功能,而不是描述仪器操作;兼容的编程环境使用同样的命令和参数来控制具有相同功能的仪器。纵向兼容:是指同类仪器应有相同的控制命令两台示波器在时基、触发、电压设置上应有相同的控制命令使用同一命令能从两台不同的万用表读回直流电压横向兼容:是指两台不同类别的仪器使用同样的命令来控制类似的测试功能示波器和电子计数器都能进行频率测量,横向兼容要求它们使用同样的命令来进行频率测量功能兼容:是指两台仪器使用同样的命令来执行同样的功能频谱分析仪和射频(RF)源同样能进行扫频,如果它们都使用同样的命令来执行扫频的功能,那么它们在扫频上是功能兼容的LOGO第一节 SCPI的目标及主要内容减少类似测量功能的控制方法是保证编程兼容性的关键SCPI的基本原则是用同一命令控制相同的仪器功能为便于学习,SCPI采用了为生产者和用户广泛支持的工业标准名词和术语LOGO第一节 SCPI的目标及主要内容在与通信物理连接层硬件无关的高层次上定义程控消息SCPI基于IEEE488.2形成,但并不局限于GPIB接口,它也可用于RS232C,VXIb总线与编程手段和程序语言无关,SCPI用户测试程序模块易于移植各种编程语言,如C、BASIC、FORTAN等都能完成SCPI命令的传递为程序员提供了非常灵活的测试程序编制环境LOGO第一节 SCPI的目标及主要内容SCPI提供不同层次的仪器控制简单的测量命令为用户提供方便快捷的SCPI仪器控制,而更详细的命令则提供传统仪器的控制SCPI的可扩性,是其成为“活”标准SCPI允许不断用新命令扩充仪器程控命令,当新的仪器出现时能够保持与已有的SCPI仪器的编程兼容性SCPI ATE测试程序是向上兼容的LOGO第一节 SCPI的目标及主要内容二.SCPI的主要内容SCPI主要包括四部分内容:语法与风格(Syntax and Style)标准命令(Command Reference)数据交换格式(Data Interchange Format)仪器类别(Instrument Classes)LOGO第一节 SCPI的目标及主要内容1.语法与风格助记符程控题头参数表达式状态报告LOGO第一节 SCPI的目标及主要内容1.语法与风格助记符任何仪器程控命令都有一个长型和短型助记符IEEE488.2要求每个助记符的长度不能超过12个字符,包括任何可能出现的数值后缀短型助记符是长型助记符的缩写SCPI要求仪器应该只接受精确的长型或短型助记符LOGO第一节 SCPI的目标及主要内容助记符的生成规则长型助记符由一个单词或短语构成。如果是单词,则整个单词构成助记符;如果是短语,则每个单词的第一个字符和整个最后一个单词构成助记符CONFIGURE CONFigure remote messageRMESsage短型助记符由长型助记符的前4个字符构成,如果长型助记符的字符长度小于等于4时,长短型助记符相同CONFIGURE CONF TIMETIME如果长型助记符的长度大于4,而第四个字符是元音时,短型助记符将舍弃这个元音而变成3个字符TIMerTIMSWEepSWELOGO第一节 SCPI的目标及主要内容程控题头公用命令与询问题头仪器控制命令与询问题头参数字符程控数据十进制数值程控数据布尔程控数据功能间的耦合单位和后缀LOGO第一节 SCPI的目标及主要内容表达式数值表达式通道列表表达式数值列表表达式数据交换格式表达式仪器指示表达式状态报告事件状态寄存器结构操作状态寄存器可疑数据/信号状态寄存器LOGO第一节 SCPI的目标及主要内容2.标准命令SCPI标准命令给出了SCPI要求的和可选的命令SCPI命令可分为仪器公用命令和仪器特定控制命令两个部分仪器公用命令(IEEE488.2命令)仪器特定控制命令测量组命令23个子系统命令LOGO第一节 SCPI的目标及主要内容3.数据交换格式定义了仪器与应用程序之间、应用程序和应用程序之间以及仪器与仪器之间数据集的标准的表示形式数据交换格式采样模块化结构4.仪器类别(1999版本)主要是定义了通用的仪器类别功能实现所需的命令和行为LOGO第二节 SCPI语法与风格一.SCPI仪器模型信号路由信号路由测量功能信号产生触发存储器格式化格式化数据总线数据总线图 SCPI程控仪器模型LOGO第二节 SCPI语法与风格SCPI采用这样一个仪器模型作为达成兼容性的一种方式,SCPI关注纵向兼容、横向兼容、功能兼容三种类型的兼容性仪器模型体现了SCPI对仪器功能的观点和分类仪器模型定义了语言元素在SCPI层次结构中放置的位置仪器模型反映了仪器中测量和信号数据应用的流程对具体的仪器而言,并不需要实现模型中的所有模块的功能,只需实现仪器模型中用到的相应的模块的功能LOGO第二节 SCPI语法与风格电压表可能只需要用到测量功能、触发功能和格式化功能单输出的源仪器可能只用到信号产生和格式化块格式化测量功能触发数据总线简化的检测仪器模型信号发生格式化数据总线简化的源仪器模型LOGO第二节 SCPI语法与风格二.标准命令的句法和型式1.程控题头公用命令和询问题头RST(复位)OPC?(操作完成询问)?公用命令和询问句法流图公用命令和询问句法流图LOGO第二节 SCPI语法与风格仪器控制题头OUTPut:ATTenuation (控制输出衰减)MEASure:VOLTage:AC?:?:仪器控制题头句法流图仪器控制题头句法流图LOGO第二节 SCPI语法与风格三.参数SCPI使用IEEE 488.2中规定的参数型式,只是有附加限制字符程控数据(Character Program Data)十进制数值程控数据(Decimal Numeric Program Data)布尔程控数据(Boolean Program Data)功能耦合(Coupling of Functions)测量单位和后缀(Units of Measure and Suffixes)LOGO第二节 SCPI语法与风格某些字符程控数据被定义为特殊的数值程控数据DEFault:缺省值,它可能是仪器相关的,也可能是SCPI标准指定的值MINimum/MAXimum:最小/最大值UP/DOWN:上/下,增加/减少LOGO第二节 SCPI语法与风格布尔程控数据实际上是ON|OFF|的简写布尔数据没有单位,取值0或1作为字符程控数据时,ON代表1,OFF代表0作为输入时被取整,非零就代表1作为仪器响应数据时,只能取0或1,而不能使用ON/OFFLOGO第二节 SCPI语法与风格3.表达式表达式数值表达式(Numeric Expressions)(-5.0*1.000E-002)(5 MOD 3)通道列表(Channel Lists)(1,2,4:7)(1,2),(3,4)(1!1:2!3)数值列表(Numeric Lists)(1.0,2.0,5.0)(1:5)LOGO第二节 SCPI语法与风格4.状态报告SCPI要求IEEE 488.2规定的状态机制,包括完整实现事件状态寄存器结构(Event Status register structure)。SCPI器件的“最小状态报告结构”包含IEEE488.2定义的“标准状态数据结构”及SCPI定义的操作状态寄存器(OPERation Status register)和可疑数据/信号状态寄存器(QUEStionnable data/signal Status register)。它是SCPI要求的状态报告能力的核心部分。LOGOSCPI要求要求的最的最小状小状态报态报告结告结构示构示意图意图LOGO第二节 SCPI语法与风格四.SCPI命令树图命令树图用于定义SCPI的命令集,它描述了命令、命令之间的层次关系、相关的参数以及必要的注释命令树图通常由三部分构成:关键字(KEYWORD)、参数形式(PARAMETER FORM)和注释(NOTES)LOGO第二节 SCPI语法与风格CONFigure子系统(部分)命令树示例Keyword Parameter Form NotesCONFigure:VOLTage:DC|MIN|MAX|DEF:AC|MIN|MAX|DEF:CURRent :DC|MIN|MAX|DEF:AC|MIN|MAX|DEF CONFigure?query onlyLOGO第二节 SCPI语法与风格关键字提供命令的名字;由于SCPI命令基于层次结构,一个实际的命令通常由一个或多个关键字构成,关键字之间用:分隔CONFigure:VOLTage:DC 参数形式指明命令的参数个数和顺序,以及它们的合法取值注释通常命令的询问形式可以由命令形式加上问号构成;但是不是所有的命令都有询问形式,也有的命令只能有询问命令,注释部分的内容通常用于指示这样的情况LOGO第三节 标准命令一、SCPI命令可分为两类公用命令SCPI仪器特定控制命令1.SCPI仪器公用命令SCPI把IEEE488.2要求仪器必须执行的公用命令作为SCPI仪器公用命令,这些公用命令用于控制仪器的某些基本功能操作,其句法和语义遵循IEEE488.2的规定LOGO第三节 标准命令表51 SCPI公用命令简表命 令功 能 描 述*CLS清除状态(Clear Status Command)*ESE标准事件状态使能(Standard Event Status Enable Command)*ESE?标准事件状态使能查询(Standard Event Status Enable Query)*ESR?标准事件状态寄存器查询(Standard Event Status Register Query)*IDN?仪器标识查询(Identification Query)*OPC操作完成(Operation Complete Command)*OPC?操作完成查询(Operation Complete Query)*RST复位(Reset Command)*SRE服务请求使能(Service Request Enable Command)*SRE?服务请求使能查询(Service Request Enable Query)*STB?读状态字节查询(Read Status Byte Query)*TST?自测试查询(Self-Test Query)*WAI等待操作完成(Wait-to-Continue Command)LOGO第三节 标准命令2.SCPI仪器特定控制命令表5-2 SCPI主枝干命令关键字与基本功能概貌关 键 字基 本 功 能测 量 指 令CONFigure组态。设置仪器,以执行相应测量FETCh?取数。重新获取仪器数据,并将数据置于输出缓冲区READ?读。实现对刷新数据的取数操作,数据采集和后期处理MEASure?测量。设置、触发数据采集并进行后期处理子系统命令CALCulate计算。完成采集后期数据处理,有16个分支CALibration校准。完成系统校准,有11个分支CONTrol控制。用于测试和过程控制环境条件下机电仪器的通断操作,有11个分支DIAGnostic诊断。为仪器维护提供诊断树节点DISPlay显示。控制图、文与迹信息的显示选择和表示方法,有7个分支LOGO第三节 标准命令表5-2 SCPI主枝干命令关键字与基本功能概貌(续)关 键 字基 本 功 能子系统命令FORMat格式。为传送数值和矩阵信息设置数据格式,有4个分支HCOPy硬拷贝。控制至外部仪器的绘图与打印操作的设置,有9个分支INPut输入。控制检测器件输入口特性,有14个分支INSTrument仪器。提供识别和选择逻辑仪器的方法,有7个分支MEMory存储器。管理仪器存储器,有11个分支MMEMory海量存储器。为仪器提供海量存储能力,有14个分支OUTPut输出。控制源输出口特性,有13个分支PROGramm程序。仪器内部程序控制和管理,有3个分支ROUTe路由。仪器的信号路径选择,有7个分支SENSe检测。控制与信号特性无关的仪器检测功能的特定设置,有25个分支LOGO第三节 标准命令表5-2 SCPI主枝干命令关键字与基本功能概貌(续)关 键 字基 本 功 能子系统命令SOURce源。控制与信号特性无关的源功能的特定设置,有23个分支STATus状态。控制SCPI定义的状态报告结构,有3个分支SYSTem系统。实现仪器内务管理和设置全局组态,有14个分支TEST测试。提供标准仪器自检程序,是IEEE488.2*TST命令的扩展TRACe|DATA迹|数据。仪器存储器中命名实体,用于定义和管理记录的数据,有8个分支TRIGger触发。用于同步仪器的动作,涉及4个根级命令UNIT单位。定义缺省(默认)单位,有4个分支VXIVXI总线。控制与VXI总线操作相关的管理功能,有5个分支LOGO第三节 标准命令SCPI要求下述仪器控制命令是必须执行的:SYSTem:ERRor:NEXT?:VERSion?:STATus:OPERation:EVENt?:CONDition?:ENABle:ENABle?:QUEStionable:EVENt?:CONDition?:ENABle:ENABle?:PRESetLOGO第三节 标准命令二、测量组指令测量组指令是一组高层次的获取数据的指令,它直接面向被测信号的特性,而与模型中的框图无关测量组指令除了CONFigure有明确的命令和询问形式外,其他指令都具有命令和询问的双重性LOGO第三节 标准命令测量组指令集KEYWORD PARAMETER FORM NOTESMEASure:?,query onlyCONFigure:,FETCh:?,query onlyREAD:?,query onlyLOGO第三节 标准命令MEASure?指令格式MEASure:?,等价于ABORt;CONFigure:;READ:?,;MEASure?指令提供仪器配置和数据读回的完整能力,适用于仪器接受通用测试功能而且无需对仪器配置进行细调的情况LOGO第三节 标准命令CONFigure指令格式CONFigure ,CONFigure指令有明确的命令和询问形式CONFigure指令将为执行由指定的测量功能配置仪器CONFigure指令执行后并不启动测量功能,其后的READ?询问操作完成指定的测量功能CONFigure?将返回最近一次执行CONFigure或MEASure?所进行的设置LOGO第三节 标准命令CONFigure指令使用示例如果执行如下CONFigure命令CONFigure:VOLTage:AC 5,.001那么,使用CONFigure指令的询问CONFigure?将返回的是:“VOLT:AC 5.0,0.001”LOGO第三节 标准命令FETCh?指令格式FETCh:?,获取由INITiate命令产生的测量结果,并将数据放到输出缓冲区中对一次采集的数据,可以执行多个不同的FETCh?指令,以返回不同的结果示波器采集的数据中可能包含频率、交流电压、直流电压等多个信息,不同的FETCh?可以返回不同的结果LOGO第三节 标准命令READ?指令格式READ:?,等价于ABORt;INITiate;FETCh:?,READ?指令常与CONFigure指令配合使用,其功能与MEASure?指令兼容,但能够实现对仪器配置的细调LOGO第三节 标准命令READ?指令与CONFigure指令结合示例CONFigure:VOLTage:RISE:TIME 10 PCT,90 PCT,0.001 SSWEep:TIME.05 SVOLTage:AC:RANGe 5VREAD:VOLTage:RISE:TIME?CONFigure指令为测量上升时间进行仪器设置READ?指令将完成测量并返回上升时间中间两条指令是为了更准确的完成上升时间测量而进行了扫描时基和幅度灵敏度量程的设置LOGO第三节 标准命令CONFigure,FETCh?,READ?,MEASure之间的关系MEASure?指令一次操作完成仪器组态、测量和结果返回的全部功能。提供仪器之间最好的兼容性。CONFigure/READ?指令组合兼容性稍差,但它们能对仪器进行更精确的控制。CONFigure指令执行仪器测量的组态,而READ?指令则执行测量的数据采集、后处理和数据输出。CONFigure指令完成仪器一般的组态。更精确的组态可能涉及一些仪器相关的功能LOGO第三节 标准命令READ?指令可被分解成两条指令:INITiate和FETCh?。INITiate执行数据采集,FETCh?完成数据后处理和数据返回。对一次采集的数据,可以执行多个不同的FETCh?指令,以返回不同的结果比如在波形参数测量中,采集数据中可能包含脉宽、上升/下降时间、顶、底等多个信息,这时就可以使用FETCh?命令以返回不同的结果,而不需要重新进行新的采集LOGO第三节 标准命令FETCh?指令的兼容性也稍差,至少需要知道采集的数据中是否包含所需要的数据示波器能够在一次采集中采到上升时间和脉宽的信息,如果用MEASure?指令采集信号的脉宽,那么我们就可以用FETCh?指令获得信号的上升时间。计数器也可以采集到信号的上升时间或脉宽,但是如果同样用MEASure?指令采集信号的脉宽,我们却不能用FETCh?指令来获得信号的上升时间。仪器组态某些部分的变化可能会导致已有的数据无效INITiate;CONFigure:VOLTage;FETCh:VOLTage?LOGO第四节 数据交换格式数据交换格式除了数据本身外,还描述了数据获得的环境、数据的结构以及其他相关信息数据交换格式采用模块化层次结构,每一个模块代表了数据描述的不同方面数据交换格式的层次结构能适应多种传输媒介和协议,如:IEEE 488.1/488.2,RS-232C,SCSI,IEEE 802等兼容IEEE 488.2句法LOGO第四节 数据交换格式数据交换格式示例LOGO第四节 数据交换格式顶层模块结构如下:dif-difidremarkidentifyencodedimension+ordertrace*view*data+LOGO第四节 数据交换格式符号说明-符号左边的条目由右边的条目构成.*中的条目可不出现也可以多次出现.+中的条目至少出现1次.中的条目不出现或出现1次.|.|.中的条目只能有一个出现LOGO第四节 数据交换格式SCPI数据交换格式要求数据集必须具有一个DIF模块,至少有一个DIMension模块和一个DATA模块SCPI要求模块实现遵循如下顺序DIFENCodeDIMensionTRACeVIEWDATA另外,ORDer模块必须出现在DATA模块之前,而REMark模块和IDENtify模块则可以出现在DIF模块之后的任何位置LOGO第四节 数据交换格式DIF模块该模块是数据集的第一个模块,DIF模块是数据集遵循SCPI数据交换格式的标志;它提供了版本信息,以辅助分析程序确定兼容性问题该模块在数据集中必须且只能出现一次。REMark模块REMark模块包含关于数据集的综合注释文本信息REMark模块在数据集中最多只能出现一次LOGO第四节 数据交换格式IDENtify模块命名数据集,描述数据产生或采集的条件,包括项目名称、测试号和系列、日期和时间、数据源等IDENtify模块中所有的字符串文本的内容留给数据创建者自己去定义,但是,应该遵循模块中通用的分类该模块在数据集中最多只能出现一次LOGO第四节 数据交换格式ENCode模块该模块指定DATA模块和ENCode模块中数据的编码格式,它面向特定模块中数据的分辨率、范围和编码格式等内容在数据格式结构中ENCode模块所在的层次决定了它的作用范围。如果与DIMension模块在同一层次,则ENCode模块的作用是全局的,但是这种作用要被各个维之下的ENCode模块所替代ENCode模块在与DIMension同一层次中,只能出现一次,同时,如果作为DIMension模块的从属模块也只能出现一次任何层次中ENCode模块都不是必须的LOGO第四节 数据交换格式DIMension模块该模块对DATA模块中的数据结构和格式进行指定,为数据标度、偏置、命名和单位规定做好准备每个DIMension模块描述DATA(CURVe)数据的一个维。维可能明确出现在DATA(CURVe)数据中,也可能以函数的形式隐含DIMension模块的顺序决定了DATA模块中数据的顺序,数据的每一个维需要一个DIMension模块来描述LOGO第四节 数据交换格式ORDer模块ORDer模块指定每一维数据在DATA(CURVe)模块中的出现顺序ORDer模块在数据集中最多只能出现一次TRACe模块TRACe模块将数据维按函数、平面等进行逻辑分组,提供数据的语义信息,用于建立VIEW模块TRACe模块描述所有维或是某些维之间的逻辑关系TRACe模块信息由DIMension模块构建,而VIEW模块信息则由TRACe模块构建LOGO第四节 数据交换格式VIEW模块VIEW模块提供数据的第二级语义信息,它描述了TRACe模块定义的迹与迹之间的逻辑关系DATA模块DATA模块包含了真实的数据。不同的从属模块可以分别描述有维数据、波形参数测量值和点值等数据集中至少需要包含一个DATA模块LOGO第四节 数据交换格式 数据交换格式示例数据格式遵从1993年版本日期、时间记录编码格式为8位整数范围128127YH维定义YL维定义X维定义LOGO第五节 常见SCPI相关仪器SCPI通过仪器类别定义了通用仪器类所需要具备的功能集以及实现这些功能集所需的命令和行为仪器类别的定义有助于SCPI实现缩短自动测试设备的编程开发时间的总目标引导设计者从常见仪器类的角度来使用SCPI达成同类仪器实现的高度一致性LOGO第五节 常见SCPI相关仪器SCPI规范将常见仪器分为八类框架测力计(Chassis Dynamometers)数字表(Digital Meters)数字化仪(Digitiziers)发射装置(Emissions Benches)发射测试单元(Emission Test Cell)电源(Power Supplies)射频与微波源(RF&Microwave Sources)信号转接开关(Signal Switchers)LOGO第五节 常见SCPI相关仪器SCPI对每一类别的仪器大致从以下几个方面进行了描述基本功能基本测量指令面向设备的基本功能基本状态报告附加功能特定的校准命令特定的诊断命令存储子系统的增加LOGO第五节 常见SCPI相关仪器数字表(Digital Meters)数字表的仪器模型LOGO第五节 常见SCPI相关仪器数字表的几种仪器类型LOGO第五节 常见SCPI相关仪器数字表类仪器编程示例简单测量示例MEASure:VOLTage:DC?仪器将会自动设置量程和合适的分辨率来进行直流电压测量,并返回一个电压值MEASure:VOLTage:DC?5,.05如果电压表有1,10和100V的量程,它将选择10V档进行测量。而对于3,30和300V量程的电压表,它将选择30V档进行测量。对通常的3位半表而言,分辨率通常可能是选择在10mv也可以使用更低层的命令来实现上面的测量功能LOGO第五节 常见SCPI相关仪器时序测量示例命令序列同样可以完成直流电压的测量,它使用CONFigure命令和READ?询问组合完成,其中间一行命令完成对触发的设置,作用在于READ?启动测量之后要等到外部触发到来之后才会将数据返回命令序列将在10次触发之后返回10个测量结果LOGO大家辛苦了!
展开阅读全文