文獻標識碼: A
文章編號: 0258-7998(2015)01-0053-04
0 引言
本文以計算機技術為基礎,實現(xiàn)通過以太網(wǎng)對分布式儀器設備進行管理,并能夠通過統(tǒng)一的命令對各個儀器設備進行控制。
LXI[1]儀器設備的主要功能包括了網(wǎng)絡通信功能和傳統(tǒng)儀器的測試測量功能。但是,目前大部分儀器設備都是基于RS232、USB、GPIB等儀器總線的,直接將其改造成LXI儀器設備是比較困難的,通過嵌入式轉接模塊,即代理服務器將具有RS232、USB、VXI等接口的儀器設備連接到以太網(wǎng)中,使其具有LXI協(xié)議規(guī)定的網(wǎng)絡通信功能;儀器程控命令SCPI[2]面向的是測量功能的描述,不是直接描述儀器的操作,能夠使用同樣的命令和參數(shù),控制具有相同功能的儀器。而傳統(tǒng)的儀器設備傳輸?shù)目刂泼钍歉鲝S商自己規(guī)定的儀器命令,不具有統(tǒng)一的信息格式和語法結構,在此本文將對非SCPI標準命令與標準SCPI命令進行解析和對比,最后實現(xiàn)兩者之間的轉化。
本文使用基于ARM Cortex-M3內核的LPC1768處理器的嵌入式LXI代理模塊[3],實現(xiàn)USB接口和以太網(wǎng)接口的橋接,將支持USB接口的可編程儀器接入以太網(wǎng),便于計算機遠端訪問和管理[4],并解決標準SCPI命令語言和非標準儀器命令語言的編程和解析,進行二者之間的轉換,實現(xiàn)儀器語言的標準化。
1 嵌入式LXI代理模塊的研究
1.1 LXI標準
LXI基于LAN的標準,是繼GPIB、VXI、PXI等傳統(tǒng)儀器接口的新一代總線技術。LXI標準根據(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ǎng)絡管理協(xié)議SNMP,同時支持USB與LAN互相通信,傳輸測量命令和數(shù)據(jù),實現(xiàn)對測試設備的網(wǎng)絡管理。
嵌入式代理模塊完成的主要功能如下:硬件方面,需要滿足LXI C類規(guī)范;軟件方面作為服務器端,接收目標服務器的命令,以現(xiàn)場設備即客戶端能夠識別的格式傳輸測量數(shù)據(jù)命令給客戶端,客戶端返回測量數(shù)據(jù)后,代理服務器以真正的目標服務器能夠識別的格式回傳給目標服務器;當接收客戶端傳達的命令,測量設備的參數(shù)作出相應的修改;而客戶端主要是時刻向服務器匯報當前現(xiàn)場儀器的狀態(tài),將突發(fā)的異常信號反饋給服務器,做出相應處理。具體代理模塊在整個測試系統(tǒng)中所處的位置如圖1所示。
本文中硬件基于ARM Cortex-M3處理器,代理軟件是運行在以ARM Cortex-M3為處理器的嵌入式計算機上的。代理軟件構成了服務器,主要是實現(xiàn)網(wǎng)絡管理分布式設備以及傳輸儀器命令數(shù)據(jù)的功能。具體的物理模塊如圖2所示。
2 系統(tǒng)硬件平臺的搭建
本系統(tǒng)主要由LXI代理模塊、LXI總線設備儀器、路由器和裝有LabVIEW 2010的PC構成。通過路由器可以完成多個LXI總線設備儀器與PC間的數(shù)據(jù)通信。PC作為系統(tǒng)的控制器,主要完成與儀器之間的通信,并把以太網(wǎng)的數(shù)據(jù)格式轉換成USB的數(shù)據(jù)格式,同時在這個過程中實現(xiàn)非標準SCPI命令與標準SCPI命令之間的轉換。LXI代理模塊主要完成將不具有LXI總線C類設備特性的儀器接入到以太網(wǎng)中,實現(xiàn)LAN通信功能以及C類設備的觸發(fā)同步功能。LXI代理模塊的硬件結構如圖3所示。
從圖3可以看出,該硬件平臺包括ARM芯片LPC1768以及外圍功能電路模塊。外圍電路模塊有電源、以太網(wǎng)接口、USB接口、復位系統(tǒng)、JTAG接口等[6]。這些模塊協(xié)同工作,最終實現(xiàn)將LXI總線設備儀器接入以太網(wǎng)中的功能。
3 系統(tǒng)軟件設計與實現(xiàn)
3.1 系統(tǒng)軟件整體設計
軟件主要由以下四部分組成,具體結構圖如圖4所示。
(1)μC/OS-II操作系統(tǒng)的移植;
(2)以太網(wǎng)協(xié)議棧的移植;
(3)USB-HOST驅動程序的編寫;
(4)標準SCPI命令與非標準SCPI命令之間的轉換。
由于論文篇幅有限,軟件設計的前三部分不作詳細敘述,下面僅介紹SCPI命令轉換部分的軟件實現(xiàn)。
3.2 SCPI命令轉換實現(xiàn)
3.2.1 SCPI簡介
SCPI是基于IEEE488.2標準的測量儀器程控命令[7],對程控命令的數(shù)據(jù)格式、響應消息、語法結構、關鍵詞定義的方式給出了標準化的定義,其目的是能夠統(tǒng)一使用該命令系統(tǒng)控制不同廠家的程控儀器。SCPI的通信模型如圖5所示。
3.2.2 SCPI命令與示波器命令間的轉換
本課題所使用的是泰克TDS2000系列的示波器,首先需要找出示波器和SCPI命令中功能相同命令的對應關系,然后通過軟件程序的轉換,將輸入的SCPI命令在LXI代理模塊上通過內部的轉換直接轉換成示波器可以識別的命令,傳輸給示波器后,控制示波器。
實現(xiàn)示波器的編程命令與標準SCPI命令的相互轉換是本文需要做的主要工作。具體實現(xiàn)的過程是,在嵌入式LXI代理模塊上,USB接口和以太網(wǎng)接口調通的工作完成之后,實現(xiàn)類似SCPI標準的示波器編程命令轉換成標準SCPI命令的相關代碼。整個通信的過程具體如圖6所示。
從上圖中可以看出PC(即控制器)與嵌入式LXI代理模塊是通過以太網(wǎng)接口相連,而LXI代理模塊又通過USB接口和示波器相連,從硬件上實現(xiàn)了LXI C類標準;將μC/OSII系統(tǒng)移植于代理模塊中,用于代理服務器任務調度的管理,驅動層實現(xiàn)了USB主機驅動和USBTMC協(xié)議,便于傳輸儀器控制命令,以太網(wǎng)通信方面進行了Socket編程的移植,在以太網(wǎng)和USB接口能夠相互通信的基礎上,將以太網(wǎng)傳輸過來的SCPI標準命令轉換為類似SCPI標準的示波器命令,又以USB的包格式傳輸給示波器。
編程部分首先需要實現(xiàn)的是將SCPI命令樹[9]進行存儲,為了實現(xiàn)存儲、插入、刪除、遍歷的快速便捷操作,本文將按照二叉樹的存儲方式[8]將命令樹存儲到程序當中,當以太網(wǎng)將SCPI命令發(fā)給代理模塊時,代理模塊通過ucUdpDataBuff()接收命令,并對其進行解析查找匹配的命令,取出對應的命令號,并從結構體ComdId中得到對應的示波器命令,處理器再通過usbDataBuff()將這個命令傳給USB接口,發(fā)送給示波器,示波器可以直接識別,然后返回相應的應答。
4 測試方案及結果
4.1 測試方案
在測試命令轉換功能時,首先必須明確是通過控制器在上位機上給設備發(fā)送命令,設備收到命令之后能夠成功地做出相應的應答。實現(xiàn)的環(huán)境是:將計算機與LXI代理模塊通過以太網(wǎng)相連,將代理模塊的USB接口與儀器設備相連,而本文所指的設備是泰克公司的示波器TDS2014B,該設備支持USBTMC協(xié)議(即非標準SCPI命令)。
測試的方法是在PC(控制器)上運行LabVIEW編寫的上位機界面[10],這個界面是建立在UDP通信協(xié)議上的。代理需要建立兩個任務:一個是以太網(wǎng)數(shù)據(jù)和USB數(shù)據(jù)轉換任務,另一個是標準SCPI命令與非標準SCPI命令之間轉換的任務。這兩種轉換都是雙向的,發(fā)送和接收的格式都是一樣的,轉換的過程在由程序實現(xiàn),最終將返回的數(shù)據(jù)顯示在接收數(shù)據(jù)區(qū)。
4.2 測試過程及結果
命令之間的成功轉換是建立在以太網(wǎng)和USB數(shù)據(jù)格式轉換的基礎上,PC通過以太網(wǎng)在PC端發(fā)送標準SCPI命令數(shù)據(jù)包給代理模塊,代理模塊將該命令轉換成示波器識別的命令,并通過USB接口發(fā)送給示波器,最后代理模塊需要將示波器返回的信息發(fā)給PC。圖7顯示了發(fā)送給示波器的測量命令MEASure[:SCALar]:VOLTage:FREQuency?,用于測量示波器當前電壓的頻率值,這是一條標準的SCPI命令,所對應的示波器執(zhí)行的命令是MEASUrement:IMMed:TYPe FREQuency,MEASUrement:IMMed:VALue?。示波器返回的值同樣如圖7所示,測得的頻率是1 kHz,可以說明完成了查詢類命令的轉換功能。
對于控制命令中還有一類是設置命令,設置命令的直觀表現(xiàn)是發(fā)送的命令沒有返回數(shù)據(jù),但是示波器面板上的相應設置會實現(xiàn),這樣實現(xiàn)了控制器對設備的遠程控制。這里發(fā)送的命令是將示波器的面板語言設置成英文的,標準的SCPI命令是SYSTem:LANGuage <ENGLish>,而示波器相對應的這條命令是LANGuage ENGLish。在上位機界面的發(fā)送數(shù)據(jù)區(qū)輸入該SCPI標準指令并發(fā)送,示波器接收代理模塊轉換的指令后,示波器面板的語言由中文變成了英文,這樣即可說明標準的SCPI設置類命令轉換成示波器的命令是成功的。
5 結論
本文在基于LPC1768 Cortex-M3系列微處理器的基礎上,結合μC/OS-II嵌入式操作系統(tǒng)組成了一個將USB接口儀器接入以太網(wǎng)中的代理平臺,實現(xiàn)了通過標準SCPI命令網(wǎng)絡遠程控制儀器設備的功能。本平臺能夠使非LXI接口的儀器儀表接入到支持LXI標準的儀器儀表系統(tǒng)中,并且能同時使用SCPI標準可編程儀器命令對設備進行統(tǒng)一管理,具有較強的通用性。
參考文獻
[1] 樂天,蔡遠文,解維奇,等.LXI總線標準最新進展及發(fā)展趨勢[J].兵工自動化,2014,33(6):48-52.
[2] 崔猛,曹廣忠.SCPI在IGBT可靠性測試系統(tǒng)中的應用[J].電子技術應用,2014,40(4):88-95.
[3] 李哲,強少鋒.基于USB的儀器儀表驅動程序設計與實現(xiàn)[J].西安郵電學院學報,2012,17(5):61-64.
[4] 韓金霞,楊景常,杜煥勇,等.儀器接口平臺的通用USB接口模塊設計[J].自動化儀表,2010,31(11):75-78.
[5] 陳勇.LXI儀器主時鐘模塊的設計與實現(xiàn)[D].西安:西安電子科技大學,2011.
[6] 蔡長安,鐘銳.串行通信轉網(wǎng)絡通信的數(shù)據(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命令解釋器的實現(xiàn)[J].信息與電子工程,2012(3):377-381.
[9] 郭同華.數(shù)字示波表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.