從實時應用角度談通訊匯流排仲裁機制和網路流控

2022-07-04 18:01:34

各種匯流排的仲裁機制

關於各種匯流排仲裁機制的原理分析,中文網際網路上已經有非常多的原理介紹,這裡引出幾篇相對全面的部落格IIC匯流排仲裁CAN 匯流排的全面介紹SPI匯流排介紹,其中SPI作為主從裝置通訊,協定沒有規定匯流排仲裁方式。

簡而言之,CAN 匯流排的仲裁是非破壞性仲裁,和乙太網類似,屬於 CSMA/CA (載波檢測,多主掌控,衝突避免,Carrier Sense Multiple Access with Collision Avoidance)的通訊方式。原理是優先順序更高的資料框,識別符號位置具有更多的0位,即顯性位,多個資料框發出資料進行線‘與’操作,保留高優先順序的資料框。這些資料框之間的時序比較是依靠起始的同步位和仲裁域進行比較的。

實時系統的通訊需求

實時系統部分參考 Kopetz, H. (1997) "Real-Time Systems: Design Principles for Distributed Embedded Applications", Springer International Series in Engineering and Computer Science. ISBN 978-0792398943 下載連結:Real-time system principle

  • 協定傳輸延遲,包括延遲本身的抖動可預測性和多播下的同時性,到達節點之間的延遲應該是可以預測的
  • 系統的可組合性,在這本書中 Kopetz 強調了可組合性作為分散式實時系統的重要屬性;子系統的可測試性和實時性在系統屬性上應該得到保證;原文定義請看下面引文:

Composability: An architecture is said to be composable with respect to a specified property if the system integration will not invalidate this property once the property has been established at the subsystem level. Examples of such properties are timeliness or testability. In a composable architecture, the system properties follow from the subsystem properties.

  • 靈活性,表徵系統客製化化的需求
  • 錯誤檢測,包括通訊資訊的錯誤,通訊節點的錯誤和端到端的認證(End-to-End Acknowledgment),一個經典的認證事故是三裡島核電站事故的 PORV 未關閉,而指示燈顯示已關閉的事件,設計裝置可靠性是非常重要的原則。三裡島事故裝置原因
  • 物理層架構設計,匯流排型設計/環形設計,最小可替換單元物理隔離(以免一部分的損壞導致整體失效)

網路流控

主要有兩種方式的流控制:設定超時重傳機制的顯式流控和不設定超時重傳,根據優先順序傳送資訊的隱式流控

隱式流控方式可能導致 「event shower」 現象,即同時出現大量event,導致資料來不及被處理,系統反應較慢等現象。

Event Trigger & Time Trigger System

總體來看,在實時通訊系統中有相當多的權衡因素和設計思考,書中介紹了上個世紀比較流行的網路結構和幾種匯流排之間的比較,見下圖:

其中,CAN 作為 Event Triggered Protocol ,完全具有事件觸發式協定的特性。匯流排之間的trade-off 更多體現在時間觸發和事件觸發的區別上,即下圖所示:

在通訊通道容量較低並且通訊需求量高的情況下,Time Triggered System 可以更好地滿足通訊需求。

總結

為了保證系統實時性,需要對軟硬體通訊協定進行設計使得有用資訊快速被傳達到需要的節點。如協定中的仲裁方式和流控機制,使得系統達到較高的通訊效率。在分散式的通訊架構中,應當在設計之初考慮系統延時、可靠性與容錯機制、資訊處理效率等因素,保證系統安全可靠。