張志利 侯傳勛, 姜 毅
(第二炮兵工程學(xué)院兵器發(fā)射理論與技術(shù)國家重點(diǎn)學(xué)科實(shí)驗(yàn)室1,陜西 西安 710025;北京理工大學(xué)宇航學(xué)院2,北京 100081)
儀器互聯(lián)與控制技術(shù)探討
張志利1侯傳勛1,2姜 毅2
(第二炮兵工程學(xué)院兵器發(fā)射理論與技術(shù)國家重點(diǎn)學(xué)科實(shí)驗(yàn)室1,陜西 西安 710025;北京理工大學(xué)宇航學(xué)院2,北京 100081)
為實(shí)現(xiàn)多儀器設(shè)備間的互聯(lián)和互操作,構(gòu)建大型自動(dòng)測(cè)控系統(tǒng),探討了各種儀器總線和儀器控制軟件實(shí)現(xiàn)方式的優(yōu)缺點(diǎn)和應(yīng)用場(chǎng)合。揭示了以實(shí)現(xiàn)硬件層次上通信鏈路的多樣化、軟件層次上通信鏈路的統(tǒng)一化和軟件控制方式的標(biāo)準(zhǔn)化為主線的儀器控制技術(shù)發(fā)展趨勢(shì),闡明了靈活配置測(cè)控系統(tǒng)儀器設(shè)備和開發(fā)獨(dú)立于儀器廠商、儀器型號(hào)和儀器接口的通用測(cè)控程序的技術(shù)途徑。最后,給出了構(gòu)建和開發(fā)儀器控制系統(tǒng)的基本原則。
儀器控制 總線 驅(qū)動(dòng) I/O接口 編程模式
隨著系統(tǒng)規(guī)模的不斷擴(kuò)大,直接利用現(xiàn)有儀器或模塊化設(shè)備來構(gòu)建測(cè)試控制系統(tǒng)已經(jīng)日益成為縮短研發(fā)周期、提高設(shè)備再利用率、降低生產(chǎn)成本和提高生產(chǎn)效率的有效手段。特別是在航天發(fā)射平臺(tái)監(jiān)控、風(fēng)洞試驗(yàn)、大型武器系統(tǒng)性能測(cè)試、產(chǎn)品流水線控制和新品原型驗(yàn)證等場(chǎng)合,這種模式已得到了廣泛的應(yīng)用。因此,如何有效控制在用的儀器設(shè)備,確保設(shè)備間的互聯(lián)互通和良好的互操作性就成為十分關(guān)鍵的問題。
本文針對(duì)上述問題,通過對(duì)儀用總線和儀控軟件實(shí)現(xiàn)方式的探討,揭示了儀器控制技術(shù)的發(fā)展歷程和發(fā)展趨勢(shì),闡明了開發(fā)獨(dú)立于儀器廠商、儀器型號(hào)和儀器接口的通用測(cè)控程序的技術(shù)途徑?;趯?duì)儀器控制硬軟件技術(shù)的深入分析,給出了儀器控制系統(tǒng)的構(gòu)建和開發(fā)原則。需要注意的是,本文討論的儀器泛指那些內(nèi)置有微處理器、可通過其I/O接口被編程控制以實(shí)現(xiàn)自動(dòng)化測(cè)試測(cè)量的獨(dú)立儀器或模塊化設(shè)備。
儀器控制的首要任務(wù)是通過儀器本身的總線接口,建立至系統(tǒng)控制器的直接或間接物理連接。儀用總線通??煞譃樵O(shè)備總線和系統(tǒng)總線兩大類,前者如通用接口總線(general purpose interface bus,GPIB)、RS-232、RS-422、RS-485、USB、FireWire、Ethernet、Wireless等,后者如 PCI、PXI、PCIe、VXI等[1-2]。每種總線因其通信速度、通信距離、可靠性和機(jī)械特性等規(guī)格的不同,有著不同的應(yīng)用場(chǎng)合。儀器總線的多樣性,為各種復(fù)雜應(yīng)用中系統(tǒng)控制器及各種不同接口的儀器設(shè)備間的通信鏈路的構(gòu)建、維護(hù)和擴(kuò)展提供巨大的便利和靈活性。
GPIB又稱作HP-IB(Hewlett-Packard interface bus)或IEEE 488總線,它定義了GPIB的電氣(最高通信速度為1 Mbit/s)、機(jī)械和功能規(guī)格,但由于未統(tǒng)一通信語法和數(shù)據(jù)格式轉(zhuǎn)換方法,會(huì)造成儀器通信上的不兼容和儀器配置上的混亂。IEEE 488.2于1987年推出,它在IEEE 488.1的基礎(chǔ)上實(shí)現(xiàn)了數(shù)據(jù)代碼、數(shù)據(jù)格式、消息傳輸協(xié)議和基本命令集的統(tǒng)一,同時(shí)還定義了新的狀態(tài)報(bào)告模型[3-4]。1990年,IEEE 488.2通過納入程控儀器標(biāo)準(zhǔn)命令集(standard commands for programmable instrumentation,SCPI),進(jìn)一步提高了其統(tǒng)一性和兼容性。2003年推出的新版本IEEE 488.1-2003則為GPIB定義了8 Mbit/s的高速傳輸模式。
一個(gè)GPIB控制器允許以串行、并行或串并混合方式同時(shí)連接15個(gè)GPIB設(shè)備,且在最長20 m的范圍內(nèi)(兩設(shè)備間電纜長度通常應(yīng)小于4 m)實(shí)現(xiàn)最高8 Mbit/s的傳輸速度,其典型優(yōu)點(diǎn)是連接方便、配置靈活。但由于不是PC的標(biāo)準(zhǔn)接口,普通PC需要安裝第三方GPIB擴(kuò)展卡才可以與GPIB儀器連接。
RS-232作為最為成熟的串行通信總線之一,同GPIB一樣,已在儀器設(shè)備中得到了廣泛的應(yīng)用。其優(yōu)點(diǎn)是普通PC通常帶有一個(gè)或多個(gè)串行接口,可直接與具有RS-232接口的儀器連接;缺點(diǎn)包括速度低(通常小于20 kbit/s,最高不超過1 Mbit/s)、通信距離短(通常不超過30 m)、配置不靈活(僅能點(diǎn)對(duì)點(diǎn)通信)、非工業(yè)級(jí)抗干擾能力差等。
RS-422和RS-485作為兩種工業(yè)級(jí)串行總線,可在1 200 m距離內(nèi)實(shí)現(xiàn)最高10 Mbit/s的傳輸速度。其中,RS-422支持一發(fā)多收(最多允許10個(gè)標(biāo)準(zhǔn)接收設(shè)備)的多點(diǎn)單向通信,而RS-485則支持多個(gè)設(shè)備間(總線上最多允許掛載32臺(tái)標(biāo)準(zhǔn)設(shè)備)的多點(diǎn)雙向通信(EIA/TIA標(biāo)準(zhǔn)中RS-485僅支持半雙工通信,經(jīng)改進(jìn)的RS-485則支持全雙工通信),且在電氣特性上完全兼容RS-422[5]。盡管兩者擁有諸多優(yōu)點(diǎn),但目前在儀器設(shè)備中仍很少直接使用,它們的真正用途在于作為大型復(fù)雜測(cè)控系統(tǒng)中儀器控制信號(hào)傳輸?shù)闹修D(zhuǎn)媒介,以克服RS-232通信距離短、配置不靈活的缺點(diǎn)。如通過使用RS-232—RS-485轉(zhuǎn)換卡,再配以必要的支持軟件,借助RS-485的多點(diǎn)雙向通信能力,即可通過PC的一個(gè)RS-232接口實(shí)現(xiàn)對(duì)多達(dá)32臺(tái)儀器的控制。
USB是目前PC領(lǐng)域應(yīng)用最為廣泛的外設(shè)接口總線之一,由USB執(zhí)行組織(USB Implementers Forum,USB-IF)制定,目前已推出 1.0、1.1、2.0、3.0 四個(gè)版本。其中,1.x、2.0和3.0三個(gè)版本的最大理論傳輸速率分別為 12 Mbit/s、480 Mbit/s、4.8 Gbit/s。通過USB Hub擴(kuò)展,一個(gè)USB接口最大允許同時(shí)連接127個(gè)設(shè)備。作為非工業(yè)級(jí)總線,由于易受外界信號(hào)干擾,線纜長度通常不宜大于3 m(當(dāng)使用信號(hào)中繼器時(shí)最大理論傳輸距離為30 m)。無機(jī)械鎖定機(jī)構(gòu)插接易松動(dòng)是USB接口的另一缺點(diǎn)。
USB的通用性及其支持熱插拔、支持即插即用、具備較大驅(qū)動(dòng)能力等特點(diǎn)構(gòu)成的易用性,使其成為儀器控制領(lǐng)域中富有前途和吸引力的總線標(biāo)準(zhǔn)之一。目前,USB已在不少高端儀器中得到應(yīng)用,但現(xiàn)階段其更為重要的作用是作為中轉(zhuǎn)或擴(kuò)展總線,即通過USB—RS-232、USB—RS-422/485、USB—GPIB、USB—Ethernet等外置轉(zhuǎn)換卡,為本來不具備相應(yīng)接口的各類控制器提供一種與目標(biāo)儀器連接的快捷方法。
FireWire(又稱IEEE 1394)與USB類似,屬于支持熱插拔操作的高速串行總線,由Apple公司于20世紀(jì)90年代早期開發(fā),其標(biāo)準(zhǔn)傳輸速率為400 Mbit/s,b版本最大傳輸速率為3.2 Gbit/s。兩設(shè)備間連接電纜長度通常小于4.5 m,最多允許16個(gè)設(shè)備通過菊花鏈形式連接,最大連接總長度為72 m。FireWire提供了與USB類似的性能,但由于其普及率低,在儀器控制領(lǐng)域中較少使用。
Ethernet是Internet的硬件基礎(chǔ),由IEEE 802.3標(biāo)準(zhǔn)定義,其10BASE-T、100BASE-TX和1000 BASE-T三種子規(guī)格的最大理論傳輸速率分別為10 Mbit/s、100 Mbit/s和1 Gbit/s。在儀器控制應(yīng)用中,Ethernet的優(yōu)點(diǎn)包括:可直接實(shí)現(xiàn)儀器的遠(yuǎn)程控制和遠(yuǎn)程共享;開放的體系結(jié)構(gòu)為儀器設(shè)備的靈活配置提供了便利,且使得可與同一控制器連接的儀器數(shù)量幾乎不受限制。在大型和超大型測(cè)控系統(tǒng)中,Ethernet的上述優(yōu)點(diǎn)是其他總線所不可比擬的。缺點(diǎn)主要是在高可靠性場(chǎng)合,其他因素導(dǎo)致的帶寬占用或網(wǎng)絡(luò)阻塞可能致使控制器與儀器間的通信出現(xiàn)滯后或中斷。類似問題可通過布設(shè)專用網(wǎng)絡(luò)解決。
Wireless(無線網(wǎng)絡(luò))可認(rèn)為是傳統(tǒng)Ethernet在傳輸介質(zhì)上的擴(kuò)展。目前,應(yīng)用較為廣泛的無線網(wǎng)絡(luò)技術(shù)是由IEEE 802.11標(biāo)準(zhǔn)定義的Wi-Fi(Wireless Fidelity),其g版本支持最高54 Mbit/s的傳輸速率。除了具有傳統(tǒng)Ethernet的所有優(yōu)點(diǎn)外,Wireless為不適宜采用電纜連接的諸多測(cè)控應(yīng)用提供了理想解決方案。
隨著測(cè)控系統(tǒng)規(guī)模的不斷增大,Ethernet和Wireless均被認(rèn)為是未來儀器控制領(lǐng)域中最有前途的總線標(biāo)準(zhǔn)之一。但由于當(dāng)前尚未在儀器設(shè)備中得到廣泛應(yīng)用,兩者在現(xiàn)階段的主要應(yīng)用形式仍是作為中轉(zhuǎn)總線,在終端通過各種 Ethernet—GPIB、Ethernet—RS-232轉(zhuǎn)換卡與目標(biāo)儀器設(shè)備連接。
PCIe(PCI express)是針對(duì)高速應(yīng)用而設(shè)計(jì)的串行總線,目前已推出1.0、2.0、2.1、3.0多個(gè)版本。其中,1.0、2.x和3.0三個(gè)主版本的傳輸速率依次為2.5 Gbit/s、5 Gbit/s和8 Gbit/s。與PCI不同,由于PCIe進(jìn)行點(diǎn)對(duì)點(diǎn)通信,故在PCIe中每個(gè)傳輸通道可獨(dú)享帶寬。盡管硬件實(shí)現(xiàn)不同,但PCIe在軟件上保持與PCI兼容,針對(duì)PCI開發(fā)的各種軟件可不加修改地在PCIe系統(tǒng)上運(yùn)行。VXI是VME(VersaModule Eurocard)針對(duì)儀器領(lǐng)域的擴(kuò)展,又稱IEEE 1155總線,最高吞吐率為40 MB/s,廣泛應(yīng)用于航空、航天或軍工領(lǐng)域。
PCI、PXI、PCIe和 VXI同屬系統(tǒng)級(jí)總線,在儀器控制應(yīng)用中它們的主要作用包括:連接各模塊化設(shè)備,以共同構(gòu)建硬件測(cè)試系統(tǒng);作為中轉(zhuǎn)或擴(kuò)展總線,通過內(nèi)置轉(zhuǎn)換卡(如PCI—GPIB、PCI—RS-232)增加系統(tǒng)中設(shè)備總線接口的種類和數(shù)量。
儀器控制軟件是儀器控制應(yīng)用的重要組成部分。與總線類型主要決定測(cè)控系統(tǒng)硬件結(jié)構(gòu)配置的靈活性不同,儀器控制軟件是測(cè)控系統(tǒng)通用性和可重用性的決定性因素。
理想的儀器控制軟件應(yīng)具有良好的通用性和靈活性,即當(dāng)更換儀器設(shè)備時(shí)測(cè)控系統(tǒng)能或幾乎能不加修改地繼續(xù)正常工作,當(dāng)測(cè)控需求發(fā)生變化而擴(kuò)充升級(jí)原系統(tǒng)或重新構(gòu)建新系統(tǒng)時(shí)能最大程度地重用已有測(cè)控代碼。不同層次的儀器控制方式對(duì)測(cè)控軟件的通用性、開發(fā)難度、開發(fā)效率和維護(hù)成本有重大影響。
無論是獨(dú)立工作模式還是被控工作模式,儀器通常都是在其自身MPU的控制下工作的,且多數(shù)控制任務(wù)最終是通過MPU對(duì)儀器內(nèi)部控制寄存器的讀寫操作完成的。在被控工作模式下,通信鏈路和控制方式是實(shí)現(xiàn)儀器控制的關(guān)鍵,前者負(fù)責(zé)跨越各種總線連接,實(shí)現(xiàn)控制命令、回讀請(qǐng)求的下傳和狀態(tài)信息、測(cè)量結(jié)果的上傳;后者則在通信鏈路已建立的情況下,決定系統(tǒng)控制器與儀器MPU之間指令和數(shù)據(jù)交互的方式與格式。儀器控制軟件的發(fā)展歷程在很大程度上正是一個(gè)在軟件層面上實(shí)現(xiàn)通信鏈路統(tǒng)一化和控制方式標(biāo)準(zhǔn)化的過程。
在儀器控制技術(shù)出現(xiàn)之后直到20世紀(jì)90年代早期的相當(dāng)長時(shí)間內(nèi),儀器編程都是針對(duì)特定總線進(jìn)行的。此情況下,即便是針對(duì)同一臺(tái)儀器編寫的測(cè)控程序,當(dāng)改用另一種總線連接時(shí),程序也無法使用。因此,軟件通用性和儀器可互換性更無從談起。這種情況直到1993年虛擬儀器軟件架構(gòu)(virtual instrument software architecture,VISA)的出現(xiàn)才發(fā)生根本性改變。
VISA是VXI即插即用系統(tǒng)聯(lián)盟(VXI Plug&Play Systems Alliance)為儀器I/O制定的軟件規(guī)格,它定義了一套獨(dú)立于具體總線的,可用于與 GPIB、RS-232、USB、PCI、PXI、VXI等幾乎所有現(xiàn)有儀器總線通信的共同API[6-7]。顯然,VISA的優(yōu)勢(shì)是巨大的,它使測(cè)控程序擺脫了對(duì)具體儀器總線的依賴,同時(shí)也提供了使用相同代碼與不同接口類型儀器建立通信鏈路的統(tǒng)一方法,從而極大地簡化了測(cè)控程序的開發(fā),并提高了其通用性。鑒于這些優(yōu)點(diǎn),在更高層次的儀器驅(qū)動(dòng)中,VISA已被作為基本儀器I/O使用。
VISA具備開放的體系結(jié)構(gòu),根據(jù)儀器總線技術(shù)的發(fā)展,它可以不斷增加對(duì)新總線的支持,從而始終保持使用上的一致性。值得注意的是,VISA本身只是一套軟件規(guī)格,其具體軟件實(shí)現(xiàn)由第三方完成。此外,它本身并不具備與儀器通信的能力,其內(nèi)部是根據(jù)目標(biāo)設(shè)備類型,通過自動(dòng)調(diào)用相應(yīng)設(shè)備的底層I/O軟件來完成與儀器通信的。顯然,VISA可視為封裝了常用總線底層I/O的高級(jí)儀器I/O。理解此層次關(guān)系對(duì)程序調(diào)試非常重要,因?yàn)楹芏嗫此芕ISA的問題很可能是由底層I/O引起的。
基于寄存器編程和基于字符串編程是通信鏈路建立之后最常用的兩種底層儀器控制方式。
采用寄存器編程模式時(shí),系統(tǒng)控制器發(fā)送的是直接與完成指定操作相關(guān)的儀器內(nèi)部寄存器的地址和數(shù)據(jù)等信息,因此,儀器MPU可以直接改寫或讀取相應(yīng)寄存器。該模式靈活、高效,在儀器控制技術(shù)發(fā)展初期被較多采用;缺點(diǎn)是要求程序員要十分熟悉儀器硬件結(jié)構(gòu)和儀器工作原理,這對(duì)大多數(shù)程序員來說顯然是不現(xiàn)實(shí)的。因此,該模式目前已幾乎不被除儀器底層驅(qū)動(dòng)開發(fā)者之外的其他測(cè)控程序開發(fā)人員使用。
采用字符串編程模式時(shí),系統(tǒng)控制器發(fā)送的是欲實(shí)現(xiàn)功能的描述性字符串,如對(duì)信號(hào)源來說,“OUT 5 V”用于輸出5 V直流電壓,而“OUT 5 V,50 Hz”用于輸出頻率為50 Hz的5 V交流電壓。相對(duì)于寄存器編程模式,儀器MPU需要自行解析字符串并完成底層相關(guān)的系列操作,因此,執(zhí)行效率有所降低。但由于該模式封裝了與儀器硬件相關(guān)的底層操作,從而大大降低了編程時(shí)對(duì)儀器硬件背景知識(shí)的要求,且它為實(shí)現(xiàn)儀器控制方式的統(tǒng)一和標(biāo)準(zhǔn)化提供了可能。
自20世紀(jì)70年代起,字符串編程模式得到了廣泛應(yīng)用。但由于缺乏統(tǒng)一標(biāo)準(zhǔn),使用的都是各廠商為特定型號(hào)儀器定義的特定字符串命令集,因此,測(cè)控軟件仍缺乏通用性。該情況直到20世紀(jì)90年代早期SCPI的出現(xiàn)才有了轉(zhuǎn)機(jī)。
SCPI由SCPI聯(lián)盟(SCPI Consortium)制定,它通過擴(kuò)展IEEE 488.2的共同命令集定義了適用于所有可編程儀器的單一字符串指令集[8-9]。目前的最新版本為SCPI 1999,同類SCPI兼容儀器對(duì)同一命令的響應(yīng)字符串格式也相同。雖擴(kuò)展自IEEE 488.2,但SCPI獨(dú)立于儀器總線,為純軟件標(biāo)準(zhǔn)。因此,SCPI命令可以通過任何總線發(fā)送給儀器而產(chǎn)生相同的結(jié)果。SCPI的意義在于首次實(shí)現(xiàn)了儀器控制方式的統(tǒng)一,而基于VISA的SCPI控制方式則使測(cè)控軟件獨(dú)立于儀器廠商、儀器型號(hào)和儀器總線成為現(xiàn)實(shí)。目前,SCPI已得到了廣泛應(yīng)用,幾乎所有主流廠商的可編程儀器都兼容SCPI。此外,SCPI聯(lián)盟已于2003年春季合并入IVI基金會(huì)(Interchangeable Virtual Instruments Foundation),這意味著在未來可預(yù)見的相當(dāng)長時(shí)間內(nèi)SCPI仍將繼續(xù)發(fā)展并被廣泛應(yīng)用。
雖然SCPI在很大程度上實(shí)現(xiàn)了控制方式的統(tǒng)一,但對(duì)軟件工程師來說,仍需要通過儀器手冊(cè)(或SCPI手冊(cè))查詢儀器命令及其格式,并將每個(gè)輸入輸出任務(wù)格式化成相應(yīng)的命令字符串。更壞的情況是,一些復(fù)雜儀器操作需要先后發(fā)送具有相互邏輯關(guān)系的多個(gè)字符串命令。顯然,在大型測(cè)控應(yīng)用中,使用SCPI編程仍是十分繁瑣的工作。解決這一問題的途徑是使用儀器驅(qū)動(dòng)(instrument drivers)。
儀器驅(qū)動(dòng)是可供用戶直接調(diào)用的、用于控制某個(gè)(類)儀器的一組高級(jí)函數(shù)庫。它封裝了通信鏈路(使用VISA實(shí)現(xiàn))、寄存器編程和SCPI編程等底層操作,將軟件開發(fā)者從與特定儀器相關(guān)的復(fù)雜底層編程協(xié)議中解放出來。借助儀器驅(qū)動(dòng),儀器控制轉(zhuǎn)變?yōu)橐话愫瘮?shù)調(diào)用問題,用戶只需根據(jù)測(cè)控需求為被調(diào)函數(shù)提供適當(dāng)?shù)娜肟诤统隹趨?shù)即可。如對(duì)信號(hào)源來說,OutputDCVoltage(5)用于輸出5 V直流電壓,而OutputACVoltage(5,50)用于輸出頻率為50 Hz的5 V交流電壓。
VXI(VME extensions for instrumentation)即插即用系統(tǒng)聯(lián)盟于1993年制定了儀器驅(qū)動(dòng)的首個(gè)標(biāo)準(zhǔn),它規(guī)定了儀器驅(qū)動(dòng)實(shí)現(xiàn)中應(yīng)遵守的軟件規(guī)格,并為儀器驅(qū)動(dòng)定義了標(biāo)準(zhǔn)且易于使用的編程模型[10-11]。符合此標(biāo)準(zhǔn)的儀器驅(qū)動(dòng)即為 VXIplug&play驅(qū)動(dòng)。所有VXIplug&play驅(qū)動(dòng)具有相同的結(jié)構(gòu)和類似的API(包括部分相同的API),這種類似性為用戶測(cè)控程序的開發(fā)提供了極大便利。鑒于上述優(yōu)點(diǎn),目前它已得到廣泛的應(yīng)用。儀器出廠時(shí)一般都隨機(jī)提供VXIplug&play驅(qū)動(dòng)程序。此外,由于使用VISA作為儀器I/O(事實(shí)上,VISA正是為 VXIplug&play驅(qū)動(dòng)開發(fā)的),因此,VXIplug&play驅(qū)動(dòng)是獨(dú)立于儀器接口的。
在使用VXIplug&play驅(qū)動(dòng)編程時(shí),仍不得不面對(duì)這樣一個(gè)問題:無論同類儀器的驅(qū)動(dòng)中同一操作對(duì)應(yīng)的調(diào)用函數(shù)是否相同(實(shí)際情況是少數(shù)相同),用于儀器控制的每次功能調(diào)用仍是針對(duì)特定儀器的,這意味著測(cè)控程序仍缺乏通用性。當(dāng)更換儀器時(shí),仍需修改或重新編寫測(cè)控程序。為解決此問題,1998年IVI基金會(huì)成立,并基于VXIplug&play標(biāo)準(zhǔn)制定了到目前為止最新且具有革命性意義的IVI儀器驅(qū)動(dòng)標(biāo)準(zhǔn)?;诖藰?biāo)準(zhǔn)開發(fā)的儀器驅(qū)動(dòng)即為IVI驅(qū)動(dòng)。
除了繼承VXIplug&play驅(qū)動(dòng)的優(yōu)點(diǎn)外,IVI驅(qū)動(dòng)還提供了諸如儀器互換、狀態(tài)緩存、自動(dòng)范圍檢查、儀器仿真和多線程安全等高級(jí)功能[12-14]。儀器互換是指使用IVI驅(qū)動(dòng)開發(fā)的測(cè)控程序不依賴于特定廠商和特定儀器接口,當(dāng)更換同類儀器后,測(cè)控程序仍可正常運(yùn)行。狀態(tài)緩存是指IVI驅(qū)動(dòng)運(yùn)行時(shí),在內(nèi)存中緩存并監(jiān)視儀器內(nèi)寄存器狀態(tài),僅當(dāng)確實(shí)有寄存器值改變時(shí)才進(jìn)行儀器I/O操作,從而大幅提高運(yùn)行效率。自動(dòng)范圍檢查是指在調(diào)用IVI驅(qū)動(dòng)的函數(shù)時(shí),會(huì)自動(dòng)對(duì)輸入?yún)?shù)值的合法性進(jìn)行檢查,并在必要時(shí)自動(dòng)修正非法參數(shù)值,從而確保程序可靠運(yùn)行。儀器仿真是指允許通過純軟件方法來模擬儀器響應(yīng),從而為物理儀器不可用時(shí)的測(cè)控程序開發(fā)與調(diào)試提供方便。多線程安全是指驅(qū)動(dòng)程序內(nèi)置特殊保護(hù)機(jī)制,以確保儀器同時(shí)被多個(gè)進(jìn)程訪問時(shí)不會(huì)出現(xiàn)意外。
在結(jié)構(gòu)上,IVI標(biāo)準(zhǔn)由IVI共享組件(IVI shared components)和IVI驅(qū)動(dòng)程序兩部分組成[15]。其中,前者由IVI基金會(huì)開發(fā),用于完成IVI系統(tǒng)配置、驅(qū)動(dòng)動(dòng)態(tài)裝載和錯(cuò)誤處理等公共操作;后者由第三方按照IVI驅(qū)動(dòng)規(guī)格開發(fā),又可細(xì)分為IVI類驅(qū)動(dòng)和IVI兼容驅(qū)動(dòng),且在具體實(shí)現(xiàn)時(shí)可采用IVI-C構(gòu)架或IVI-COM構(gòu)架。IVI以分類的方法來實(shí)現(xiàn)儀器驅(qū)動(dòng)的管理和維護(hù),目前已定義了數(shù)字萬用表、示波器、任意信號(hào)發(fā)生器、開關(guān)、功率計(jì)、頻譜分析儀和射頻信號(hào)發(fā)生器八個(gè)大類。
根據(jù)當(dāng)前主流儀器的性能指標(biāo),IVI為每類儀器定義了必須的公共操作,而按照IVI驅(qū)動(dòng)規(guī)格封裝這些公共操作的函數(shù)庫即為IVI類驅(qū)動(dòng)。相應(yīng)地,按照IVI驅(qū)動(dòng)規(guī)格為特定儀器開發(fā)的驅(qū)動(dòng)程序稱為IVI兼容驅(qū)動(dòng),它在使用上與VXIplug&play驅(qū)動(dòng)類似,但所有IVI兼容驅(qū)動(dòng)都必須支持其所屬類定義的公共操作,且提供開放的調(diào)用接口。此外,諸如仿真、狀態(tài)緩存、自動(dòng)范圍檢查等高級(jí)功能也是在IVI兼容驅(qū)動(dòng)中實(shí)現(xiàn)的。IVI實(shí)現(xiàn)儀器可互換性的本質(zhì)就是在測(cè)控程序運(yùn)行時(shí),IVI類驅(qū)動(dòng)根據(jù)目標(biāo)儀器類型,在IVI共享組件的協(xié)助下,通過動(dòng)態(tài)調(diào)用相應(yīng)IVI兼容驅(qū)動(dòng)來完成目標(biāo)儀器控制任務(wù)。這也是運(yùn)行使用IVI編寫的程序前必須安裝相應(yīng)IVI兼容驅(qū)動(dòng)的原因所在。
作為一個(gè)開放的體系,IVI允許用戶為尚未定義大類別的儀器單獨(dú)開發(fā)驅(qū)動(dòng),也允許通過IVI兼容驅(qū)動(dòng)為特定儀器驅(qū)動(dòng)擴(kuò)展新功能,并在程序開發(fā)時(shí)通過直接調(diào)用IVI兼容驅(qū)動(dòng)來使用此新功能。但顯然,只有基于IVI類驅(qū)動(dòng)開發(fā)的程序才具有儀器可互換性。
由上述討論可以看出,實(shí)現(xiàn)硬件層次上通信鏈路的多樣化和實(shí)現(xiàn)軟件層次上通信鏈路的統(tǒng)一化與儀器控制方式的標(biāo)準(zhǔn)化始終是貫穿儀器控制技術(shù)發(fā)展歷程的主線,而增加測(cè)控系統(tǒng)硬件配置靈活性、減小測(cè)控軟件開發(fā)和維護(hù)難度、實(shí)現(xiàn)測(cè)控軟件的通用性和測(cè)試儀器的可互換性,則始終是儀器控制技術(shù)發(fā)展的目的所在。上述原則既指明了儀器控制技術(shù)的發(fā)展趨勢(shì),又為儀器控制系統(tǒng)的開發(fā)指明了方向。儀器控制系統(tǒng)構(gòu)建示意圖如圖1所示。
圖1 儀器控制系統(tǒng)構(gòu)建示意圖Fig.1 Construction of the instrument control system
圖1中,以系統(tǒng)主控制器為界,左側(cè)展示了硬件構(gòu)建方式,右側(cè)展示了測(cè)控程序開發(fā)架構(gòu)。根據(jù)測(cè)控系統(tǒng)的空間分布、實(shí)時(shí)性、數(shù)據(jù)量和可靠性等要求,選擇合適的總線類型和總線拓?fù)浣Y(jié)構(gòu),將測(cè)控系統(tǒng)中使用的各型測(cè)試測(cè)量儀器設(shè)備連接至系統(tǒng)主控器,以構(gòu)建硬件鏈路。對(duì)于大型測(cè)控應(yīng)用,借助Ethernet、RS-485等總線的擴(kuò)展能力,可突破測(cè)控距離和通道數(shù)目的限制。必要時(shí),亦可在總線拓?fù)渲性O(shè)置多個(gè)子控制器,以提高數(shù)據(jù)吞吐率和測(cè)控響應(yīng)速度。用戶測(cè)控程序可基于多種不同的通信鏈路方式和儀器控制方式開發(fā),并最終運(yùn)行于系統(tǒng)控制器中。概略地講,圖1中越是靠近下部的儀器控制方式,對(duì)應(yīng)的開發(fā)級(jí)別越高、開發(fā)難度越小、維護(hù)成本越低、程序通用性越好。
目前,主流測(cè)控程序開發(fā)環(huán)境(如LabVIEW、Lab-Windows/CVI)均支持使用圖1中的各種控制方式開發(fā)儀器控制測(cè)試程序。在關(guān)注不同層次軟件開發(fā)方式可能導(dǎo)致的程序通用性、開發(fā)難度、開發(fā)效率和維護(hù)成本巨大差異的同時(shí),也應(yīng)注意到儀器控制軟件的發(fā)展歷程實(shí)際上也是一個(gè)在軟件層次上不斷封裝的過程。盡管并非每次封裝都致使執(zhí)行效率下降,但封裝不可避免地導(dǎo)致依賴項(xiàng)的增多和系統(tǒng)配置難度的增加,過多的封裝層次將增大測(cè)控程序調(diào)試的難度,因?yàn)槿魏蔚讓渝e(cuò)誤都會(huì)致使頂層程序不能正常工作。因此,在追求儀器可互換性與軟件通用性的同時(shí),應(yīng)根據(jù)測(cè)控系統(tǒng)的具體規(guī)模與需求,權(quán)衡利弊,有所選擇。
需要指出的是,本文討論的儀器可互換性是針對(duì)“語法”層面而言的,當(dāng)更換儀器后,測(cè)控程序在不加修改或經(jīng)極少量修改的情況下即可正常運(yùn)行。但由于具體儀器在硬軟件實(shí)現(xiàn)上的不同,不排除在極少數(shù)情況下,測(cè)控程序執(zhí)行結(jié)果可能出現(xiàn)細(xì)微的差別。
基于本文分析,推薦如下儀器控制系統(tǒng)構(gòu)建和開發(fā)原則:首先,不用考慮不同總線導(dǎo)致的編程難度的增加,重點(diǎn)根據(jù)通信距離、通信速度、系統(tǒng)規(guī)模、配置靈活性、擴(kuò)充性和成本等要求,選擇合適的儀器總線構(gòu)建系統(tǒng),必要時(shí)可使用RS-485、Ethernet、USB等作為中轉(zhuǎn)或擴(kuò)展總線;其次,開發(fā)無通用性、無儀器可互換性要求的孤立測(cè)控程序時(shí),可選擇最熟悉的最高層次儀器控制方法,以縮短開發(fā)時(shí)間,降低開發(fā)成本;最后,開發(fā)有通用性、可重用性和升級(jí)擴(kuò)充要求且需長期使用的測(cè)控程序時(shí)(如引言中提到的應(yīng)用場(chǎng)合),使用基于VISA的SCPI字符串編程和使用IVI類驅(qū)動(dòng)編程是兩種強(qiáng)烈推薦的儀器控制編程模式,若程序規(guī)模較小,推薦使用前者以減小程序依賴項(xiàng),否則,推薦使用后者,以降低程序開發(fā)難度。
[1]李寧,李進(jìn)杰.儀器控制技術(shù)在自動(dòng)測(cè)量系統(tǒng)中的應(yīng)用[J].工業(yè)控制計(jì)算機(jī),2008,21(1):1-2.
[2] National Instruments Corp.Instrument control technologies for any bus,any language[EB/OL].[2010-05-01].http://sine.ni.com/np/app/culdesac/p/ap/ictrl/lang/en/pg/1/sn/n17:ictrl/docid/tut-3513.
[3] Sokoloff L.GPIB instrument control[C]//Proceedings of the 2002 ASEE Annual Conference,Montreal,Canada,2002:3107-3121.
[4]羅光坤,張令彌,王彤.基于GPIB接口的儀器與計(jì)算機(jī)之間的通訊[J].儀器儀表學(xué)報(bào),2006,27(6):634-637.
[5] Maxim Corp.RS-485(EIA/TIA-485)differential data transmission system basics[EB/OL].[2010-05-02].http://pdfserv.maximic.com/en/an/AN736.pdf.
[6]肖風(fēng)云,馬廷衛(wèi),唐義清.基于VISA標(biāo)準(zhǔn)的儀器驅(qū)動(dòng)器設(shè)計(jì)[J].機(jī)械工程與自動(dòng)化,2006(2):132-135.
[7] VXIplug&play Systems Alliance.The VISA library[EB/OL].[2010-05-02].http://www.ivifoundation.org/docs/vpp43.pdf.
[8]朱波,李華.基于SCPI語言的智能儀器LabVIEW驅(qū)動(dòng)程序設(shè)計(jì)[J].儀表技術(shù)與傳感器,2008(9):53-54.
[9] SCPI Consortium.Standard commands for programmable instruments[EB/OL].[2010-05-01].http://www.ivifoundation.org/docs/SCPI-99.pdf.
[10]劉立,陳淑珍.虛擬儀器系統(tǒng)與 VXI、VXIplug&play[J].國外電子測(cè)量技術(shù),1999(2):28-29.
[11]National Instruments Corp.Developing LabVIEW plug and play instrument drivers[EB/OL].[2010-05-01].http://zone.ni.com/devzone/cda/tut/p/id/3271.
[12]IVI Foundation.Getting started with IVI drivers[EB/OL].[2010-05-01].http://www.ivifoundation.org/.
[13]Franklin P,Ryland J.IVI instrument driver guided tour[C]//AUTOTESTCON Proceedings,Cleveland,USA,2004:167-173.
[14]Cheij D.Using IVI drivers to increase test system performance[C]//AUTOTESTCON Proceedings,Anaheim,USA,2000:375-379.
[15]National Instruments Corp.How IVI-C instrument driver technology enables system longevity and platform portability[EB/OL].[2010-05-11].http://zone.ni.com/devzone/cda/tut/p/id/3433.
Exploration on the Instrument Interconnection and Control Technology
To achieve interconnection and interoperation among multiple instruments and equipments,and construct large scale automatic measuring and control system,various instrument buses and the implementing methods of the instrument control software as well as their merits,demerits,and the applicable fields are investigated.The developing trend of instrument control technology that is implementing variety of communication links in hardware layer;entity of communication links in software layer;and standardization of software control mode is revealed.The universal technical approach of measurement and control program that is flexibly configuring measurement and control system instrument and equipment,and developing instrument interface independently to the instrument manufacturers,instrument models and instrument interface,is described.As the conclusion,the basic criteria of establishing and developing instrument control systems are given.
Instrument controlBus Driver I/O interface Programming model
TP206+.1
A
修改稿收到日期:2010-11-28。
張志利,男,1966年生,2001年畢業(yè)于第二炮兵工程學(xué)院機(jī)電工程系,獲博士學(xué)位,教授;主要從事發(fā)射系統(tǒng)仿真與自動(dòng)檢測(cè)理論的教學(xué)和研究。