模塊化儀器系統(tǒng)——靈活且用戶可以定制的軟件和可擴(kuò)展的硬件組件
設(shè)備的日趨復(fù)雜和技術(shù)的漸進(jìn)融合,正驅(qū)使測試系統(tǒng)變得更加靈活。但成本的壓力要求系統(tǒng)具有更長的生命周期,而測試系統(tǒng)更加需要考慮能夠容納設(shè)備隨時(shí)間帶來的各種變化。實(shí)現(xiàn)這些目標(biāo)的唯一方式便是采用一種軟件定義的模塊化架構(gòu)。本文將通過虛擬儀器系統(tǒng)引入軟件定義的概念,為硬件平臺(tái)和軟件實(shí)現(xiàn)提供多種選擇,并討論模塊化儀器系統(tǒng)是如何滿足自動(dòng)化測試設(shè)備(ATE)的要求。
目前有兩種類型的儀器系統(tǒng),虛擬儀器系統(tǒng)和傳統(tǒng)儀器系統(tǒng)。圖1描述了這兩種類型儀器系統(tǒng)的架構(gòu)。兩者具有相似的硬件組件,兩種架構(gòu)的主要差別在于軟件所在的位置以及是否可以被用戶訪問。
圖1展示了這兩種類型儀器系統(tǒng)的相似之處。兩者都具有測量硬件、1個(gè)機(jī)箱、1個(gè)電源、1條總線、1個(gè)處理器、1個(gè)操作系統(tǒng)和1個(gè)用戶界面。由于這兩類儀器使用相同的基本組件,所以單從硬件的角度來看,兩者間最明顯的區(qū)別在于如何將這些組件進(jìn)行封裝。傳統(tǒng)的(或分立)儀器將其所有組件放置在同一個(gè)機(jī)箱(這個(gè)機(jī)箱適用于任何分立儀器)中。通過GPIB、USB或LAN/局域網(wǎng)控制的手動(dòng)儀器便是臺(tái)式儀器的一個(gè)典型。這些儀器是作為分立器件設(shè)計(jì)的,其主要設(shè)計(jì)目的并不是集成為系統(tǒng)使用。雖然傳統(tǒng)儀器數(shù)量眾多,但就儀器本身而言,其軟件處理和用戶界面都是固定的,僅當(dāng)廠商選擇更新時(shí)才可以被更新,而且如何更新也取決于廠商的選擇(例如通過固件的更新)。因此,用戶不可能通過傳統(tǒng)儀器進(jìn)行其功能列表未囊括的測量,而且這使得根據(jù)新的標(biāo)準(zhǔn)進(jìn)行測量,或者根據(jù)需求的變化調(diào)整原系統(tǒng),都極具挑戰(zhàn)性和潛在風(fēng)險(xiǎn)。
相比之下,由軟件定義的虛擬儀器使得用戶可以直接訪問硬件上的原始數(shù)據(jù),以便定義用戶自己的測量和用戶界面。通過這種軟件定義的方式,用戶可以進(jìn)行定制的測量,根據(jù)新誕生的標(biāo)準(zhǔn)進(jìn)行測量,或者根據(jù)需求變化調(diào)整系統(tǒng)(例如增加儀器、通道或測量)。盡管用戶定義的軟件也可應(yīng)用于分立的專用硬件,但其最理想的搭配還是通用的模塊化硬件,通過這種結(jié)合,測量軟件的靈活性和性能都可以得到充分的利用。這種靈活的、用戶定義的軟件與可擴(kuò)展的硬件組件組合,便是模塊化儀器系統(tǒng)的核心所在。
支持系統(tǒng)可擴(kuò)展性的模塊化硬件
模塊化儀器系統(tǒng)可以采取多種形式。在一個(gè)設(shè)計(jì)良好的模塊化儀器系統(tǒng)中,許多組件(例如機(jī)箱和電源)為多個(gè)儀器模塊所共用,而不是為每一個(gè)儀器重復(fù)配置這些組件。這些儀器模塊也可以包含不同類型的硬件,例如示波器、函數(shù)發(fā)生器、數(shù)字化儀以及RF等。在某些情形下(如圖2所示),測量硬件僅僅是一個(gè)安裝于主機(jī)端口或插槽的外設(shè)。在此情形下,主機(jī)PC提供用以運(yùn)行測量軟件的處理器、電源、I/O以及機(jī)箱。
在另一些情形下,例如在PXI(面向儀器的PCI拓展系統(tǒng))中,其測量硬件被安裝于工業(yè)機(jī)箱內(nèi),如圖3所示。
對(duì)于PXI系統(tǒng),其主機(jī)可以嵌入于機(jī)箱,或者是一個(gè)分離的便攜機(jī)、臺(tái)式機(jī)或服務(wù)器,它通過有線接口控制測量硬件。由于PXI系統(tǒng)使用與PC內(nèi)部總線相同的總線(PCI和PCIe)和現(xiàn)成可用的PC組件以實(shí)現(xiàn)對(duì)系統(tǒng)的控制,因此,無論是使用PXI系統(tǒng)還是PC,均可作為模塊化儀器系統(tǒng)的硬件平臺(tái),只是PXI為模塊化儀器系統(tǒng)提供了一些獨(dú)有優(yōu)點(diǎn),如更高的通道數(shù)、便攜性和堅(jiān)固性。不論系統(tǒng)使用了PXI、帶有內(nèi)插式模塊或是帶有I/O外設(shè)模塊的臺(tái)式機(jī),這種共享機(jī)箱和處理器的方式不僅大大地降低了成本,同時(shí)還支持用戶對(duì)測量與分析軟件的控制。雖然模塊化儀器系統(tǒng)也存在多種配置選擇,但該類型儀器系統(tǒng)與傳統(tǒng)儀器系統(tǒng)的區(qū)別之處在于,其軟件是開放的,以便在測試需求發(fā)生變化或傳統(tǒng)儀器無法完成測量時(shí),用戶可以定義自己所需的測量。
值得注意的是,這種模塊化方法并不意味著與將所有的功能集結(jié)在單一盒子內(nèi)的傳統(tǒng)儀器相比較,會(huì)存在儀器或通道間同步的問題。相反地,模塊化儀器的設(shè)計(jì)目的在于可被集成,以供系統(tǒng)使用。所有的模塊化儀器均通過共享的時(shí)鐘和觸發(fā)器提供定時(shí)和同步的能力。例如,就最高同步精度而言,基帶、IF和RF儀器可以實(shí)現(xiàn)儀器間偏移低于100 ps的相互同步,優(yōu)于同一臺(tái)儀器的多個(gè)通道間的同步偏移。
模塊化降低成本、減小尺寸、提高吞吐量、拓展生命周期
雖然“模塊化”有時(shí)會(huì)狹隘地僅用于基于硬件封裝,但模塊化儀器系統(tǒng)所涵蓋的內(nèi)容遠(yuǎn)不止封裝。用戶應(yīng)當(dāng)期望模塊化儀器系統(tǒng)帶來三方面的收益:更低的成本與更小的尺寸(通過共用機(jī)箱、背板和處理器);更高的吞吐量(通過與主機(jī)處理器的高速連接);更高的靈活性與更長的生命周期(通過用戶定義的軟件)。
如上所述,模塊化儀器系統(tǒng)中的所有儀器共用同1個(gè)電源、機(jī)箱和控制器。而分立儀器則為每一個(gè)儀器重復(fù)配置電源供應(yīng)、機(jī)箱和(或)控制器,從而增加了成本與尺寸并降低了可靠性。事實(shí)上,不論P(yáng)C使用怎樣的總線,每個(gè)自動(dòng)化的測試系統(tǒng)僅需要1個(gè)PC,所有儀器都基于模塊化架構(gòu),為整個(gè)系統(tǒng)分擔(dān)了成本。在模塊化儀器系統(tǒng)中,GHz PC處理器分析數(shù)據(jù)并利用軟件完成測量。其測量吞吐量是傳統(tǒng)儀器(這些儀器使用內(nèi)置的廠商定義的固件和專用處理器)的十倍到百倍。例如,一個(gè)典型的向量信號(hào)分析儀(VSA)每秒可以完成0.13次帶內(nèi)功率測量,而一個(gè)NI模塊化VSA每秒可以完成4.18次帶內(nèi)功率測量,達(dá)到近33倍的改進(jìn)。
模塊化儀器需要一個(gè)高帶寬、低時(shí)延的總線,實(shí)現(xiàn)從儀器模塊到共享處理器的連接,以執(zhí)行用戶定義的測量。雖然USB在易用性方面提供了極好的用戶體驗(yàn),但PCI與PCIe(以及基于這些總線拓展而得的PXI平臺(tái))在模塊化儀器系統(tǒng)中提供了最佳的性能。目前,PCIe提供高達(dá)4 GB/s的插槽帶寬,超過高速USB的33倍,是100 Mb/s以太網(wǎng)的160倍,甚至是即將推出的千兆以太網(wǎng)的16倍(如圖4所示)。外設(shè)總線(例如LAN與USB)是通過一個(gè)內(nèi)部總線(例如PCIe)與PC處理器相連,因而性能不會(huì)很高。下面舉一個(gè)高速總線如何影響測試與測量的范例:考慮一個(gè)模塊化RF采集系統(tǒng),在一個(gè)臺(tái)式機(jī)或一個(gè)帶有4個(gè)2 GB/s插槽的PXI系統(tǒng),可以將2個(gè)通道的100 MS/s、16 位IF(中頻)數(shù)據(jù)以數(shù)據(jù)流的方式直接傳輸?shù)教幚砥鞴┻\(yùn)算處理。由于LAN與USB都不能滿足這些需求,所以需要提供一個(gè)嵌入式的、廠商定義的處理器,以完成測量,而這樣的儀器就不再是模塊化的了。
在模塊化儀器中,與主機(jī)的高速連接實(shí)現(xiàn)了該儀器的高靈活性和更長的生命周期,因?yàn)樗С周浖v留于該主機(jī),而不是駐留在該儀器。利用該主機(jī)上運(yùn)行的軟件,用戶(而不是廠商)可以定義儀器的運(yùn)行方式。這樣的架構(gòu)使用戶能夠:(1)進(jìn)行那些不夠普遍以致未能包含在典型的、廠商定義的、非模塊化方法中的測量;(2)為尚未發(fā)布的標(biāo)準(zhǔn)創(chuàng)建測量;(3)定義用于進(jìn)行特殊測量的算法。軟件的用戶定義也意味著,用戶可以在受測設(shè)備發(fā)生變化時(shí)增加或調(diào)整測量。用戶也可以利用軟件直接訪問跨網(wǎng)絡(luò)監(jiān)視或控制這些模塊化儀器。
值得注意的是,這些硬件實(shí)現(xiàn)方式并沒有犧牲測量性能。目前,利用模塊化儀器系統(tǒng)搭建的儀器包括業(yè)界最高精度的數(shù)字化儀、最高帶寬的任意波形發(fā)生器和最精確的7位半數(shù)字萬用表。
支持靈活、定制測量的軟件
軟件在模塊化儀器系統(tǒng)中的作用非常重要。軟件將來自硬件的原始比特流轉(zhuǎn)換為一個(gè)有用的測量值。一個(gè)設(shè)計(jì)良好的模塊化儀器系統(tǒng)兼顧軟件的多個(gè)層次,包括I/O驅(qū)動(dòng)程序、應(yīng)用程序開發(fā)和測試管理,如圖5所示。
位于最底層的是測量與控制服務(wù)層,雖然常常被忽視,但它仍然是一個(gè)模塊化儀器系統(tǒng)最為關(guān)鍵的要素之一。該層代表了I/O驅(qū)動(dòng)軟件和硬件配置工具。這個(gè)驅(qū)動(dòng)軟件非常關(guān)鍵,因?yàn)樗峁┝藴y試開發(fā)軟件和用于測量與控制的硬件之間的連接。
儀器驅(qū)動(dòng)程序提供一組面向與儀器交互的高層次的、用戶可讀的函數(shù)。每個(gè)儀器驅(qū)動(dòng)程序都有一個(gè)特定的儀器模型,以提供訪問該儀器獨(dú)特功能的接口。在儀器驅(qū)動(dòng)程序中,與開發(fā)環(huán)境的集成尤為重要,因?yàn)檫@關(guān)系著儀器的命令能否與應(yīng)用開發(fā)無縫集成。系統(tǒng)開發(fā)人員需要專為他們所選的開發(fā)環(huán)境(如NI LabVIEW、C、C++或Microsoft .NET)而優(yōu)化的儀器驅(qū)動(dòng)程序接口。
同樣包含在測量與控制服務(wù)層中的還有配置工具。這些配置工具包括用于I/O的配置和測試資源,以及存儲(chǔ)擴(kuò)展、校準(zhǔn)和通道相關(guān)信息。這些工具對(duì)于儀器系統(tǒng)的快速構(gòu)建、故障排除和維護(hù)非常重要。
應(yīng)用開發(fā)環(huán)境層中的軟件提供了用于開發(fā)應(yīng)用所需的代碼或規(guī)程的工具。雖然圖形化編程并不是模塊化儀器系統(tǒng)所必需的,但這些系統(tǒng)通常使用圖形化工具,以保證其易用性和快速開發(fā)。圖形化編程使用“圖標(biāo)”或符號(hào)函數(shù),它們以圖示方式表示所要執(zhí)行的操作。這些符號(hào)通過“連線”相連,以傳遞數(shù)據(jù)并確定其執(zhí)行的順序。LabVIEW提供了業(yè)界最常用的、也是最完整的圖形化開發(fā)環(huán)境。
一些應(yīng)用還需要一個(gè)附加的軟件管理層,用于測試執(zhí)行或測試數(shù)據(jù)的可視化。這一要求在系統(tǒng)管理軟件層得以體現(xiàn)。對(duì)于高度自動(dòng)化的測試系統(tǒng),測試管理軟件提供了一個(gè)面向順序執(zhí)行、分支/循環(huán)、報(bào)告生成和數(shù)據(jù)庫集成的框架。測試管理工具還必須能夠緊密集成專用代碼的開發(fā)環(huán)境。例如,NI TestStand提供了用于順序執(zhí)行、分支、報(bào)告生成和數(shù)據(jù)庫集成的一個(gè)框架,并包含了與所有常用開發(fā)環(huán)境的連接。而其他一些工具可能對(duì)需要觀察大量測試數(shù)據(jù)的應(yīng)用起到幫助。這些需求包括快速訪問大量散落的數(shù)據(jù)、一致的報(bào)告和數(shù)據(jù)的可視化。這些軟件工具,針對(duì)采集過程中所采集的數(shù)據(jù)和(或)仿真過程中所生成的數(shù)據(jù),為管理、分析和報(bào)告這些數(shù)據(jù)提供輔助功能。
對(duì)于模塊化儀器系統(tǒng),該軟件架構(gòu)中的每一層都應(yīng)當(dāng)仔細(xì)考慮。
模塊化儀器系統(tǒng)——滿足自動(dòng)化測試的需要
當(dāng)設(shè)備變得愈為復(fù)雜并涵蓋更多迥異的技術(shù)時(shí),測試系統(tǒng)必須變得更為靈活。雖然測試系統(tǒng)必須容納隨時(shí)間變化的設(shè)備,但成本的壓力要求系統(tǒng)具有更長的生命周期。實(shí)現(xiàn)這些目標(biāo)的唯一方式便是采用一種軟件定義的模塊化架構(gòu)。通過共享組件、高速總線和開放的、用戶定義的軟件,模塊化儀器系統(tǒng)最佳地滿足了ATE目前的需求和未來的需要。