《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 測(cè)試測(cè)量 > 解決方案 > 融合LXI和腳本的優(yōu)點(diǎn)(上)

融合LXI和腳本的優(yōu)點(diǎn)(上)

2011-05-12
作者:Paul Franklin和@Todd Hayes

Part I:什么是腳本,?
  多年來(lái),,可編程儀器表現(xiàn)為一種形式或另一種形式,。雖然具體功能有所不同,,但可編程儀器允許用戶在儀器中創(chuàng)建和保存一組指令(或程序),,并且按需運(yùn)行指令,。通常,,早期可編程儀器的能力和容量都非常有限,,這使可編程性的使用局限于相對(duì)小而簡(jiǎn)單的應(yīng)用。較大或較復(fù)雜的應(yīng)用需要使用單獨(dú)計(jì)算機(jī)或控制器通過(guò)通信接口(常常是GPIB)控制可編程儀器,。
 
  計(jì)算技術(shù)和編程語(yǔ)言的進(jìn)步以及嵌入式計(jì)算容量成本的穩(wěn)定下降帶來(lái)了新一代可編程儀器,。新型儀器突破了舊的限制,極大提高了性能和靈活性,。這些儀器的一個(gè)關(guān)鍵進(jìn)步是采用腳本語(yǔ)言提供可編程性,。本文詳細(xì)介紹了腳本以及如何利用腳本簡(jiǎn)化測(cè)試與測(cè)量并且提高速度。
 
那什么是腳本呢,?測(cè)試儀器的腳本與我們說(shuō)的PC腳本又有什么區(qū)別呢,?
 
  簡(jiǎn)單地說(shuō),腳本是用腳本語(yǔ)言編寫的程序以便管理一系列的動(dòng)作,。
 
  腳本遠(yuǎn)優(yōu)于常規(guī)使用的宏或記錄序列,。腳本能充分利用腳本語(yǔ)言,其中包括循環(huán),、轉(zhuǎn)移和數(shù)據(jù)處理,。雖然宏可以通過(guò)基本循環(huán)控制方法實(shí)現(xiàn)重復(fù),但是腳本能提供完全執(zhí)行環(huán)境,,其中數(shù)值可以保存在變量中,。然后,這些變量可用于控制循環(huán)和轉(zhuǎn)移判定,。
 
  腳本語(yǔ)言與其它編程語(yǔ)言的主要區(qū)別在于在運(yùn)行腳本程序之前無(wú)需預(yù)編譯,。如果需要,腳本環(huán)境可以直接中斷程序或自動(dòng)編譯程序,。此外,,腳本語(yǔ)言還具有編程語(yǔ)言的全部能力,包括存儲(chǔ)變量值和創(chuàng)建存儲(chǔ)的程序(函數(shù))以便代碼重用,。
 
  由于腳本無(wú)需單獨(dú)進(jìn)行編譯,,所以腳本語(yǔ)言非常適合于測(cè)試與測(cè)量設(shè)備的嵌入式應(yīng)用。腳本可以下載到儀器上,,無(wú)需額外的準(zhǔn)備工作就能為用戶提供更多便利,。
 
  PC上運(yùn)行的腳本語(yǔ)言和嵌到儀器中的腳本語(yǔ)言之間的關(guān)鍵不同在于環(huán)境。當(dāng)腳本語(yǔ)言運(yùn)行在PC上時(shí),,它通常能訪問(wèn)文件系統(tǒng),、幾乎無(wú)限制的存儲(chǔ)器、圖形顯示以及鍵盤和鼠標(biāo),。當(dāng)腳本語(yǔ)言運(yùn)行在儀器上時(shí),,它不必訪問(wèn)任一種設(shè)備,但這些設(shè)備通常也不需要,。
 
  明天我們會(huì)對(duì)測(cè)量?jī)x器中的腳本進(jìn)行細(xì)化介紹,,敬請(qǐng)期待吧,!
 
