陳林軍,劉鵬,2,姜智譯
(1.后勤工程學(xué)院 后勤信息工程系,重慶401311;2.重慶通信學(xué)院;3.65113部隊)
?
DSP和FPGA的雙核并行通信方法設(shè)計與應(yīng)用※*
陳林軍1,劉鵬1,2,姜智譯3
(1.后勤工程學(xué)院 后勤信息工程系,重慶401311;2.重慶通信學(xué)院;3.65113部隊)
摘要:為解決雷達(dá)信號處理系統(tǒng)雙核通信問題,設(shè)計了兩種DSP和FPGA之間的并行通信方法,分別通過DSP的外部接口XINTF訪問FPGA內(nèi)部FIFO和雙口RAM,利用DSP的讀寫使能信號作為FIFO和RAM的讀寫時鐘信號。通過對兩種并行通信方法進(jìn)行對比分析,指出雷達(dá)信號處理系統(tǒng)中雙核通信應(yīng)該采用DSP和FPGA內(nèi)部FIFO的方法。
關(guān)鍵詞:DSP;FPGA;并行通信;外部接口XINTF;FIFO;雙口RAM
引言
1DSP與FPGA內(nèi)部FIFO并行通信方法
1.1設(shè)計思想
在雷達(dá)信號處理系統(tǒng)中,數(shù)據(jù)的流向如圖1所示。首先FPGA接收高速并行A/D轉(zhuǎn)換的數(shù)字信號,DSP讀取FPGA獲取的信號序列并進(jìn)行數(shù)字信號處理,得到距離信息,然后DSP將距離信息發(fā)送至FPGA,F(xiàn)PGA控制LCD顯示屏顯示距離信息。
圖1 數(shù)據(jù)的流向
FPGA的設(shè)計采用VHDL硬件描述語言,利用內(nèi)部RAM資源生成FIFO模塊,將FPGA的FIFO模塊作為DSP的外圍設(shè)備,DSP根據(jù)FIFO的存儲狀態(tài),通過外部接口XINTF對FIFO模塊進(jìn)行讀寫操作。
1.2硬件設(shè)計
根據(jù)設(shè)計思想,搭建了DSP和FPGA通信的硬件實(shí)驗平臺,硬件連接示意圖如圖2所示。
圖2 DSP與FPGA連接示意圖
1.3軟件設(shè)計
1.3.1FPGA內(nèi)部FIFO模塊設(shè)計
利用Altera公司的QuartusII集成開發(fā)環(huán)境,在FPGA中實(shí)現(xiàn)FIFO有兩種方式:通過編寫VHDL程序?qū)崿F(xiàn)和利用軟件中MegaWizard Plug-In Manager進(jìn)行配置[6]。本文選用第二種實(shí)現(xiàn)方式,通過向?qū)渲肍IFO的數(shù)據(jù)寬度、深度和控制信號等參數(shù)。讀寫使能信號根據(jù)FIFO的空、滿狀態(tài),通過編寫VHDL程序在FPGA內(nèi)部邏輯實(shí)現(xiàn)。
DSP每進(jìn)行一次讀(寫)操作,時序分為3個階段[7]:前導(dǎo)(Lead)、有效(Active)和跟蹤(Trail)。在有效階段讀(寫)使能信號拉低一次,為此,本設(shè)計將DSP讀(寫)使能信號經(jīng)過非門取反后作為FIFO的讀(寫)時鐘信號,F(xiàn)IFO的讀(寫)使能信號有效時,在時鐘信號的上升沿數(shù)據(jù)將被讀出(寫入)FIFO。系統(tǒng)通過數(shù)據(jù)總線進(jìn)行數(shù)據(jù)的讀寫操作,因此FPGA的數(shù)據(jù)線引腳設(shè)置為雙向傳輸(BIDIR)模式。FIFO模塊圖略——編者注,當(dāng)FIFO的讀使能有效(rdreq=1)時,數(shù)據(jù)只能由q端口經(jīng)三態(tài)門輸出;當(dāng)FIFO的寫使能有效(wrreq=1)時,數(shù)據(jù)只能經(jīng)三態(tài)門寫入到data端口。
1.3.2DSP模塊設(shè)計
在本文中,DSP的工作流程如圖3所示。
圖3 系統(tǒng)工作流程圖
1.4DSP與FPGA內(nèi)部FIFO的并行通信實(shí)驗
根據(jù)硬件設(shè)計,制作了連接DSP核心板和FPGA核心板的底板,搭建了DSP和FPGA通信的實(shí)驗平臺。在該實(shí)驗平臺上開展實(shí)測實(shí)驗,并通過CCS4.2開發(fā)環(huán)境,觀察DSP寫入和讀出FIFO的數(shù)據(jù)的結(jié)果如圖4所示。
圖4 DSP與FPGA內(nèi)部FIFO并行通信實(shí)驗結(jié)果
從圖4中可以看出,生成的發(fā)送數(shù)據(jù)Send和接收到的數(shù)據(jù)Receive完全一樣。實(shí)驗結(jié)果表明,本文實(shí)現(xiàn)了DSP的XINTF接口到FPGA內(nèi)部FIFO的雙向并行通信,DSP能夠通過寫操作將數(shù)據(jù)傳送至FPGA,通過讀操作將數(shù)據(jù)從FPGA傳送至DSP。
2DSP與FPGA雙口RAM并行通信方法
2.1設(shè)計思想
FPGA內(nèi)部的存儲器資源可以配置成單口RAM、雙口RAM和三口RAM[8],雷達(dá)信號處理板涉及到DSP對RAM的讀寫操作和FPGA本身對內(nèi)部RAM的讀寫操作,因此本文采用雙口RAM,實(shí)現(xiàn)DSP對其的讀寫操作。主要設(shè)計思想如下:DSP作為主設(shè)備,F(xiàn)PGA作為從設(shè)備,DSP通過XINTF的地址總線對FPGA內(nèi)部的雙口RAM進(jìn)行尋址,過程與DSP讀寫外擴(kuò)存儲器芯片相似,本文使用16位數(shù)據(jù)寬度實(shí)現(xiàn)32個16位數(shù)據(jù)的雙向傳輸。
2.2硬件設(shè)計
根據(jù)設(shè)計思想,搭建DSP和FPGA通信的硬件實(shí)驗平臺,其中,DSP和FPGA之間的硬件連接示意圖如圖5所示。
圖5 DSP與FPGA連接示意圖
2.3軟件實(shí)現(xiàn)
2.3.1FPGA內(nèi)部RAM模塊設(shè)計
2.3.2DSP模塊設(shè)計
DSP與FPGA內(nèi)部RAM模塊通信時的工作流程如圖6所示,首先進(jìn)行DSP的初始化設(shè)置,這一步與DSP訪問FIFO模塊類似;然后生成待寫入到RAM中的數(shù)據(jù)(本文設(shè)置為整數(shù)32~1,共32個數(shù))并存儲到數(shù)組Send;隨后生成數(shù)據(jù)寫入的目標(biāo)地址,ZONE7的尋址范圍為0x20 0000~0x2F FFFF,本文設(shè)計的RAM模塊大小為32×16位,因此尋址范圍為0x20 0000~0x20 001F,編程將數(shù)據(jù)1~32逆序?qū)懭氲絉AM地址0x00~0x1F,然后將數(shù)據(jù)按地址從小到大順序讀出到數(shù)組Receive;順序讀完數(shù)據(jù)后,再按照先奇數(shù)地址后偶數(shù)地址的順序讀取數(shù)據(jù)到Receive1。
圖6 系統(tǒng)工作流程圖
2.4DSP與雙口RAM的并行通信實(shí)現(xiàn)
利用搭建好的包含DSP核心板和FPGA核心板的實(shí)驗平臺進(jìn)行通信實(shí)測實(shí)驗,根據(jù)硬件連接關(guān)系,給FPGA模塊內(nèi)的各信號分配引腳。完成后編譯生成.sof文件,將.sof文件下載到FPGA中運(yùn)行;然后通過CCS4.2和XDS100V2仿真器編譯連接到DSP,運(yùn)行DSP中的C語言程序,在Memory窗口中觀察DSP讀取的數(shù)據(jù)結(jié)果如圖7所示。
圖7 DSP與雙口RAM并行通信實(shí)驗結(jié)果
從圖7中可以看出,生成的發(fā)送數(shù)據(jù)Send和接收到的數(shù)據(jù)Receive完全一樣,而Receive1的數(shù)據(jù)則是先偶數(shù)、后奇數(shù)的排列,分別對應(yīng)Send中奇數(shù)序號和偶數(shù)序號所指向的數(shù)據(jù)。實(shí)驗結(jié)果表明,該實(shí)驗方案可以實(shí)現(xiàn)DSP和FPGA之間的雙向并行通信,DSP可以通過尋址方式讀寫FPGA內(nèi)部雙口RAM的數(shù)據(jù)。
3兩種通信方法對比分析
上述兩種方法都能夠?qū)崿F(xiàn)DSP和FPGA之間的雙向并行通信,而且都是通過DSP的XINTF接口和FPGA的通用I/O引腳相連,構(gòu)成數(shù)據(jù)交換的通道,由FPGA分別配置生成FIFO和雙口RAM,DSP利用XINTF接口的片選信號和讀寫使能信號作為控制FIFO和雙口RAM讀寫的控制信號,完成DSP和FPGA之間的雙向并行通信。
兩種通信方法最大的區(qū)別在于:FIFO不需要地址線,數(shù)據(jù)只能按照先后順序存儲和讀出,先存則先讀,后存則后讀,存滿后產(chǎn)生滿信號,不能再存,讀完后產(chǎn)生空信號,不能繼續(xù)讀;RAM有地址線,必須通過地址線才能對其進(jìn)行讀寫,讀寫地址沒有順序的要求,可以讀寫RAM地址范圍內(nèi)的任意地址所指向的數(shù)據(jù),對同一地址的數(shù)據(jù)可以多次讀取而不會產(chǎn)生變化,但是對同一地址多次寫入則會覆蓋之前的數(shù)據(jù)。
由分析可知,本文設(shè)計的兩種DSP和FPGA之間的雙向并行通信方法各有優(yōu)劣。DSP和FPGA內(nèi)部FIFO之間的通信,硬件結(jié)構(gòu)簡單,所需I/O引腳較少,數(shù)據(jù)的讀寫過程清新,不會造成數(shù)據(jù)順序的錯亂,然而,這種方法缺乏靈活性,不能隨意調(diào)用存儲器中的特定數(shù)據(jù)。而DSP和FPGA內(nèi)部雙口RAM之間的通信在硬件上的開銷相對較大,占用較多的I/O引腳資源,讀寫RAM要首先生成目標(biāo)地址,而后根據(jù)目標(biāo)地址進(jìn)行尋址讀寫數(shù)據(jù),對雙口RAM的讀寫比較靈活,可以只取所需而不用將數(shù)據(jù)都讀出。
雷達(dá)信號處理系統(tǒng)所處理的數(shù)據(jù)是一系列離散時間序列,而A/D轉(zhuǎn)換器采集的數(shù)據(jù)就是離散時間序列,F(xiàn)PGA對這些數(shù)據(jù)進(jìn)行存儲和DSP對這些數(shù)據(jù)的讀取都不需要有順序的變化,讀寫過程簡單,再考慮到芯片I/O引腳有限,所以在雷達(dá)信號處理系統(tǒng)中適合采用DSP和FPGA之間通過FIFO方式進(jìn)行雙向并行通信。
結(jié)語
本文設(shè)計了兩種DSP和FPGA之間的并行通信方法,搭建了雙核并行通信硬件實(shí)驗平臺,實(shí)現(xiàn)了兩者間的雙向并行通信。在FPGA內(nèi)部實(shí)現(xiàn)FIFO和雙口RAM,DSP作為主設(shè)備,通過外部接口XINTF對FPGA的內(nèi)部FIFO和雙口RAM進(jìn)行讀寫操作,從而完成兩者的通信。對兩種并行通信方法進(jìn)行了對比分析,結(jié)合雷達(dá)信號處理系統(tǒng)的需求,認(rèn)為雷達(dá)信號處理系統(tǒng)適合采用DSP與FPGA通過內(nèi)部FIFO進(jìn)行通信的方法。
參考文獻(xiàn)
[1] 劉良兵.頻率估計的信息融合方法及其應(yīng)用[D] .重慶:后勤工程學(xué)院,2008.
[2] KENEFIC R J,NUTTALL A H.Maximum likelihood estimation of the parameters of a tone using real discrete data[J] .IEEE Journal of Oceanic Engineering,1987,12(1):279-280.
[3] 肖瑋,涂亞慶,劉良兵,等.頻率估計的一種多段同頻正弦信號頻譜相關(guān)算法[J] .電子與信息學(xué)報,2012,(3):564-570.
[4] 張卿杰.手把手教你學(xué)DSP——基于TMS320F28335[M] .北京:北京航空航天大學(xué)出版社,2015.
[5] 林琳.基于FPGA的雷達(dá)信號處理板設(shè)計與實(shí)現(xiàn)[J] .現(xiàn)代電子技術(shù),2014(11):51-56.
[6] Altera.SCFIFO and DCFIFO IP Cores User Guide[EB/OL].[2015-08].https://www.altera.com/content/dam/altera-www/global/en_US/pdfs/literature/ug/ug_fifo.pdf.
[7] Texas Instruments.TMS320x2833x, 2823x DSC External Interface (XINTF) Reference Guide[EB/OL].[2015-08].http://www.ti.com/lit/ug/spru949d/spru949d.pdf.
[8] Altera.Internal Memory (RAM and ROM) User Guide[EB/OL].[2015-08].https://www.altera.com/en_US/pdfs/literature/an/an207.pdf.
陳林軍(碩士研究生),主要研究方向為檢測技術(shù)與自動化裝置;劉鵬(講師),主要研究方向為嵌入式控制系統(tǒng);姜智譯(助理工程師),主要從事油庫自動化工作。
Design and Application of Dual-core Parallel Communication Method for FPGA and DSP※
Chen Linjun1,Liu Peng1,2,Jiang Zhiyi3
(1.Department of Information Engineering,Logistical Engineering University,Chongqing 401311,China;
2.Chongqing Communication Institute;3.Unit 65113)
Abstract:In order to solve the problem of dual-core communication in the radar signal processing system,two methods of parallel communication between DSP and FPGA are designed.The two methods access FPGA internal FIFO and dual-port RAM through the external interface XINTF of DSP.The read and write enable signals of DSP are used as the read and write clock signals of FIFO and dual-port RAM of FPGA.The internal FIFO dual-core communication between DSP and FPGA is a better choice in the radar signal processing system after comparing the two methods.
Key words:DSP;FPGA;parallel communication;external interface XINTF;FIFO;dual-port RAM
收稿日期:(責(zé)任編輯:薛士然2015-08-04)
基金項目:*國家自然科學(xué)基金(頻率估計的多段信號頻譜融合法及應(yīng)用基礎(chǔ),61271449,離散頻譜的變頻融合校正法及應(yīng)用基礎(chǔ)研究,61302175);重慶市研究生科研創(chuàng)新項目(短時信號頻率估計的相位匹配方法及其應(yīng)用,CYB14100)。
中圖分類號:TN919.5
文獻(xiàn)標(biāo)識碼:A