1.引言
飛機配電系統的功能是實現飛機電能的輸送、分配及保護控制。隨著航空、電子以及計算機技術的高速發展,機載設備的數量大幅增加,供電系統容量迅速增長[1],飛機配電系統逐步向著以通信總線為基礎的自動配電系統發展。RS485 總線以其協議簡單、配置靈活等特點,常作為一種余度總線,用于含有多種數據總線的飛機自動配電系統中[2]。本文主要探討多處理器模式下 RS485 總線在飛機配電系統中的應用。
2.飛機配電系統的結構及通信要求
飛機自動配電系統包括一次配電系統和二次配電系統,其中,一次配電系統的核心控制部件是匯流條功率控制器 BPCU(Bus Power Control Unit);二次配電系統的控制部件是二次配電控制單元 RPDU(RemotePower Distribution Unit)。 本文所涉及的飛機配電系統通信網絡如圖 1 所示。其中,BPCU 通過 1553B 總線與上位機通信,向上位機傳遞飛機配電系統的運行狀況;BPCU 與 RPDU 及發電機控制器 GCU(GeneratorControl Unit)之間通過 RS485 總線及其它通信總線 (如CAN 總線或 429 總線等)進行通信。BPCU 根據 GCU和 RPDU 反饋的信息對配電系統進行監控和管理,實現匯流條切換、大功率負載的自動管理,完成飛機電能的分配。
由圖 1 可知,飛機電網結構較復雜,飛機一次配電系統中共有2個BPCU同時工作, 分別為左(L)BPCU和右(R)BPCU。因此,該配電系統構成了一個含有多處理器的 RS485 總線通信網絡。該通信網絡需實現的功能如下:2 個 BPCU 之間需定時通信,交換數據并監控對方是否正常運轉;2 個 BPCU 需定時與所有GCU 和 RPDU 通信,監控電網運行狀態;正常情況下GCU、RPDU 之間則不需通信。
3.R S 4 8 5 總線及其總線沖突問題
RS485 總線標準是美國電氣工業聯合會制定的以雙絞線作傳輸線的通信標準,采用平衡發送和差分接收,允許雙絞線上一個發送器驅動 32 個負載設備[3]。RS485 以半雙工方式通信,用于多站互連時,便于組建可靠性高及分布范圍較廣的總線網絡[4]。然而,由于 RS485 總線的通信方式是半雙工,即同一時刻總線上只能有一個節點成為主節點,如果同時有兩個或以上的節點處于發送狀態,將導致所有發送方的數據發送失敗,這就是總線沖突[5]。當通信網絡中存在 2 個以上的節點時,解決其總線沖突問題就成了提高其工作可靠性、穩定性的關鍵和前提[6]。
4.總線沖突的解決方法
在圖 1 所示的通信網絡中共有 2 個 BPCU 和多個RPDU 及 GCU 進行通信, 構成了一個含有多處理器的RS485 通信網絡, 由于數據的交流和傳輸均是雙向的,因此存在總線沖突問題。解決總線沖突最常見的方法是主從通信協議法。主從協議的原理如圖 2 所示,該方法將通信網絡中某一終端定為主處理器,主處理器依次向各從處理器發出指令(Cmd) ,從處理器根據指令將數據(Data)發送至主處理器。 該方法的缺點是若從處理器個數較多,系統的實時性會降低,且若主處理器出現故障,則整個通信網絡無法正常工作。文獻[7]以主從通信協議為基礎,提出了如圖 3 所示的從處理器傳遞數據法,該方式節省了主處理器詢問從處理器的時間,提高了通信的實時性。文獻[8]提出了按從處理器優先級發送數據的方法,其原理如圖 4 所示。該方法由主處理器發出優先級上報指令(Cmdp),從處理器逐個上報優先級(PRI),掃描完一輪優先級后,主處理器向優先級最高的從處理器 k 發出指(Cmdk)詢問數據。優先級法數據量小,系統的實時性得到了提高,然而該方法中從處理器計算優先級的算法較復雜,且整個系統中仍然只能有一個主處理器,無法實現 RS485 的多主處理器通信。
除采用主從通信協議的方法解決總線沖突問題外,還有總線監聽的方式。文獻[9]介紹了一種利用硬件電路監聽總線的方法,該方法實現了 RS485 總線的多主通信,缺點是額外增加的硬件電路會對 RS485 總線阻抗造成影響。 文獻[10]提出了一種由軟件實現總線偵聽、差別延時來解決 RS485 總線沖突的方法。該方法中每個節點由于偵聽時間的不同而具有不同的優先級,因而能夠很好的實現 RS485 總線多主通信,但由于優先級的限制,某些時刻對個別緊急數據的處理實時性較差。
本文所涉及的RS485通信網絡中, 共由2個BPCU同時對飛機配電系統進行控制,形成了一個存在 2 個主處理器和多個從處理器的通信網絡。2 個主處理器的存在使整個網絡無法依靠主從協議避免總線沖突;而偵聽總線的方式則會使只需做應答的從處理器GCU 和 RPDU 的通信算法復雜化。針對該網絡含有 2個主處理器及多個從處理器的特點,本文提出一種融合了主從通信原理和時差偵聽的方式來解決總線沖突。其原理如下:根據主從協議適合詢問-應答模式的特點,將每個 GCU 及 RPDU 作為從處理器,等待命令進行響應;根據時差偵聽法不受 RS485 主處理器個數限制的特點, 將通信網絡中的 LBPCU 及 RBPCU 作為主處理器,由時差偵聽法來確定由哪一個 BPCU 來占用總線。
本文首先在文獻[8]提出的基于主從通信協議的優先級上報法的基礎上進行改進。由于從處理器優先級算法復雜,本文中主處理器僅詢問從處理器是否有數據上報,即詢問從處理器的 Y/N 狀態,從處理器上報完一輪 Y/N 狀態后,由主處理器確定向哪些從處理器詢問數據,無論哪個 BPCU 發送 Y/N 狀態詢問指令或數據詢問指令,2 個 BPCU 均能收到所有從處理器Y/N 狀態或數據反饋。
針對通信網絡中共有 2 個主處理器的特點,本文采取時差偵聽總線的方式來實現確定以哪一個 BPCU為主處理器。其原理是給 2 個 BPCU 設置不同的優先級,具有較高優先級的 BPCU 能夠搶占到總線的控制權。具體方法如下:首先假定 LBPCU 有最高的優先級,需要發送數據時需先偵聽總線,若發現總線空閑,則開始進行延時偵聽,由于優先級最高,LBPCU 延時偵聽需要的時間比 RBPCU 短,經過一段時間若總線始終保持空閑狀態,則 LBPCU 可以發送數據或指令,發送完成后,LBPCU 優先級降低,同時 RBPCU 優先級提高,RBPCU 占有最高的優先級。
結合主從通信原理和差別延時偵聽總線的方法,整個通信網絡的運行方式如下:設某時刻 RS485 總線空閑,LBPCU 為最高級別主處理器,則 LBPCU 監聽總線后可發送三種數據:一是向所有 GCU 及 RPDU發送 Y/N 狀態詢問指令 cmdY/N, 二是向部分 GCU 及RPDU 發送數據上報指令 cmdk,三是向 RBPCU 發送數據,這三種發送過程如圖 5 所示。若 LBPCU 發送了 Y/N 狀態詢問指令 cmdY/N,則 RBPCU 及 LBPCU均可得知所有 GCU 及 RPDU 是否有數據上報要求;若 LBPCU 發送了數據上報指令 cmdk, 該指令中包含需上報數據的所有從處理器的地址,這些從處理器進行數據輪報,在這個過程中,LBPCU 及 RBPCU 均接收所有數據的上報; 若LBPCU向RBPCU發送了數據,則數據中應當包含 LBPCU 的工作狀態。
無論 LBPCU發送了哪種數據,在動作完成后都降低優先級,同時RBPCU 提高優先級, 此時 RBPCU 的優先級變為最高。此后,當總線空閑時,則可由 RBPCU 控制總線,其動作方式與 LBPCU 一致。
5.多處理器 R S 4 8 5 總線的實現
5.1 RS485 總線接口電路的設計
本文中 RS485 總線終端由 TI 公司的 DSPTMS320F2812 及 RS485 收發器 SN65HVD11 構成。DSP 內自帶了 2 個串口模塊 SCIA 和 SCIB,這兩個模塊均有串口接收引腳 SCIRXD 及串口發送引腳SCITXD。RS485 總線接口電路如圖 6 所示,其中,兩個 SN65HVD11 輸出端 A 端及 B 端均分別連接至RS485 總線 A、 B, 從而形成了總線終端的雙余度接口;SN65HVD11的RE端與DE端并聯后, 與主處理器DSP的控制信號 485C 相連,構成一個半雙工的總線接口,因此在任意時刻,該收發器只能處于接收狀態(485C為低電平) 或發送狀態 (485C 為高電平) ; SN65HVD11的 R 端及 D 端分別與 DSP 的串口模塊接口 SCIRXD及 SCITXD 相連;R1 為 120Ω,是 RS485 總線的匹配電阻,在圖 1 所示的通信網絡中,僅有 2 個總線接口處需加入該電阻, 以滿足 RS485 總線的阻抗匹配要求;R2 為串口 SCIB 接收端的上拉電阻, 由于 DSP 的該引腳內部沒有上拉,需外接上拉電阻保證該引腳在總線空閑時始終為高。需要注意的是,為提高通信網絡的可靠性,減小 RS485 總線上的共模干擾等問題,需將總線上各個節點的地線連接起來,形成共同的低阻抗信號地。
5.2 多主通信的軟件設計
本文中所涉及的 RS485 總線通信網絡包括 2 個主處理器 LBPCU 及 RBPCU,多個從處理器 RPDU 及GCU。軟件設計主要包括:主處理器發送,主處理器接收,主處理器自檢測,從處理器發送,從處理器接收。由于從處理器不涉及優先級改變及總線監聽等過程,只是常規的指令響應和數據發送,本文只給出主處理器發送、接收及自檢測的流程。主處理器發送數據或指令前,需偵聽總線是否空閑,完成一次數據或指令發送后,需修改優先級。其軟件流程如圖 7 所示, 圖中 Pri 表示主處理器當前的優先級,t 為等待時間,其計算方法如式(1)所示。
據的發送和接收過程, 串口 SCIB 監控串口 SCIA 是否正常,實現通信的自檢測。串口 SCIB 實現自檢的過程如下:在主處理器發送數據時,串口 SCIB 將串口SCIA 發送的數據讀回,若與發送的數據相同,則表明串口 SCIA 發送正常;在主處理器接收數據時,若串口 SCIB 接收的數據與串口 SCIA 相同,則表明串口SCIA 接收正常。自檢測的流程如圖 9 所示。
5.3 實驗結果
本文利用 DSP 及收發器構成了如圖1 所示的通信網絡, 并進行了相關實驗。 圖10為LBPCU的串口SCIA發送數據時,引腳 SCIATXD 及控制信號 485CA 的波形,由圖 10 可知接口電路能夠正常工作。圖 11 為LBPCU 運行時, 串口 SCIA 的數據發送引腳 SCIATXD及接收引腳 SCIARXD 上的電壓波形,由圖 11 可知,系統運行時沒有發生總線沖突現象。
6.結束語
本文針對飛機配電系統通信網絡的要求及 RS485總線的特點,設計了一套帶有多處理器的 RS485 通信網絡。文章著重研究了避免 RS485 總線沖突的方法,提出了一種適用于飛機配電系統通信網絡的避免總線沖突方法,并用實驗驗證了方法的正確性,實驗結果表明本文設計的方法能夠實現飛機配電系統的通信,并避免總線發現沖突。該方法同樣適用于其他含有少數主處理器和多數從處理結構的通信網絡。
評論
查看更多