《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 通信與網(wǎng)絡(luò) > 設(shè)計(jì)應(yīng)用 > 基于嵌入式LXI代理模塊SCPI命令轉(zhuǎn)換設(shè)計(jì)
基于嵌入式LXI代理模塊SCPI命令轉(zhuǎn)換設(shè)計(jì)
2015年電子技術(shù)應(yīng)用第1期
錢 璐,李 哲,楊 芳
西安郵電大學(xué) 電子工程學(xué)院,陜西 西安710061
摘要: 為了使非LXI(LAN eXtensions for Instrumentation)接口的儀器儀表可以接入到支持LXI標(biāo)準(zhǔn)的儀器儀表系統(tǒng)中,并且能夠同時(shí)使用SCPI(Standard Commands for Programmable Instruments,SCPI)標(biāo)準(zhǔn)可編程儀器命令對(duì)設(shè)備進(jìn)行統(tǒng)一管理,提出一種基于嵌入式LXI代理模塊的SCPI命令轉(zhuǎn)換方法。通過(guò)對(duì)USB數(shù)據(jù)包流圖的捕獲,驗(yàn)證了USB主機(jī)驅(qū)動(dòng)的編程是成功的,并且通過(guò)上位機(jī)發(fā)送查詢和控制命令,實(shí)現(xiàn)了LXI接口規(guī)范以及SCPI命令與廠家自定義命令之間的轉(zhuǎn)換。
中圖分類號(hào): TP216
文獻(xiàn)標(biāo)識(shí)碼: A
文章編號(hào): 0258-7998(2015)01-0053-04
Design and implementation of the SCPI command transformation for embedded LXI agent module
Qian Lu,Li Zhe,Yang Fang
School of Electronic Engineering, Xi′an University of Posts and Telecommunications,Xi′an 710061,China
Abstract: In order to make the non-LXI instrumentation interface instrument access to the instrumentation system of supporting LXI standard, and simultaneously also apply the standard programmable instruments command to manage equipment and device uniformly,a method of SCPI command conversion based on embedded LXI agent module is proposed. By means of capturing the datagram of USB, verifying the USB host-driven programming is successful.And through sending the query and control commands from the host computer,we can achieve the LXI interface specification,and implement the conversion between the SCPI commands and the manufacturers custom commands.
Key words : LXI;instrumentation;SCPI command;command conversion

  

0 引言

  本文以計(jì)算機(jī)技術(shù)為基礎(chǔ),實(shí)現(xiàn)通過(guò)以太網(wǎng)對(duì)分布式儀器設(shè)備進(jìn)行管理,并能夠通過(guò)統(tǒng)一的命令對(duì)各個(gè)儀器設(shè)備進(jìn)行控制。

  LXI[1]儀器設(shè)備的主要功能包括了網(wǎng)絡(luò)通信功能和傳統(tǒng)儀器的測(cè)試測(cè)量功能。但是,目前大部分儀器設(shè)備都是基于RS232、USB、GPIB等儀器總線的,直接將其改造成LXI儀器設(shè)備是比較困難的,通過(guò)嵌入式轉(zhuǎn)接模塊,即代理服務(wù)器將具有RS232、USB、VXI等接口的儀器設(shè)備連接到以太網(wǎng)中,使其具有LXI協(xié)議規(guī)定的網(wǎng)絡(luò)通信功能;儀器程控命令SCPI[2]面向的是測(cè)量功能的描述,不是直接描述儀器的操作,能夠使用同樣的命令和參數(shù),控制具有相同功能的儀器。而傳統(tǒng)的儀器設(shè)備傳輸?shù)目刂泼钍歉鲝S商自己規(guī)定的儀器命令,不具有統(tǒng)一的信息格式和語(yǔ)法結(jié)構(gòu),在此本文將對(duì)非SCPI標(biāo)準(zhǔn)命令與標(biāo)準(zhǔn)SCPI命令進(jìn)行解析和對(duì)比,最后實(shí)現(xiàn)兩者之間的轉(zhuǎn)化。

  本文使用基于ARM Cortex-M3內(nèi)核的LPC1768處理器的嵌入式LXI代理模塊[3],實(shí)現(xiàn)USB接口和以太網(wǎng)接口的橋接,將支持USB接口的可編程儀器接入以太網(wǎng),便于計(jì)算機(jī)遠(yuǎn)端訪問(wèn)和管理[4],并解決標(biāo)準(zhǔn)SCPI命令語(yǔ)言和非標(biāo)準(zhǔn)儀器命令語(yǔ)言的編程和解析,進(jìn)行二者之間的轉(zhuǎn)換,實(shí)現(xiàn)儀器語(yǔ)言的標(biāo)準(zhǔn)化。

