999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

網絡化儀器儀表協議客戶端設計與實現

2015-09-16 23:07:54龐新法
現代電子技術 2015年18期

龐新法

摘 要: 提出如何通過實現網絡化儀器儀表間的通信來完成儀器間協同工作,從而最大程度地發揮網絡化儀器測量系統的效率。為了實現網絡化儀器間的通信,需將HiSLIP協議、虛擬儀器設計技術與網絡化測控系統相結合,并利用HiSLIP協議的可靠連接以及高效數據傳輸特點,設計網絡化儀器間的通信,從而給出協議客戶端設計與實現。

關鍵詞: 網絡化儀器; HiSLIP協議; 通信; 網絡化測控系統

中圖分類號: TN911?34; TP312 文獻標識碼: A 文章編號: 1004?373X(2015)18?0122?03

Abstract: The way how to realize collaborative work of instruments by communication among the networked instruments is proposed to bring the efficiency of measurement system into play for networked instruments to the maximum extent. To achieve communication among networked instruments, it is necessary to combine the networked measurement and control system with HiSLIP protocol, design technology of virtual instrument, and design the communicationn among the networked instruments by utilizing the characteristics of reliable connection and high?efficiency data transmission of the HiSLIP protocol. The design and implementation of protocol client?side are presented.

Keywords: networked equipment; HiSLIP protocol; communication; networked measurement and control system

0 引 言

隨著網絡技術的廣泛應用,儀器儀表已開始向計算機化、網絡化、智能化方向發展,儀器網絡化的發展趨勢,使得其已經不再是孤立的、單獨的設備,而是將測試技術、互聯網技術、計算機技術結合在一起的網絡儀器系統。但網絡化儀器間難以進行協同工作,進而限制測量系統測量效率。為了實現網絡化儀器間的通信,本文將HiSLIP協議、虛擬儀器設計技術與網絡化測控系統相結合,利用HiSLIP協議的可靠連接以及高效數據傳輸特點,設計網絡化儀器間的通信原理,并給出了協議客戶端設計與實現。

儀器代理作為網絡管理結構中的核心實體,存在于被管理的網絡設備中,用來訪問設備的運行狀態,對設備參數進行配置,是被管設備與管理中心交互的中間接口。

HiSLIP協議客戶端的功能主要劃分為4部分:協議啟動和前期準備;與服務器端建立連接;與服務器端的數據交互;容錯處理.。客戶端與服務器端的交互種類分為14類,通過這14類交互,完整實現協議所需要的功能,在進行交互說明時以“<消息類型> <控制碼>

<消息參數> <數據長度> <數據>”的格式來表示消息。

1 協議啟動

在控制端應用程序啟動時,協議的客戶端即開始啟動,在啟動過程中,向操作系統申請Socket套接字資源[1?2]。并進行端口綁定,協議規范中建議使用4880端口。對4880端口綁定完成后,即可向由VISA提供的儀器端的網絡代理IP地址發起連接。

2 建立連接

HiSLIP協議連接的建立使用的是TCP機制,由客戶端向服務器端發起2次TCP連接,分別是該協議的同步通道連接和異步通道連接。在建立好2個TCP連接之后,還需要檢查服務器端儀器上加鎖的情況,相互協商交互信息時的消息尺寸。為后續的數據和控制信息的交互提供服務。

2.1 建立連接使用到的消息類型序列

(1) 由客戶端發起第1個TCP連接;

(2) 使用消息類型Initialize 進行同步通道連接初始化;在該消息中包含的數據有客戶端協議版本;客戶端廠商ID;子地址。消息格式為: <0>

(3) 發起第2個TCP連接;

(4) 使用消息類型AsyncInitialize 進行異步通道連接初始化,在該消息中包含由應用軟件推送的SessionID(會話號)。格式為: <0> <0>。

2.2 對遠端儀器進行鎖操作的消息類型序列

(1) 首先通過AsyncLockInfo消息類型,來向遠端服務器請求當前儀器資源上鎖的情況,有服務器返回是否已經加鎖、鎖的類型以及鎖的數目等消息。格式為:

<0> <0> <0>。

(2) 在查詢后確認可以對遠端儀器加鎖時,使用消息類型AsyncLock來實現對遠端儀器資源加鎖和釋放鎖。在該消息中包含的數據有,請求加鎖標志位和請求釋放鎖標志,等待加鎖超時時間,鎖信息描述等。加鎖消息的格式為: <1=request>

;釋放鎖的消息格式為: <0 =release> <0>。

2.3 客戶端和服務器協商發送消息的尺寸使用的消息序列

