劉玉霞 張鵬


摘? 要:文中提供了一種以FPGA內部擴展雙端口RAM作為共享存儲器,通過EMIF接口實現DSP與FPG雙向通信方法;該方法采用數據集和數據集狀態信息匹配的據通信方式,以軟中斷和硬中斷配合的中斷控制機制,能有效提高數據傳輸的效率,保證數據傳輸實時性。通過試驗測試,該方法實現了數據的高效實時有效傳輸。
關鍵詞:EMIF;IP核;GPIO;雙口RAM
0 引言
隨著導航技術和現代電子技術的快速發展,機載設備日益向著數字化、模塊化、集成化方向發展,機載設備不僅需要采集、接收、處理、發送大量外部數據,同時設備內部各CPU之間也需要進行大量數據、信息的及時處理和高速傳輸?,F在通用的計算機平臺為FPGA+DSP結構,充分利用了FPGA數據采集處理、接口通訊以及DSP的運算速度優勢,能很好滿足數據采集、處理及外部通訊需要。DSP與FPGA之間數據傳輸能否及時、有效直接決定著機載設備的性能精度。
本文提供了一種基于EMIF接口和雙口RAM實現DSP與FPG雙向通信方法。該方法采用數據集和數據集狀態信息匹配的數據通信方式,以軟中斷和硬中斷配合的中斷控制機制,能有效的提高數據傳輸的效率,滿足機載設備實時性的要求。
1FPGA內部雙口RAM配置
文中采用Xilinx公司的Spartan6系列XC6SLX150T的FPGA器件,此FPGA上自帶片上RAM,因此可以利用開發環境自帶的IP核,根據不同的應用場合配置生成單口RAM 、簡單雙端口RAM 、真正雙端口RAM,數據位寬也可以配置為8位、16位、32位、64位,片上雙端口RAM速度性能可以達到450 MHz。
因為要實現數據的雙向傳輸,故文中在Xilinx公司的XPS嵌入式開發環境下添加Block Bram IP核,配置為真正的雙端口RAM,數據位寬配置為32位,存儲深度16K,配置雙口RAM的過程和配置完成的雙端口RAM原理圖符號。真正的雙端口RAM 有兩個完全獨立的端口(端口A和端口B)用于訪問共享的存儲空間。雙口RAM的每個端口有各自的數據線、地址線、讀寫控制線,可以允許兩個獨立的系統同時對其共享的存儲空間進行隨機訪問。
2? DSP EMIF接口配置
EMIF是外部存儲器和TMS320C6713片內單元之間的接口,DSP訪問片外存儲器時必須通過EMIF接口,因此要實現DSP訪問FPGA內部雙口RAM,必須將EMIF接口與FPGA內部雙口RAM通過組合邏輯轉換對應起來,雙口RAM的一個端口A給DSP EMIF接口,用于DSP通過EMIF接口訪問FPGA內部RAM;另一個端口B給FPGA的片內邏輯,用于FPGA訪問雙口RAM。
EMIF接口與FPGA內的雙口RAM連接,主要包括時鐘信號、數據/地址信號和控制信號的連接。EMIF時鐘輸出信號ECLKOUT1與雙口RAM的時鐘信號引腳連接;EMIF的數據線分別與雙口。
RAM的數據輸入端和數據輸出端連接,由AOE信號對數據的傳輸方向進行控制,EMIF的地址線和雙口RAM端口A的地址線連接;EMIF與FPGA進行數據傳輸時,只用到了片選空間使能信號CE、DSP往數據總線寫使能信號AWE、DSP讀取數據總線使能信號AOE。AOE、ARE、AWE、CE信號經FPGA組合邏輯與雙口RAM相應信號相連,以實現DSP對FPGA內部雙口RAM的讀寫功能。FPGA內部通過地址線、數據線和控制線連接雙口RAM端口B,實現FPGA對雙口。
RAM的讀寫功能。
3. FPGA與DSP 雙向通信的實現機制
3.1雙口RAM存儲空間的組成及訪問
DSP和FPGA在任何時候都能對雙口RAM進行讀寫操作,為了達到數據在DSP和FPGA之間實時雙向傳輸的目的,對雙口RAM存儲空間進行了劃分,并確定了訪問權限,如表1所示。
從表1可知,首先將雙口RAM的存儲空間分成兩部分。其中,存儲區一用于FPGA寫入數據,DSP讀取數據,存儲區二用于DSP寫入數據,FPAG讀取數據。其次采用數據集和數據集狀態信息匹配的通訊方式。存儲區中劃分出數據集狀態區和數據集區,分別用來存儲數據集更新狀態信息和數據集,數據集區與數據集狀態區一一對應。需要傳輸數據集時,同時更新數據集狀態信息。數據讀取方接收到中斷后,讀取狀態信息,依據狀態集的相應信息,讀取對應的數據集,以此縮短雙口RAM讀取訪問時間,提高數據讀取效率。
3.2 軟中斷和硬中斷配合的中斷控制機制
FPGA和DSP在對雙口RAM進行讀取操作時,采用軟中斷和硬中斷配合的中斷控制機制。軟中斷可由軟件控制,用于中斷信號發生觸發數據讀取,硬中斷用于數據接收,保證數據接收實時性。
圖1給出了FPGA和DSP數據雙向通信的流程圖,具體傳輸過程如下。FPGA接收外來的數據,存儲于雙口RAM的存儲區一后,同時更新數據集狀態信息,存儲數據完成后FPGA內部邏輯電路產生硬中斷信號,向DSP中斷控制器模塊申請中斷;DSP響應中斷請求后,讀取狀態信息,依據狀態集的相應信息,則通過EMIF接口從存儲區一中讀取對應的數據集在DSP內部進行復雜的算法計算;算法計算結束后, DSP通過EMIF接口將傳輸數據存入存儲區二中,同時更新數據集狀態信息,數據存入完成后DSP通過GPIO模塊以軟中斷方式產生中斷信號,向FPGA中斷控制器模塊申請中斷,FPGA響應中斷請求后,讀取狀態信息,依據狀態集的相應信息,則通過EMIF接口從存儲區二中讀取對應的數據集中的數據。
4 驗證與結論
為驗證本發明方法的有效性,評估其數據傳輸的準確性和實時性。設計一塊信號處理板,信號處理板上的FPGA負責接收從前端傳來的IMU數據,FPGA將接收到的IMU數據存儲在雙口RAM,通過EMIF接口發送到DSP;DSP主要負責IMU數據處理和導航計算,DSP通過EMIF接口從雙口RAM中讀出IMU數據并處理,將處理后的導航結果通過EMIF接口存儲到FPGA雙口RAM中。實驗測試結果表明,該方法實現了數據的實時和正確傳輸。
參考文獻:
[1]王勝奎. 基于IP核雙口RAM的FPGA與DSPEMIF的接口設計[J]. 導航,2010.
[2]萬東,章國寶.基于EMIF接口的數據采集系統的設計 [J].電子設計工程,2011.
[3]楊龍,李范鳴,劉士建. DSP EMIF與FPGA雙口RAM高速通信實現 [J]. 現代電子技術,2014.
作者簡介:
劉玉霞(1981—),性別:女,學位:博士,職稱:高級工程師,研究方向:慣性導航/組合導航。