前言:想要寫出一篇引人入勝的文章?我們特意為您整理了機載設(shè)備數(shù)據(jù)交叉?zhèn)鬏敺桨冈O(shè)計分析范文,希望能給你帶來靈感和參考,敬請閱讀。
摘要:隨著機載設(shè)備高集成和高綜合化的發(fā)展,其可靠性要求越來越高,為了提高雙余度計算機的可靠性和處理性能,文章針對機載設(shè)備多通道數(shù)據(jù)高速共享需求設(shè)計了一種基于FPGA的具有通道隔離功能的數(shù)據(jù)交叉傳輸方案,該方案利用FPGA并行工作的優(yōu)點實現(xiàn)采集數(shù)據(jù)自動交叉?zhèn)鬏?,解放了CPU資源。平臺仿真驗證和板級測試結(jié)果表明該方案能夠有效提高整機的可靠性和軟件運行效率。
關(guān)鍵詞:CCDL;雙余度;SPI通訊;時序設(shè)計
引言
在當前的嵌入式計算機模塊設(shè)計中,隨著模塊集成度的提高,大規(guī)模FPGA因為其具備可編程,性能高,且利于集成等優(yōu)勢,得到廣泛使用。文章針對機電管理計算機系統(tǒng),設(shè)計了一種基于FPGA實現(xiàn)的板間CCDL電路,它能實現(xiàn)板間雙通道采集數(shù)據(jù)的實時共享和控制指令的熱備份,具有數(shù)據(jù)傳輸可靠,防止故障蔓延等功能[1]。
1方案設(shè)計
CCDL功能主要用于RIU內(nèi)部雙通道之間的數(shù)據(jù)交互,由于雙通道位于同一機箱內(nèi)部,CCDL設(shè)計應盡量滿足簡單、可靠,且當通道故障時應將故障隔離,防止故障蔓延[2]。基于FPGA的總線雙余度硬件數(shù)據(jù)交叉?zhèn)鬏斚到y(tǒng)方案如圖1所示,通道A和通道B為同一硬件模塊上的兩部分獨立電路,兩個通道之間通過數(shù)字隔離器實現(xiàn)硬件電路隔離并提供數(shù)據(jù)傳輸通路。該方案交聯(lián)信號在產(chǎn)品內(nèi)部具有如下特點:a)每個通道獨立采集輸入信號;b)每個通道獨立進行信號輸出;c)接口采集數(shù)據(jù)通過CCDL實現(xiàn)自動轉(zhuǎn)發(fā),兩個通道都可以獲取所有采集接口的數(shù)據(jù);每個通道的FPGA經(jīng)過輸出表決策略通過輸出接口進行輸出控制,當本通道總線有效且CPU有效時,采信本通道輸出命令;當本通道總線失效或CPU失效時,采信經(jīng)CCDL傳輸過來的對方通道的輸出命令。
2硬件電路設(shè)計
基于FPGA的CCDL電路可以實現(xiàn)數(shù)據(jù)的自動轉(zhuǎn)發(fā),該技術(shù)的實現(xiàn)使得CPU對底層數(shù)據(jù)的訪問實現(xiàn)透明化操作,通道內(nèi)FPGA采集到所有數(shù)據(jù)后,按照固定周期將數(shù)據(jù)自動發(fā)送到對方通道,這樣每個通道的CPU均可以訪問到兩個通道的所有采集數(shù)據(jù)及輸出接口的輸出狀態(tài)。如圖2所示,A通道的采集數(shù)據(jù)一方面存儲在FPGA_A中供本通道CPU訪問,另一方面通過CCDL發(fā)送器發(fā)送至B通道供B通道CPU訪問;A通道的輸出控制一方面可以接收本通道CPU發(fā)出的控制指令,另一方面也可以通過CCDL接收器接收B通道CPU發(fā)出的指令。同樣的,B通道也可以接收A通道的采集數(shù)據(jù)且為A通道發(fā)送輸出控制指令。在上述數(shù)據(jù)交叉共享的基礎(chǔ)上結(jié)合余度處理策略即可實現(xiàn)整機的雙余度管理。由于SPI總線可以實現(xiàn)20M甚至更高的傳輸速率,根據(jù)參考文獻[3]的研究成果,基于FPGA的SPI通訊可通過擴展數(shù)據(jù)線進一步提高數(shù)據(jù)傳輸速率,因此可以保證數(shù)據(jù)傳輸速率遠大于外部傳感器數(shù)據(jù)變化速率,能夠滿足機電系統(tǒng)的實時性要求。
3FPGA邏輯設(shè)計與驗證
3.1時序設(shè)計
兩個通道之間通過SPI串行總線通訊,每個通道FPGA的發(fā)送單元為SPI主機,F(xiàn)PGA的接收單元為SPI從機,SPI采用3線制進行通訊。如圖3所示,為SPI串行通訊的時序圖,每一幀數(shù)據(jù)流由26bit數(shù)據(jù)組成,MSB優(yōu)先,其中前8bit為數(shù)據(jù)幀地址,第10、11bit為保留位,最后16bit為幀數(shù)據(jù)。每一幀數(shù)據(jù)的首個數(shù)據(jù)位在CS信號下降沿后的第一個SCK上升沿有效,隨后的25個數(shù)據(jù)位在SCK的下降沿逐個輸出并在SCK的上升沿保持有效。SPI主機定時發(fā)送數(shù)據(jù)給SPI從機,從機接收數(shù)據(jù)并存儲在FPGA內(nèi)部的DPRAM中供CPU訪問。CCDL數(shù)據(jù)傳輸過程由FPGA周期自主完成,不需要CPU參與,解放了CPU資源。
3.2仿真驗證
為了方便驗證在激勵文件中,將CCDL的A、B通道SPI接口在激勵文件中進行連接。如圖4所示,在系統(tǒng)復位之后。CCDL控制器A、B通道的數(shù)據(jù)發(fā)送模塊依次從本通道FPGA內(nèi)部各個模塊讀取緩存數(shù)據(jù),按照SPI協(xié)議自動將數(shù)據(jù)周期地發(fā)送至對方通道的數(shù)據(jù)接收模塊,完成數(shù)據(jù)自動交叉?zhèn)鬏?。SPI發(fā)送模塊將數(shù)據(jù)按照8位地址+2位保留+16位數(shù)據(jù)的格式進行編碼發(fā)送,串行數(shù)據(jù)在時鐘的下降沿更新,上升沿保持。如圖5所示,第1幀數(shù)據(jù)包地址為0x01,數(shù)據(jù)為0x6311,保留位為0b11,串行數(shù)據(jù)線上的發(fā)送數(shù)據(jù)與上述數(shù)據(jù)定義一致。由于CCDL的發(fā)送接口和接收接口進行了回繞,SPI發(fā)送端輸出后,接收端同時也收到了串行數(shù)據(jù),SPI接收端在串行時鐘的上升沿對串行數(shù)據(jù)進行采樣,當片選信號撤銷即一幀數(shù)據(jù)接收完成后,按照發(fā)送的定義的數(shù)據(jù)格式對接收數(shù)據(jù)進行解析。如圖5所示,串行數(shù)據(jù)線上接收到的26位數(shù)據(jù)為0x0076311,解析后地址信息為0x01,數(shù)據(jù)信息為0x6311,保留位為0b11,接收到的數(shù)據(jù)與發(fā)送端數(shù)據(jù)一致。
4結(jié)束語
文章針對機載設(shè)備雙余度系統(tǒng)中的數(shù)據(jù)共享設(shè)計了一種數(shù)據(jù)交叉?zhèn)鬏敺桨?,該方案硬件上采用?shù)字隔離器進行通道之間的電氣隔離,防止故障蔓延,數(shù)據(jù)傳輸采用FPGA實現(xiàn)數(shù)據(jù)編碼和解碼并按照SPI傳輸協(xié)議進行發(fā)送和接收,CCDL輸出傳輸過程完全由FPGA自主完成,解放了CPU資源有效提升了余度處理計算機的性能。
參考文獻
[1]劉明,朱守園,王婷.一種雙余度交叉通道鏈路的設(shè)計與實現(xiàn)[J].航空計算技術(shù),2019,49(01):106-108+111..
[2]周勇,王博,白晨.一種基于1394B的CCDL設(shè)計與實現(xiàn)[J].信息通信,2019(05):291-292.
[3]孫少華,屈盼讓,肖鵬,李慶楠.基于多FPGA的增強型SPI通信研究[J].電子測試,2018(04):83-84+61.
作者:孫少華 屈盼讓 蔡曉樂 單位:航空工業(yè)西安航空計算技術(shù)研究所