1 嵌入式LXI代理模塊的研究

  1.1 LXI標(biāo)準(zhǔn)

  LXI基于LAN的標(biāo)準(zhǔn),是繼GPIB、VXI、PXI等傳統(tǒng)儀器接口的新一代總線技術(shù)。LXI標(biāo)準(zhǔn)根據(jù)同步與觸發(fā)方式的不同,將LXI儀器分為3種基本類型A、B、C 類:C類是最簡(jiǎn)單最基本的一類,沒(méi)有對(duì)觸發(fā)作出特殊要求,是局域網(wǎng)一致性的實(shí)現(xiàn),該類通過(guò)SCPI命令可以實(shí)現(xiàn)儀器與計(jì)算機(jī)之間的信息交互;B類在具有C類的全部功能之外,加入了IEEE 1588精密時(shí)鐘同步協(xié)議;A 類除了具有B 類的全部功能外,還加入硬件觸發(fā)總線[5]。

  1.2 嵌入式代理模塊

  嵌入式代理是指在LPC1768微處理器以及外圍電路所組成的ARM板子上,運(yùn)行代理服務(wù)器程序,支持網(wǎng)絡(luò)管理協(xié)議SNMP,同時(shí)支持USB與LAN互相通信,傳輸測(cè)量命令和數(shù)據(jù),實(shí)現(xiàn)對(duì)測(cè)試設(shè)備的網(wǎng)絡(luò)管理。

  嵌入式代理模塊完成的主要功能如下:硬件方面,需要滿足LXI C類規(guī)范;軟件方面作為服務(wù)器端,接收目標(biāo)服務(wù)器的命令,以現(xiàn)場(chǎng)設(shè)備即客戶端能夠識(shí)別的格式傳輸測(cè)量數(shù)據(jù)命令給客戶端,客戶端返回測(cè)量數(shù)據(jù)后,代理服務(wù)器以真正的目標(biāo)服務(wù)器能夠識(shí)別的格式回傳給目標(biāo)服務(wù)器;當(dāng)接收客戶端傳達(dá)的命令,測(cè)量設(shè)備的參數(shù)作出相應(yīng)的修改;而客戶端主要是時(shí)刻向服務(wù)器匯報(bào)當(dāng)前現(xiàn)場(chǎng)儀器的狀態(tài),將突發(fā)的異常信號(hào)反饋給服務(wù)器,做出相應(yīng)處理。具體代理模塊在整個(gè)測(cè)試系統(tǒng)中所處的位置如圖1所示。

001.jpg

  本文中硬件基于ARM Cortex-M3處理器,代理軟件是運(yùn)行在以ARM Cortex-M3為處理器的嵌入式計(jì)算機(jī)上的。代理軟件構(gòu)成了服務(wù)器,主要是實(shí)現(xiàn)網(wǎng)絡(luò)管理分布式設(shè)備以及傳輸儀器命令數(shù)據(jù)的功能。具體的物理模塊如圖2所示。

002.jpg

