《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 通信與網(wǎng)絡(luò) > 設(shè)計應(yīng)用 > 基于嵌入式LXI代理模塊SCPI命令轉(zhuǎn)換設(shè)計
基于嵌入式LXI代理模塊SCPI命令轉(zhuǎn)換設(shè)計
2015年電子技術(shù)應(yīng)用第1期
錢 璐,李 哲,,楊 芳
西安郵電大學(xué) 電子工程學(xué)院,,陜西 西安710061
摘要: 為了使非LXI(LAN eXtensions for Instrumentation)接口的儀器儀表可以接入到支持LXI標(biāo)準(zhǔn)的儀器儀表系統(tǒng)中,并且能夠同時使用SCPI(Standard Commands for Programmable Instruments,,SCPI)標(biāo)準(zhǔn)可編程儀器命令對設(shè)備進行統(tǒng)一管理,,提出一種基于嵌入式LXI代理模塊的SCPI命令轉(zhuǎn)換方法。通過對USB數(shù)據(jù)包流圖的捕獲,,驗證了USB主機驅(qū)動的編程是成功的,,并且通過上位機發(fā)送查詢和控制命令,實現(xiàn)了LXI接口規(guī)范以及SCPI命令與廠家自定義命令之間的轉(zhuǎn)換,。
中圖分類號: TP216
文獻標(biāo)識碼: A
文章編號: 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 引言

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

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

  本文使用基于ARM Cortex-M3內(nèi)核的LPC1768處理器的嵌入式LXI代理模塊[3],實現(xiàn)USB接口和以太網(wǎng)接口的橋接,,將支持USB接口的可編程儀器接入以太網(wǎng),,便于計算機遠端訪問和管理[4],并解決標(biāo)準(zhǔn)SCPI命令語言和非標(biāo)準(zhǔn)儀器命令語言的編程和解析,,進行二者之間的轉(zhuǎn)換,,實現(xiàn)儀器語言的標(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類是最簡單最基本的一類,,沒有對觸發(fā)作出特殊要求,是局域網(wǎng)一致性的實現(xiàn),,該類通過SCPI命令可以實現(xiàn)儀器與計算機之間的信息交互,;B類在具有C類的全部功能之外,加入了IEEE 1588精密時鐘同步協(xié)議,;A 類除了具有B 類的全部功能外,,還加入硬件觸發(fā)總線[5]。

  1.2 嵌入式代理模塊

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

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

001.jpg

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

002.jpg

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

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

003.jpg

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

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

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


004.jpg

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

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

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

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

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

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

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

  3.2.1 SCPI簡介

  SCPI是基于IEEE488.2標(biāo)準(zhǔn)的測量儀器程控命令[7],,對程控命令的數(shù)據(jù)格式、響應(yīng)消息,、語法結(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命令中功能相同命令的對應(yīng)關(guān)系,然后通過軟件程序的轉(zhuǎn)換,,將輸入的SCPI命令在LXI代理模塊上通過內(nèi)部的轉(zhuǎn)換直接轉(zhuǎn)換成示波器可以識別的命令,,傳輸給示波器后,控制示波器,。

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

006.jpg

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

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

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

  4.1 測試方案

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

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

  4.2 測試過程及結(jié)果

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

007.jpg

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

5 結(jié)論

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

  參考文獻

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

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

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

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

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

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

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