1.引言
飛機配電系統(tǒng)的功能是實現(xiàn)飛機電能的輸送、分配及保護控制。隨著航空、電子以及計算機技術的高速發(fā)展,機載設備的數(shù)量大幅增加,供電系統(tǒng)容量迅速增長[1],飛機配電系統(tǒng)逐步向著以通信總線為基礎的自動配電系統(tǒng)發(fā)展。RS485 總線以其協(xié)議簡單、配置靈活等特點,常作為一種余度總線,用于含有多種數(shù)據(jù)總線的飛機自動配電系統(tǒng)中[2]。本文主要探討多處理器模式下 RS485 總線在飛機配電系統(tǒng)中的應用。
2.飛機配電系統(tǒng)的結構及通信要求
飛機自動配電系統(tǒng)包括一次配電系統(tǒng)和二次配電系統(tǒng),其中,一次配電系統(tǒng)的核心控制部件是匯流條功率控制器 BPCU(Bus Power Control Unit);二次配電系統(tǒng)的控制部件是二次配電控制單元 RPDU(RemotePower Distribution Unit)。 本文所涉及的飛機配電系統(tǒng)通信網絡如圖 1 所示。其中,BPCU 通過 1553B 總線與上位機通信,向上位機傳遞飛機配電系統(tǒng)的運行狀況;BPCU 與 RPDU 及發(fā)電機控制器 GCU(GeneratorControl Unit)之間通過 RS485 總線及其它通信總線 (如CAN 總線或 429 總線等)進行通信。BPCU 根據(jù) GCU和 RPDU 反饋的信息對配電系統(tǒng)進行監(jiān)控和管理,實現(xiàn)匯流條切換、大功率負載的自動管理,完成飛機電能的分配。
由圖 1 可知,飛機電網結構較復雜,飛機一次配電系統(tǒng)中共有2個BPCU同時工作, 分別為左(L)BPCU和右(R)BPCU。因此,該配電系統(tǒng)構成了一個含有多處理器的 RS485 總線通信網絡。該通信網絡需實現(xiàn)的功能如下:2 個 BPCU 之間需定時通信,交換數(shù)據(jù)并監(jiān)控對方是否正常運轉;2 個 BPCU 需定時與所有GCU 和 RPDU 通信,監(jiān)控電網運行狀態(tài);正常情況下GCU、RPDU 之間則不需通信。

3.R S 4 8 5 總線及其總線沖突問題
RS485 總線標準是美國電氣工業(yè)聯(lián)合會制定的以雙絞線作傳輸線的通信標準,采用平衡發(fā)送和差分接收,允許雙絞線上一個發(fā)送器驅動 32 個負載設備[3]。RS485 以半雙工方式通信,用于多站互連時,便于組建可靠性高及分布范圍較廣的總線網絡[4]。然而,由于 RS485 總線的通信方式是半雙工,即同一時刻總線上只能有一個節(jié)點成為主節(jié)點,如果同時有兩個或以上的節(jié)點處于發(fā)送狀態(tài),將導致所有發(fā)送方的數(shù)據(jù)發(fā)送失敗,這就是總線沖突[5]。當通信網絡中存在 2 個以上的節(jié)點時,解決其總線沖突問題就成了提高其工作可靠性、穩(wěn)定性的關鍵和前提[6]。
4.總線沖突的解決方法
在圖 1 所示的通信網絡中共有 2 個 BPCU 和多個RPDU 及 GCU 進行通信, 構成了一個含有多處理器的RS485 通信網絡, 由于數(shù)據(jù)的交流和傳輸均是雙向的,因此存在總線沖突問題。解決總線沖突最常見的方法是主從通信協(xié)議法。主從協(xié)議的原理如圖 2 所示,該方法將通信網絡中某一終端定為主處理器,主處理器依次向各從處理器發(fā)出指令(Cmd) ,從處理器根據(jù)指令將數(shù)據(jù)(Data)發(fā)送至主處理器。 該方法的缺點是若從處理器個數(shù)較多,系統(tǒng)的實時性會降低,且若主處理器出現(xiàn)故障,則整個通信網絡無法正常工作。文獻[7]以主從通信協(xié)議為基礎,提出了如圖 3 所示的從處理器傳遞數(shù)據(jù)法,該方式節(jié)省了主處理器詢問從處理器的時間,提高了通信的實時性。文獻[8]提出了按從處理器優(yōu)先級發(fā)送數(shù)據(jù)的方法,其原理如圖 4 所示。該方法由主處理器發(fā)出優(yōu)先級上報指令(Cmdp),從處理器逐個上報優(yōu)先級(PRI),掃描完一輪優(yōu)先級后,主處理器向優(yōu)先級最高的從處理器 k 發(fā)出指(Cmdk)詢問數(shù)據(jù)。優(yōu)先級法數(shù)據(jù)量小,系統(tǒng)的實時性得到了提高,然而該方法中從處理器計算優(yōu)先級的算法較復雜,且整個系統(tǒng)中仍然只能有一個主處理器,無法實現(xiàn) RS485 的多主處理器通信。

