SCPI命令解释器的实现

更新时间:2023-04-25 06:01:43 阅读: 评论:0


2023年4月25日发(作者:组播)

10卷 第3期

2012年6月

信 息 与 电 子 工 程

INFORMATION AND ELECTRONIC ENGINEERING

VO1.10,NO.3

Jun.,2012

文章编号:1672—2892(2012)03-0377—05

SCPI命令解释器的实现

韦荣昌,赖小红

_ _ _ _

电子科技大学自动化T程学院,四川成都611731)

摘 要:可程控仪器命令标准(SCPI)目前被广泛应用于测试测量仪器的操作控制中。针对数字

示波器的SCPI命令集,研究并设计了一种SCPI命令解释器,此命令解释器通过采用二又树结构

来存储数字示波器的SCP1命令集,并在此基础上通过遍历二叉树来实现SCPI命令的查找过程。

设计的解释器具有命令解析效率高,移植性好等优点,现已应用于数字示波器中,实践证明了此

设计方案是可行的。

关键词:数字示波器;SCPI解释器;命令树;二叉树

中图分类号:TN98;TM932 文献标识码:A

Implementation of Standard C mmands for Programmable

Instruments interpreter

SCPI建立在IEEE488.2基础上,目前在各种程控测试测量仪器中得到了广泛应用。但是,由于仪器硬件并

不能直接理解控制器发出的SCPI命令,因此需要依靠SCPI命令解释器才能完成要求的操作。数字示波器是组

建自动测试系统的关键仪器之一,为数字示波器设计SCPI命令解释器有助于将其应用于大型自动测试系统,同

时也能够增强其互换性和兼容性…。

SCPI命令语法简介

1. SCPI概述

20世纪7O年代,自动测试系统最重

要的进展是IEEE488.1标准的制订,它的

出现极大地推动了自动测试系统的发

展。IEEE488.1主要规定了仪器在电气、

Fig.1 SCPI program—controlled equipment model

机械和功能方面相容性的要求,但在软

图I SCPI程控仪器模型

件方面并没有统一的标准。之后IEEE488.2在IEEE488.1基础上使程控仪器器件消息的数据编码与格式、命令功

能元素与编码句法、消息交换控制等方面实现了标准化,但它只定义了程控仪器的少数公用命令语义,用于仪器

内部基本操作控制,却未解决器件消息标准化的问题。因此,建立在IEEE488.2基础上的SCPI应运而生。

收稿日期:2011-06—20:修回日期:2011.08.29

378 第10卷

SCPI主要侧重于解决仪器程控和响应中器件消息的标准化问题,其定义了各种可编程仪器的控制命令格式

以及语法,是目前重要的仪器程控命令标准之一 。SCPI采用树形分层结构的命令集,提出了一个具有普遍性

的通用仪器模型,仪器模型体现了SCPI仪器功能逻辑和分类,如图1所示。

1.2 SCPI语法格式

根据SCPI 99标准,整个SCPI命令分为IEEE488.2公用命令和SCPI仪器特定控制命令2种不同类型。

公用命令就是IEEE488.2规定的仪器必须执行(或称必备的)的命令,它们的句法和语义都遵循IEEE488.2的

规定,以 ’开头,它与测量无关,用于控制仪器的某些基本功能操作,其语法格式如下【】:

1)命令格式:星号+关键字;

2)询问格式:星号+关键字+问号。

SCPI仪器特定控制命令以“:”开头,有命令(Command)和询问(Query)2种格式,主要用来从事测量、读取

数据以及切换开关等,包括所有测量函数及一些特殊的功能函数。询问命令是一类特殊类型的命令,主要用于指

示仪器产生响应数据,通过询问来获取仪器的设置或状态。具体命令格式如下[】:

1)命令格式:冒号+关键字+空格+参数+空格+单位;

21询问格式:冒号+关键字+问号。

按照以上命令结构格式,以下都是有效的命令:

RST /公用命令

*IDN? /公用命令,询问格式

CONFigure:VOLTage:DC 10V /带参数的特定命令

MEASure:VOLTage:AMPLitude? /询问命令

1.3 SCPI命令的使用方式

SCPI命令既可以单条命令使用,也可以将不同命令连接,组成一个命令字符串,命令的连接方式如下:

1)以“;”连接公用命令和仪器特定命令;

2)以“;”作分割符,后面紧跟“:”,连接不同层次的仪器特定命令,后一命令的首节点必须是根结点,表

示从命令树的最高层重新开始命令;

3)以“;”分割同一子系统命令下的同一层次的特定命令。

