集成傳統(tǒng)測試儀器與模塊化儀器
基于消息和基于寄存器的設(shè)備差別給模塊化儀器創(chuàng)造了速度的優(yōu)勢。在傳統(tǒng)基于消息的儀器中,SCPI命令用ASCII碼發(fā)送,例如:MEASure:VOLTage:DC? 10.0,0.001
這個命令要求進行一個直流電壓測量,最大值10V,分辨率1mV。然而儀器是不懂得這種類似英文的命令的。儀器內(nèi)部處理出必須解析(翻譯)一個命令以理解需要做什么。SCPI解析通常需要若干毫秒來完成。
然后測量開始執(zhí)行,由內(nèi)部寄存器訪問儀器硬件。根據(jù)測量,這種操作僅需要若干微妙。上述電壓測量在100微秒內(nèi)可完成,得到二進制格式的結(jié)果。然后儀器把結(jié)果轉(zhuǎn)為ASCII碼,發(fā)回給控制器??刂破靼袮SCII碼轉(zhuǎn)為二進制來存儲或者和限制標(biāo)準(zhǔn)比較。整個過程要幾個毫秒,即使測量僅僅需要微秒級。
對于基于寄存器的設(shè)備,這個過程完全不同。軟件驅(qū)動被調(diào)用直接執(zhí)行寄存器操作。結(jié)果作為二進制數(shù)據(jù)直接被控制器使用,不需轉(zhuǎn)化。速度提高50倍已經(jīng)被證實。
然而,還有一個易用性的折中。SCPI命令容易使用和讀取。也是可移植的;可以在任何操作系統(tǒng)或自動環(huán)境中工作??梢员苊馐褂抿?qū)動,盡管驅(qū)動在某些請況很有用。如果測量速度不是至關(guān)重要的,或者測量時間遠(yuǎn)遠(yuǎn)大于命令翻譯時間,基于消息的儀器都是一個好的選擇??紤]所有這些原因,很多系統(tǒng)都是既包括傳統(tǒng)的基于消息的儀器,也包括模塊化的基于寄存器的儀器。
集成混合系統(tǒng)
集成傳統(tǒng)和模塊化儀器在一個混合系統(tǒng)中,第一部分是選擇互連和配置。LXI儀器需要使用以太網(wǎng)。而LAN網(wǎng)絡(luò)不是完全相同的。很少直接把儀器連接到企業(yè)LAN網(wǎng)中。網(wǎng)絡(luò)中的數(shù)據(jù)可能會干擾和減慢實時儀器控制執(zhí)行,而儀器也會顯著增加網(wǎng)絡(luò)流量。通常,LXI儀器被置于一個完全不同的網(wǎng)絡(luò)。
這樣,控制器需要兩個LAN接口:一個連接到企業(yè)LAN網(wǎng),可以管理測試計劃和結(jié)果,另一個專用于儀器控制。使用一個以太網(wǎng)開關(guān)從控制器到每一臺儀器。這需要在控制器中安裝第二塊NIC(網(wǎng)卡)。
基于PCIe的模塊化系統(tǒng)也是類似的。從控制器到企業(yè)是LAN網(wǎng)的通信,而儀器通信是通過PCIe。大多數(shù)計算機內(nèi)部有PCIe。和LXI不同,儀器是同一PCIe網(wǎng)絡(luò)的一部分,內(nèi)存映射和所有其他計算機外設(shè)一樣,這就是如何獲得速度提升的原因。
內(nèi)部PCIe總線必須采用緩沖,以避免加載這些外部儀器的時間。這樣,必須安裝PCIe接口卡,允許PCIe擴展為像一根電纜對于PXI,AXIe,或VXI 4.0機架。這緩沖了PCIe總線但保持相同的內(nèi)存映射。如一個系統(tǒng)使用多個PCIe機架,需要每個都安裝額外的接口卡,或者機架擴展。下圖所示系統(tǒng)配置了LAN和PCIe作為通信信道。下一步是添加所需軟件。
儀器軟件分層
無論是基于消息的儀器還是基于寄存器的儀器,都需要I/O命令。簡單的基于SCPI的儀器需要某種方式把控制器的命令發(fā)送給儀器,這就需要VISA。VISA是一種業(yè)界標(biāo)準(zhǔn)的API,用于從PC和儀器通信。VISA版本可以從接口卡廠商處獲得。VISA也支持和LXI儀器的通信,以及PCIe內(nèi)存映射儀器,如PXI,AXIe和VXI 4.0。
VISA,或者相應(yīng)的I/O庫,是基于消息的儀器需要的最少的軟件。安裝VISA后,可以根據(jù)手冊命令進行儀器SCPI編程。
VISA本身,很少足夠控制PCIe儀器。還需要驅(qū)動程序來生成儀器的功能。IVI驅(qū)動,基于由IVI聯(lián)盟管理的標(biāo)準(zhǔn)API,被設(shè)計用于從PC環(huán)境實現(xiàn)儀器控制。
IVI驅(qū)動設(shè)計為了處理兩個問題:軟件完成實際寄存器操作,是儀器功能的核心;并在驅(qū)動層面保證不同類型儀器和不同廠商儀器之間的兼容性。這樣,IVI借用SCPI來定義基于產(chǎn)品類別的類(Classes),采用的API看起來和SCPI命令特別類似。例如,同樣的IVI功能調(diào)用數(shù)字萬用表(DMM,digital multimeter)是這樣:
dmm.DCVoltage.Measure(10.0, 0.001)
因為這條調(diào)用在編譯時完成,很少時間損失在命令執(zhí)行時。執(zhí)行時不需要命令解析。
IVI驅(qū)動有好幾種,如IVI-C,IVI-COM,為不同環(huán)境優(yōu)化。PXI和AXIe產(chǎn)品幾乎毫無例外地支持IVI-C,它可用于任何微軟自動化環(huán)境,包括Microsoft Visual Studio,LabView, Matlab, Agilent VEE。要使用IVI驅(qū)動還需要同時安裝一些共享組件。IVI Foundation網(wǎng)站提供了關(guān)于使用這些驅(qū)動的細(xì)節(jié)。儀器廠商也可以根據(jù)不同操作環(huán)境提供特別訂制的驅(qū)動。包括LabView和Matlab驅(qū)動。
安裝好需要的軟件驅(qū)動,儀器可以編程用于自動化環(huán)境。模塊化儀器使用選定的驅(qū)動來編程。盡管基于消息的儀器可以直接用SCPI編程,很多時候也可以被相同的IVI驅(qū)動控制,和模塊化儀器一樣,例如IVI-C或LabView。這使得多了額外一層一致性,并允許在傳統(tǒng)儀器和模塊化儀器之間替換。
下圖顯示了混合系統(tǒng)中的軟件分層。
嵌入式控制器
此前介紹的是使用外部控制器與LXI儀器或PCIe儀器交互。如果控制器是嵌入在模塊化系統(tǒng)里面的呢?這種方法有什么優(yōu)缺點呢?
主要變化是PCIe接口,它用于和模塊化系統(tǒng)機架通信,基本上是嵌入在模塊控制器里面的。此外,系統(tǒng)架構(gòu)是相同的。如果控制器要控制LXI儀器,也需要有兩個LAN口,一個用于LXI儀器控制,一個用于連接企業(yè)LAN網(wǎng),和使用外部控制器相同。嵌入式控制器通常有一個額外的擴展端口,可以安裝網(wǎng)卡或連電纜的PCIe卡。
使用嵌入式控制器的一個優(yōu)勢是系統(tǒng)可以集成得更小,更輕,更便攜。另一個優(yōu)勢是作為帶有穩(wěn)定PCIe計數(shù)的儀器控制器,經(jīng)驗證工作穩(wěn)定。
計數(shù)是計算機定位和辨識所有PCIe設(shè)備的過程。很多計算機無法驗證對于模塊化儀器產(chǎn)生的深層PCIe樹結(jié)構(gòu)的計數(shù)。因此,一些儀器,盡管安裝在機架上,也無法被辨識和控制。這種情況通常需要計算機廠商更新BIOS來解決問題。嵌入式控制器,通過其設(shè)計和大量測試,本質(zhì)上確保正確地執(zhí)行計數(shù)功能。
第三個優(yōu)勢是企業(yè)監(jiān)控。盡管形式對于很多工程師不重要,但嵌入式控制器更易于被企業(yè)IT部門接受,作為儀器系統(tǒng)的一部分,而外部連接的電腦通常屬于IT部門管理范疇。為避免購買時批準(zhǔn)的延遲,一些工程師直接購買嵌入式控制器。
曾經(jīng),嵌入式控制器還有速度優(yōu)勢,因為其總線長度更短與背板通信更快。但高速串行標(biāo)準(zhǔn)改變了這一點,連電纜的PCIe與外部控制器也可以達到幾乎同樣的全部帶寬。
嵌入式控制器也有一些劣勢。第一點是成本。儀器控制相對于消費類電子或工業(yè)自動化的市場份額很小,因此,成本相當(dāng)高。
第二個缺點是性能。外部商用PC通常有最高性能的處理器和架構(gòu),每幾個月就有更新?lián)Q代。嵌入式儀器控制器沒有如此大的投資,設(shè)計周期少,通常落后于商用PC。因此,高性能控制器通常是采用獨立的控制器,也節(jié)省成本。一種通用的折中是采用工業(yè)機架控制器,相對性能高價格合適,只是需要1U的機架空間。
外部控制器的另外一個優(yōu)勢是可擴展性。外部控制器提供多個擴展槽,可用于控制其它外設(shè)或者額外的LAN和PCIe借口。
總之,好的儀器系統(tǒng)設(shè)計讓用戶能結(jié)合傳統(tǒng)儀器和模塊化儀器的優(yōu)勢,為自己的應(yīng)用選擇最好地方案。本文側(cè)重于計算機系統(tǒng)和軟件挑戰(zhàn),以及整合混合儀器系統(tǒng)的多種選擇。以后,還將繼續(xù)這個話題的討論,從電子和機械方面挖掘更多的挑戰(zhàn)和選擇。
評論