2 系統(tǒng)硬件平臺(tái)的搭建

  本系統(tǒng)主要由LXI代理模塊、LXI總線設(shè)備儀器、路由器和裝有LabVIEW 2010的PC構(gòu)成。通過(guò)路由器可以完成多個(gè)LXI總線設(shè)備儀器與PC間的數(shù)據(jù)通信。PC作為系統(tǒng)的控制器,主要完成與儀器之間的通信,并把以太網(wǎng)的數(shù)據(jù)格式轉(zhuǎn)換成USB的數(shù)據(jù)格式,同時(shí)在這個(gè)過(guò)程中實(shí)現(xiàn)非標(biāo)準(zhǔn)SCPI命令與標(biāo)準(zhǔn)SCPI命令之間的轉(zhuǎn)換。LXI代理模塊主要完成將不具有LXI總線C類設(shè)備特性的儀器接入到以太網(wǎng)中,實(shí)現(xiàn)LAN通信功能以及C類設(shè)備的觸發(fā)同步功能。LXI代理模塊的硬件結(jié)構(gòu)如圖3所示。

003.jpg

  從圖3可以看出,該硬件平臺(tái)包括ARM芯片LPC1768以及外圍功能電路模塊。外圍電路模塊有電源、以太網(wǎng)接口、USB接口、復(fù)位系統(tǒng)、JTAG接口等[6]。這些模塊協(xié)同工作,最終實(shí)現(xiàn)將LXI總線設(shè)備儀器接入以太網(wǎng)中的功能。

3 系統(tǒng)軟件設(shè)計(jì)與實(shí)現(xiàn)

  3.1 系統(tǒng)軟件整體設(shè)計(jì)


004.jpg

  軟件主要由以下四部分組成,具體結(jié)構(gòu)圖如圖4所示。

  (1)μC/OS-II操作系統(tǒng)的移植;

  (2)以太網(wǎng)協(xié)議棧的移植;

  (3)USB-HOST驅(qū)動(dòng)程序的編寫;

  (4)標(biāo)準(zhǔn)SCPI命令與非標(biāo)準(zhǔn)SCPI命令之間的轉(zhuǎn)換。

  由于論文篇幅有限,軟件設(shè)計(jì)的前三部分不作詳細(xì)敘述,下面僅介紹SCPI命令轉(zhuǎn)換部分的軟件實(shí)現(xiàn)。

  3.2 SCPI命令轉(zhuǎn)換實(shí)現(xiàn)

  3.2.1 SCPI簡(jiǎn)介

  SCPI是基于IEEE488.2標(biāo)準(zhǔn)的測(cè)量?jī)x器程控命令[7],對(duì)程控命令的數(shù)據(jù)格式、響應(yīng)消息、語(yǔ)法結(jié)構(gòu)、關(guān)鍵詞定義的方式給出了標(biāo)準(zhǔn)化的定義,其目的是能夠統(tǒng)一使用該命令系統(tǒng)控制不同廠家的程控儀器。SCPI的通信模型如圖5所示。

005.jpg

  3.2.2 SCPI命令與示波器命令間的轉(zhuǎn)換

  本課題所使用的是泰克TDS2000系列的示波器,首先需要找出示波器和SCPI命令中功能相同命令的對(duì)應(yīng)關(guān)系,然后通過(guò)軟件程序的轉(zhuǎn)換,將輸入的SCPI命令在LXI代理模塊上通過(guò)內(nèi)部的轉(zhuǎn)換直接轉(zhuǎn)換成示波器可以識(shí)別的命令,傳輸給示波器后,控制示波器。

  實(shí)現(xiàn)示波器的編程命令與標(biāo)準(zhǔn)SCPI命令的相互轉(zhuǎn)換是本文需要做的主要工作。具體實(shí)現(xiàn)的過(guò)程是,在嵌入式LXI代理模塊上,USB接口和以太網(wǎng)接口調(diào)通的工作完成之后,實(shí)現(xiàn)類似SCPI標(biāo)準(zhǔn)的示波器編程命令轉(zhuǎn)換成標(biāo)準(zhǔn)SCPI命令的相關(guān)代碼。整個(gè)通信的過(guò)程具體如圖6所示。