PartII: 測(cè)量?jī)x器中運(yùn)用的腳本
  流行的腳本語(yǔ)言包括Perl、Python,、VBScript和JavaScript,。Lua腳本語(yǔ)言特別適于嵌入式應(yīng)用,因?yàn)樗榷鄶?shù)其它腳本語(yǔ)言運(yùn)行速度更快并采用占代碼空間非常小的庫(kù)實(shí)現(xiàn),。吉時(shí)利選擇Lua用于支持測(cè)試腳本處理器(TSP)的儀器系列,。
 
  當(dāng)測(cè)試測(cè)量?jī)x器增加了腳本支持時(shí),最困難的選擇是什么呢,?對(duì)拉,,是如何向用戶介紹腳本!
 
  這種困難包括需要回答的一些難題,,例如:“如何集成儀器指令集和腳本環(huán)境,?”“用戶如何將腳本載入儀器中?”吉時(shí)利選擇將腳本環(huán)境和指令集完全集成,,這意味著所有儀器指令都是完全合法的Lua語(yǔ)句,。基本上,,送到儀器上的每條指令消息都作為L(zhǎng)ua程序執(zhí)行,。
 
  這種選擇使用戶很容易地從使用單條指令控制儀器過(guò)渡到使用腳本控制儀器,因?yàn)椴恍枰獙W(xué)習(xí)整個(gè)新指令集,。與腳本中使用的命令相同,,指令可以通過(guò)GPIB或LXI接口發(fā)送到儀器。這極大地簡(jiǎn)化了從基于指令的簡(jiǎn)單控制到基于腳本的控制的過(guò)渡過(guò)程,。用戶能簡(jiǎn)單地發(fā)送較大的腳本而不是單獨(dú)的指令到儀器,。
 
  下面我們用代碼來(lái)舉例說(shuō)明一下:
 
案例分析
  這種選擇的缺點(diǎn)是儀器指令可能對(duì)于第一次使用的用戶有點(diǎn)陌生。舉一些例子有助于說(shuō)明這一缺點(diǎn),。這些例子比較了吉時(shí)利2400型源表(基于SCPI的單元)和吉時(shí)利2602型雙通道數(shù)字源表(基于TSP的單元),。
 
  讓2400的源輸出電流的指令是:
  ::SOUR:FUNC CURR
 
  2602對(duì)應(yīng)的指令是:
  smua.source.func = smua.DC_AMPS
 
  smua前綴指定雙通道儀器2602的通道A,。除了等號(hào)外,,其余的指令類似于SCPI指令。這是Lua的賦值運(yùn)算,,將mua.source.func屬性設(shè)為smua.DC_AMPS的值,。
 
  查詢指令有一些陌生。因?yàn)橹噶钍怯行У腖ua語(yǔ)句,,所以使用print函數(shù)產(chǎn)生輸出,。SCPI查詢返回到2400的源函數(shù)是:
  :SOUR:FUNC?
 
  2602對(duì)應(yīng)的指令是:
  print(smua.source.func)
 
  正如SCPI儀器通過(guò)分號(hào)分隔單獨(dú)指令以支持復(fù)合指令,基于腳本的儀器也能通過(guò)語(yǔ)句分隔符分隔指令以支持復(fù)合指令,。在Lua中,,語(yǔ)句分隔符是空白字符,。
 
  假設(shè)我們的儀器已經(jīng)配置為電壓源。對(duì)于2400,,以下指令消息將設(shè)置輸出電平,,然后打開(kāi)輸出:
  :SOUR:VOLT 1.0; :OUTP 1
 
  對(duì)于2602,相應(yīng)指令消息是:
  smua.source.levelv = 1.0 smua.source.output = 1
 
  上述例子說(shuō)明腳本儀器可以表現(xiàn)得與傳統(tǒng)設(shè)備非常類似,。僅指令語(yǔ)法稍,;有改變。為了利用腳本引擎的全部能力,,用戶只用發(fā)送消息來(lái)使用腳本語(yǔ)言功能,。
 
