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

















