陳瀟然, 張之江, 徐健龍
(1.上海大學,上海 200000; 2.上海飛機設計研究院,上海 201000)
CAN是國際標準的現場總線,憑借其優異的可靠性、實時性、靈活性,以及通信速率高、開發周期短、成本低等優勢,逐步進入航空航天領域,服務于機載系統。然而,CAN在航空領域的直接應用存在問題,需要開發適應性的應用層拓展協議,其中,最具代表性的包括ARINC825協議和CANaerospace協議[1]。ARINC825協議由AEEC組織制定,相比德國Stock Flight Systems公司制定的CANaerospace協議更加標準和全面,充分考慮了安全性和航空認證問題,從而確??缭较到y和網絡區域的互用性。
ARINC825協議又稱為《機載應用的CAN總線協議通用標準》,2007年發布最初版,最新一次修改是2018年的第4次增補。ARINC825協議對CAN總線的可用性和完整性做了改進[2],但在改進確定性方面,卻不如CANaerospace協議的時間觸發機制完善,導致在實際工程應用中存在缺陷[3-5]。因此,在ARINC825協議中引入TTCAN調度策略來提高總線的實時性[6]。
本文從國產大飛機遠程配電組件(Remote Power Distribution Unit,RPDU)系統對通信總線的特殊性需求出發,將CAN總線做航空適應性改進,解決實際應用中的問題,為遠程配電組件系統的CAN總線國產化提供參考方案。
遠程配電組件系統是民用飛機電源系統的重要組成部分,主要提供飛機的二次配電、過流保護,以及電氣系統與航空電子系統的數據通信[7]。國產大飛機的RPDU系統與傳統波音737和空客A320的RPDU系統有所區別,這對本文設計提出特殊性要求。
國產大飛機遠程配電系統由左、右兩個相似的RPDU系統組成,其中,左RPDU系統的通信架構如圖1所示,每個RPDU系統包含1個網關RPDU和5個附屬RPDU。

圖1 左RPDU系統通信架構Fig.1 Left RPDU system communication architecture
由圖1可知,每個附屬RPDU有2個冗余通信模塊,傳輸內部6個固態功率控制器(Solid-State Power Controller,SSPC)的狀態和負載信息,并接收飛機的控制指令,網關RPDU還有額外的航電通信模塊,實現與飛機數據網絡的數據交互。
鑒于上述RPDU系統的設計要求和原TTP總線的特點,CAN總線需滿足以下要求:
1) 系統以200 ms為周期發送消息,控制指令發出后,SSPC在700 ms內做出響應,每個負載的信息和SSPC狀態均需被CAN消息覆蓋,并且其數據格式應緊湊,留有1個字節的可拓展空間;
2) 要求網關實現CAN網絡與ARINC664網絡匹配,并保證數據轉換的實時性;
3) 要求CAN總線支持雙冗余度,物理層和數據鏈路層不變,僅通過開發CAN總線的應用層來實現此項功能;
4) 要求CAN總線增加完整性校驗機制,能夠檢測信道錯誤,并將其匯報給飛機數據網;
5) 要求數據消息可預測,解決CAN總線在極端情況下,低優先級的消息會長期無法競爭到總線發送權,從而導致消息延遲不可預知的問題。
網絡拓撲結構和通信速率也是CAN通信模塊需要考慮的重要問題[8]。在RPDU系統中,考慮到各RPDU位置,通信節點可以使用總線型連接器連接法相互連接,如圖2所示,其中,H和L分別代表CAN_High和CAN_Low,同時要注意RPDU通信節點的短截線連接距離不宜過長。

圖2 總線型連接器連接法Fig.2 Bus connector splice wire method
通信速率應該與系統的總線距離相匹配,根據設計要求[9],在保證通信速率盡可能高的情況下,選速率為500 Kibit/s時,滿足CAN總線通信要求。
附屬RPDU的通信模塊稱為節點機[10],結構如圖3所示。

圖3 節點機結構Fig.3 Node structure
由圖3可知,節點機內部包括處理端、控制端和收發端,處理端實現基于時基觸發的調度機制和高度完整性校驗,以確保CAN通信的確定性和完整性,CAN控制器實現基本的CAN通信功能,2個CAN收發器實現冗余收發,以確保CAN通信的可用性。
節點機中CAN數據域內容包括RPDU內部SSPC的狀態。SSPC的功能可以看作斷路器和繼電器的功能組合:電子開關(ESW)提供繼電器功能,實現對負載供電的打開或關閉,具體由飛機數據網絡發送控制指令;電子斷路器(ECB)提供斷路器功能,實現電路的過流保護作用。
SSPC需要向飛機數據網匯報的狀態要求包括ECB狀態、SSPC工作狀態、電弧故障、饋電電壓狀態、輸出電壓狀態、負載電壓和電流值??刂浦噶钚枰獙崿F以下操作:改變電流編程額定值、啟用多相、處理電弧故障以及控制ESW開關的開啟或關閉。
根據上述要求,先對CAN數據域的前3個字節進行定義,設計的SSPC狀態字節如圖4(a)的第1和第3個字節,第2個字節保留,保證了1個字節的可拓展空間。每條控制指令用一個字節表示,如圖4(a)的第2個字節所示。負載的電流和電壓數值分別存放在第4和第5字節,但是對于常用的基本數據類型,如SHORT類型需要2個字節,FLOAT類型需要4個字節。為了保證數據傳輸效率,對數據格式進行壓縮[11]。電流輸出值用相對于SSPC的電流編程額定值的百分比表示,而電壓輸出值用二進制數值表示,設計的電流狀態字節和電壓狀態字節各數據位描述如圖4(b)所示。