通过仪器总线传输SCPI命令字符串,仪器在收到命令字符串后,交给SCPI命令解释器解释执行。

2 SCPI命令解释器的设计

SCPI命令解释器的主要功能是对用户输入的命令进行解析,将使用SCPI命令编写的程控命令翻译成仪器可

以识别的代码,功能示意如图2所示。

scPI c。mmrDd sⅡing

竺兰_J cP +s ma

!!

Fig.Diagram of he function of SCPI nterpreter

图2 SCPI解释器功能示意图

根据SCPI命令语法格式和数字示波器SCPI命令子集的特点l】,本设计采用链式二叉树结构一一孩子兄弟表

示法,存储数字示波器的SCPI命令子集的节点信息;采用数组存放命令子集的参数语法信息(包括参数类型等),

数组长度为命令个数。通过遍历二又树来实现命令的查找过程,最后提交命令内码和参数,供系统执行相应的操

作。因此SCPI命令解释器的设计工作主要包括2个部分:a)建立内置命令存储结构;b)编写查找分析程序。

2.1命令树的创建

创建命令树的过程,就是把数字示波器的SCPI命令集按照一定的结构,创建成供查询使用的命令树。这个

阶段要求实现:输入的是包含数字示波器所有的SCPI命令关键字的1个格式化文本文件,输出的是1棵按规则

创建的命令树【】。

SCPI命令格式为树状层次结构,具有多个子系统,每个子系统又具有多个子命令。因此创建数字示波器命

令树,首先要了解数字示波器的SCPI命令集,根据小学数学故事 示波器要实现的功能,选定相关的命令子系统(包括10个命

令子系统:CONFigure,FETch/READ/MEASure,CALCulate,FORMatNPUtSENSe,STATus,SYSTem,TRACeIDATA,

第3期 韦荣昌等:SCPI命令解释器的实现 379

CONFig ̄e—— — voltage]

TRIGger),根据选定的命令子系统建立数字示波器的SCPI命令集_6j

每一个命令子系统都是一棵多叉树,都是分层树形结构,图3为

CONFigure的树形结构(图中箭头指示了命令结点间的层次关系)。

SCPI命令树是多棵多又树的结构形式。创建SCPI命令树,常见

的方法是将命令树直接存储为多叉树结构,结点包含了父指针、兄弟

指针和孩子指针,这样的存储比较混乱,对实现命令树的存储、删除、

插入和遍历都比较麻烦。将多又树转化为二叉树形式是实现树的持久

存储和计算的常用方法,二叉树的存储结构主要有2种,即链式结构和顺序结构。顺序结构仅适用于满二叉树。

链式结构虽不能任淘宝店铺导航 意访问某一结点的双亲,但对于已知结点孩子的查找十分方便,并且易于扩展树的空间、添加

Fig.3 CONFigure command ree

图3 CONFigure命令子系统多叉树结构图

和删减命令,十分利于SCPI命令的查询遍历、命令集的移植以及扩展。因此本设计采用链式二叉树结构一一孩

子兄弟表示法来创建SCPI命令树。将每一个命令子系统构建为一棵二叉树,公用命令则是一棵只有根结点的二

叉树;将每一个子系统根结点及公用命令结点作为命令树右链结点,左链为各个子系统下的孩子结点,合并构成

棵完整的SCPI命令树。构建后的CONFigure命令子系统二叉树如图4所示:

Fig.4 Binarree of CONFigurcommand

图4 CONFigure命令子系统二叉树结构图

每个命令结点的结构[ 为:

结点类型定义:

typedef struct btreenode

TreeData data; /结点数据

struct btreenode LC; /左指针

stuct btreenode RC; /右指针

}bnode;

结点中数据部分类型定义:

typedef struct

char cmdname[40]; /命令关键字

/命令关键字缩写形式 char cmdname2[40];

/命令内码 nt code; 古代爱国诗

ntparatype; /参数类型

nt default; /缺省节点标记

)TreeData;

因为数字示波器的SCPI命令集是已选定的,构建命令树时,

如果采用手动一个一个地输人命令关键字等信息,既耗时又易出

错。因此创建一个包含数字示波器所有SCPI命令关键字等信息

的文本文件,采用一边扫描文本,一边创建命令树的方法,效率

