• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      LXI網(wǎng)絡(luò)儀器后臺處理的設(shè)計與實現(xiàn)

      2019-03-21 11:35:38李延峰李宥謀閆海卿李曉俊
      計算機技術(shù)與發(fā)展 2019年3期
      關(guān)鍵詞:共享內(nèi)存后臺調(diào)用

      李延峰,李宥謀,閆海卿,李曉俊

      (西安郵電大學(xué) 計算機學(xué)院,陜西 西安 710100)

      0 引 言

      目前,網(wǎng)絡(luò)儀器測控系統(tǒng)蓬勃發(fā)展,在促進當(dāng)代生產(chǎn)中扮演關(guān)鍵角色[1]。同時,總線技術(shù)是儀器進步的基礎(chǔ)[2],總線技術(shù)由GPIB(general-purpose interface bus,通用接口總線)、VXI(VMEbus extension for instrumentation,VME總線在儀器領(lǐng)域的擴展)、PXI(PCI extensions for instrumentation,面向儀器系統(tǒng)的PCI擴展)向LXI(LAN extension for instrumentation,LAN在儀器領(lǐng)域的擴展)發(fā)展過渡。

      GPIB、VXI、PXI儀器由于帶寬和底板結(jié)構(gòu)等限制,被測對象難于遠距離分布[3]。LXI是繼GPIB儀器、VXI/PXI虛擬儀器后新型的基于以太網(wǎng)的模塊化互聯(lián)架構(gòu)標(biāo)準[4]。LXI網(wǎng)絡(luò)儀器測控系統(tǒng)是集成了RTOS(embedded real-time operation system,嵌入式實時操作系統(tǒng))、嵌入式SNMP(simple network management protocol,簡單網(wǎng)絡(luò)管理協(xié)議)代理、嵌入式HiSLIP(high-speed LAN instrument protocol,高速以太網(wǎng)儀器協(xié)議)服務(wù)、嵌入式DHCP(dynamic host configuration protocol,動態(tài)主機配置協(xié)議)模塊及各種接口驅(qū)動的大型應(yīng)用系統(tǒng),提供網(wǎng)絡(luò)化儀器測量,實現(xiàn)儀器設(shè)備動態(tài)重組,降低了系統(tǒng)的復(fù)雜度和成本消耗[5]。

      所以,文中對LXI網(wǎng)絡(luò)儀器后臺處理模塊進行設(shè)計,包括SNMP、HISLIP、DHCP等客戶端,實現(xiàn)儀器代理的主動感知及IP自動分配、控制指令和測量數(shù)據(jù)的實時高速傳輸、儀器代理的配置和測控管理等功能。另外,通過分析接口參數(shù),設(shè)計了調(diào)用后臺處理的統(tǒng)一接口程序,易于入門、方便后期功能擴展、提高后臺操作與響應(yīng)速度。

      1 SNMP簡單網(wǎng)絡(luò)管理協(xié)議

      SNMP基于TCP/IP協(xié)議工作,是對網(wǎng)絡(luò)中支持該協(xié)議的網(wǎng)絡(luò)節(jié)點進行管理的標(biāo)準協(xié)議[6]。其采用C/S模式[7],SNMP客戶端在管理端運行,SNMP服務(wù)器在被管理端運行。SNMP由SNMP代理、被管理的設(shè)備和網(wǎng)絡(luò)管理系統(tǒng)組成[8]。

      本項目中SNMP協(xié)議客戶端主要完成測控端后臺處理模塊與遠端儀器之間變量的屬性信息、控制命令及異常信息的交互傳輸。SNMP客戶端的總體操作由3類組成:儀器設(shè)備設(shè)置操作、屬性值獲取操作和被監(jiān)管設(shè)備異常監(jiān)測操作??蛻舳送ㄟ^GET、GETBULK和GETNEXT向SNMP服務(wù)器請求相應(yīng)操作;通過SET對設(shè)備參數(shù)值進行設(shè)置或修改;通過Trap將異常信息主動發(fā)送到管理端。

      SNMP客戶端以模塊化方式設(shè)計實現(xiàn),各模塊間功能函數(shù)相互約束,同時接口函數(shù)相互配合,實現(xiàn)SNMP客戶端功能需求。

      2 HISLIP高速以太網(wǎng)儀器協(xié)議

      HISLIP由IVI聯(lián)盟推出,實現(xiàn)對儀器的控制和共享[9]。協(xié)議以C/S模式設(shè)計,控制端運行HISLIP客戶端,遠端代理運行HISLIP服務(wù)器端。HISLIP客戶端與標(biāo)準儀器程控指令SCPI配合使用,實現(xiàn)對遠端儀器代理的測量控制與管理[10]。HISLIP協(xié)議信息交互有異步通道和同步通道兩條鏈路,同步通道負責(zé)數(shù)據(jù)和指令的交互,異步通道負責(zé)異常處理[11]。

      本項目中HISLIP協(xié)議客戶端主要負責(zé)后臺處理模塊與遠端代理間數(shù)據(jù)和指令的傳輸交互任務(wù)。HISLIP客戶端整體設(shè)計可劃分為數(shù)據(jù)包同步通道處理模塊、數(shù)據(jù)包異步通道處理模塊和雙向通道建立模塊三部分。處理模塊流程如圖1所示。

      圖1 HISLIP處理模塊流程

      HISLIP客戶端設(shè)計采用模塊化方式,相互制約配合,最終實現(xiàn)HISLIP客戶端的功能。

      3 DHCP動態(tài)主機配置協(xié)議

      DHCP是優(yōu)化主機等設(shè)備IP地址管理分配的標(biāo)準協(xié)議[12],本項目中主要負責(zé)管理和分配IP地址,動態(tài)管理網(wǎng)絡(luò)設(shè)備的上網(wǎng)環(huán)境,使設(shè)備的入網(wǎng)效率大幅提升。

      LXI網(wǎng)絡(luò)儀器的DHCP模塊分四步實現(xiàn)。首先搭建DHCP服務(wù)器;其次以Linux系統(tǒng)的Inotify機制來監(jiān)控DHCP服務(wù)器日志文件中IP、MAC地址的數(shù)據(jù)變化;然后HISLIP客戶端給該IP設(shè)備發(fā)送SCPI指令獲取屬性;最后將儀器設(shè)備返回的屬性信息鏈接到IP地址的尾部。具體如圖2所示。

      圖2 自動發(fā)現(xiàn)模塊DHCP功能測試

      4 后臺處理服務(wù)總調(diào)度模塊

      4.1 后臺處理服務(wù)總調(diào)度模塊架構(gòu)研究與設(shè)計

      LXI網(wǎng)絡(luò)儀器整體軟件結(jié)構(gòu)可分為三層,分別是:儀器設(shè)備層、核心組件層和應(yīng)用服務(wù)層[13]。儀器設(shè)備層實現(xiàn)測控數(shù)據(jù)采集等功能;核心組件層解決應(yīng)用層的控制指令及儀器層上傳的測控數(shù)據(jù)和異常消息,主要包含:HISLIP協(xié)議客戶端、SNMP協(xié)議客戶端、DHCP模塊和統(tǒng)一調(diào)用接口程序;應(yīng)用服務(wù)層負責(zé)提供友好界面以供人機交互,實現(xiàn)測量數(shù)據(jù)顯示與修改、儀器管理等功能。系統(tǒng)軟件結(jié)構(gòu)如圖3所示。

      圖3 LXI網(wǎng)絡(luò)儀器整體軟件結(jié)構(gòu)

      LXI網(wǎng)絡(luò)儀器后臺處理服務(wù)總調(diào)度模塊由統(tǒng)一接口、任務(wù)調(diào)度和數(shù)據(jù)處理模塊組成。統(tǒng)一接口模塊為

      外部調(diào)用后臺處理服務(wù)提供統(tǒng)一化指令格式;任務(wù)調(diào)度模塊主要為測控命令在后臺的調(diào)度與處理服務(wù);數(shù)據(jù)模塊主要為儀器代理的數(shù)據(jù)處理服務(wù)。

      為使程序健壯和穩(wěn)定,故以進程實現(xiàn)調(diào)度,以共享內(nèi)存實現(xiàn)數(shù)據(jù)通信。后臺運行時,父進程創(chuàng)建共享內(nèi)存和信號量后,實時監(jiān)控應(yīng)用層的命令[14]。當(dāng)測控指令產(chǎn)生,父進程交由新建的子進程去解決問題,其繼續(xù)監(jiān)聽。由于子進程直接調(diào)用了可執(zhí)行代碼,父進程不能直接接受數(shù)據(jù)結(jié)果,故以共享內(nèi)存去實現(xiàn)數(shù)據(jù)信息的交互,同時以信號量進行讀寫的限制,流程如圖4所示。

      4.2 后臺處理服務(wù)統(tǒng)一接口模塊設(shè)計

      統(tǒng)一接口模塊能夠讓應(yīng)用服務(wù)層以統(tǒng)一指令格式對核心組件層的SNMP客戶端、HISLIP客戶端和DHCP模塊進行調(diào)度處理,在Linux操作系統(tǒng)下三個模塊接口參數(shù)如下:

      ./snmp_client Instrument_IP OID Command;

      ./hislip_client Instrument_IP Command;

      ./dhcpr_client DHCP_SERVER_IP;

      參數(shù)說明如下:

      Instrument_IP:遠端儀器代理的IP地址;

      OID:SNMP協(xié)議的對象標(biāo)識號;

      Command:在SNMP客戶端中,SNMP協(xié)議操作:SET、GET、GETNEXT、GETBULK等操作;在HISLIP客戶端中,SCPI表示標(biāo)準儀器的程控指令;

      DHCP_SERVER_IP:表示系統(tǒng)中DHCP服務(wù)器儀器設(shè)備的IP地址;

      圖4 后臺處理服務(wù)總調(diào)度設(shè)計流程

      為了實現(xiàn)對模塊接口的統(tǒng)一封裝,同時基于功能模塊的接口參數(shù)形式,定義命令格式如下:

      typedef struct interface

      {

      int port;

      charoid[60];

      charip[20];

      char command[120];

      }interface, *interface;

      統(tǒng)一接口模塊程序根據(jù)公共端口號的不同解析服務(wù)層請求,然后調(diào)用相應(yīng)客戶端。HISLIP客戶端端口號為4880,SNMP客戶端端口號為161及DHCP客戶端端口號為5000,所以本項目采用port參數(shù)作為區(qū)分三者的指標(biāo)參數(shù)。

      4.3 后臺處理服務(wù)總調(diào)度模塊的實現(xiàn)

      系統(tǒng)主機以TCP Socket的形式連接到后臺總調(diào)度模塊。總調(diào)度模塊接受主機指令,同時解析控制指令,根據(jù)解析結(jié)果去確定調(diào)用SNMP協(xié)議客戶端、HISLIP協(xié)議客戶端或DHCP自動發(fā)現(xiàn)模塊[15]。后臺處理服務(wù)總調(diào)度模塊的父進程創(chuàng)建子進程去執(zhí)行相應(yīng)客戶端請求,將結(jié)果存入共享內(nèi)存后,由信號量通知主進程讀取結(jié)果。其次,主進程在讀取數(shù)據(jù)時通過信號量防止讀寫競爭。最后,總調(diào)度模塊將結(jié)果通過TCP套接字發(fā)送給系統(tǒng)控制主機,完成主機對所需信息的獲取與修改。總調(diào)度模塊的處理流程如圖5所示。

      圖5 后臺處理模塊的處理過程

      后臺處理服務(wù)總調(diào)度模塊的主進程重復(fù)監(jiān)聽從系統(tǒng)控制主機發(fā)起的連接,當(dāng)連接產(chǎn)生時,父進程創(chuàng)建單一子進程去處理該請求,子進程以Linux的EXECVP系統(tǒng)調(diào)用實現(xiàn)功能,在進程的代碼段載入其對應(yīng)客戶端的可執(zhí)行文件,同時后臺模塊填充EXECVP系統(tǒng)調(diào)用的環(huán)境變量與命令參數(shù),以此方式就可以實現(xiàn)相應(yīng)客戶端的傳參調(diào)用。

      后臺總調(diào)度模塊的子進程調(diào)用EXECVP系統(tǒng)調(diào)用,然后相應(yīng)客戶端程序被對應(yīng)執(zhí)行。由于子進程直接調(diào)用了可執(zhí)行代碼,父進程不能直接接受數(shù)據(jù)結(jié)果,故以共享內(nèi)存去實現(xiàn)數(shù)據(jù)信息的交互。父進程首先創(chuàng)建并初始化共享內(nèi)存,然后用信號量防止進程對共享內(nèi)存的讀寫競爭。共享內(nèi)存有自己的權(quán)限位及擁有者,不受進程存在的影響。所有進程均可連接到共享內(nèi)存并得到指向該共享內(nèi)存的指針。當(dāng)子進程將結(jié)果數(shù)據(jù)寫入共享內(nèi)存時,子進程會用信號量對共享內(nèi)存段加鎖,在寫數(shù)據(jù)結(jié)束后釋放鎖。父進程讀取共享內(nèi)存時,執(zhí)行相同操作,即對共享內(nèi)存加鎖,然后等讀數(shù)據(jù)結(jié)束后釋放鎖[16]。最后,將結(jié)果數(shù)據(jù)發(fā)送給系統(tǒng)控制主機,完成數(shù)據(jù)修改、信息獲取。至此,后臺處理服務(wù)總調(diào)度模塊的功能就可以實現(xiàn)。

      5 LXI網(wǎng)絡(luò)儀器后臺處理功能測試

      采用control_client模擬應(yīng)用服務(wù)層向后臺處理模塊control_server下達調(diào)用HISLIP客戶端的命令請求,control_client的命令:

      ./control_client 192.168.1.122 192.168.1.232 4880 1.3.6.1.4.1.1199.1.1.1.1.1.1.0 *IDN?DATa?*IDN?*IDN?

      其中,192.168.1.122為后臺模塊系統(tǒng)主機的IP地址;192.168.1.232為儀器代理的IP地址;4880為HISLIP公共端口號;1.3.6.1.4.1.1199.1.1.1.1.1.1.0為項目上MIB庫節(jié)點;*IDN?DATa?*IDN?*IDN?是SCPI指令。

      control_client客戶端的運行結(jié)果如圖6所示。

      圖6 control_client調(diào)用HISLIP客戶端的運行結(jié)果

      后臺處理服務(wù)總調(diào)度模塊control_server服務(wù)器在接收到control_client客戶端調(diào)用HISLIP客戶端的任務(wù)指令后執(zhí)行相應(yīng)操作。

      后臺處理服務(wù)總調(diào)度模塊首先分析命令行參數(shù)。其次由統(tǒng)一接口程序根據(jù)接口4880確定調(diào)用HISLIP客戶端,并將HISLIP客戶端的命令行補齊。最后成功調(diào)用HISLIP客戶端服務(wù)。

      本章主要對后臺處理服務(wù)進行測試,由測試結(jié)果可知功能模塊達到了預(yù)計需求。

      6 結(jié)束語

      綜上所述,為實現(xiàn)LXI網(wǎng)絡(luò)測控系統(tǒng)的后臺處理調(diào)度服務(wù)、提高儀器設(shè)備的使用效益、降低使用成本,以LXI總線標(biāo)準和特點優(yōu)勢進行設(shè)計,將SNMP客戶端、HISLIP客戶端、DHCP客戶端等嵌入到測控系統(tǒng)中,并設(shè)計實現(xiàn)了調(diào)用后臺處理服務(wù)的統(tǒng)一接口程序。LXI網(wǎng)絡(luò)測控系統(tǒng)后臺處理模塊提高了后臺與應(yīng)用服務(wù)層、儀器設(shè)備層的傳輸效率,增加了系統(tǒng)的實時性和完備性,設(shè)計實現(xiàn)了LXI總線標(biāo)準規(guī)范的網(wǎng)絡(luò)測控系統(tǒng)的核心組件層,對項目發(fā)展有積極意義。而且,該項目已被驗收,運行正常,達到了項目預(yù)期目標(biāo)。

      猜你喜歡
      共享內(nèi)存后臺調(diào)用
      核電項目物項調(diào)用管理的應(yīng)用研究
      通過QT實現(xiàn)進程間的通信
      LabWindows/CVI下基于ActiveX技術(shù)的Excel調(diào)用
      后臺暗戀
      基于PCI總線的多處理器協(xié)同機制研究
      基于系統(tǒng)調(diào)用的惡意軟件檢測技術(shù)研究
      前臺、后臺精彩花絮停不了
      QNX下PEX8311多路實時數(shù)據(jù)采集的驅(qū)動設(shè)計
      電子世界(2014年21期)2014-04-29 06:41:36
      電力調(diào)度中后臺監(jiān)控系統(tǒng)的應(yīng)用
      河南科技(2014年11期)2014-02-27 14:10:03
      一種高效RTAI 共享內(nèi)存管理層的研究與實現(xiàn)*
      民丰县| 锡林郭勒盟| 井陉县| 佛学| 禹城市| 兴仁县| 稷山县| 荆州市| 平凉市| 河曲县| 高青县| 瓮安县| 湟源县| 海林市| 新建县| 南宁市| 武定县| 嘉黎县| 吴忠市| 浮山县| 平湖市| 北宁市| 开鲁县| 广平县| 外汇| 定西市| 嘉黎县| 六安市| 庆云县| 屏东县| 蓝田县| 黄陵县| 金堂县| 津市市| 沅陵县| 海宁市| 宽甸| 丁青县| 镇江市| 巩留县| 沂南县|