圖4 數據域各字節描述Fig.4 Description of each byte in the data domain
網關RPDU的通信模塊稱為數字網關[12],結構見圖5,其中,MCU代表微控制單元,PHY代表物理層芯片。

圖5 數字網關結構Fig.5 Digital gateway structure
由圖5可知,數字網關中的實時操作系統能夠快速響應外部事件,保證實時性和高可靠性。同時,外設ARINC664協議的物理層和數據鏈路層芯片,有效減輕了CPU負擔,使CPU能夠及時完成數據格式的轉換。本文通過外設一個標準以太網物理層通信芯片驗證網關功能,LwIP內核作為以太網驅動。
對于數字網關將CAN消息轉換為ARINC664報文的格式即對ARINC664報文有效載荷的劃分。ARINC664由標準以太網發展而來,傳輸層主要使用UDP通信協議,在其有效載荷中,提供功能數據集概念來封裝其他協議的數據,結構如圖6(a)所示[13],本文設計的具體劃分格式如圖6(b)所示。1個數據集對應1個RPDU中6個SSPC的狀態信息,功能狀態03表示有數據,00表示無數據,整體由2個功能數據集連接而成。

圖6 ARINC664報文數據域設計Fig.6 ARINC664 message data domain design
CAN總線沒有冗余機制又缺乏完整性校驗機制,接收方無法確定接收的所有數據是否連續完整。本文在ARINC825規定的可用性和完整性基礎上,設計了CAN總線應用層改進方案,并增加故障界定狀態機制,提高系統容錯性。
可用性是指在給定的時間點,一個產品處于有效功能狀態的概率。ARINC825通過冗余方式提高可用性,針對系統需要的冗余方式設計了一種雙節點鏈路混合冗余方式,如圖7所示。其中,每個節點機的2條總線混合接入不同的CAN網絡。

圖7 雙節點鏈路混合冗余方式Fig.7 Dual-node link hybrid redundancy mode
ARINC825協議在一對多(Anyone to Many,ATM)的傳輸模式下,對CAN消息標識符的結構進行劃分,具體如圖8所示,其中,LCC表示邏輯通信通道,Source FID表示功能碼標識符,RSD表示保留位,LCL表示本地位,PVT表示私有位,DOC表示數據對象代碼,RCI表示冗余通道標識符。CAN控制器通過其中的RCI區分冗余消息。主網絡和從網絡對應的RCI值分別為00和01。

圖8 ATM傳輸模式的消息標識符結構Fig.8 Message ID domain structure for ATM communication mode
完整性是系統或組件的一種屬性,表示其能夠按需要正確工作。ARINC825的高度完整性協議規定用CAN數據域中的1個字節作為消息序列號,2個字節作為額外的消息完整性檢查。消息序號是節點機每條消息的編號,初始值為0,之后每次加1,當該編號為255時,下一個消息序號就會重新從1開始,0表示一個初始值或不被使用的序號。每個RPDU有獨立的消息序號,數字網關通過檢查消息序號的連續性,來判斷消息是否丟失。
節點機的消息高度完整性檢查范圍包括消息標識符、數據載荷以及消息序號,如圖9所示。

圖9 高完整性協議消息格式Fig.9 High-integrity protocol message format
消息完整性校驗使用1個16位的CRC碼進行,對應的多項式表示為[14-15]
G(x)=X16+X15+X12+X7+X6+X4+X3+1
(1)
即0x90D9。
16位CRC碼產生的規則表示為

(2)
式中:Q(x)是商;r(x)是余數,即CRC編碼結果;B(x)是按字節表示的二進制序列,即
B(x)=Bn(x)28n+Bn-1(x)28(n-1)+…+
B1(x)28+B0(x)
(3)
式中,Bn(x)為一個字節。
在FPGA設計代碼時,16位移位寄存器的初始值全部為1,消息標識符前面補3位0,數據域、消息序列號和消息標識符依次逐字節計算,得到最終的CRC校驗結果,如圖10所示。

