文獻標識碼: 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 <ENGLish>,而示波器相對應的這條命令是LANGuage ENGLish。在上位機界面的發送數據區輸入該SCPI標準指令并發送,示波器接收代理模塊轉換的指令后,示波器面板的語言由中文變成了英文,這樣即可說明標準的SCPI設置類命令轉換成示波器的命令是成功的。
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.