006.jpg

  從上圖中可以看出PC(即控制器)與嵌入式LXI代理模塊是通過(guò)以太網(wǎng)接口相連,而LXI代理模塊又通過(guò)USB接口和示波器相連,從硬件上實(shí)現(xiàn)了LXI C類標(biāo)準(zhǔn);將μC/OSII系統(tǒng)移植于代理模塊中,用于代理服務(wù)器任務(wù)調(diào)度的管理,驅(qū)動(dòng)層實(shí)現(xiàn)了USB主機(jī)驅(qū)動(dòng)和USBTMC協(xié)議,便于傳輸儀器控制命令,以太網(wǎng)通信方面進(jìn)行了Socket編程的移植,在以太網(wǎng)和USB接口能夠相互通信的基礎(chǔ)上,將以太網(wǎng)傳輸過(guò)來(lái)的SCPI標(biāo)準(zhǔn)命令轉(zhuǎn)換為類似SCPI標(biāo)準(zhǔn)的示波器命令,又以USB的包格式傳輸給示波器。

  編程部分首先需要實(shí)現(xiàn)的是將SCPI命令樹[9]進(jìn)行存儲(chǔ),為了實(shí)現(xiàn)存儲(chǔ)、插入、刪除、遍歷的快速便捷操作,本文將按照二叉樹的存儲(chǔ)方式[8]將命令樹存儲(chǔ)到程序當(dāng)中,當(dāng)以太網(wǎng)將SCPI命令發(fā)給代理模塊時(shí),代理模塊通過(guò)ucUdpDataBuff()接收命令,并對(duì)其進(jìn)行解析查找匹配的命令,取出對(duì)應(yīng)的命令號(hào),并從結(jié)構(gòu)體ComdId中得到對(duì)應(yīng)的示波器命令,處理器再通過(guò)usbDataBuff()將這個(gè)命令傳給USB接口,發(fā)送給示波器,示波器可以直接識(shí)別,然后返回相應(yīng)的應(yīng)答。

4 測(cè)試方案及結(jié)果

  4.1 測(cè)試方案

  在測(cè)試命令轉(zhuǎn)換功能時(shí),首先必須明確是通過(guò)控制器在上位機(jī)上給設(shè)備發(fā)送命令,設(shè)備收到命令之后能夠成功地做出相應(yīng)的應(yīng)答。實(shí)現(xiàn)的環(huán)境是:將計(jì)算機(jī)與LXI代理模塊通過(guò)以太網(wǎng)相連,將代理模塊的USB接口與儀器設(shè)備相連,而本文所指的設(shè)備是泰克公司的示波器TDS2014B,該設(shè)備支持USBTMC協(xié)議(即非標(biāo)準(zhǔn)SCPI命令)。

  測(cè)試的方法是在PC(控制器)上運(yùn)行LabVIEW編寫的上位機(jī)界面[10],這個(gè)界面是建立在UDP通信協(xié)議上的。代理需要建立兩個(gè)任務(wù):一個(gè)是以太網(wǎng)數(shù)據(jù)和USB數(shù)據(jù)轉(zhuǎn)換任務(wù),另一個(gè)是標(biāo)準(zhǔn)SCPI命令與非標(biāo)準(zhǔn)SCPI命令之間轉(zhuǎn)換的任務(wù)。這兩種轉(zhuǎn)換都是雙向的,發(fā)送和接收的格式都是一樣的,轉(zhuǎn)換的過(guò)程在由程序?qū)崿F(xiàn),最終將返回的數(shù)據(jù)顯示在接收數(shù)據(jù)區(qū)。

  4.2 測(cè)試過(guò)程及結(jié)果

  命令之間的成功轉(zhuǎn)換是建立在以太網(wǎng)和USB數(shù)據(jù)格式轉(zhuǎn)換的基礎(chǔ)上,PC通過(guò)以太網(wǎng)在PC端發(fā)送標(biāo)準(zhǔn)SCPI命令數(shù)據(jù)包給代理模塊,代理模塊將該命令轉(zhuǎn)換成示波器識(shí)別的命令,并通過(guò)USB接口發(fā)送給示波器,最后代理模塊需要將示波器返回的信息發(fā)給PC。圖7顯示了發(fā)送給示波器的測(cè)量命令MEASure[:SCALar]:VOLTage:FREQuency?,用于測(cè)量示波器當(dāng)前電壓的頻率值,這是一條標(biāo)準(zhǔn)的SCPI命令,所對(duì)應(yīng)的示波器執(zhí)行的命令是MEASUrement:IMMed:TYPe FREQuency,MEASUrement:IMMed:VALue?。示波器返回的值同樣如圖7所示,測(cè)得的頻率是1 kHz,可以說(shuō)明完成了查詢類命令的轉(zhuǎn)換功能。

