01 總線與總線協議

民用飛機通過 A429、A629、A664、TTP 等常見的航空總線,提供了飛控、航電等機載系統和設備間傳輸信號的公共路徑,可實現系統內部和系統間的數據交互。

每一種數據總線,均定義了其如何使用的一套規則,這就是 「總線協議」。相關數據收發設備,需遵循同一 「總線協議」,才能實現正常通信。
例如針對 A429 總線,ARINC(航空無線電通信公司) 發佈了三份總線規範文件。

02 總線傳輸信號的完整性
根據飛機系統的安全性評估過程,如果某些信號的錯誤或異常,對飛機安全有重要影響,那麼我們對這些信號通常有非常高的完整性要求。
根據目前工業水平和 A429、A664 等總線協議特點,總線傳輸信號的可用性可達到 1E-4/FH 至 1E-5/FH 之間,完整性可達到 1E-5/FH 至 1E-6/FH 之間(只考慮傳輸路徑,不考慮信號源的可用性/完整性指標)。
更多關於 「可用性」 和 「完整性」 的解釋,可點擊閱讀:
飛機和系統安全性中的「可用性」和「完整性」是什麼意思?
如果對信號完整性有更高要求,可採用多餘度投票表決或校驗應用層 CRC 等方法實現。
對於多餘度表決的方案,可點擊閱讀:
民用飛機飛控系統,如何對傳感器信號進行投票表決?
這裡以循環冗餘校驗(CRC)為例,介紹一種常見的信號傳輸完整性解決方案。
03 什麼是循環冗餘校驗(CRC)?
CRC 是循環冗餘校驗的縮寫,全稱是 Cyclical Redundancy Check。
CRC 的基本原理是發送端根據 CRC 算法,對總線上要傳輸的原始數據進行計算,得到一個 CRC 校驗碼(簡稱 A),這個校驗碼 A 與原始數據存在着固有的關係。發送端把原始數據和校驗碼 A 組合在一起,發送給接收端。
接收端收到數據之後,通過算法對原始數據進行獨立計算,得到一個新的 CRC 校驗碼(簡稱 B),並將兩個 CRC 校驗碼(A 和 B)進行比較驗證,若不一致則表示數據在傳輸過程中出錯,從而提高了總線傳輸數據的完整性。
假設原始數據可用 n 階多項式 P(x) 來表示,如下:

其中 a 為 0 或 1;x 用來表明二進制數據的排列位置。例如一個 10 位二進制數 1101011011 用多項式表示,如下:

將 P(x) 除以一個下圖所示的 CRC 多項式後,可得到一個餘數 R(x) ,即 CRC 校驗碼。

CRC算法中的,常見的生成多項式,如上圖所示。
註:由於多項式表示或二進制表示較為繁瑣,造成交流不便,因此實際使用時多採用 16 進制簡寫法來表示。同時考慮到多項式最高位為 1,而最高位的位置可由原始數據的位寬確定,因此十六進制簡記式中,將最高位的 1 去掉了。
04 CRC校驗碼如何產生?
在 CRC 算法中,多項式的乘除法,可以對應到二進制數的模 2 運算,這就是我們通常所說的異或運算。
在工程應用中,我們希望餘數的位數固定以便在實現時可以節省資源。常見的 CRC 方案是 16 位或 32 位。若原始數據的長度比 CRC 碼短,必須擴展到 16/32 位以上才能到一個 16/32 位的餘數。通常的做法是在原始數據的右邊添加相應的 CRC 碼位數。
這裡列舉一個簡單的例子,用於闡明 CRC 校驗碼的計算過程。
假設原始二進制數據為 1101011011,採用 4 位 CRC 校驗,則除數多項式選取CRC-4,即 10011。計算過程如下所示(計算前將原始數據後面補 4 個 0)。

最後得到的餘數為 1110,即計算得到的 4 位 CRC 校驗碼。16/32 位 CRC 校驗碼的計算過程與之類似。
05 總結
理論上 32 位 CRC 可提供
99.999999976716935634613037109375% 的錯誤檢測率,或者說傳輸鏈路完整性可達到 2.328E-10(1/2的 32 次方),因此 32 位 CRC 在高完整性數據傳輸過程中,得到了廣泛應用。
當然啦,CRC 只是提高傳輸信號完整性的一種措施,並非唯一。感興趣的朋友,歡迎留言,我們一起探討民機的世界!
原創文章,作者:投稿專員,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/299183.html