客戶端通過AsyncMaximumMessageSize消息類型來告知服務器自己的能夠接收的消息尺寸,該消息中包含由8 B無符號整形數據表示的消息尺寸信息。消息格式為: <0> <0> <8> <8?byte size>。

3 數據交互

數據交互是這個協議的核心部分,客戶端在與服務器端建立連接后,使用Data和DataEND兩種消息類型的消息發送數據。如果應用軟件推送給客戶端的數據,可以滿足不超過最大消息長度的情況下,使用DataEND消息類型進行發送,如果超過了最大消息長度,則先使用Data消息類型進行發送若干,在剩余的數據不超過最大消息尺寸時,使用DataEND發送剩余的數據[3]。所以,所有的消息都是以DataEND消息類型實現數據的完整發送。通信雙方交互時使用的消息類型序列如下:

客戶端使用Data消息類型的消息來發送數據;消息中包含的數據有交付標志信息RMT?delivered,該消息的消息編號MessageID,消息長度以及由應用軟件推送的數據。格式為:

客戶端使用DataEND消息類型的消息來發送數據;消息中包含的其他信息與上一條中一致。格式為:

這部分代碼如下:

void send_dataend(hislip_message *send_message,int message_id,int data_len)

{

strncpy(send_message?>prologue,"HS",2);

send_message?>type=DATA_END;

send_message?>parameter=message_id;

send_message?>control=0x00;

send_message?>data_len=htonlli((long long int)data_len);

}

void send_data(hislip_message *send_message,int message_id,int data_len)

{

strncpy(send_message?>prologue,"HS",2);

send_message?>type=DATA;

send_message?>parameter = message_id;

send_message?>control = 0x00;

send_message?>data_len=htonlli((long long int)data_len);

}

4 容錯處理

容錯處理是在連接未成功或者協議運行故障時的操作,以保證協議能夠穩定實現相關功能。在協議的14類交互中,容錯處理包含:致命錯誤及同步恢復交互(Fatal Error Detection and Synchronization Recovery);錯誤告知交互(Error Notification Transaction);中斷交互

(Interrupted Transaction)。

致命錯誤及同步恢復交互[4],客戶端和服務器端都會使用到,設置消息類型為FatalError,該消息包含的數據有錯誤碼(ErrorCode)、數據長度和數據。消息格式為: <0> 。如果該消息由客戶端發送給服務器端,在客戶端發送完畢并關閉連接后,客戶端再次向服務器端發起HiSLIP連接。如果發送該消息由服務器端發送給客戶端,則直接關閉。

錯誤告知交互[5],客戶端和服務器端雙方都會使用到,使用的消息類型為Error,其他字段內容與“致命錯誤及同步恢復交互”中的一致,不同的是,雙方不管哪一方收到這個消息,都不需要做出其他動作,消息格式為: <0>

中斷交互,僅服務器端使用,在服務器部分進行說明,本文不在詳述。

5 輔助處理交互

除了上述的交互過程,協議本身也定義了一些輔助的交互過程,能夠實現附屬功能,這些交互有:遠程/本地控制交互(Remote Local Transaction);觸發信息交互(Trigger Message);服務請求交互(Service Request);狀態查詢交互(Status Query Transaction);設備清除交互(Device Clear Transaction);廠商定義交互(Vendor Defined Transactions)。

遠程/本地控制交互[6],為GPIB設備提供服務,客戶端向服務器端發送數據時,使用到的消息類型為AsyncRemoteLocalControl,消息中包含的數據有控制碼(request),消息ID。消息格式為: <0>。

觸發信息交互[7],為了模擬GPIB設備組觸發使用到的交互,客戶端向服務器端發送消息時使用的消息類型為Trigger,消息中包含的數據主要有RTM交付標志,消息ID。消息格式為: <0>。

服務請求交互,是服務器使用交互,在服務器部分進行說明。

狀態查詢交互,是為了客戶端查詢服務器端的狀態,返回的狀態碼(status),客戶端發送給服務器進行狀態查詢時使用的消息類型為AsyncStatusQuery,消息中包含的數據有RTM交付標志,消息ID。消息格式為:

<0>。

設備清除交互,是為了清除通信的通道,由客戶端向服務器端發起,客戶端的消息序列如下:

客戶端發送AsyncDeviceClear消息,消息中不包含其他數據,發送完消息后等待進程中的同步消息處理完成。消息格式為: <0> <0> <0>。

客戶端發送DeviceClearComplete消息,消息中包含特征標志請求(featureRequest)。消息格式為: <0> <0>。

廠商定義交互,客戶端和服務器端都可以發送這個消息,使用的消息類型為VendorDefined,消息中的數據都是任意數,消息格式為:

6 程序設計實現

