胡靖宇 薛楠 杜建華 曾曉東
摘要:隨著現(xiàn)代航電系統(tǒng)的飛速發(fā)展,機載網(wǎng)絡環(huán)境日趨復雜,對于航電系統(tǒng)的數(shù)據(jù)傳輸速率和數(shù)據(jù)處理速度要求日益增高,傳統(tǒng)的數(shù)據(jù)拷貝方式已經(jīng)無法滿足大量的網(wǎng)絡數(shù)據(jù)需求和系統(tǒng)的實時性,高速率高可靠性的DMA控制器顯得極其重要。因此本文提出一種基于DMA控制器的數(shù)據(jù)拷貝方式來提升FC網(wǎng)絡數(shù)據(jù)處理效率的方法,DMA控制器能夠減輕處理器的負擔,縮短數(shù)據(jù)拷貝時間,提高整體性能,來保障整個系統(tǒng)的實時性及可靠性。
關鍵詞:數(shù)據(jù)傳輸;FC網(wǎng)絡;DMA控制器
中圖分類號:TP311 文獻標識碼:A 文章編號:1009-3044(2018)29-0011-03
隨著航空電子的高速發(fā)展和廣泛應用,飛機航電系統(tǒng)日益向著綜合化、一體化、高效化,可靈活配置的方向發(fā)展[1]。由于機載網(wǎng)絡技術也在不斷跨上新臺階日漸趨于復雜,特別是采用FC光纖網(wǎng)絡之后,網(wǎng)絡傳輸數(shù)據(jù)量日益增大,便對系統(tǒng)實時性及可靠性都提出了更高的要求。以memcpy函數(shù)作為數(shù)據(jù)傳輸?shù)姆绞较鄬Ρ容^簡單,但該方式要以CPU為主控制系統(tǒng)來進行操作,所有的數(shù)據(jù)傳輸工作都需要多個指令周期來完成。因此,存在傳輸效率低、CPU 負擔過重等問題,不適合進行大批量數(shù)據(jù)的傳輸[2]。在數(shù)據(jù)高速交互的系統(tǒng)中,快速、精確的數(shù)據(jù)傳輸是設計的關鍵[3]。
所以在光纖網(wǎng)絡數(shù)據(jù)的傳輸過程中就有很大可能會出現(xiàn)瓶頸,為解決該問題,本文研究了一種DMA 傳輸方式,設計了基于FC網(wǎng)絡的DMA控制器進行數(shù)據(jù)處理,保證數(shù)據(jù)傳輸過程中的可靠性及實時性,滿足航電系統(tǒng)的聯(lián)試需求。
1 DMA控制器簡介
DMA(Direct Memory Access)即直接存儲器存儲,是一種高速的數(shù)據(jù)傳輸?shù)姆绞健?shù)據(jù)傳輸過程可以從一段內(nèi)存到另一段內(nèi)存,也可以從內(nèi)存到適配卡。DMA方式的關鍵點在于,利用其進行數(shù)據(jù)傳輸?shù)臅r候,不需要CPU的參與,也就是說不占用CPU執(zhí)行任務的周期,不會搶占CPU的資源。DMA在初始化完成之后,可以脫離CPU,獨立完成數(shù)據(jù)的傳輸功能。
DMA控制器是一種能夠在系統(tǒng)內(nèi)部進行數(shù)據(jù)搬家的獨立外部設備,其功能為通過一種專用的數(shù)據(jù)總線將存儲器與每個具備DMA傳輸能力的外部設備連接起來。常用的DMA控制器由一條地址總線、控制寄存器和數(shù)據(jù)總線構成。DMA控制器進行任意的資源訪問時必能產(chǎn)生中斷,無需處理器介入,這樣便大大提高了傳輸效率。通常情況下,多個DMA控制器可以共用一個CPU,每一個控制器又會有多個DMA通道,以及與外部設備相連接的數(shù)據(jù)總線。
本文采用的是PowerPC處理器內(nèi)部集成DMA控制器,該處理器目前已在國外數(shù)據(jù)處理與信號處理中采用。一片處理器中提供一個內(nèi)核,主頻最高可達1.25 GHz[4]。該DMA控制器包括一條地址總線、一條數(shù)據(jù)總線和控制寄存器,驅(qū)動軟件在對DMA控制寄存器初始化時,采用了查詢工作方式。即向DMA控制器發(fā)起數(shù)據(jù)傳輸命令后,由程序主動查詢DMA傳輸完成情況判斷。其結構如圖1所示
2 FC網(wǎng)絡介紹
FC(光纖通道)網(wǎng)絡是綜合計算機通道和數(shù)據(jù)網(wǎng)絡概念提出的一個不同于傳統(tǒng)的通道和網(wǎng)絡結構的互聯(lián)方案[5],是一種具有高實時性、可靠性、帶寬、性價比的開放式通信技術,是用交換或仲裁環(huán)拓撲處理介質(zhì)訪問沖突,采用信用策略控制網(wǎng)絡流量。
2.1 FC拓撲結構
光纖通道標準定義了三種基本的拓撲結構:點到點、仲裁環(huán)和交換結構[6]。其中交換結構在目前的航空電子系統(tǒng)中使用最為普遍,源于其更優(yōu)于其余兩種拓撲結構的可擴展性、隔離性和穩(wěn)定性,交換結構中各個網(wǎng)絡終端節(jié)點通過網(wǎng)絡交換機組成星形網(wǎng)絡拓撲結構。本文所研究的FC網(wǎng)絡便采用此拓撲結構。
2.2 FC-AE-ASM標準
針對航空電子系統(tǒng)的應用特點,SAE組織定義了FC-AE標準,包含了以下五種協(xié)議[7]:FC-AE-ASM、FC-AE-LP、FC-AE-RDMA、FC-AE-1553和FC-AE-VI。其中在機載領域中應用最為廣泛的還是FC-AE-ASM協(xié)議。
FC-AE-ASM針對航空電子系統(tǒng)領域中各設備以及產(chǎn)品之間的通信和數(shù)據(jù)傳輸?shù)纫?,提供了高實時性、高可靠性和安全性等特點的一種通信協(xié)議。ASM接收方按預定的速率進行數(shù)據(jù)采集,不特別關注數(shù)據(jù)的來源,系統(tǒng)中所有的消息采用消息標識來進行區(qū)分。FC-AE-ASM協(xié)議通過FC幀格式的數(shù)據(jù)域封裝ASM幀頭實現(xiàn)協(xié)議映射的,每個數(shù)據(jù)幀中的前16個字節(jié)作為ASM幀頭,其幀格式如表1所示。
3 系統(tǒng)方案設計
FC通信當前采用的是FC-AE-ASM協(xié)議,它采用異步傳輸模式進行通信,發(fā)送方不需要接收方的等待和應答可自主選擇發(fā)送數(shù)據(jù),接收方也可以在需要時選擇收取數(shù)據(jù),其傳輸模式描述如圖2所示。
在非阻塞傳輸模式下,其接收方式根據(jù)系統(tǒng)需要可以定義為查詢和中斷兩種模式。本驅(qū)動采用的是中斷方式,每當數(shù)據(jù)進入硬件FIFO就會產(chǎn)生一個中斷,告知協(xié)議處理芯片F(xiàn)PGA,F(xiàn)PGA就會申請DMA傳輸控制,主要是占用PCIe總線和內(nèi)存的獨占權限,申請到后就開始DMA傳輸。由于FC傳輸數(shù)據(jù)有長消息(大于2096字節(jié)小于16M字節(jié))和短消息(小于2096字節(jié))等不同數(shù)據(jù)類型,故申請的存放發(fā)送接收數(shù)據(jù)的方式為動態(tài)申請內(nèi)存(malloc),前后數(shù)據(jù)采用鏈表的管理關系,DMA傳輸也采用分散集聚DMA傳輸方式,因為分散集聚DMA申請的內(nèi)存是物理不連續(xù)的,所以處理器在申請一定大小的內(nèi)存時,會生成描述符鏈表,描述符鏈表中的每一個描述符都指向了一小塊物理連續(xù)的內(nèi)存,描述符中定義了控制狀態(tài)信息和內(nèi)存信息。其中,描述符最后32bit是一個指向下一個描述符的指針,這個指針將各個描述符連接成描述符鏈表,由此就可以映射到整個物理不連續(xù)的內(nèi)存,其示意圖見圖3所示。
FC的DMA傳輸過程如圖4所示,F(xiàn)C在分散集聚DMA的傳輸過程中,首先有FC數(shù)據(jù)到來時,發(fā)起FC數(shù)據(jù)讀取命令,當數(shù)據(jù)進入硬件FIFO時,產(chǎn)生中斷并申請DMA傳輸控制。DMA控制器從驅(qū)動讀取描述符鏈表中的一個描述符并存到描述符引擎中,描述符更新引擎將此描述符的更新信息傳到描述符鏈表中,然后描述符引擎通過指向下一個描述符的指針向驅(qū)動獲取下一個描述符的信息,由此進行下一個描述符對應內(nèi)存的數(shù)據(jù)傳輸。
在用戶接收FC設備傳輸?shù)臄?shù)據(jù)過程中,為了盡可能減少數(shù)據(jù)拷貝到用戶緩沖區(qū)的時間,最大限度地提高數(shù)據(jù)拷貝性能,當用戶接收FC網(wǎng)絡中發(fā)來的短消息和流數(shù)據(jù)時,驅(qū)動軟件調(diào)用DMA數(shù)據(jù)傳輸接口,使用DMA控制完成總線數(shù)據(jù)到用戶緩沖區(qū)的拷貝工作。經(jīng)過反復試驗與測試,最終數(shù)據(jù)結果表明,DMA傳輸方式比傳統(tǒng)的內(nèi)存拷貝方式(memcpy)傳輸速率及性能提高2倍以上,大大地縮短了數(shù)據(jù)處理時間,保證了整個系統(tǒng)的實時性和有效性。特別是在需要高實時性的航空電子領域中,機會稍縱即逝,能夠保證用戶或者地面站接收到航空器第一時間發(fā)來的數(shù)據(jù)是尤為重要的需求??梢宰尲夹g人員在最短的時間內(nèi)做出對當前形勢的判斷,取得一定的先機。
4 總結
本文通過對DMA控制器和FC-AE-ASM標準的詳細分析,提出了一種提升FC數(shù)據(jù)處理效率的方法,通過充分的實驗室環(huán)境驗證以及大量的測試工作,證明該研究具備良好的實時性和可靠性??梢宰鳛楹诫娤到y(tǒng)中FC網(wǎng)絡通信部分的平臺服務軟件,大大提升數(shù)據(jù)在內(nèi)存搬家過程中的效率,滿足高效系統(tǒng)的實時性和具體應用需求,特別在處理數(shù)據(jù)量較大的FC網(wǎng)絡中具有明顯優(yōu)勢,適用于現(xiàn)代航空電子系統(tǒng)。
參考文獻:
[1] 支超有,唐長紅.機載數(shù)據(jù)總線技術及其應用[M].北京:國防工業(yè)出版社,2009.
[2] 李軍偉,戴紫彬,南龍梅.密碼SoC中嵌入式鏈式DMA的研究與設計[J].電子技術應用,2014(9).
[3] 劉功杰.DMA控制器的一種硬件驗證方法[J].計算機工程與科學,2009(31).
[4] 張偉棟,趙紅. 基于PowerPC處理器的通用處理模塊設計[J].微型機與應用,2015.
[5] 張峰,王家禮,方葛豐.微處理器系統(tǒng)功能測試[J].現(xiàn)代電子技術,2005(10) : 108-110.
[6] 熊華鋼,王中華.先進航空電子綜合技術[M].北京:國防工業(yè)出版社,2009.
[7] 牛文生.機載計算機技術[M].北京:航空工業(yè)出版社,2013.
【通聯(lián)編輯:唐一東】