解析多處理器模式下RS485總線在飛機配電系統(tǒng)中的應(yīng)用
引言
本文引用地址:http://cafeforensic.com/article/201808/385630.htm飛機配電系統(tǒng)的功能是實現(xiàn)飛機電能的輸送、分配及保護控制。隨著航空、電子以及計算機技術(shù)的高速發(fā)展,機載設(shè)備的數(shù)量大幅增加,供電系統(tǒng)容量迅速增長[1],飛機配電系統(tǒng)逐步向著以通信總線為基礎(chǔ)的自動配電系統(tǒng)發(fā)展。RS485 總線以其協(xié)議簡單、配置靈活等特點,常作為一種余度總線,用于含有多種數(shù)據(jù)總線的飛機自動配電系統(tǒng)中[2]。本文主要探討多處理器模式下 RS485 總線在飛機配電系統(tǒng)中的應(yīng)用。
2 .飛機配電系統(tǒng)的結(jié)構(gòu)及通信要求
飛機自動配電系統(tǒng)包括一次配電系統(tǒng)和二次配電系統(tǒng),其中,一次配電系統(tǒng)的核心控制部件是匯流條功率控制器 BPCU(Bus Power Control Unit);二次配電系統(tǒng)的控制部件是二次配電控制單元 RPDU(RemotePower Distribution Unit)。 本文所涉及的飛機配電系統(tǒng)通信網(wǎng)絡(luò)如圖 1 所示。其中,BPCU 通過 1553B 總線與上位機通信,向上位機傳遞飛機配電系統(tǒng)的運行狀況;BPCU 與 RPDU 及發(fā)電機控制器 GCU(GeneratorControl Unit)之間通過 RS485 總線及其它通信總線 (如CAN 總線或 429 總線等)進(jìn)行通信。BPCU 根據(jù) GCU和 RPDU 反饋的信息對配電系統(tǒng)進(jìn)行監(jiān)控和管理,實現(xiàn)匯流條切換、大功率負(fù)載的自動管理,完成飛機電能的分配。
由圖 1 可知,飛機電網(wǎng)結(jié)構(gòu)較復(fù)雜,飛機一次配電系統(tǒng)中共有2個BPCU同時工作, 分別為左(L)BPCU和右(R)BPCU。因此,該配電系統(tǒng)構(gòu)成了一個含有多處理器的 RS485 總線通信網(wǎng)絡(luò)。該通信網(wǎng)絡(luò)需實現(xiàn)的功能如下:2 個 BPCU 之間需定時通信,交換數(shù)據(jù)并監(jiān)控對方是否正常運轉(zhuǎn);2 個 BPCU 需定時與所有GCU 和 RPDU 通信,監(jiān)控電網(wǎng)運行狀態(tài);正常情況下GCU、RPDU 之間則不需通信。
3.R S 4 8 5 總線及其總線沖突問題
RS485 總線標(biāo)準(zhǔn)是美國電氣工業(yè)聯(lián)合會制定的以雙絞線作傳輸線的通信標(biāo)準(zhǔn),采用平衡發(fā)送和差分接收,允許雙絞線上一個發(fā)送器驅(qū)動 32 個負(fù)載設(shè)備[3]。RS485 以半雙工方式通信,用于多站互連時,便于組建可靠性高及分布范圍較廣的總線網(wǎng)絡(luò)[4]。然而,由于 RS485 總線的通信方式是半雙工,即同一時刻總線上只能有一個節(jié)點成為主節(jié)點,如果同時有兩個或以上的節(jié)點處于發(fā)送狀態(tài),將導(dǎo)致所有發(fā)送方的數(shù)據(jù)發(fā)送失敗,這就是總線沖突[5]。當(dāng)通信網(wǎng)絡(luò)中存在 2 個以上的節(jié)點時,解決其總線沖突問題就成了提高其工作可靠性、穩(wěn)定性的關(guān)鍵和前提[6]。
4 .總線沖突的解決方法
在圖 1 所示的通信網(wǎng)絡(luò)中共有 2 個 BPCU 和多個RPDU 及 GCU 進(jìn)行通信, 構(gòu)成了一個含有多處理器的RS485 通信網(wǎng)絡(luò), 由于數(shù)據(jù)的交流和傳輸均是雙向的,因此存在總線沖突問題。解決總線沖突最常見的方法是主從通信協(xié)議法。主從協(xié)議的原理如圖 2 所示,該方法將通信網(wǎng)絡(luò)中某一終端定為主處理器,主處理器依次向各從處理器發(fā)出指令(Cmd) ,從處理器根據(jù)指令將數(shù)據(jù)(Data)發(fā)送至主處理器。 該方法的缺點是若從處理器個數(shù)較多,系統(tǒng)的實時性會降低,且若主處理器出現(xiàn)故障,則整個通信網(wǎng)絡(luò)無法正常工作。文獻(xiàn)[7]以主從通信協(xié)議為基礎(chǔ),提出了如圖 3 所示的從處理器傳遞數(shù)據(jù)法,該方式節(jié)省了主處理器詢問從處理器的時間,提高了通信的實時性。文獻(xiàn)[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)先級的算法較復(fù)雜,且整個系統(tǒng)中仍然只能有一個主處理器,無法實現(xiàn) RS485 的多主處理器通信。
除采用主從通信協(xié)議的方法解決總線沖突問題外,還有總線監(jiān)聽的方式。文獻(xiàn)[9]介紹了一種利用硬件電路監(jiān)聽總線的方法,該方法實現(xiàn)了 RS485 總線的多主通信,缺點是額外增加的硬件電路會對 RS485 總線阻抗造成影響。 文獻(xiàn)[10]提出了一種由軟件實現(xiàn)總線偵聽、差別延時來解決 RS485 總線沖突的方法。該方法中每個節(jié)點由于偵聽時間的不同而具有不同的優(yōu)先級,因而能夠很好的實現(xiàn) RS485 總線多主通信,但由于優(yōu)先級的限制,某些時刻對個別緊急數(shù)據(jù)的處理實時性較差。
本文所涉及的RS485通信網(wǎng)絡(luò)中, 共由2個BPCU同時對飛機配電系統(tǒng)進(jìn)行控制,形成了一個存在 2 個主處理器和多個從處理器的通信網(wǎng)絡(luò)。2 個主處理器的存在使整個網(wǎng)絡(luò)無法依靠主從協(xié)議避免總線沖突;而偵聽總線的方式則會使只需做應(yīng)答的從處理器GCU 和 RPDU 的通信算法復(fù)雜化。針對該網(wǎng)絡(luò)含有 2個主處理器及多個從處理器的特點,本文提出一種融合了主從通信原理和時差偵聽的方式來解決總線沖突。其原理如下:根據(jù)主從協(xié)議適合詢問-應(yīng)答模式的特點,將每個 GCU 及 RPDU 作為從處理器,等待命令進(jìn)行響應(yīng);根據(jù)時差偵聽法不受 RS485 主處理器個數(shù)限制的特點, 將通信網(wǎng)絡(luò)中的 LBPCU 及 RBPCU 作為主處理器,由時差偵聽法來確定由哪一個 BPCU 來占用總線。
本文首先在文獻(xiàn)[8]提出的基于主從通信協(xié)議的優(yōu)先級上報法的基礎(chǔ)上進(jìn)行改進(jìn)。由于從處理器優(yōu)先級算法復(fù)雜,本文中主處理器僅詢問從處理器是否有數(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ù)反饋。
針對通信網(wǎng)絡(luò)中共有 2 個主處理器的特點,本文采取時差偵聽總線的方式來實現(xiàn)確定以哪一個 BPCU為主處理器。其原理是給 2 個 BPCU 設(shè)置不同的優(yōu)先級,具有較高優(yōu)先級的 BPCU 能夠搶占到總線的控制權(quán)。具體方法如下:首先假定 LBPCU 有最高的優(yōu)先級,需要發(fā)送數(shù)據(jù)時需先偵聽總線,若發(fā)現(xiàn)總線空閑,則開始進(jìn)行延時偵聽,由于優(yōu)先級最高,LBPCU 延時偵聽需要的時間比 RBPCU 短,經(jīng)過一段時間若總線始終保持空閑狀態(tài),則 LBPCU 可以發(fā)送數(shù)據(jù)或指令,發(fā)送完成后,LBPCU 優(yōu)先級降低,同時 RBPCU 優(yōu)先級提高,RBPCU 占有最高的優(yōu)先級。
評論