除采用主從通信協(xié)議的方法解決總線沖突問題外,還有總線監(jiān)聽的方式。文獻[9]介紹了一種利用硬件電路監(jiān)聽總線的方法,該方法實現(xiàn)了 RS485 總線的多主通信,缺點是額外增加的硬件電路會對 RS485 總線阻抗造成影響。 文獻[10]提出了一種由軟件實現(xiàn)總線偵聽、差別延時來解決 RS485 總線沖突的方法。該方法中每個節(jié)點由于偵聽時間的不同而具有不同的優(yōu)先級,因而能夠很好的實現(xiàn) RS485 總線多主通信,但由于優(yōu)先級的限制,某些時刻對個別緊急數(shù)據(jù)的處理實時性較差。
本文所涉及的RS485通信網絡中, 共由2個BPCU同時對飛機配電系統(tǒng)進行控制,形成了一個存在 2 個主處理器和多個從處理器的通信網絡。2 個主處理器的存在使整個網絡無法依靠主從協(xié)議避免總線沖突;而偵聽總線的方式則會使只需做應答的從處理器GCU 和 RPDU 的通信算法復雜化。針對該網絡含有 2個主處理器及多個從處理器的特點,本文提出一種融合了主從通信原理和時差偵聽的方式來解決總線沖突。其原理如下:根據(jù)主從協(xié)議適合詢問-應答模式的特點,將每個 GCU 及 RPDU 作為從處理器,等待命令進行響應;根據(jù)時差偵聽法不受 RS485 主處理器個數(shù)限制的特點, 將通信網絡中的 LBPCU 及 RBPCU 作為主處理器,由時差偵聽法來確定由哪一個 BPCU 來占用總線。
本文首先在文獻[8]提出的基于主從通信協(xié)議的優(yōu)先級上報法的基礎上進行改進。由于從處理器優(yōu)先級算法復雜,本文中主處理器僅詢問從處理器是否有數(shù)據(jù)上報,即詢問從處理器的 Y/N 狀態(tài),從處理器上報完一輪 Y/N 狀態(tài)后,由主處理器確定向哪些從處理器詢問數(shù)據(jù),無論哪個 BPCU 發(fā)送 Y/N 狀態(tài)詢問指令或數(shù)據(jù)詢問指令,2 個 BPCU 均能收到所有從處理器Y/N 狀態(tài)或數(shù)據(jù)反饋。
針對通信網絡中共有 2 個主處理器的特點,本文采取時差偵聽總線的方式來實現(xiàn)確定以哪一個 BPCU為主處理器。其原理是給 2 個 BPCU 設置不同的優(yōu)先級,具有較高優(yōu)先級的 BPCU 能夠搶占到總線的控制權。具體方法如下:首先假定 LBPCU 有最高的優(yōu)先級,需要發(fā)送數(shù)據(jù)時需先偵聽總線,若發(fā)現(xiàn)總線空閑,則開始進行延時偵聽,由于優(yōu)先級最高,LBPCU 延時偵聽需要的時間比 RBPCU 短,經過一段時間若總線始終保持空閑狀態(tài),則 LBPCU 可以發(fā)送數(shù)據(jù)或指令,發(fā)送完成后,LBPCU 優(yōu)先級降低,同時 RBPCU 優(yōu)先級提高,RBPCU 占有最高的優(yōu)先級。

