吳軍鋒,韓冰,張志君,李建峰,宇峰,張磊磊,黃家俊,曹建安
(1.中國西安飛機工業(yè)集團股份有限公司,陜西西安,710089;2.西安交通大學(xué)電氣工程學(xué)院,陜西西安,710049)
總線體系結(jié)構(gòu)具有良好的開放性、透明性、可靠性和通用性[1],實現(xiàn)業(yè)務(wù)的通訊管理、業(yè)務(wù)調(diào)度與數(shù)據(jù)傳輸。而傳統(tǒng)的嵌入式計算機多采用模塊化的整機式體系結(jié)構(gòu),總線帶寬和擴展能力有限,并且不具備動態(tài)重構(gòu)、數(shù)據(jù)信號綜合處理能力[2]。
在飛行器中應(yīng)用于計算和控制的總線,多為機箱內(nèi)部的高速并行總線PXI,和外設(shè)低速的串行總線;而基于PXIe的高速串行總線正在逐漸取代PXI并行總線。基于外部串行總線的LRM體系結(jié)構(gòu)的彈載計算機,包含了先進計算機體系結(jié)構(gòu)松耦合、高內(nèi)聚的特點[3]。這一系統(tǒng)吸收了美國空軍綜合模塊化航空電子設(shè)備IMA的設(shè)計思想,以串行總線為核心,將任務(wù)控制模塊、慣導(dǎo)模塊、大氣數(shù)據(jù)計算模塊、無線電高度計算模塊等,均以資源的方式掛載在串行背板總線上[4]。
目前串行背板總線多采用ARINC429、1553B、AFDX、FC等,通訊速率從48kbps到2Gbps,能夠滿足航空電子系統(tǒng)日益增長的對數(shù)據(jù)要求高速和低延遲傳輸?shù)男枨骩5]。但是采用不同的總線協(xié)議,會給系統(tǒng)通訊解析帶來更大的工作量,即需要處理器處理多種復(fù)雜的通訊協(xié)議問題。多數(shù)背板總線已經(jīng)從并行處理的PXI總線過渡到串行的PXIe總線,從而獲得了更高的處理速度[6]。
軟件功能由操作系統(tǒng)粗粒度層次上的靜態(tài)分時、分區(qū),按時間出發(fā)協(xié)議運行;和內(nèi)嵌業(yè)務(wù)類及監(jiān)控目標的細粒度實時管理與故障推理,實現(xiàn)資源有效管理的動態(tài)運行模式[7]。其最大特點是支持故障監(jiān)控與隔離和系統(tǒng)重構(gòu),適合構(gòu)建裕度配置的高可靠、高容錯的彈載計算機。采用多處理器互連的計算機物理架構(gòu)[8],能有效的提高數(shù)據(jù)處理速度,實現(xiàn)并行處理技術(shù)。但是這種架構(gòu)的復(fù)雜性將降低系統(tǒng)運行的可靠性,同時,因為程序的并行執(zhí)行,造成這種結(jié)構(gòu)中存在多處理器內(nèi)核對總線的競爭使用問題[9]。雖然采用排隊模型可以避免總線仲裁的問題,但是這種由于核間總線競爭造成的時間開銷具有不確定性,使得該整機系統(tǒng)的可靠性無法保證。
采用國產(chǎn)ARM系列多核處理器構(gòu)建的嵌入式計算機應(yīng)用,在安全方面具有較大優(yōu)勢,可用于航天航空領(lǐng)域[10,11]。但是國產(chǎn)化ARM處理器的數(shù)據(jù)處理速度和可靠性仍需要提高。為此,通過合理設(shè)計,將外設(shè)的數(shù)據(jù)接口和高速的數(shù)據(jù)處理分離,能有效提高系統(tǒng)處理能力,進而滿足飛行器大數(shù)據(jù)量處理的要求。文獻[12]提出一種可擴展的一體化空間綜合電子系統(tǒng)構(gòu)架,實現(xiàn)整機的外部接口總線和內(nèi)部背板總線一體化,具有較好的兼容性和可擴展性,實現(xiàn)系統(tǒng)的標準化。只是按照該文獻的方法,仍無法實現(xiàn)低速串行通訊數(shù)據(jù)的接口與解析,和高速數(shù)據(jù)處理之間的協(xié)調(diào),以及設(shè)備擴展能力的提高,系統(tǒng)優(yōu)化仍有提高空間。
串行總線可適用于飛行器的工程應(yīng)用,既能滿足高速、大容量的數(shù)據(jù)檢測需求,也能滿足大量外部設(shè)備的混合串并聯(lián)結(jié)構(gòu)。一個典型的航空串行總線應(yīng)用示意如圖 1所示。
圖1 傳統(tǒng)串行通訊總線時序圖
圖中,橫坐標為系統(tǒng)時標,主控制器每50ms進行一次全部設(shè)備的輪詢TX,能RX回復(fù)的表示正常工作,如果連續(xù)3次詢問均不能回復(fù),則視為有故障。設(shè)備2和設(shè)備4可同時接收主控器的數(shù)據(jù)發(fā)送請求TX;而設(shè)備1~3只能由主控器輪流發(fā)送請求TX。每次的輪詢總是主控制器作為發(fā)起者,其他設(shè)備作為接收者;只有被輪詢到的設(shè)備才能將其檢測數(shù)據(jù)上傳。
顯然,這種應(yīng)用方式能有序地進行數(shù)據(jù)獲取和設(shè)備控制,但是主控制器的通訊效率較低:1)每次都需要主控制器進行輪詢,浪費總線帶寬;2)大數(shù)據(jù)量容易造成總線阻塞,只能進行少量的數(shù)據(jù)交換;3)關(guān)鍵設(shè)備的數(shù)據(jù)無法得到優(yōu)先交換,其實時性得不到保證;4)系統(tǒng)擴展能力受限。
面向飛行器應(yīng)用的總線系統(tǒng),其特點是:1)各種電子設(shè)備較多,且設(shè)備分散分布于整機系統(tǒng)中,只能采用串行總線進行數(shù)據(jù)交換;2)電子設(shè)備越來越復(fù)雜,導(dǎo)致其向主控器上傳數(shù)據(jù)量越來越大,而下行數(shù)據(jù)量是有限的。為此,結(jié)合多核主控器,本文提出混合串行通訊總線體系結(jié)構(gòu),無論是背板總線還是外部總線,均可采用串行結(jié)構(gòu)。
本文所提出的新型通訊體系架構(gòu)采用多核處理器作為控制核心。使用多核處理器中一個Core,專門負責(zé)所有串行接口的數(shù)據(jù)接收與解析,并為該Core分配獨立的運行空間和數(shù)據(jù)存儲空間。而后續(xù)的數(shù)據(jù)處理則由其他Core完成,使得該多核處理器中的各個Core完全處于并行運行狀態(tài),既能保證串行數(shù)據(jù)的高速接收與解析,也能保證數(shù)據(jù)的高速處理,形成一種新型串行通訊體系架構(gòu),最大化的實現(xiàn)串行總線大數(shù)據(jù)量的吞吐能力。
一種混合通用航空總線體系結(jié)構(gòu)串行通訊時序如圖2所示。圖中,既有多設(shè)備共享一路串行總線的通訊模式,如設(shè)備1~3;也有多個設(shè)備采用獨立串行總線的模式,如設(shè)備4~n。這既是一種網(wǎng)狀、也是一種樹形的串行總線分層結(jié)構(gòu)。設(shè)備1~3共享一條串行通訊總線,和上位機通訊時,顯然每個時刻只允許一個設(shè)備進行通訊。因而,通訊速度較低,傳輸數(shù)據(jù)量較小,如ARINC429等;而設(shè)備4~n獨立使用一根串行通訊總線,每個設(shè)備可采用高速通訊模式,如PXIe或FC。
圖2 混合串行通訊體系結(jié)構(gòu)
該混合串行通訊體系結(jié)構(gòu)的關(guān)鍵在于采用多核處理器中的一個Core(如Core1),單純進行數(shù)據(jù)的收發(fā)與管理,不參與數(shù)據(jù)的計算與處理;而該處理器中的其他Core2,通過進程間通訊(IPC),將Core1接收的數(shù)據(jù)進行處理,而不涉及通訊數(shù)據(jù)的收發(fā)與管理。這樣,多核處理器中的Core2和Core1在微觀上完全是并行運行,因而能夠提高處理器運行效率,提高系統(tǒng)數(shù)據(jù)處理速度。
設(shè)備和處理器之間的數(shù)據(jù)通訊模式可采用地址優(yōu)先級或數(shù)據(jù)優(yōu)先級,這樣既要保證各個設(shè)備在系統(tǒng)中的相同地位,也要保證關(guān)鍵設(shè)備的優(yōu)先級。
廣泛用于車載系統(tǒng)的CAN總線采用隱形地址優(yōu)先的原則,可以將高優(yōu)先級的設(shè)備設(shè)置為低位地址,實現(xiàn)搶占串行總線、優(yōu)先發(fā)送數(shù)據(jù)的模式,如圖3所示。
圖3 地址優(yōu)先通訊模式
CAN總線在發(fā)送數(shù)據(jù)前,先發(fā)送地址,并同時檢測總線上的地址是否和發(fā)出去的地址一致,如一致,則是本設(shè)備發(fā)出的;如不一致,則是高優(yōu)先級設(shè)備發(fā)出的。如設(shè)備m的地址(以4bit為例)為0b0010,設(shè)備n地址為0b0100。當(dāng)著兩個設(shè)備在時間戳?xí)r刻同時發(fā)出地址時,顯然設(shè)備m地址優(yōu)先級較高,將CAN總線拉到低電平。設(shè)備n從總線上檢測不到其自身地址0b0100,故放棄CAN總線的控制,由高優(yōu)先級的設(shè)備m繼續(xù)發(fā)送地址和數(shù)據(jù)。
當(dāng)設(shè)備檢測到緊急事件時,可通過地址搶占模式上傳數(shù)據(jù)。設(shè)備分配地址時,將0b0001作為最高優(yōu)先級的設(shè)備地址(0b0000作為主控制器的地址)備份,僅在地址搶占模式下使用。如設(shè)備n,采用搶占模式,將自己的地址變更為0b0001,可優(yōu)先傳輸數(shù)據(jù);當(dāng)重要數(shù)據(jù)傳輸完成,其地址回復(fù)到輪詢模式。所有設(shè)備都在實時監(jiān)測總線是否空閑,如果還有一個設(shè)備想搶占總線,需要等待總線釋放0b0001地址。
不同功能的設(shè)備,其數(shù)據(jù)采樣頻率、數(shù)據(jù)位數(shù),通過串行上傳的數(shù)據(jù)量都是不同的,設(shè)備數(shù)據(jù)的重要程度也是不同的。為此,在數(shù)據(jù)存儲器中開設(shè)不同數(shù)據(jù)量大小的緩沖區(qū)Buffer,形成數(shù)據(jù)池如圖4所示。
圖4 數(shù)據(jù)優(yōu)先通訊模式
圖中數(shù)據(jù)池模型,其寬度越大,代表的數(shù)據(jù)池越大。顯然,設(shè)備4的數(shù)據(jù)Buffer較大,設(shè)備2的數(shù)據(jù)Buffer較??;循環(huán)的箭頭代表每個設(shè)備的數(shù)據(jù)Buffer都是環(huán)形數(shù)據(jù)池,即數(shù)據(jù)存入和取出都是地址循環(huán)模式;且每次上傳的數(shù)據(jù)都帶有時間戳。正常工作模式下,每個設(shè)備都是根據(jù)自己的地址(即地址優(yōu)先級),輪流進行發(fā)送數(shù)據(jù),并填充在該數(shù)據(jù)池。處理器內(nèi)核根據(jù)時間戳的順序,同時取出所有數(shù)據(jù),并進行處理;如果有沒有價值的數(shù)據(jù),就拋棄。
數(shù)據(jù)的存入與取出,都是按照時間戳進行,數(shù)據(jù)池不會出現(xiàn)溢出。如果出現(xiàn)數(shù)據(jù)即將填滿整個數(shù)據(jù)池時,接口內(nèi)核將啟用中斷機制,通過處理器內(nèi)核間的IPC(圖2),將數(shù)據(jù)發(fā)送給數(shù)據(jù)處理內(nèi)核。
本文在國產(chǎn)FPGA中植入軟多核處理器,并分配相應(yīng)的硬件資源;混合串行接口設(shè)計有高速和低速三種模式。
根據(jù)飛行器串行通訊的特點,設(shè)備上傳的數(shù)據(jù)格式如圖5所示。在正常情況下,設(shè)備1~4只是在每個時間戳的時刻,進行數(shù)據(jù)發(fā)送。
圖5 混合通訊模式的時序示意圖
這些數(shù)據(jù)都是先發(fā)送地址信息,然后發(fā)送數(shù)據(jù)。如果主控制器需要緊急發(fā)布命令,會在時間戳?xí)r刻,發(fā)出0b0000的地址信息,此時,設(shè)備就停止發(fā)送,總線使用權(quán)留給主控器。
由此可見,通過額外的接口內(nèi)核全職接收數(shù)據(jù),將原來的交互通訊模式,設(shè)計成設(shè)備上傳數(shù)據(jù)模式,能有效的提高數(shù)據(jù)傳輸速率。
如果對于串行背板總線,即采用PXIe總線,仍采用這種模式,也可實現(xiàn)PXIe機箱內(nèi)部的高速數(shù)據(jù)采集與處理。
傳統(tǒng)的多核處理器在執(zhí)行程序的過程中,宏觀上展現(xiàn)的是并行;但由于多核處理器的內(nèi)部多個Core,都共享一個SDRAM控制器,使得所有Core在微觀執(zhí)行代碼的過程中,表現(xiàn)為串行工作模式。因而,相比較單核處理器,多核并非將工作效率提高了多倍。為了能夠?qū)崿F(xiàn)高速混合串行通訊,本設(shè)計采用國產(chǎn)FPGA開發(fā)板。
圖6 基于FPGA實現(xiàn)混合通訊示意圖
在該混合串行通訊總線的設(shè)計中,其軟件由總線API、總線接口、總線管理和總線服務(wù)構(gòu)成。
總線API向用戶提供一組函數(shù),用戶調(diào)用這些函數(shù),向系統(tǒng)登記和注冊設(shè)備特征,實現(xiàn)總線管理。如所有串行設(shè)備首先需要進行時間同步處理,由總線API下發(fā)時間戳到各個串行設(shè)備;其次,完成設(shè)備的地址優(yōu)先級管理、功能備注、采樣數(shù)據(jù)的緩沖等功能。
采用如圖7所示的國產(chǎn)FPGA開發(fā)板驗證該混合串行高速通訊。該FPGA板含有828kbits的塊狀SRAM和41kbits的靜態(tài)SRAM。在該FPGA中采用ARM架構(gòu)v6-M的Cortex-M1作為數(shù)據(jù)處理內(nèi)核,采用AHB-Lite接口單元為用作為串行數(shù)據(jù)解析內(nèi)核,該單元能實現(xiàn)高性能的同步串口解析和內(nèi)部互連。開發(fā)板上的SDRAM作為Cortex-M1的程序和數(shù)據(jù)存儲器;FPGA內(nèi)部的SRAM作為AHB-Lite的數(shù)據(jù)池。
圖7 基于國產(chǎn)FPGA的實驗板
外部混合串行總線可設(shè)計一個高速的Ethernet網(wǎng)絡(luò),兩個低速的SPI總線和CAN總線,實現(xiàn)該混合串行總線的驗證。
通過上述的設(shè)計和分析,采用本文提出的飛控計算機架構(gòu)對飛行器主控器進行優(yōu)化設(shè)計,能達到以下效果:(1)能有效的提高串行總線效率、提高系統(tǒng)數(shù)據(jù)處理能力;(2)分離數(shù)據(jù)收發(fā)管理與數(shù)據(jù)處理過程,能提高系統(tǒng)可靠性。(3)能提高系統(tǒng)的擴展能力和動態(tài)重構(gòu)能力。