根據上述設計過程以及各種交互的含義,時序關系,進行程序設計,程序實現使用C語言實現,程序中的模塊主要有,通道建立初始化模塊,數據接受模塊,數據發送模塊等。下面通過協議客戶端的主要函數,說明程序設計中的功能實現:

static int client_initialize(void)

實現初始化客戶端,初始化完成后,向服務器端發起的HiSLIP連接。

static int client_handle_async_message_size()

處理服務器端發送的協商雙方發送的消息尺寸的請求消息。

static int client_recv_message_handle()

接收從服務器端發送過來的數據,并進行初步處理,對接收的數據包按照消息類型進行識別,識別后調用相關功能函數予以處理。

static int client_handle_async_lock()

處理服務器端發送的加鎖和釋放鎖反饋。

void client_send_data()和void client_send_dataend()

實現向服務器端發送數據操作。

7 結 語

本文通過對協議客戶端的詳細設計,并在此基礎上結合服務器端的設計及控制端和儀器網絡代理的設計,實現了儀器間通信。在實驗中通過示波器A和示波器B間的通信測試,證明本文提出的方案能夠實現儀器與控制端、儀器和儀器的通信。

參考文獻

[1] 王建新,隋美麗.Labwindows/CVI虛擬儀器測試技術及工程應用[M].北京:化學工業出版社,2011.

[2] 余成波,王士彬,李洪兵.網絡化儀器技術與實現[M].北京:清華大學出版社,2010.

[3] 林玉池.測量控制與儀器儀表前沿技術及發展趨勢[M].天津:天津大學出版社,2005.

[4] ROBBINS A. Linux programming by example [M].北京:中國電力出版社,2006.

[5] 宋寶華.Linux設備驅動開發詳解[M].北京:人民郵電出版社,2008.

[6] 陳莉君,康華.Linux操作系統原理與應用[M].北京:清華大學出版社,2006

[7] 李宥謀,劉釗遠,馬博.嵌入式系統開發[M].北京:清華大學出版社,2011.

主站蜘蛛池模板: 国产一级毛片在线| 天天摸夜夜操| 中文字幕波多野不卡一区| 天天色天天操综合网| 亚洲色图综合在线| 亚洲伊人天堂| 毛片最新网址| 欧美一区精品| 亚洲日本精品一区二区| 国产经典在线观看一区| 亚洲中字无码AV电影在线观看| 亚洲va欧美va国产综合下载| 亚洲精品午夜无码电影网| 欧美性爱精品一区二区三区| 草逼视频国产| 熟女成人国产精品视频| 天堂网亚洲综合在线| 欧美日韩一区二区三区在线视频| 精品国产aⅴ一区二区三区| 欧美亚洲国产视频| www亚洲天堂| 成人夜夜嗨| av在线5g无码天天| 黄色网址手机国内免费在线观看| 欧美视频在线播放观看免费福利资源| 三上悠亚精品二区在线观看| 国产永久免费视频m3u8| 国产精品久久久久久久久久久久| 91小视频版在线观看www| AV无码无在线观看免费| 欧美色视频日本| 亚洲精品卡2卡3卡4卡5卡区| 日本国产精品| 国产男人的天堂| 亚洲欧美成aⅴ人在线观看| 国产剧情无码视频在线观看| 久久精品人妻中文系列| 丰满的熟女一区二区三区l| 天堂网亚洲系列亚洲系列| 国禁国产you女视频网站| 国产免费黄| 亚洲婷婷在线视频| 国产jizz| 国产女人18毛片水真多1| 一区二区自拍| 国产av剧情无码精品色午夜| 色综合中文| 久久无码高潮喷水| 丁香亚洲综合五月天婷婷| 亚洲日韩精品综合在线一区二区 | 国产精品密蕾丝视频| 伊人久综合| 亚洲精品第五页| 91青青草视频| 国产精品无码影视久久久久久久 | 毛片在线区| 中文字幕亚洲乱码熟女1区2区| 国产精品第一区在线观看| 久久久久亚洲Av片无码观看| 成人综合网址| 91精品国产麻豆国产自产在线| 激情無極限的亚洲一区免费| 伊人五月丁香综合AⅤ| 91久久大香线蕉| 热久久综合这里只有精品电影| 伊人色综合久久天天| 亚洲伊人电影| 亚洲一级色| 国产欧美视频在线| 欧美日韩国产在线播放| 五月天在线网站| 女人av社区男人的天堂| 第一页亚洲| 久久久受www免费人成| 成人日韩视频| 精品一区二区久久久久网站| 日韩精品专区免费无码aⅴ| 日本黄色不卡视频| 国产成人乱无码视频| 乱人伦视频中文字幕在线| 午夜视频在线观看区二区| 免费亚洲成人|