1.引言
飛機(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í)。
結(jié)合主從通信原理和差別延時(shí)偵聽總線的方法,整個(gè)通信網(wǎng)絡(luò)的運(yùn)行方式如下:設(shè)某時(shí)刻 RS485 總線空閑,LBPCU 為最高級(jí)別主處理器,則 LBPCU 監(jiān)聽總線后可發(fā)送三種數(shù)據(jù):一是向所有 GCU 及 RPDU發(fā)送 Y/N 狀態(tài)詢問指令 cmdY/N, 二是向部分 GCU 及RPDU 發(fā)送數(shù)據(jù)上報(bào)指令 cmdk,三是向 RBPCU 發(fā)送數(shù)據(jù),這三種發(fā)送過程如圖 5 所示。若 LBPCU 發(fā)送了 Y/N 狀態(tài)詢問指令 cmdY/N,則 RBPCU 及 LBPCU均可得知所有 GCU 及 RPDU 是否有數(shù)據(jù)上報(bào)要求;若 LBPCU 發(fā)送了數(shù)據(jù)上報(bào)指令 cmdk, 該指令中包含需上報(bào)數(shù)據(jù)的所有從處理器的地址,這些從處理器進(jìn)行數(shù)據(jù)輪報(bào),在這個(gè)過程中,LBPCU 及 RBPCU 均接收所有數(shù)據(jù)的上報(bào); 若LBPCU向RBPCU發(fā)送了數(shù)據(jù),則數(shù)據(jù)中應(yīng)當(dāng)包含 LBPCU 的工作狀態(tài)。
無論 LBPCU發(fā)送了哪種數(shù)據(jù),在動(dòng)作完成后都降低優(yōu)先級(jí),同時(shí)RBPCU 提高優(yōu)先級(jí), 此時(shí) RBPCU 的優(yōu)先級(jí)變?yōu)樽罡?。此后,?dāng)總線空閑時(shí),則可由 RBPCU 控制總線,其動(dòng)作方式與 LBPCU 一致。
5.多處理器 R S 4 8 5 總線的實(shí)現(xiàn)
5.1 RS485 總線接口電路的設(shè)計(jì)
本文中 RS485 總線終端由 TI 公司的 DSPTMS320F2812 及 RS485 收發(fā)器 SN65HVD11 構(gòu)成。DSP 內(nèi)自帶了 2 個(gè)串口模塊 SCIA 和 SCIB,這兩個(gè)模塊均有串口接收引腳 SCIRXD 及串口發(fā)送引腳SCITXD。RS485 總線接口電路如圖 6 所示,其中,兩個(gè) SN65HVD11 輸出端 A 端及 B 端均分別連接至RS485 總線 A、 B, 從而形成了總線終端的雙余度接口;SN65HVD11的RE端與DE端并聯(lián)后, 與主處理器DSP的控制信號(hào) 485C 相連,構(gòu)成一個(gè)半雙工的總線接口,因此在任意時(shí)刻,該收發(fā)器只能處于接收狀態(tài)(485C為低電平) 或發(fā)送狀態(tài) (485C 為高電平) ; SN65HVD11的 R 端及 D 端分別與 DSP 的串口模塊接口 SCIRXD及 SCITXD 相連;R1 為 120Ω,是 RS485 總線的匹配電阻,在圖 1 所示的通信網(wǎng)絡(luò)中,僅有 2 個(gè)總線接口處需加入該電阻, 以滿足 RS485 總線的阻抗匹配要求;R2 為串口 SCIB 接收端的上拉電阻, 由于 DSP 的該引腳內(nèi)部沒有上拉,需外接上拉電阻保證該引腳在總線空閑時(shí)始終為高。需要注意的是,為提高通信網(wǎng)絡(luò)的可靠性,減小 RS485 總線上的共模干擾等問題,需將總線上各個(gè)節(jié)點(diǎn)的地線連接起來,形成共同的低阻抗信號(hào)地。
5.2 多主通信的軟件設(shè)計(jì)
本文中所涉及的 RS485 總線通信網(wǎng)絡(luò)包括 2 個(gè)主處理器 LBPCU 及 RBPCU,多個(gè)從處理器 RPDU 及GCU。軟件設(shè)計(jì)主要包括:主處理器發(fā)送,主處理器接收,主處理器自檢測(cè),從處理器發(fā)送,從處理器接收。由于從處理器不涉及優(yōu)先級(jí)改變及總線監(jiān)聽等過程,只是常規(guī)的指令響應(yīng)和數(shù)據(jù)發(fā)送,本文只給出主處理器發(fā)送、接收及自檢測(cè)的流程。主處理器發(fā)送數(shù)據(jù)或指令前,需偵聽總線是否空閑,完成一次數(shù)據(jù)或指令發(fā)送后,需修改優(yōu)先級(jí)。其軟件流程如圖 7 所示, 圖中 Pri 表示主處理器當(dāng)前的優(yōu)先級(jí),t 為等待時(shí)間,其計(jì)算方法如式(1)所示。
據(jù)的發(fā)送和接收過程, 串口 SCIB 監(jiān)控串口 SCIA 是否正常,實(shí)現(xiàn)通信的自檢測(cè)。串口 SCIB 實(shí)現(xiàn)自檢的過程如下:在主處理器發(fā)送數(shù)據(jù)時(shí),串口 SCIB 將串口SCIA 發(fā)送的數(shù)據(jù)讀回,若與發(fā)送的數(shù)據(jù)相同,則表明串口 SCIA 發(fā)送正常;在主處理器接收數(shù)據(jù)時(shí),若串口 SCIB 接收的數(shù)據(jù)與串口 SCIA 相同,則表明串口SCIA 接收正常。自檢測(cè)的流程如圖 9 所示。
5.3 實(shí)驗(yàn)結(jié)果
本文利用 DSP 及收發(fā)器構(gòu)成了如圖1 所示的通信網(wǎng)絡(luò), 并進(jìn)行了相關(guān)實(shí)驗(yàn)。 圖10為LBPCU的串口SCIA發(fā)送數(shù)據(jù)時(shí),引腳 SCIATXD 及控制信號(hào) 485CA 的波形,由圖 10 可知接口電路能夠正常工作。圖 11 為LBPCU 運(yùn)行時(shí), 串口 SCIA 的數(shù)據(jù)發(fā)送引腳 SCIATXD及接收引腳 SCIARXD 上的電壓波形,由圖 11 可知,系統(tǒng)運(yùn)行時(shí)沒有發(fā)生總線沖突現(xiàn)象。
6.結(jié)束語
本文針對(duì)飛機(jī)配電系統(tǒng)通信網(wǎng)絡(luò)的要求及 RS485總線的特點(diǎn),設(shè)計(jì)了一套帶有多處理器的 RS485 通信網(wǎng)絡(luò)。文章著重研究了避免 RS485 總線沖突的方法,提出了一種適用于飛機(jī)配電系統(tǒng)通信網(wǎng)絡(luò)的避免總線沖突方法,并用實(shí)驗(yàn)驗(yàn)證了方法的正確性,實(shí)驗(yàn)結(jié)果表明本文設(shè)計(jì)的方法能夠?qū)崿F(xiàn)飛機(jī)配電系統(tǒng)的通信,并避免總線發(fā)現(xiàn)沖突。該方法同樣適用于其他含有少數(shù)主處理器和多數(shù)從處理結(jié)構(gòu)的通信網(wǎng)絡(luò)。
評(píng)論
查看更多