007.jpg

  對(duì)于控制命令中還有一類是設(shè)置命令,設(shè)置命令的直觀表現(xiàn)是發(fā)送的命令沒(méi)有返回?cái)?shù)據(jù),但是示波器面板上的相應(yīng)設(shè)置會(huì)實(shí)現(xiàn),這樣實(shí)現(xiàn)了控制器對(duì)設(shè)備的遠(yuǎn)程控制。這里發(fā)送的命令是將示波器的面板語(yǔ)言設(shè)置成英文的,標(biāo)準(zhǔn)的SCPI命令是SYSTem:LANGuage <ENGLish>,而示波器相對(duì)應(yīng)的這條命令是LANGuage ENGLish。在上位機(jī)界面的發(fā)送數(shù)據(jù)區(qū)輸入該SCPI標(biāo)準(zhǔn)指令并發(fā)送,示波器接收代理模塊轉(zhuǎn)換的指令后,示波器面板的語(yǔ)言由中文變成了英文,這樣即可說(shuō)明標(biāo)準(zhǔn)的SCPI設(shè)置類命令轉(zhuǎn)換成示波器的命令是成功的。

5 結(jié)論

  本文在基于LPC1768 Cortex-M3系列微處理器的基礎(chǔ)上,結(jié)合μC/OS-II嵌入式操作系統(tǒng)組成了一個(gè)將USB接口儀器接入以太網(wǎng)中的代理平臺(tái),實(shí)現(xiàn)了通過(guò)標(biāo)準(zhǔn)SCPI命令網(wǎng)絡(luò)遠(yuǎn)程控制儀器設(shè)備的功能。本平臺(tái)能夠使非LXI接口的儀器儀表接入到支持LXI標(biāo)準(zhǔn)的儀器儀表系統(tǒng)中,并且能同時(shí)使用SCPI標(biāo)準(zhǔn)可編程儀器命令對(duì)設(shè)備進(jìn)行統(tǒng)一管理,具有較強(qiáng)的通用性。

  參考文獻(xiàn)

  [1] 樂(lè)天,蔡遠(yuǎn)文,解維奇,等.LXI總線標(biāo)準(zhǔn)最新進(jìn)展及發(fā)展趨勢(shì)[J].兵工自動(dòng)化,2014,33(6):48-52.

  [2] 崔猛,曹廣忠.SCPI在IGBT可靠性測(cè)試系統(tǒng)中的應(yīng)用[J].電子技術(shù)應(yīng)用,2014,40(4):88-95.

  [3] 李哲,強(qiáng)少鋒.基于USB的儀器儀表驅(qū)動(dòng)程序設(shè)計(jì)與實(shí)現(xiàn)[J].西安郵電學(xué)院學(xué)報(bào),2012,17(5):61-64.

  [4] 韓金霞,楊景常,杜煥勇,等.儀器接口平臺(tái)的通用USB接口模塊設(shè)計(jì)[J].自動(dòng)化儀表,2010,31(11):75-78.

  [5] 陳勇.LXI儀器主時(shí)鐘模塊的設(shè)計(jì)與實(shí)現(xiàn)[D].西安:西安電子科技大學(xué),2011.

  [6] 蔡長(zhǎng)安,鐘銳.串行通信轉(zhuǎn)網(wǎng)絡(luò)通信的數(shù)據(jù)模塊的硬件設(shè)計(jì)[J].微計(jì)算機(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命令解釋器的實(shí)現(xiàn)[J].信息與電子工程,2012(3):377-381.

  [9] 郭同華.數(shù)字示波表SCPI程控命令解析器設(shè)計(jì)[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.


此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。