PC机远程控制仪器的SCPI解析模块设计.doc

上传人:laozhun 文档编号:2881727 上传时间:2023-03-01 格式:DOC 页数:5 大小:45.50KB
返回 下载 相关 举报
PC机远程控制仪器的SCPI解析模块设计.doc_第1页
第1页 / 共5页
PC机远程控制仪器的SCPI解析模块设计.doc_第2页
第2页 / 共5页
PC机远程控制仪器的SCPI解析模块设计.doc_第3页
第3页 / 共5页
PC机远程控制仪器的SCPI解析模块设计.doc_第4页
第4页 / 共5页
PC机远程控制仪器的SCPI解析模块设计.doc_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
资源描述

《PC机远程控制仪器的SCPI解析模块设计.doc》由会员分享,可在线阅读,更多相关《PC机远程控制仪器的SCPI解析模块设计.doc(5页珍藏版)》请在三一办公上搜索。

1、PC机远程控制仪器的SCPI解析模块设计 (摘要:通过对SCPI(程控仪器标准命令)的研究,提出了一种应用于SCPI的解析模块。该解析模块可适用于PC机和仪器间的各种接口,通过C语言编制的查表程序将PC机发出的SCPI消息解析为一组仪器可执行的二进制码。此解析模块在实验室设计的多种仪器上进行了实验,证明了SCPI解析模块在可程控仪器中的可行性。关键词:SCPI;程控仪器;C51;查表程序中图分类号 :TP216 文献标识码 :AThe design of SCPI parser module between PC and remote control instrumentsAbstract:T

2、hrough the studying of SCPI(Standard Commands for Programmable Instruments),a parser module applied to SCPI is presented.The parser module can be the same with various interface between PC and instrments, procedure of looking up the table compiled by C parsed SCPI message from PC to a set of binary

3、code that can be executed in instruments. The parser module was validated in multifarious instruments designed by our lab team,the feasibility of SCPI parser module in programmable instruments is proved.Key words:SCPI;Programmable instruments;C51;Procedure of looking up the table引言随着自动测试技术和程控仪器的发展,除

4、了要求物理硬件接口标准化外,也要求软件控制标准化。1990年4月,国际上九家仪器公司提出了建立在IEEE 488.2(程控仪器消息交换协议)基础上的SCPI,它是为测试和测量仪器而设计的仪器语言,实现了程控仪器的器件消息的标准化,其总目标是缩短自动测试设备程序开发时间,保护仪器制造者和使用者双方的硬件和软件投资,为仪器控制和数据利用提供广泛兼容的编码环境。仪器接收到SCPI消息后进行语法分析:接收字符串消息、词法分析、语法分析、中间代码生成、优化和目标代码生成,语法分析模块的性能直接影响到程控执行效率,。为了进一步简化仪器内语法分析模块、提高程控执行效率,本文介绍了一种在PC机和仪器间加入一个

5、解析模块的方法,可将复杂的ASCII码字符串表示的SCPI消息转变为简单的二进制代码串。采用此解析模块,在设计仪器时将大大简化软件工作,既能实现仪器语言标准化又能提高仪器对远程控制的响应速度,这在研究实验室内的自制仪器时将是很有用的。四川省教育厅重点科研项目自动测试技术及仪器接口平台技术的研究 科研号:2006-A0911.SCPI介绍1.1 SCPI仪器模型针对SCPI是描述测试功能,SCPI提出了一个描述仪器测试功能的通用仪器模型,表示了SCPI仪器的功能逻辑和分类,如图1所示。测量功能信号产生触发存储器信号路由选择信号路由选择格式化格式化数据总线数据总线 图1 SCPI程控仪器模型模型描

6、述了测量和数据流图,由各功能元素框组成,其主要功能区“测量功能”和“信号产生”可以进一步细分为更小的功能元素框,每个功能元素框都是SCPI命令分层树中的主命令支干。仪器可能包括其中部分或全部功能元素框。1.2 SCPI的句法和格式自动测试系统中,控制器向仪器发送程控消息,SCPI仪器中的程控消息即为SCPI消息。程控消息结构如图2。程控消息由程控消息单元组成,程控消息单元由程控题头组成,可选带程控数据即参数,一条程控消息可由空序列或一个或多个程控消息单元组成,标志为程控消息结束符。其中程控题头分界符为空格,程控数据分界符为逗号,程控消息单元分界符为分号,程控消息结束符为ASCII码中的换行符。

7、程控题头程控数据程控消息结束符程控消息单元分界符程据题头分界符程据数据分界符 图2 SCPI程控消息结构程控消息单元有两种格式:命令消息单元和询问消息单元。命令消息单元描述器件功能必须完成的远控操作,询问消息单元代表器件应该实现的一个动作,并要求器件产生响应,询问消息单元的编码句法格式同命令消息单元完全相同,只是在程控题头后多了个问号。程控题头结构如图3所示。SCPI结构为分层树形结构,故SCPI消息为命令树中各节点的组合,即程控助记符(命令关键字)的组合。将多个助记符连接起来构成一个复合词,以表示一个完整的功能,助记符之间用冒号分隔。程控助记符 :*:程控助记符 ? 图3 SCPI程控消息中

8、程控题头结构SCPI命令分为两类:SCPI仪器公用命令和SCPI仪器特定控制命令。公用命令的开始符号为“*”,并且结构只有一层。公用命令是是IEEE 488.2要求仪器必须执行的公用命令,其句法和语义遵循IEEE 488.2的规定,这部分命令与测量无关,用来控制重设、自我测试和状态操作。特定控制命令的开始符号为“:”,也可省略,结构可从一层到七层。特定控制命令是与仪器相关的,其句法和语义不仅遵循IEEE 488.2的规定,还遵循SCPI标准的规定,这部分命令用于仪器“源”和“测试”功能操作,又可进一步分为测量命令和23个命令子系统,一般每种具体仪器并不要求具备所有的功能,只需选择相关数种即可,

9、但系统子系统和状态子系统中的少部分特定控制命令分支是所有SCPI仪器必须执行的。2.SCPI解析模块设计SCPI1999文件中规定了程控助记符的生成规则,它分为短形和长形两种,仪器接收信息后只分析短形即可,但仪器需要逐个字符接收、词法分析、语法分析、中间代码生成、优化和目标代码生成等步骤,这些步骤虽然实现了仪器语言的标准化,但程控执行效率减慢了。针对这一问题,本文就提出了在控制器和仪器间加入一个解析模块的方法,先将SCPI解析为二进制码再传送给仪器,这样仪器就更容易识别接收消息,只需根据相应的二进制码执行相应操作即可,解析模块的硬件结构如图4。解析模块仪器(设计)CPU单片机LCD显示RS23

10、2串口SCPI二进制码控制器(PC机) 图4 SCPI解析模块硬件电路SCPI消息可以在PC机上通过一个串口调试助手或Labview进行发送(注意发送波特率设置同程序中设定的值相同),解析后的二进制码可以通过单片机的I/O口传送到仪器。若想要从上位机上观察解析模块两端的信息输入与输出,可通过串口将解析前后的信息发回上位机比较。PC机的串口为标准的RS232电平,而单片机的串口为TTL电平,故需用一个电平转换芯片MAX232。为了观察解析后的二进制码,采用了一个16*2点阵字符型LCD模块,通过单片机的P0口和LCD的数据线相连,单片机通过总线方式用RD和WR控制LCD的使能。设计采用锁存器74

11、LS573锁存P0.0、P0.1控制LCD的寄存器选择和读/写选择,故其指令写地址为00H、数据写地址为01H、指令读地址为02H(高位地址可任意选择)。3.软件设计SCPI的语法很多,由于我们的主要目的是提高程控效率,故在解析程控消息时我们只解析程控题头,而不解析程控数据,因为解析程控数据没有多大的意义,其本身就是固定的值。同样,从仪器到控制器的响应消息和状态数据报告也不在设计的考虑范围内,这些是在设计仪器时考虑的问题。通过上面的自设规定设计出来的SCPI解析模块已经足够本实验室使用。其软件流程图如图5。由于SCPI命令关键字很多,故输入到ROM的表格内容也多,通过整理发现最好选用大容量的单

12、片机,如64K。解析工作主要是通过查表程序完成的,查表也分为几个步骤:第一步,循环查找字符数组insbuf中的每一个字符,根据SCPI标准规定的结构找出各层关键字,并取其短形,若为三位则认为第四位为默认的空字符;第二步,循环查找每一层关键字所对应的二进制码, 通过整理发现第一层关键字为31个,且后面层的每一个子表所包含的关键字都不超过31个,而最多层为7层,故设计用7个字节来存储转换后的二进制码,每个字节的前面3位表示关键字所在的层,后5位表示它在此层的某个子表中的位置,这样仪器设计者在软件工作时就可根据表格判定相应的二进制码为何意思;第三步,将转换后的7个字节的二进制码和第一步判别出的其它字

13、符按相应位置放入另一字符数组outlcd中,并返回主程序。上电初始化:串口初始化;LCD初始化;显示“Now input the SCPI message”;开中断延时等待中断;接收串口消息到字符数组insbuf;待添加的隐藏文字内容1关中断;清屏;判断格式是否正确显示“Wrong”显示“Input again”N调用查表程序;输出二进制码保存到字符数组outlcd;输出显示;Y 图5 SCPI解析模块软件流程图例如,从上位机发送SCPI消息:“SOUR:FUNC:SHAP SIN”用于实验室设计的DDS函数发生器。这个SCPI消息将设置函数发生器输出正弦波。经过本文的解析模块后输出为0011

14、1000 01001010 01100010 00100000 01010011 01001001 01001110 00001010,也可在LCD上看到显示为8Jb_SIN_。第1个字节表示SOUR位于第一层的第24个,第2个字节表示FUNC位于SOUR后的第10个,第3个字节表示SHAP位于FUNC后的第2个,第4个字节表示空格,第5个字节表示S,第6个字节表示I,第7个字节表示N,第8个字节表示换行符。LCD显示的ASCII码有些显示结果是相同的,若想精确观察二进制码,可编程将其返回PC机显示。4.结束语此次设计采用了STC89C516RD+,其程序存储器为64KB,已满足整理的标准SC

15、PI表格大小的要求。对于不同仪器,可能含有新增的仪器特定控制命令,可在此设计的基础上修改加入新增关键字到表格中,再重新烧写即可;若只针对某种特定仪器,且想减少此解析模块的执行时间,可就特定仪器的关键字重新整理表格,再重新烧写到单片机中。这两种情况都只须做些许修改,主程序的程序流程图都不变,烧写工作也可以直接通过设计中的串口直接烧写。实践证明按照上述方法设计的解析模块具有高可靠性和较高的执行效率。本文作者创新点:本文探索了一种使用字符转换方法使程控仪器既能实现程控语言标准化又能提高仪器对远程控制的响应速度的方案。对采用SCPI规范的可程控仪器,均可以利用上述方法设计的解析模块,这可以减轻仪器设计

16、者的软件负担,也可以使各用户在使用设计仪器时的语言学习工作。项目产生经济效益:30万元。本单位图书馆不订阅微计算机信息。参考文献:1Standard Commands for Programmable Instruments(SCPI),Version 1999 May,1999.2IEEE Std 488.2-1992.IEEE Standard Codes,Formats,Protocols and Common Commands for Use With IEEE Std 488.1-1987,IEEE Standard Digital Interface for Programmabl

17、e Instrumentation.Instrumentation.IEEE Inc.New York,1992.3陈长龄.自动测试及接口技术M.北京:机械工业出版社,2005.4马忠梅.单片机的C语言应用程序设计M.北京:北京航空航天大学出版社,2003.5张毅刚.新编MCS-51单片机应用设计M.哈尔滨:哈尔滨工业大学出版社,2003.6腾大祝,陈明. 基于SCPI的直流低阻表底层协议的开发J.微计算机信息,2007,5-1:182-184.作者介绍:陈艳芬(1984.10-),女(汉族),四川成都人,硕士研究生,研究方向为自动测试接口技术及仪器设计。Biography:chen,yanfen(1984-),female, Chengdu City SiChuan Province,master graduate student,major in Automated testing interface Technology and Instrument design.通信地址:四川省成都市金牛区西华大学电气信息学院06级研究生班 610039E-mail:chenkexin_5a

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 建筑/施工/环境 > 项目建议


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号