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