要高很多。列举文本片段如下:(1个“/”后面的数字代表内

码;第2个“/”后面的数字代表参数类型;“r代表有别名;@

代表默认结点。1

CONFigure/100I/1

一五一的由来

VOLTagetVOLTagel@/1100/1

DC@/1 10/1

AC/1 120/1

FREQuency/1 30/1 Fig. Flow ha of command ee

图5创建命令树流程图

380 第10卷

:PERiod/1 140/1

:PHASe/1 150/1

创建命令树的过程:从文本文件中读取关键字和命令编码等信息,遍历树,填人相应的命令结点信息(包括

关键字及其编码),输出一棵链式二叉树结构的完整的SCPI命令树,创建命令树的流程图如图5所示。

2.2命令查找

命令查找的过程就是根据用户输入的SCPI命令,遍历命令树,得到命令的内码和参数信息,通过进行字符

串比较,在同一层次中由前到后,对命令树结点遍历来完成的。

具体的查找过程如下:对用户输入的SCPI命令字符串,按空格分离关键字和参数,并把参数和单位保存到

个参数表中;取第1个关键字,从命令树右链开始查找,若不匹配,则在此结点的右分支(同一等级)下查找;

若匹配,则在此结点的左分支进行下一等级结点的查找,直至最后1个关键字的查找结束;完全匹配后,判断参

数信息,最后保存参数。完成上述查找过程后,得到仪器可以识别并且能够执行的命令内码和参数,最后提交命

令内码和参数,供系统执行相应的操作。

当结点查找首次出现不匹配时,查看当前结点是否有缺省结点,如果有,则把缺省结点作为当前结点,继续

进行结点的查找;如果没有缺省结点,则给错误报告信息,并结束本次查找过程。

例如输入1条SCPI命令:“:CONFigure:VOLTage:AC 10”,首先分离关键字和参数,同时把参数和单位保存

1个参数当兵政策 表中。参考图4 CONFigure命令子系统二叉树结构图,查看查找的具体过程:取第1个关键字:

CONFigure”,从命令树的右链开始查找,若找到与之匹配的字符串,则取下一等级关键字:“:VOLTage”,

在:CONFigure的左链查找,依次直至最后1个关键字“:AC”的查找结束,完全匹配后,判断参数信息,最后保

存参数,返回命令内码和参数,本次查找结束。

2. SCPI命令解释器的验证

设计验证程序,验证SCPI命令解释器的正确性。创建一个格式化文本文档,包含要验证的SCPI命令字符

串,验证过程通过一边扫描文本中的命令字符串,一边对命令字符串进行解析来实现。验证程序实现的功能:对

于输入的正确的SCPI命令字符串,解释器能够正确解析,给出仪器可识别的命令内码和参数等信息,同时显示

其输出并提交系统执行相应的操作,实现解析SCPI命令的功能;如果输入错误的SCPI命令,如格式、符号或

者参数等出错,给出相应错误的状态报告。

3 结论

数字示波器在现代测量控制领域的应用十分广泛 J。为增强数字示波器SCPI命令集的可移植性和通用性,

设计一种扩展性良好的命令集存储结构和实现高性能命令解析的SCPI命令解释器是十分重要的。本文设计和实

现了数字示波器的SCPI命令解释器,对数字示波器的SCPI命令进行判断和查询,完成了数字示波器的控制和

测量。对于其他仪器模块只需要修改SCPI命令关键字等信息的格式化文本,即可得到不同的内置命令树,这种

方法设计的SCPI命令解释器不仅命令树结构清晰,而且具有较好的可扩展性和可移植性,具有一定的通用性,

对于其他仪器模块的SCPI命令集解释器的设计,也具有很好的参考意义。

参考文献:

[1] 王浩,王子斌.一种2 Gsps数字示波器数据采集系统的设计….信息与电子工程,2009,7(4)257—260.(WANG Hao,

WANG Zibin.Design of 2 Gsps digial oscioscope datacquision system[J].Informaton and ElectoniEngineeri燕赵老年报数字报 ng,

2009,7(4)257—260.)

【2] 陈长龄,田书林,师奕兵,等.自动测试及接口技术[M】.北京:机械T业 版社,2005.(CHEN Changling,TIAN Shuln,

SHI Yibing,et a1.Automated T插入批注快捷键 est System&Interace Technology[M].Being:China Machine Press,2005.

[3]EEE488.2.Standard Commandsor ProgrammablInstuments(SCPIS].USA:EEE,1999.

[4] Agient Technologiesnc.Agient InfniVision 6000 Series Oscioscopes programmer’ Guide[Z].USA:Agient Technologies

Ine.,2008.

[5] 井涛,郭永瑞.一种实用的SCPI语法分析设计方法[J].国外电子测量技术,2006,25(2)42—44.(JING Tao,GUO Yongrui

Useful parsng design method of SCPIJ].Foreign Electroni Measurement Technology,2006,25(2)42—44.


本文发布于:2023-04-25 06:01:43,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/82/513428.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:SCPI
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图