HART協(xié)議的服務流程詳解
對于HART協(xié)議物理層和HART數(shù)據(jù)鏈路層的相關(guān)規(guī)范我們已經(jīng)介紹過了。那么接下來我們將要對HART協(xié)議的服務內(nèi)容進行一下講解。通過下面的講解,大家將會對整個HART協(xié)議的一些基本工作內(nèi)容,服務流程有一個系統(tǒng)地掌握。
HART協(xié)議的服務
HART協(xié)議所提供的服務包括:
“至少一次” 可靠地在同等實體之間的交互服務。該服務的設計不提供雙重檢測。
可選擇的,可靠的,同等實體之間提供端對端分段和雙重檢測的交互服務。
設備標志和設備組態(tài)的管理服務。
為實現(xiàn)服務而定義的原語分為兩個部分,一部分在正常使用過程中與用戶數(shù)據(jù)相關(guān)的稱為用戶原語;另一部分關(guān)于初始化協(xié)議,如建立地址,建立地址之間和同等實體之間唯一聯(lián)系的原語稱為管理原語。協(xié)議實現(xiàn)時必須支持以上提到的原語。
1 用戶接口原語
HART協(xié)議支持三種數(shù)據(jù)傳輸服務。
傳送(Transmit)服務用來提供送消息和接收響應的基本能力。在此不作詳細分析。
傳輸(Transfer)服務使用每一個消息中一系列的域支持雙重檢測和消息分段。傳輸服務提供一種可靠的主-從設備之間雙向消息傳輸。實現(xiàn)傳輸服務的用戶接口原語功能是實現(xiàn)HART協(xié)議的重要任務之一。
循環(huán)服務提供重復廣播數(shù)據(jù)的功能,是針對HART協(xié)議BURST模式的設備功能的實現(xiàn)。
這些服務由主設備初始化。從設備和burst模式設備用來作這些服務的回答者。
2 傳輸服務
傳輸服務用來支持可靠的數(shù)據(jù)連接以防止數(shù)據(jù)丟失或重復的應用(如上裝/下載,塊傳送等)。由于HART鏈路層協(xié)議的主/從關(guān)系,傳輸服務的執(zhí)行完全由主設備控制。從設備僅行使響應功能。傳輸服務幀包含了用來分段、雙重檢測/釋放以及丟失幀檢測的序列號區(qū)域。幀必須按順序接收。傳輸服務的安裝和控制都通過發(fā)送控制請求來實現(xiàn)。
有八條用戶原語支持傳輸服務。其中四條用作控制,另四條在使用服務時用作數(shù)據(jù)傳送。此外,某些參數(shù)是可選的,不必出現(xiàn)在所有的原語調(diào)用中。這些參數(shù)在原語定義中都由方括號(“[”,“]”)括起來。下面只分析4條數(shù)據(jù)傳輸原語。
Transfer.request(address,sequence no,[data]):本原語由主設備HART協(xié)議用戶使用向給定地址上的從設備實體請求傳輸信息。主設備用戶負責所有參數(shù)的合法性。協(xié)議應用者將在它的能力范圍內(nèi)對參數(shù)進行有限的合法性校驗(例如地址超出范圍)。
Transfer.indicate(address,sequence no,[data]):本原語由數(shù)據(jù)鏈路層激發(fā),通知從設備HART協(xié)議用戶從對等協(xié)議實體中收到了一條合法的傳送消息。從設備用戶可以接收隨后的內(nèi)容和可選的數(shù)據(jù)(如果有)。
Transfer.response(status,sequence,[data]):本原語由從設備用戶執(zhí)行,響應進入的transfer.indicate。這種機制用來立即返回先前指示的狀態(tài),并可由從設備向主設備返回可選的控制數(shù)據(jù)參數(shù)。
Transfer.confirm(local status,response code,sequence no,[data]):本原語向主設備協(xié)議用戶返回先前的transfer.request的執(zhí)行結(jié)果。***收到的從設備的響應(如果有)將與一個狀態(tài)字一起返回。該狀態(tài)說明了請求的成功或失敗。local狀態(tài)字節(jié)是主設備通訊任務的狀態(tài)。序列號由從設備設置。
由上面可以看出,主設備HART協(xié)議用戶,即上位機,主要涉及到的是request和confirm原語,而不用實現(xiàn)indicate和response原語。在實際的程序?qū)崿F(xiàn)中,體現(xiàn)為一條主-從命令的發(fā)送和從設備返回的從-主的接收過程。