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