圖10 CRC校驗結果Fig.10 CRC checksum results
數字網關設計的故障檢測技術包括比較檢測和自檢測兩種,比較檢測是比較冗余接收時間差和冗余數據一致性,即可用性檢測;自檢測是消息序列號檢查和CRC校驗,即完整性檢測[16-17]。
在數字網關中設計故障錯誤計數器,將出現的故障總結為瞬時故障和永久故障。若瞬時故障在一個系統周期內出現的數量不超過20個,總線正常通信;超過20個,則判定為永久故障,如表1所示。

表1 數字網關瞬時故障和永久故障總結
由表1可知,當瞬時故障發生時,故障可以糾正。當永久故障發生時,總線進行故障屏蔽和動態重構,同時將ARINC664報文數據域的功能狀態集2的功能狀態3置為03,數據原語的內容表示當前故障編號。
雖然ARINC825協議規定時間片觸發模式可以實現CAN總線確定性,但是僅對周期消息有效,而且對規范時間同步也不夠明確。本文基于TTCAN的時基調度原理,對ARINC825的時間片調度模式改進,確保CAN通信的確定性。
在機載網絡層面,確定性可以定義為保證在指定時間內將正確的消息發送到目標節點的能力。ARINC825采用基于時間片觸發的總線調度機制,提出主、次時間片的概念,如圖11所示。其中,主時間片是指系統內所有周期消息至少傳輸一次所需的時間,而次時間片是指系統中傳輸頻率最大的幀的周期。節點在次時間片內進行多主競爭發送,需要保證能夠完成發送。

圖11 基于主、次時間片的總線調度機制時序圖Fig.11 Timing diagram of bus scheduling mechanism based on major and minor time frame
但是這種調度機制只適用于周期消息,而網關發送的控制指令是一種非周期消息,所以該調度方式存在明顯缺陷,因此引入了TTCAN調度機制。
TTCAN調度機制的關鍵在于設計系統調度矩陣和解決時間同步問題[18-19]。針對系統調度矩陣而言,遠程配電組件系統傳輸的消息具有明確的時間特性,因此可以基于靜態時間表進行設計,如圖12所示,其中,矩陣周期對應主時間片,基本周期對應次時間片,空閑時間窗對應空閑時間。基本周期又可以分為同步相和異步相兩部分,其中,同步相由參考消息和多個消息窗(A~E)構成,而異步相由仲裁窗構成。

圖12 系統調度矩陣Fig.12 System scheduling matrix
對于時間同步問題,參考消息是實現分布式節點間時鐘同步的關鍵因素。數字網關會統一廣播一個數據幀作為參考消息,該消息的發送意味著一個基本周期的開始,各節點機接收到后,內部時間基準歸零。本文根據實際工程對系統矩陣做了兩點簡化:為了節省總線帶寬,每個矩陣周期內僅發送一次參考消息;同時取消基本周期的異步相。
為確保各節點能夠在基本周期內完成發送,需要確定基本周期的長度,在此之前先計算一個數據幀的傳輸時間。假設每幀有19個填充位,則共有150個數據位。當通信速率為500 Kibit/s時,傳輸一幀的時間為0.3 ms。當6個RPDU同時競爭總線時,最低優先級的通信節點需要1.8 ms的延遲才能發送成功,故選擇2 ms作為基本周期。在空閑時間窗內,數字網關發送控制指令,由于只需在700 ms內響應控制指令,所以數字網關可將控制指令緩存一段時間。在矩陣周期只有200 ms的情況下,適當的緩存延遲不會影響控制指令。
根據RPDU系統的總體設計方案,本文構建了遠程配電組件系統通信實驗平臺,該實驗平臺的硬件部分如圖13所示。實驗平臺的目的是通過設計的改進型CAN總線對國產大飛機RPDU系統進行模擬組網通信測試,以驗證其是否能夠達到預期的功能目標。

圖13 遠程配電組件系統通信架構硬件實驗平臺Fig.13 Hardware experimental platform for communication architecture of RPDU system
在RPDU系統采用總線型連接器連接法,并使用雙鏈路冗余方式后,不同節點機根據對應的數據量,對整個系統進行完整通信測試,測試結果如圖14所示。

圖14 系統整體通信測試結果Fig.14 Overall communication test results
圖14(c)展示了節點機的雙節點鏈路混合冗余發送情況;圖14(d)展示了數字網關完成數據格式轉換和發送后,在以太網服務器上呈現ARINC664數據域的完整情況;圖14(e)展示表1中第5種故障發生時,系統可以正常通信,且匯報故障類型。
本文設計了一種改進型CAN總線方案,包括節點機和數字網關。該方案根據相關航空CAN總線標準,從可用性、完整性和確定性3個方面提升了CAN總線的性能。從國產大飛機遠程配電組件系統的特殊性需求為出發點,分析了將改進型CAN總線應用于遠程配電組件系統的具體實施方案。驗證實驗結果表明,本文提出的方案滿足設計要求,可為遠程配電組件系統總線國產化提供參考。未來工作將會改進CAN消息調度策略以及設計加密方案。