PartIII 儀器測(cè)試中腳本案例分析以及LXI
 
  今天我們會(huì)介紹實(shí)際操作時(shí)的一些案例和經(jīng)驗(yàn),并且介紹一下LXI和腳本,。
 
  通過(guò)發(fā)送以下腳本,,用戶能讓儀器執(zhí)行二分查找法搜索能輸出1mA電流的電壓源:
  <代碼略>
 
  這種腳本的好處是避免了讀取每個(gè)結(jié)果和發(fā)送指令輸出新電平所需的通信時(shí)間。雖然有理由詢問(wèn)發(fā)送較長(zhǎng)消息需要多長(zhǎng)時(shí)間,,但是通常發(fā)送一條較長(zhǎng)的消息比來(lái)回通信許多條較短消息快得多,。然而,腳本環(huán)境的一個(gè)優(yōu)點(diǎn)是前述代碼可以封裝為函數(shù)定義,,然后重用,,用的時(shí)候就能完全避免發(fā)送長(zhǎng)消息。例如:
  <代碼略>
 
  前面的指令不會(huì)讓儀器立刻執(zhí)行,,但是它創(chuàng)建了一個(gè)命名為“Search(搜索)”的存儲(chǔ)程序,,之后可以用搜索指令調(diào)用:
  Search(2.5, 0.001)
 
  儀器有一些特點(diǎn)能補(bǔ)充腳本引擎。如果腳本環(huán)境提供儀器前面板的編程訪問(wèn),,那么用戶就能創(chuàng)建交互式腳本提示用戶在前面板輸入?yún)?shù)或顯示結(jié)果,。儀器還能提供非易失的板上腳本存儲(chǔ),因此當(dāng)儀器上電時(shí),,這些存儲(chǔ)的腳本就能自動(dòng)執(zhí)行,。這允許執(zhí)行預(yù)先載入的應(yīng)用,無(wú)需任何用戶動(dòng)作,,只需要打開(kāi)儀器的電源,。
 
  嵌入式腳本為測(cè)試和測(cè)量?jī)x器用戶提供顯著的優(yōu)點(diǎn)。雖然嵌入式腳本具有一些次要的缺點(diǎn),,例如前面介紹的對(duì)查詢陌生,,但是大多數(shù)用戶都能很容易使用或者適應(yīng)。
 
  腳本語(yǔ)言通常能自動(dòng)管理內(nèi)存,,所以用戶無(wú)需分配和釋放用于字符串或矩陣的存儲(chǔ)區(qū),。雖然這對(duì)用戶很方便,但是腳本引擎需要周期性地重新聲明不再使用的內(nèi)存,,這個(gè)過(guò)程被稱為“垃圾收集”,。雖然垃圾收集能自動(dòng)進(jìn)行,,但是這得花費(fèi)時(shí)間,而且如果在測(cè)試序列的關(guān)鍵時(shí)間段上發(fā)生垃圾收集就會(huì)出現(xiàn)問(wèn)題,。這些問(wèn)題是可以預(yù)防的,,但是首先用戶必須理解垃圾收集器的影響并且知道如何在測(cè)試序列的關(guān)鍵時(shí)間段上避免垃圾收集。
 
下面介紹一下LXI和腳本
 
  現(xiàn)行的測(cè)試儀器LXI標(biāo)準(zhǔn)不要求儀器可編程或?qū)崿F(xiàn)腳本,。然而,,LXI標(biāo)準(zhǔn)中的許多特點(diǎn)預(yù)先考慮了可編程儀器,并提供有用的功能性以增強(qiáng)LXI標(biāo)準(zhǔn)儀器的腳本性能,。
 
  LXI標(biāo)準(zhǔn)要求Class A和Class B儀器通過(guò)LAN消息支持對(duì)等消息傳送,,并允許Class C儀器支持這種消息傳送。LAN消息能用于通知其它LXI儀器事件或者觸發(fā)另一臺(tái)儀器執(zhí)行某些功能,。在接收到LAN消息時(shí),,用戶必須能指明采取什么動(dòng)作。為了實(shí)現(xiàn)這個(gè),,最靈活的方法以及LXI標(biāo)準(zhǔn)推薦的方法是允許用戶下載可執(zhí)行代碼(即腳本或程序)到儀器中,,然后在接收到適合的LAN消息時(shí)執(zhí)行該代碼。這提供了極大靈活性,,因?yàn)橛脩舨槐痪窒抻谝唤M預(yù)定動(dòng)作集,。
 
  此外,LXI定義的LAN消息格式包含一個(gè)小空間,,用于包括任意數(shù)據(jù)作為消息的一部分,。可以傳送可執(zhí)行代碼(例如一個(gè)短腳本)作為L(zhǎng)AN消息的一部分,。這允許一臺(tái)儀器通過(guò)LAN消息控制另一臺(tái)儀器,,無(wú)需預(yù)先設(shè)置回應(yīng)。例如,,假定一臺(tái)儀器能對(duì)被測(cè)器件(DUT)進(jìn)行測(cè)量,。基于測(cè)量的結(jié)果,,第一臺(tái)儀器必須能改變由另一臺(tái)儀器施加到DUT上的激勵(lì),。基于第一次測(cè)量計(jì)算新的激勵(lì)值,,所以在之前第一臺(tái)儀器并不知道,。在這種情況下,,第一臺(tái)儀器可以發(fā)送包含一個(gè)短腳本的LAN消息至第二臺(tái)儀器以調(diào)整激勵(lì)值,。
 
