文献标识码:A
文章编号: 0258-7998(2015)01-0053-04
0 引言
本文以计算机技术为基础,实现通过以太网对分布式仪器设备进行管理,并能够通过统一的命令对各个仪器设备进行控制。
LXI[1]仪器设备的主要功能包括了网络通信功能和传统仪器的测试测量功能。但是,目前大部分仪器设备都是基于RS232、USB、GPIB等仪器总线的,直接将其改造成LXI仪器设备是比较困难的,通过嵌入式转接模块,即代理服务器将具有RS232、USB、VXI等接口的仪器设备连接到以太网中,使其具有LXI协议规定的网络通信功能;仪器程控命令SCPI[2]面向的是测量功能的描述,不是直接描述仪器的操作,能够使用同样的命令和参数,控制具有相同功能的仪器。而传统的仪器设备传输的控制命令是各厂商自己规定的仪器命令,不具有统一的信息格式和语法结构,在此本文将对非SCPI标准命令与标准SCPI命令进行解析和对比,最后实现两者之间的转化。
本文使用基于ARM Cortex-M3内核的LPC1768处理器的嵌入式LXI代理模块[3],实现USB接口和以太网接口的桥接,将支持USB接口的可编程仪器接入以太网,便于计算机远端访问和管理[4],并解决标准SCPI命令语言和非标准仪器命令语言的编程和解析,进行二者之间的转换,实现仪器语言的标准化。
1 嵌入式LXI代理模块的研究
1.1 LXI标准
LXI基于LAN的标准,是继GPIB、VXI、PXI等传统仪器接口的新一代总线技术。LXI标准根据同步与触发方式的不同,将LXI仪器分为3种基本类型A、B、C 类:C类是最简单最基本的一类,没有对触发作出特殊要求,是局域网一致性的实现,该类通过SCPI命令可以实现仪器与计算机之间的信息交互;B类在具有C类的全部功能之外,加入了IEEE 1588精密时钟同步协议;A 类除了具有B 类的全部功能外,还加入硬件触发总线[5]。
1.2 嵌入式代理模块
嵌入式代理是指在LPC1768微处理器以及外围电路所组成的ARM板子上,运行代理服务器程序,支持网络管理协议SNMP,同时支持USB与LAN互相通信,传输测量命令和数据,实现对测试设备的网络管理。
嵌入式代理模块完成的主要功能如下:硬件方面,需要满足LXI C类规范;软件方面作为服务器端,接收目标服务器的命令,以现场设备即客户端能够识别的格式传输测量数据命令给客户端,客户端返回测量数据后,代理服务器以真正的目标服务器能够识别的格式回传给目标服务器;当接收客户端传达的命令,测量设备的参数作出相应的修改;而客户端主要是时刻向服务器汇报当前现场仪器的状态,将突发的异常信号反馈给服务器,做出相应处理。具体代理模块在整个测试系统中所处的位置如图1所示。
本文中硬件基于ARM Cortex-M3处理器,代理软件是运行在以ARM Cortex-M3为处理器的嵌入式计算机上的。代理软件构成了服务器,主要是实现网络管理分布式设备以及传输仪器命令数据的功能。具体的物理模块如图2所示。
2 系统硬件平台的搭建
本系统主要由LXI代理模块、LXI总线设备仪器、路由器和装有LabVIEW 2010的PC构成。通过路由器可以完成多个LXI总线设备仪器与PC间的数据通信。PC作为系统的控制器,主要完成与仪器之间的通信,并把以太网的数据格式转换成USB的数据格式,同时在这个过程中实现非标准SCPI命令与标准SCPI命令之间的转换。LXI代理模块主要完成将不具有LXI总线C类设备特性的仪器接入到以太网中,实现LAN通信功能以及C类设备的触发同步功能。LXI代理模块的硬件结构如图3所示。
从图3可以看出,该硬件平台包括ARM芯片LPC1768以及外围功能电路模块。外围电路模块有电源、以太网接口、USB接口、复位系统、JTAG接口等[6]。这些模块协同工作,最终实现将LXI总线设备仪器接入以太网中的功能。
3 系统软件设计与实现
3.1 系统软件整体设计
软件主要由以下四部分组成,具体结构图如图4所示。
(1)μC/OS-II操作系统的移植;
(2)以太网协议栈的移植;
(3)USB-HOST驱动程序的编写;
(4)标准SCPI命令与非标准SCPI命令之间的转换。
由于论文篇幅有限,软件设计的前三部分不作详细叙述,下面仅介绍SCPI命令转换部分的软件实现。
3.2 SCPI命令转换实现
3.2.1 SCPI简介
SCPI是基于IEEE488.2标准的测量仪器程控命令[7],对程控命令的数据格式、响应消息、语法结构、关键词定义的方式给出了标准化的定义,其目的是能够统一使用该命令系统控制不同厂家的程控仪器。SCPI的通信模型如图5所示。
3.2.2 SCPI命令与示波器命令间的转换
本课题所使用的是泰克TDS2000系列的示波器,首先需要找出示波器和SCPI命令中功能相同命令的对应关系,然后通过软件程序的转换,将输入的SCPI命令在LXI代理模块上通过内部的转换直接转换成示波器可以识别的命令,传输给示波器后,控制示波器。
实现示波器的编程命令与标准SCPI命令的相互转换是本文需要做的主要工作。具体实现的过程是,在嵌入式LXI代理模块上,USB接口和以太网接口调通的工作完成之后,实现类似SCPI标准的示波器编程命令转换成标准SCPI命令的相关代码。整个通信的过程具体如图6所示。
从上图中可以看出PC(即控制器)与嵌入式LXI代理模块是通过以太网接口相连,而LXI代理模块又通过USB接口和示波器相连,从硬件上实现了LXI C类标准;将μC/OSII系统移植于代理模块中,用于代理服务器任务调度的管理,驱动层实现了USB主机驱动和USBTMC协议,便于传输仪器控制命令,以太网通信方面进行了Socket编程的移植,在以太网和USB接口能够相互通信的基础上,将以太网传输过来的SCPI标准命令转换为类似SCPI标准的示波器命令,又以USB的包格式传输给示波器。
编程部分首先需要实现的是将SCPI命令树[9]进行存储,为了实现存储、插入、删除、遍历的快速便捷操作,本文将按照二叉树的存储方式[8]将命令树存储到程序当中,当以太网将SCPI命令发给代理模块时,代理模块通过ucUdpDataBuff()接收命令,并对其进行解析查找匹配的命令,取出对应的命令号,并从结构体ComdId中得到对应的示波器命令,处理器再通过usbDataBuff()将这个命令传给USB接口,发送给示波器,示波器可以直接识别,然后返回相应的应答。
4 测试方案及结果
4.1 测试方案
在测试命令转换功能时,首先必须明确是通过控制器在上位机上给设备发送命令,设备收到命令之后能够成功地做出相应的应答。实现的环境是:将计算机与LXI代理模块通过以太网相连,将代理模块的USB接口与仪器设备相连,而本文所指的设备是泰克公司的示波器TDS2014B,该设备支持USBTMC协议(即非标准SCPI命令)。
测试的方法是在PC(控制器)上运行LabVIEW编写的上位机界面[10],这个界面是建立在UDP通信协议上的。代理需要建立两个任务:一个是以太网数据和USB数据转换任务,另一个是标准SCPI命令与非标准SCPI命令之间转换的任务。这两种转换都是双向的,发送和接收的格式都是一样的,转换的过程在由程序实现,最终将返回的数据显示在接收数据区。
4.2 测试过程及结果
命令之间的成功转换是建立在以太网和USB数据格式转换的基础上,PC通过以太网在PC端发送标准SCPI命令数据包给代理模块,代理模块将该命令转换成示波器识别的命令,并通过USB接口发送给示波器,最后代理模块需要将示波器返回的信息发给PC。图7显示了发送给示波器的测量命令MEASure[:SCALar]:VOLTage:FREQuency?,用于测量示波器当前电压的频率值,这是一条标准的SCPI命令,所对应的示波器执行的命令是MEASUrement:IMMed:TYPe FREQuency,MEASUrement:IMMed:VALue?。示波器返回的值同样如图7所示,测得的频率是1 kHz,可以说明完成了查询类命令的转换功能。
对于控制命令中还有一类是设置命令,设置命令的直观表现是发送的命令没有返回数据,但是示波器面板上的相应设置会实现,这样实现了控制器对设备的远程控制。这里发送的命令是将示波器的面板语言设置成英文的,标准的SCPI命令是SYSTem:LANGuage
5 结论
本文在基于LPC1768 Cortex-M3系列微处理器的基础上,结合μC/OS-II嵌入式操作系统组成了一个将USB接口仪器接入以太网中的代理平台,实现了通过标准SCPI命令网络远程控制仪器设备的功能。本平台能够使非LXI接口的仪器仪表接入到支持LXI标准的仪器仪表系统中,并且能同时使用SCPI标准可编程仪器命令对设备进行统一管理,具有较强的通用性。
参考文献
[1] 乐天,蔡远文,解维奇,等.LXI总线标准最新进展及发展趋势[J].兵工自动化,2014,33(6):48-52.
[2] 崔猛,曹广忠.SCPI在IGBT可靠性测试系统中的应用[J].电子技术应用,2014,40(4):88-95.
[3] 李哲,强少锋.基于USB的仪器仪表驱动程序设计与实现[J].西安邮电学院学报,2012,17(5):61-64.
[4] 韩金霞,杨景常,杜焕勇,等.仪器接口平台的通用USB接口模块设计[J].自动化仪表,2010,31(11):75-78.
[5] 陈勇.LXI仪器主时钟模块的设计与实现[D].西安:西安电子科技大学,2011.
[6] 蔡长安,钟锐.串行通信转网络通信的数据模块的硬件设计[J].微计算机信息,2009,25(12):214-216.
[7] Liu Guili,Kong Quancun.Design of virtual oscilloscope basedon GPIB interface and SCPI[C].Electronic Measurement & Instruments(ICEMI),2013 IEEE 11th International Confer-ence on.IEEE,2013:294-298.
[8] 韦荣昌,赖小红.SCPI命令解释器的实现[J].信息与电子工程,2012(3):377-381.
[9] 郭同华.数字示波表SCPI程控命令解析器设计[J].科技信息,2014(11):225,256.
[10] Li-ying L.Design and study of strain data communication system based on LabVIEW[C].Computer Science and Information Technology,2009.ICCSIT 2009.2nd IEEE International Conference on.IEEE,2009:66-68.