結合主從通信原理和差別延時偵聽總線的方法,整個通信網絡的運行方式如下:設某時刻 RS485 總線空閑,LBPCU 為最高級別主處理器,則 LBPCU 監(jiān)聽總線后可發(fā)送三種數(shù)據(jù):一是向所有 GCU 及 RPDU發(fā)送 Y/N 狀態(tài)詢問指令 cmdY/N, 二是向部分 GCU 及RPDU 發(fā)送數(shù)據(jù)上報指令 cmdk,三是向 RBPCU 發(fā)送數(shù)據(jù),這三種發(fā)送過程如圖 5 所示。若 LBPCU 發(fā)送了 Y/N 狀態(tài)詢問指令 cmdY/N,則 RBPCU 及 LBPCU均可得知所有 GCU 及 RPDU 是否有數(shù)據(jù)上報要求;若 LBPCU 發(fā)送了數(shù)據(jù)上報指令 cmdk, 該指令中包含需上報數(shù)據(jù)的所有從處理器的地址,這些從處理器進行數(shù)據(jù)輪報,在這個過程中,LBPCU 及 RBPCU 均接收所有數(shù)據(jù)的上報; 若LBPCU向RBPCU發(fā)送了數(shù)據(jù),則數(shù)據(jù)中應當包含 LBPCU 的工作狀態(tài)。
無論 LBPCU發(fā)送了哪種數(shù)據(jù),在動作完成后都降低優(yōu)先級,同時RBPCU 提高優(yōu)先級, 此時 RBPCU 的優(yōu)先級變?yōu)樽罡?。此后,當總線空閑時,則可由 RBPCU 控制總線,其動作方式與 LBPCU 一致。
5.多處理器 R S 4 8 5 總線的實現(xiàn)
5.1 RS485 總線接口電路的設計
本文中 RS485 總線終端由 TI 公司的 DSPTMS320F2812 及 RS485 收發(fā)器 SN65HVD11 構成。DSP 內自帶了 2 個串口模塊 SCIA 和 SCIB,這兩個模塊均有串口接收引腳 SCIRXD 及串口發(fā)送引腳SCITXD。RS485 總線接口電路如圖 6 所示,其中,兩個 SN65HVD11 輸出端 A 端及 B 端均分別連接至RS485 總線 A、 B, 從而形成了總線終端的雙余度接口;SN65HVD11的RE端與DE端并聯(lián)后, 與主處理器DSP的控制信號 485C 相連,構成一個半雙工的總線接口,因此在任意時刻,該收發(fā)器只能處于接收狀態(tài)(485C為低電平) 或發(fā)送狀態(tài) (485C 為高電平) ; SN65HVD11的 R 端及 D 端分別與 DSP 的串口模塊接口 SCIRXD及 SCITXD 相連;R1 為 120Ω,是 RS485 總線的匹配電阻,在圖 1 所示的通信網絡中,僅有 2 個總線接口處需加入該電阻, 以滿足 RS485 總線的阻抗匹配要求;R2 為串口 SCIB 接收端的上拉電阻, 由于 DSP 的該引腳內部沒有上拉,需外接上拉電阻保證該引腳在總線空閑時始終為高。需要注意的是,為提高通信網絡的可靠性,減小 RS485 總線上的共模干擾等問題,需將總線上各個節(jié)點的地線連接起來,形成共同的低阻抗信號地。

5.2 多主通信的軟件設計
本文中所涉及的 RS485 總線通信網絡包括 2 個主處理器 LBPCU 及 RBPCU,多個從處理器 RPDU 及GCU。軟件設計主要包括:主處理器發(fā)送,主處理器接收,主處理器自檢測,從處理器發(fā)送,從處理器接收。由于從處理器不涉及優(yōu)先級改變及總線監(jiān)聽等過程,只是常規(guī)的指令響應和數(shù)據(jù)發(fā)送,本文只給出主處理器發(fā)送、接收及自檢測的流程。主處理器發(fā)送數(shù)據(jù)或指令前,需偵聽總線是否空閑,完成一次數(shù)據(jù)或指令發(fā)送后,需修改優(yōu)先級。其軟件流程如圖 7 所示, 圖中 Pri 表示主處理器當前的優(yōu)先級,t 為等待時間,其計算方法如式(1)所示。

據(jù)的發(fā)送和接收過程, 串口 SCIB 監(jiān)控串口 SCIA 是否正常,實現(xiàn)通信的自檢測。串口 SCIB 實現(xiàn)自檢的過程如下:在主處理器發(fā)送數(shù)據(jù)時,串口 SCIB 將串口SCIA 發(fā)送的數(shù)據(jù)讀回,若與發(fā)送的數(shù)據(jù)相同,則表明串口 SCIA 發(fā)送正常;在主處理器接收數(shù)據(jù)時,若串口 SCIB 接收的數(shù)據(jù)與串口 SCIA 相同,則表明串口SCIA 接收正常。自檢測的流程如圖 9 所示。


5.3 實驗結果
本文利用 DSP 及收發(fā)器構成了如圖1 所示的通信網絡, 并進行了相關實驗。 圖10為LBPCU的串口SCIA發(fā)送數(shù)據(jù)時,引腳 SCIATXD 及控制信號 485CA 的波形,由圖 10 可知接口電路能夠正常工作。圖 11 為LBPCU 運行時, 串口 SCIA 的數(shù)據(jù)發(fā)送引腳 SCIATXD及接收引腳 SCIARXD 上的電壓波形,由圖 11 可知,系統(tǒng)運行時沒有發(fā)生總線沖突現(xiàn)象。

6.結束語
本文針對飛機配電系統(tǒng)通信網絡的要求及 RS485總線的特點,設計了一套帶有多處理器的 RS485 通信網絡。文章著重研究了避免 RS485 總線沖突的方法,提出了一種適用于飛機配電系統(tǒng)通信網絡的避免總線沖突方法,并用實驗驗證了方法的正確性,實驗結果表明本文設計的方法能夠實現(xiàn)飛機配電系統(tǒng)的通信,并避免總線發(fā)現(xiàn)沖突。該方法同樣適用于其他含有少數(shù)主處理器和多數(shù)從處理結構的通信網絡。
電子發(fā)燒友App

























評論