文獻(xiàn)標(biāo)識(shí)碼: A
文章編號(hào): 0258-7998(2015)01-0053-04
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所示。
本文中硬件基于ARM Cortex-M3處理器,代理軟件是運(yùn)行在以ARM Cortex-M3為處理器的嵌入式計(jì)算機(jī)上的。代理軟件構(gòu)成了服務(wù)器,主要是實(shí)現(xiàn)網(wǎng)絡(luò)管理分布式設(shè)備以及傳輸儀器命令數(shù)據(jù)的功能。具體的物理模塊如圖2所示。
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所示。
從圖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ì)
軟件主要由以下四部分組成,具體結(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所示。
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所示。
從上圖中可以看出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)換功能。
對(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.