楊龍+李范鳴+劉士建
摘 要: 現(xiàn)代電子技術(shù)的快速發(fā)展使得大量的數(shù)據(jù)需要處理與傳輸,為解決該問題,通過TMS320C6455的EMIF接口實現(xiàn)了DSP與FPGA之間的數(shù)據(jù)雙向快速通信。FPGA通過EMIF接口將內(nèi)部RAM中的數(shù)據(jù)傳輸給DSP進行處理,DSP將處理后的數(shù)據(jù)結(jié)果再通過EMIF接口傳送到FPGA的片內(nèi)接收模塊雙口RAM并進行存儲。EMIF通道實現(xiàn)了對數(shù)據(jù)的傳輸,雙口RAM完成了對數(shù)據(jù)的接收。實驗結(jié)果表明,該設計方案能夠?qū)崿F(xiàn)數(shù)據(jù)的雙向快速正確傳輸。
關(guān)鍵詞: DSP; EMIF; FPGA; 雙口RAM
中圖分類號: TN925?34; TP39 文獻標識碼: A 文章編號: 1004?373X(2014)13?0010?03
Realization of high?speed communication between DSP and FPGA
by EMIF dual?port RAM
YANG Long, LI Fan?ming, LIU Shi?jian
(Shanghai Institute of Technical Physics, Chinese Academy of Sciences, Shanghai 200083, China)
Abstract: The rapid development of modern electronic technology requires the processing and transmission of plenty of data. In order to solve this problem, TMS320C6455 EMIF interface was adopted to realized the rapid data intercommunication between DSP and FPGA. FPGA transfers data in the internal RAM to DSP for processing through EMIF interface. DSP transmits the processed data through EMIF interface to dual?port RAM in FPGA to store. EMIF interface is used to achieve the data transmission, and dual?port RAM is used to realized the data reception. The experimental results show that the design scheme can realize data intercommunication quickly and correctly.
Keywords: DSP; EMIF; FPGA; dual?port RAM
0 引 言
隨著電子技術(shù)的飛速發(fā)展,電子系統(tǒng)的信息量和數(shù)據(jù)量也隨之巨增,這就對系統(tǒng)的信息處理與傳輸能力有更高的要求。在信號處理系統(tǒng)方面,隨著大規(guī)模可編程器件的發(fā)展,并廣泛應用于各種信號處理中,現(xiàn)階段信號處理采用DSP+FPGA 結(jié)構(gòu)的信號處理系統(tǒng)顯示出了其優(yōu)越性,正逐步得到重視并廣泛應用。FPGA 是在專用ASIC 的基礎上發(fā)展出來的,它克服了專用ASIC 不夠靈活的缺點,與其他中小規(guī)模集成電路相比,其優(yōu)點主要在于它有很強的靈活性,即其內(nèi)部的具體邏輯功能可以根據(jù)需要配置,對電路的修改和維護很方便,而且在大批量應用時,可降低成本。
DSP+FPGA 結(jié)構(gòu)最大的特點是結(jié)構(gòu)靈活,有較強的通用性,適于模塊化設計,從而能夠提高算法效率;同時其開發(fā)周較短,系統(tǒng)易于維護和擴展,適合于實時信號處理。而要想實現(xiàn)DSP+FPGA 結(jié)構(gòu)的正確應用,先要實現(xiàn)DSP和FPGA之間的通信橋梁,也就是首先要解決兩者之間的通信問題,即接口設計,本文提出一種DSP和FPGA之間的通信方式。
1 FPGA內(nèi)部雙口RAM配置
本設計采用Xilinx公司的Virtex5系列的FPGA器件,在該器件內(nèi)部集成有塊存儲器資源,該存儲器資源可配置成單口RAM 、簡單雙端口RAM 、真正雙端口RAM、速度性能可以達到450 MHz,數(shù)據(jù)位寬也可以根據(jù)不同的應用場合配置為8位、16位、32位、64位。
由于要實現(xiàn)數(shù)據(jù)的雙向傳輸,所以該設計將FPGA內(nèi)部的塊存儲器配置為真正的雙端口RAM。真正的雙端口RAM 有兩個完全獨立的端口(端口A和端口B)用于訪問共享的存儲空間。雙口RAM的每個端口有各自的數(shù)據(jù)線、地址線、讀寫控制線,可以允許不同的系統(tǒng)同時對其共享的存儲空間進行訪問,本文就實現(xiàn)了用DSP和FPGA對FPGA內(nèi)部的雙口RAM共享的存儲空間進行訪問。
Xilinx公司的IP核生成工具CORE Generator可以使用FPGA內(nèi)部的塊存儲器,并按所需要的存儲器類型配置為所需要的真正雙端口RAM,數(shù)據(jù)位寬為32位,存儲深度根據(jù)需要配置。配置雙口RAM的過程和配置好的雙端口RAM 原理圖符號如圖1所示。
圖1 雙口RAM的配置圖及原理圖
2 DSP EMIF接口介紹
EMIF是外部存儲器和TMS320C6455片內(nèi)單元間之間的接口,CPU訪問片外存儲器時必須通過EMIF接口,要實現(xiàn)DSP訪問FPGA內(nèi)部雙口RAM,必須通過EMIF接口與FPGA內(nèi)部RAM相對應的管腳對應起來,EMIF接口與FPGA內(nèi)部雙口RAM連接如圖2所示。
圖2 EMIF與雙口RAM之間的連接
由上面的配置可以知道FPGA內(nèi)部雙口RAM有兩個端口(端口A和端口B)共享一個存儲空間,為了實現(xiàn)FPGA與DSP的正確通信,首先要實現(xiàn)兩者之間的物理連接,將雙口RAM的端口A用于DSP通過EMIF接口來訪問FPGA內(nèi)部RAM,端口B用于FPGA自己訪問該RAM的端口。也就是DSP通過端口A來訪問共享的存儲空間, FPGA在內(nèi)部通過端口B來訪問同樣的存儲空間,其中,EMIF的數(shù)據(jù)線要通過一個選擇器分別連接到雙口RAM的數(shù)據(jù)輸入端口和數(shù)據(jù)輸出端口,由SOE信號對數(shù)據(jù)的傳輸方向進行控制,EMIF接口的地址線也要和雙口RAM的端口A的地址線連接,EMIF接口的時鐘輸出信號ECLKOUT1與雙口RAM的時鐘信號引腳連接,SADS、SWE、CE、BE信號經(jīng)FPGA內(nèi)部的組合邏輯電路與雙口RAM相應信號相連,以實現(xiàn)對FPGA內(nèi)部雙口RAM的讀寫功能。
3 數(shù)據(jù)高速傳輸?shù)膶崿F(xiàn)機制
為了達到數(shù)據(jù)在DSP和FPGA之間高速傳輸?shù)哪康?,采取了下面的通信機制,首先在上文中配置的FPGA內(nèi)部雙口RAM中,將雙口RAM中的存儲空間分成兩個部分,首先說一下兩塊存儲區(qū)的用途,第一塊存儲區(qū)用于FPGA向里面寫數(shù)據(jù),DSP從里面讀出數(shù)據(jù),第二塊存儲區(qū)用于DSP向里面寫入數(shù)據(jù),F(xiàn)PAG從里面讀出數(shù)據(jù)。根據(jù)這兩種傳輸方式所要傳的數(shù)據(jù)量要固定這兩塊存儲區(qū)的大小和地址,DSP和FPGA每次訪問固定的地址和長度的存儲區(qū)。
圖3展示了數(shù)據(jù)由FPGA寫入雙口RAM內(nèi)部存儲區(qū)一,經(jīng)EMIF接口傳輸?shù)紻SP內(nèi)部進行處理,DSP將處理的結(jié)果經(jīng)EMIF接口寫入到雙口RAM內(nèi)部的存儲區(qū)二,F(xiàn)PGA從存儲區(qū)二讀出處理結(jié)果的流程框圖。
圖3 數(shù)據(jù)流向框圖
上面介紹了數(shù)據(jù)傳輸?shù)牧飨颍旅嬲f明如何實現(xiàn)DSP和FPGA在對共享存儲器進行操作時的配合。首先FPGA接收外來的圖像數(shù)據(jù),存儲于FPGA內(nèi)部的雙口RAM的存儲區(qū)一內(nèi),當存儲區(qū)一中的內(nèi)容存滿時,F(xiàn)GPA停止向存儲區(qū)一寫入數(shù)據(jù),F(xiàn)PGA內(nèi)部邏輯電路產(chǎn)生信號,向DSP模塊申請中斷,DSP響應中斷請求,通過EMIF接口從存儲區(qū)一中讀出存入的圖像數(shù)據(jù)并處理,圖像數(shù)據(jù)處理完后,DSP將處理完后的結(jié)果數(shù)據(jù)存入存儲區(qū)二中,結(jié)果數(shù)據(jù)存入完成后DSP通過中斷模塊產(chǎn)生信號,通知FPGA讀出結(jié)果數(shù)據(jù)并輸出。
通過上面的過程數(shù)據(jù)在DSP和FPGA中不僅能快速的傳輸,也能在DSP中實現(xiàn)數(shù)據(jù)的快速處理。這種方式能有效的結(jié)合DSP和FPGA兩者的優(yōu)勢,以達到最好的信號傳輸與處理的效果,在單位時間內(nèi)能處理的數(shù)據(jù)量更大以及數(shù)據(jù)的快速傳輸。
4 FPGA與DSP之間通信實現(xiàn)與應用
該設計適合應用在圖像傳輸與處理要求實時性較高的場合,比起以往的實時算法都需要多塊DSP串行或并行工作,以提高系統(tǒng)的運行速度和實時性,而采用DSP+FPGA的雙口RAM構(gòu)成的數(shù)據(jù)接口可以實現(xiàn)在DSP和FPAG之間高速而又可靠的信息數(shù)據(jù)傳輸,在許多信號采集處理領(lǐng)域,F(xiàn)PGA技術(shù)已代替DSP實現(xiàn)許多前端的數(shù)字信號的采集與處理,用FPGA來實現(xiàn)數(shù)字信號處理很好的解決了DSP之間的并行問題,也滿足速度要求,并且FPGA有著靈活可配置的特性,使得FPGA構(gòu)成的數(shù)字信號處理系統(tǒng)易于修改,測試,便于升級,降低設計成本,開發(fā)周期短。
設計一塊信號處理板,該信號處理板從前端數(shù)據(jù)采集板采集到圖像數(shù)據(jù),圖像每幀大小為640×512,100 f/s,所以該信號處理板要處理和傳輸?shù)臄?shù)據(jù)量很大,采用FPGA+DSP方案,有效的解決了該問題。信號處理板接收到圖像數(shù)據(jù)后對圖像數(shù)據(jù)進行處理,并將處理完的結(jié)果傳與主控板。該系統(tǒng)的結(jié)構(gòu)框圖如圖4所示。信號處理板上的FPGA負責接收從前端傳來的圖像數(shù)據(jù),F(xiàn)PGA將接收到的圖像數(shù)據(jù)存儲在FPGA內(nèi)部的雙口RAM中,同時FPGA也負責從RAM中讀出DSP圖像處理的結(jié)果;DSP主要負責圖像數(shù)據(jù)的處理,處理前DSP通過EMIF接口從雙口RAM中讀出圖像數(shù)據(jù)并處理,將處理后的結(jié)果通過EMIF接口存儲在FPGA內(nèi)部的RAM中。
圖4 系統(tǒng)結(jié)構(gòu)框圖
為驗證兩者之間通信的正確性,用Xilinx公司的ISE軟件的仿真功能獲取FPGA端的數(shù)據(jù),DSP端的數(shù)據(jù)通過DSP的開發(fā)壞境CCS的功能顯示出來。FPGA寫入雙口RAM中的數(shù)據(jù)的仿真圖如圖5所示,寫入的數(shù)據(jù)為0~63,從仿真的結(jié)果看,寫入的數(shù)據(jù)沒有錯誤,DSP從雙口RAM中讀出的數(shù)據(jù)如圖6所示,從讀出的數(shù)據(jù)可以看出,F(xiàn)PGA寫入的數(shù)據(jù)和DSP讀出的數(shù)據(jù)一致,DSP寫入與讀出數(shù)據(jù)圖如圖7所示,其中的地址空間為0xc0000000~0xc000007f中的數(shù)據(jù)為DSP寫入的數(shù)據(jù),而地址空間為0xc0000080~0xc00000ff中的數(shù)據(jù)為經(jīng)FPGA從地址空間為0xc0000000~0xc000007f中讀出數(shù)據(jù)后又寫入到地址空間為0xc0000080~0xc00000ff中,便于觀察,從圖7中可以看出,DSP寫入的數(shù)據(jù)和FPGA讀出的數(shù)據(jù)也相等。
圖5 FPGA寫入雙口RAM中的數(shù)據(jù)仿真圖
圖6 DSP通過EMIF口從雙口RAM中讀出數(shù)據(jù)圖
圖7 DSP寫入與讀出數(shù)據(jù)圖
從圖5~圖7中可以看出兩者之間的通信通道已經(jīng)建立,可以進行正常的通信。實驗結(jié)果表明,本文設計完成了TMS320C6455 DSP EMIF接口與FPGA內(nèi)部雙口RAM的通信,對于DSP發(fā)送的信號,F(xiàn)PGA可以正確接收,F(xiàn)PGA發(fā)表的信號,DSP也能正確的接收,經(jīng)過測試,讀寫數(shù)據(jù)沒有錯誤,并能穩(wěn)定的在二者之間進行通信。經(jīng)測式,二者之間的通信速率能滿足系統(tǒng)所需要求。
5 結(jié) 語
本設計采用FPGA+DSP方案,并充分利用器件內(nèi)部的硬件資源,在開發(fā)環(huán)境ISE下,在FPGA內(nèi)部實現(xiàn)了雙口RAM,并實現(xiàn)了FPGA和DSP 對該雙口RAM的讀寫。建立了DSP和FPGA通信的橋梁,解決并實現(xiàn)了DSP和FPGA之間的雙向通信。采用FPGA和DSP相結(jié)合的方式,既降低了系統(tǒng)的復雜性,又增加了系統(tǒng)的靈活性和配置性,有利于開發(fā),在實現(xiàn)大量數(shù)據(jù)處理的同時,也實現(xiàn)了數(shù)據(jù)的快速傳輸。
參考文獻
[1] 于鳳芹.TMS320C6000DSP結(jié)構(gòu)原理與硬件設計[M].北京:北京航空航天大學出版社,2008.
[2] 胡宏平,胡兵.基于FPGA的雙口RAM在信號采集中的應用[J].微計算機信息,2007(23):223?225.
[3] LEE B W, CHO S H. A design of the signal processing hardware platform f or communication systems [J]. IEICE Transactions on Communications, 2008, E91?B(3): 939?942.
[4] Texas Instruments. TMS320C6000 programmer′s guide [M].USA: Texas Instruments, 2006.
[5] Xilinx. Virtex?5 FPGA user guide [M]. USA: Xilinx, 2012.
[6] Xilinx. Interfacing Xilinx FPGAs to TI DSP platforms using the EMIF [M]. USA: Xilinx, 2007.
[7] 王光國.基于DSP+FPGA 機器人敏感皮膚實時信號處理的研究[D].哈爾濱:哈爾濱工業(yè)大學,2006
[8] Texas Instruments. TMS320C6000 EMIF to external FIFO interface, SPRA543 [R]. USA: Texas Instruments, 1999.
[9] 羅戈亮,魯新平,李吉成.基于FPGA+DSP 的實時圖像處理系統(tǒng)設計與實現(xiàn)[J].微處理機,2010(2):106?110.
[10] 楊露,蘇秀琴,向靜波.基于DSP和FPGA的視頻圖像處理系統(tǒng)設計[J].微計算機信息,2008(21):288?289.
3 數(shù)據(jù)高速傳輸?shù)膶崿F(xiàn)機制
為了達到數(shù)據(jù)在DSP和FPGA之間高速傳輸?shù)哪康?,采取了下面的通信機制,首先在上文中配置的FPGA內(nèi)部雙口RAM中,將雙口RAM中的存儲空間分成兩個部分,首先說一下兩塊存儲區(qū)的用途,第一塊存儲區(qū)用于FPGA向里面寫數(shù)據(jù),DSP從里面讀出數(shù)據(jù),第二塊存儲區(qū)用于DSP向里面寫入數(shù)據(jù),F(xiàn)PAG從里面讀出數(shù)據(jù)。根據(jù)這兩種傳輸方式所要傳的數(shù)據(jù)量要固定這兩塊存儲區(qū)的大小和地址,DSP和FPGA每次訪問固定的地址和長度的存儲區(qū)。
圖3展示了數(shù)據(jù)由FPGA寫入雙口RAM內(nèi)部存儲區(qū)一,經(jīng)EMIF接口傳輸?shù)紻SP內(nèi)部進行處理,DSP將處理的結(jié)果經(jīng)EMIF接口寫入到雙口RAM內(nèi)部的存儲區(qū)二,F(xiàn)PGA從存儲區(qū)二讀出處理結(jié)果的流程框圖。
圖3 數(shù)據(jù)流向框圖
上面介紹了數(shù)據(jù)傳輸?shù)牧飨?,下面說明如何實現(xiàn)DSP和FPGA在對共享存儲器進行操作時的配合。首先FPGA接收外來的圖像數(shù)據(jù),存儲于FPGA內(nèi)部的雙口RAM的存儲區(qū)一內(nèi),當存儲區(qū)一中的內(nèi)容存滿時,F(xiàn)GPA停止向存儲區(qū)一寫入數(shù)據(jù),F(xiàn)PGA內(nèi)部邏輯電路產(chǎn)生信號,向DSP模塊申請中斷,DSP響應中斷請求,通過EMIF接口從存儲區(qū)一中讀出存入的圖像數(shù)據(jù)并處理,圖像數(shù)據(jù)處理完后,DSP將處理完后的結(jié)果數(shù)據(jù)存入存儲區(qū)二中,結(jié)果數(shù)據(jù)存入完成后DSP通過中斷模塊產(chǎn)生信號,通知FPGA讀出結(jié)果數(shù)據(jù)并輸出。
通過上面的過程數(shù)據(jù)在DSP和FPGA中不僅能快速的傳輸,也能在DSP中實現(xiàn)數(shù)據(jù)的快速處理。這種方式能有效的結(jié)合DSP和FPGA兩者的優(yōu)勢,以達到最好的信號傳輸與處理的效果,在單位時間內(nèi)能處理的數(shù)據(jù)量更大以及數(shù)據(jù)的快速傳輸。
4 FPGA與DSP之間通信實現(xiàn)與應用
該設計適合應用在圖像傳輸與處理要求實時性較高的場合,比起以往的實時算法都需要多塊DSP串行或并行工作,以提高系統(tǒng)的運行速度和實時性,而采用DSP+FPGA的雙口RAM構(gòu)成的數(shù)據(jù)接口可以實現(xiàn)在DSP和FPAG之間高速而又可靠的信息數(shù)據(jù)傳輸,在許多信號采集處理領(lǐng)域,F(xiàn)PGA技術(shù)已代替DSP實現(xiàn)許多前端的數(shù)字信號的采集與處理,用FPGA來實現(xiàn)數(shù)字信號處理很好的解決了DSP之間的并行問題,也滿足速度要求,并且FPGA有著靈活可配置的特性,使得FPGA構(gòu)成的數(shù)字信號處理系統(tǒng)易于修改,測試,便于升級,降低設計成本,開發(fā)周期短。
設計一塊信號處理板,該信號處理板從前端數(shù)據(jù)采集板采集到圖像數(shù)據(jù),圖像每幀大小為640×512,100 f/s,所以該信號處理板要處理和傳輸?shù)臄?shù)據(jù)量很大,采用FPGA+DSP方案,有效的解決了該問題。信號處理板接收到圖像數(shù)據(jù)后對圖像數(shù)據(jù)進行處理,并將處理完的結(jié)果傳與主控板。該系統(tǒng)的結(jié)構(gòu)框圖如圖4所示。信號處理板上的FPGA負責接收從前端傳來的圖像數(shù)據(jù),F(xiàn)PGA將接收到的圖像數(shù)據(jù)存儲在FPGA內(nèi)部的雙口RAM中,同時FPGA也負責從RAM中讀出DSP圖像處理的結(jié)果;DSP主要負責圖像數(shù)據(jù)的處理,處理前DSP通過EMIF接口從雙口RAM中讀出圖像數(shù)據(jù)并處理,將處理后的結(jié)果通過EMIF接口存儲在FPGA內(nèi)部的RAM中。
圖4 系統(tǒng)結(jié)構(gòu)框圖
為驗證兩者之間通信的正確性,用Xilinx公司的ISE軟件的仿真功能獲取FPGA端的數(shù)據(jù),DSP端的數(shù)據(jù)通過DSP的開發(fā)壞境CCS的功能顯示出來。FPGA寫入雙口RAM中的數(shù)據(jù)的仿真圖如圖5所示,寫入的數(shù)據(jù)為0~63,從仿真的結(jié)果看,寫入的數(shù)據(jù)沒有錯誤,DSP從雙口RAM中讀出的數(shù)據(jù)如圖6所示,從讀出的數(shù)據(jù)可以看出,F(xiàn)PGA寫入的數(shù)據(jù)和DSP讀出的數(shù)據(jù)一致,DSP寫入與讀出數(shù)據(jù)圖如圖7所示,其中的地址空間為0xc0000000~0xc000007f中的數(shù)據(jù)為DSP寫入的數(shù)據(jù),而地址空間為0xc0000080~0xc00000ff中的數(shù)據(jù)為經(jīng)FPGA從地址空間為0xc0000000~0xc000007f中讀出數(shù)據(jù)后又寫入到地址空間為0xc0000080~0xc00000ff中,便于觀察,從圖7中可以看出,DSP寫入的數(shù)據(jù)和FPGA讀出的數(shù)據(jù)也相等。
圖5 FPGA寫入雙口RAM中的數(shù)據(jù)仿真圖
圖6 DSP通過EMIF口從雙口RAM中讀出數(shù)據(jù)圖
圖7 DSP寫入與讀出數(shù)據(jù)圖
從圖5~圖7中可以看出兩者之間的通信通道已經(jīng)建立,可以進行正常的通信。實驗結(jié)果表明,本文設計完成了TMS320C6455 DSP EMIF接口與FPGA內(nèi)部雙口RAM的通信,對于DSP發(fā)送的信號,F(xiàn)PGA可以正確接收,F(xiàn)PGA發(fā)表的信號,DSP也能正確的接收,經(jīng)過測試,讀寫數(shù)據(jù)沒有錯誤,并能穩(wěn)定的在二者之間進行通信。經(jīng)測式,二者之間的通信速率能滿足系統(tǒng)所需要求。
5 結(jié) 語
本設計采用FPGA+DSP方案,并充分利用器件內(nèi)部的硬件資源,在開發(fā)環(huán)境ISE下,在FPGA內(nèi)部實現(xiàn)了雙口RAM,并實現(xiàn)了FPGA和DSP 對該雙口RAM的讀寫。建立了DSP和FPGA通信的橋梁,解決并實現(xiàn)了DSP和FPGA之間的雙向通信。采用FPGA和DSP相結(jié)合的方式,既降低了系統(tǒng)的復雜性,又增加了系統(tǒng)的靈活性和配置性,有利于開發(fā),在實現(xiàn)大量數(shù)據(jù)處理的同時,也實現(xiàn)了數(shù)據(jù)的快速傳輸。
參考文獻
[1] 于鳳芹.TMS320C6000DSP結(jié)構(gòu)原理與硬件設計[M].北京:北京航空航天大學出版社,2008.
[2] 胡宏平,胡兵.基于FPGA的雙口RAM在信號采集中的應用[J].微計算機信息,2007(23):223?225.
[3] LEE B W, CHO S H. A design of the signal processing hardware platform f or communication systems [J]. IEICE Transactions on Communications, 2008, E91?B(3): 939?942.
[4] Texas Instruments. TMS320C6000 programmer′s guide [M].USA: Texas Instruments, 2006.
[5] Xilinx. Virtex?5 FPGA user guide [M]. USA: Xilinx, 2012.
[6] Xilinx. Interfacing Xilinx FPGAs to TI DSP platforms using the EMIF [M]. USA: Xilinx, 2007.
[7] 王光國.基于DSP+FPGA 機器人敏感皮膚實時信號處理的研究[D].哈爾濱:哈爾濱工業(yè)大學,2006
[8] Texas Instruments. TMS320C6000 EMIF to external FIFO interface, SPRA543 [R]. USA: Texas Instruments, 1999.
[9] 羅戈亮,魯新平,李吉成.基于FPGA+DSP 的實時圖像處理系統(tǒng)設計與實現(xiàn)[J].微處理機,2010(2):106?110.
[10] 楊露,蘇秀琴,向靜波.基于DSP和FPGA的視頻圖像處理系統(tǒng)設計[J].微計算機信息,2008(21):288?289.
3 數(shù)據(jù)高速傳輸?shù)膶崿F(xiàn)機制
為了達到數(shù)據(jù)在DSP和FPGA之間高速傳輸?shù)哪康?,采取了下面的通信機制,首先在上文中配置的FPGA內(nèi)部雙口RAM中,將雙口RAM中的存儲空間分成兩個部分,首先說一下兩塊存儲區(qū)的用途,第一塊存儲區(qū)用于FPGA向里面寫數(shù)據(jù),DSP從里面讀出數(shù)據(jù),第二塊存儲區(qū)用于DSP向里面寫入數(shù)據(jù),F(xiàn)PAG從里面讀出數(shù)據(jù)。根據(jù)這兩種傳輸方式所要傳的數(shù)據(jù)量要固定這兩塊存儲區(qū)的大小和地址,DSP和FPGA每次訪問固定的地址和長度的存儲區(qū)。
圖3展示了數(shù)據(jù)由FPGA寫入雙口RAM內(nèi)部存儲區(qū)一,經(jīng)EMIF接口傳輸?shù)紻SP內(nèi)部進行處理,DSP將處理的結(jié)果經(jīng)EMIF接口寫入到雙口RAM內(nèi)部的存儲區(qū)二,F(xiàn)PGA從存儲區(qū)二讀出處理結(jié)果的流程框圖。
圖3 數(shù)據(jù)流向框圖
上面介紹了數(shù)據(jù)傳輸?shù)牧飨?,下面說明如何實現(xiàn)DSP和FPGA在對共享存儲器進行操作時的配合。首先FPGA接收外來的圖像數(shù)據(jù),存儲于FPGA內(nèi)部的雙口RAM的存儲區(qū)一內(nèi),當存儲區(qū)一中的內(nèi)容存滿時,F(xiàn)GPA停止向存儲區(qū)一寫入數(shù)據(jù),F(xiàn)PGA內(nèi)部邏輯電路產(chǎn)生信號,向DSP模塊申請中斷,DSP響應中斷請求,通過EMIF接口從存儲區(qū)一中讀出存入的圖像數(shù)據(jù)并處理,圖像數(shù)據(jù)處理完后,DSP將處理完后的結(jié)果數(shù)據(jù)存入存儲區(qū)二中,結(jié)果數(shù)據(jù)存入完成后DSP通過中斷模塊產(chǎn)生信號,通知FPGA讀出結(jié)果數(shù)據(jù)并輸出。
通過上面的過程數(shù)據(jù)在DSP和FPGA中不僅能快速的傳輸,也能在DSP中實現(xiàn)數(shù)據(jù)的快速處理。這種方式能有效的結(jié)合DSP和FPGA兩者的優(yōu)勢,以達到最好的信號傳輸與處理的效果,在單位時間內(nèi)能處理的數(shù)據(jù)量更大以及數(shù)據(jù)的快速傳輸。
4 FPGA與DSP之間通信實現(xiàn)與應用
該設計適合應用在圖像傳輸與處理要求實時性較高的場合,比起以往的實時算法都需要多塊DSP串行或并行工作,以提高系統(tǒng)的運行速度和實時性,而采用DSP+FPGA的雙口RAM構(gòu)成的數(shù)據(jù)接口可以實現(xiàn)在DSP和FPAG之間高速而又可靠的信息數(shù)據(jù)傳輸,在許多信號采集處理領(lǐng)域,F(xiàn)PGA技術(shù)已代替DSP實現(xiàn)許多前端的數(shù)字信號的采集與處理,用FPGA來實現(xiàn)數(shù)字信號處理很好的解決了DSP之間的并行問題,也滿足速度要求,并且FPGA有著靈活可配置的特性,使得FPGA構(gòu)成的數(shù)字信號處理系統(tǒng)易于修改,測試,便于升級,降低設計成本,開發(fā)周期短。
設計一塊信號處理板,該信號處理板從前端數(shù)據(jù)采集板采集到圖像數(shù)據(jù),圖像每幀大小為640×512,100 f/s,所以該信號處理板要處理和傳輸?shù)臄?shù)據(jù)量很大,采用FPGA+DSP方案,有效的解決了該問題。信號處理板接收到圖像數(shù)據(jù)后對圖像數(shù)據(jù)進行處理,并將處理完的結(jié)果傳與主控板。該系統(tǒng)的結(jié)構(gòu)框圖如圖4所示。信號處理板上的FPGA負責接收從前端傳來的圖像數(shù)據(jù),F(xiàn)PGA將接收到的圖像數(shù)據(jù)存儲在FPGA內(nèi)部的雙口RAM中,同時FPGA也負責從RAM中讀出DSP圖像處理的結(jié)果;DSP主要負責圖像數(shù)據(jù)的處理,處理前DSP通過EMIF接口從雙口RAM中讀出圖像數(shù)據(jù)并處理,將處理后的結(jié)果通過EMIF接口存儲在FPGA內(nèi)部的RAM中。
圖4 系統(tǒng)結(jié)構(gòu)框圖
為驗證兩者之間通信的正確性,用Xilinx公司的ISE軟件的仿真功能獲取FPGA端的數(shù)據(jù),DSP端的數(shù)據(jù)通過DSP的開發(fā)壞境CCS的功能顯示出來。FPGA寫入雙口RAM中的數(shù)據(jù)的仿真圖如圖5所示,寫入的數(shù)據(jù)為0~63,從仿真的結(jié)果看,寫入的數(shù)據(jù)沒有錯誤,DSP從雙口RAM中讀出的數(shù)據(jù)如圖6所示,從讀出的數(shù)據(jù)可以看出,F(xiàn)PGA寫入的數(shù)據(jù)和DSP讀出的數(shù)據(jù)一致,DSP寫入與讀出數(shù)據(jù)圖如圖7所示,其中的地址空間為0xc0000000~0xc000007f中的數(shù)據(jù)為DSP寫入的數(shù)據(jù),而地址空間為0xc0000080~0xc00000ff中的數(shù)據(jù)為經(jīng)FPGA從地址空間為0xc0000000~0xc000007f中讀出數(shù)據(jù)后又寫入到地址空間為0xc0000080~0xc00000ff中,便于觀察,從圖7中可以看出,DSP寫入的數(shù)據(jù)和FPGA讀出的數(shù)據(jù)也相等。
圖5 FPGA寫入雙口RAM中的數(shù)據(jù)仿真圖
圖6 DSP通過EMIF口從雙口RAM中讀出數(shù)據(jù)圖
圖7 DSP寫入與讀出數(shù)據(jù)圖
從圖5~圖7中可以看出兩者之間的通信通道已經(jīng)建立,可以進行正常的通信。實驗結(jié)果表明,本文設計完成了TMS320C6455 DSP EMIF接口與FPGA內(nèi)部雙口RAM的通信,對于DSP發(fā)送的信號,F(xiàn)PGA可以正確接收,F(xiàn)PGA發(fā)表的信號,DSP也能正確的接收,經(jīng)過測試,讀寫數(shù)據(jù)沒有錯誤,并能穩(wěn)定的在二者之間進行通信。經(jīng)測式,二者之間的通信速率能滿足系統(tǒng)所需要求。
5 結(jié) 語
本設計采用FPGA+DSP方案,并充分利用器件內(nèi)部的硬件資源,在開發(fā)環(huán)境ISE下,在FPGA內(nèi)部實現(xiàn)了雙口RAM,并實現(xiàn)了FPGA和DSP 對該雙口RAM的讀寫。建立了DSP和FPGA通信的橋梁,解決并實現(xiàn)了DSP和FPGA之間的雙向通信。采用FPGA和DSP相結(jié)合的方式,既降低了系統(tǒng)的復雜性,又增加了系統(tǒng)的靈活性和配置性,有利于開發(fā),在實現(xiàn)大量數(shù)據(jù)處理的同時,也實現(xiàn)了數(shù)據(jù)的快速傳輸。
參考文獻
[1] 于鳳芹.TMS320C6000DSP結(jié)構(gòu)原理與硬件設計[M].北京:北京航空航天大學出版社,2008.
[2] 胡宏平,胡兵.基于FPGA的雙口RAM在信號采集中的應用[J].微計算機信息,2007(23):223?225.
[3] LEE B W, CHO S H. A design of the signal processing hardware platform f or communication systems [J]. IEICE Transactions on Communications, 2008, E91?B(3): 939?942.
[4] Texas Instruments. TMS320C6000 programmer′s guide [M].USA: Texas Instruments, 2006.
[5] Xilinx. Virtex?5 FPGA user guide [M]. USA: Xilinx, 2012.
[6] Xilinx. Interfacing Xilinx FPGAs to TI DSP platforms using the EMIF [M]. USA: Xilinx, 2007.
[7] 王光國.基于DSP+FPGA 機器人敏感皮膚實時信號處理的研究[D].哈爾濱:哈爾濱工業(yè)大學,2006
[8] Texas Instruments. TMS320C6000 EMIF to external FIFO interface, SPRA543 [R]. USA: Texas Instruments, 1999.
[9] 羅戈亮,魯新平,李吉成.基于FPGA+DSP 的實時圖像處理系統(tǒng)設計與實現(xiàn)[J].微處理機,2010(2):106?110.
[10] 楊露,蘇秀琴,向靜波.基于DSP和FPGA的視頻圖像處理系統(tǒng)設計[J].微計算機信息,2008(21):288?289.