Part IV測(cè)試和測(cè)量中應(yīng)用腳本的優(yōu)點(diǎn)
 
  下面介紹基于腳本的儀器的優(yōu)點(diǎn)。當(dāng)儀器也符合LXI標(biāo)準(zhǔn)時(shí),,許多優(yōu)點(diǎn)被加強(qiáng),。
 
  對(duì)于許多測(cè)試和測(cè)量應(yīng)用,,非常適合采用PC作為控制器用于與單獨(dú)儀器通信或使用帶有積分型控制器的基于時(shí)隙的系統(tǒng)。但對(duì)于其它情況,,那些方法或者由于大材小用而過(guò)于昂貴,,或者不能勝任此任務(wù)。這些應(yīng)用可以受益于基于腳本的儀器提供的額外能力和靈活性,。這部分描述了在測(cè)試和測(cè)量應(yīng)用中腳本的優(yōu)點(diǎn),。
  1. 結(jié)構(gòu)的靈活性
  構(gòu)建帶少量?jī)x器的小型測(cè)試系統(tǒng)可以不帶單獨(dú)控制器;其中一臺(tái)儀器用作控制器,,管理其它儀器的工作,。大系統(tǒng)能被劃分為各含少量?jī)x器的子系統(tǒng),其中每個(gè)子系統(tǒng)被基于腳本的儀器管理,。這簡(jiǎn)化了系統(tǒng)設(shè)計(jì)并且有助于提高性能,。例如在裝配線、科學(xué)應(yīng)用或射頻測(cè)試應(yīng)用中,,這類子系統(tǒng)使用基于LXI腳本的儀器就能很大程度地在物理上分開(kāi),。
 
  2. 提高性能
  由基于腳本的儀器管理將大系統(tǒng)劃分為子系統(tǒng),這擴(kuò)展了跨多處理器的控制和數(shù)據(jù)處理功能,,從而提升了系統(tǒng)可用的總處理能力并且常常提升整體速度和吞吐量,。此外,這種工作劃分支持并行測(cè)試:當(dāng)中心控制器忙于其它任務(wù)時(shí),,儀器或子系統(tǒng)不必保持空閑狀態(tài),。
 
  因?yàn)楫?dāng)傳輸命令或數(shù)據(jù)時(shí),由于與控制器通信造成的延時(shí)更少,,所以儀器上運(yùn)行的腳本能以最大速度運(yùn)行,。當(dāng)儀器執(zhí)行重復(fù)測(cè)試序列時(shí),這尤其重要,。如果用單獨(dú)的控制器,,即使同樣的序列被運(yùn)行了幾百次或者幾千次,每次通過(guò)時(shí)都要傳送一次指令序列到儀器,。對(duì)比使用腳本的方法,,僅需傳輸一次腳本,然后使用短指令可以運(yùn)行任意多的次數(shù),。
 
  條件處理(例如當(dāng)一個(gè)測(cè)量的結(jié)果確定下一個(gè)要執(zhí)行的函數(shù)時(shí))提供了另一種提高性能的手段,。在腳本中,本地進(jìn)行條件檢查能去除由發(fā)送第一結(jié)果至控制器,,等待控制器處理,,然后發(fā)送下一個(gè)指令給儀器這個(gè)過(guò)程產(chǎn)生的延時(shí)。
 
  在包含高數(shù)據(jù)率和/或大數(shù)據(jù)集的系統(tǒng)中,通信延遲,、帶寬限制和控制器吞吐量都可能是嚴(yán)重的瓶頸,。基于腳本的儀器能壓縮數(shù)據(jù)以降低帶寬要求和/或緩沖數(shù)據(jù),,當(dāng)帶寬可用時(shí)再通過(guò)后臺(tái)傳輸,。基于腳本的儀器還能過(guò)濾數(shù)據(jù),,例如通過(guò)僅傳送超出正常限度的數(shù)據(jù),。如前面所提到的,腳本還降低了消耗的通信帶寬,,從控制器發(fā)送命令至儀器,,從而提高帶寬受限應(yīng)用的性能并且最小化由于通信延遲引起的時(shí)延。
 
  3.降低成本
  使用基于腳本的儀器構(gòu)建較小或較低復(fù)雜度的測(cè)試系統(tǒng)不需要單獨(dú)的控制器,,從而節(jié)省了控制器的成本并節(jié)省了用于控制儀器的任意單獨(dú)測(cè)試運(yùn)行軟件的成本,。當(dāng)從基于腳本的儀器構(gòu)建子系統(tǒng)時(shí),構(gòu)建大的測(cè)試系統(tǒng)同樣可以實(shí)現(xiàn)節(jié)約成本,。

本站內(nèi)容除特別聲明的原創(chuàng)文章之外,,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點(diǎn),。轉(zhuǎn)載的所有的文章,、圖片、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有,。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無(wú)法一一聯(lián)系確認(rèn)版權(quán)者,。如涉及作品內(nèi)容、版權(quán)和其它問(wèn)題,,請(qǐng)及時(shí)通過(guò)電子郵件或電話通知我們,,以便迅速采取適當(dāng)措施,避免給雙方造成不必要的經(jīng)濟(jì)損失,。聯(lián)系電話:010-82306118,;郵箱:[email protected]