陳術(shù)濤,俞鵬先,沈志,王春聯(lián),金敏
?。ㄖ袊?guó)航天科工集團(tuán)第九總體設(shè)計(jì)部,,湖北 武漢 430040)
摘要:詳細(xì)介紹了TI公司TMS320C6678多核DSP高速外設(shè)模塊EMIF16(外部存儲(chǔ)器接口)的功能及特性,利用EMIF模塊擴(kuò)展存儲(chǔ)空間大,、通信速度快,、硬件接口電路簡(jiǎn)單、性能穩(wěn)定等特點(diǎn),,設(shè)計(jì)并實(shí)現(xiàn)了一種基于EMIF模塊的DSP與FPGA異步通信接口,,重點(diǎn)描述了接口通信系統(tǒng)架構(gòu)設(shè)計(jì)和具體軟件實(shí)現(xiàn)。測(cè)試驗(yàn)證表明基于該接口可進(jìn)行DSP與FPGA之間多種格式數(shù)據(jù)傳輸,,接口運(yùn)行穩(wěn)定可靠,,擴(kuò)展了TMS320C6678多核DSP處理芯片與外部器件通信系統(tǒng)接口的設(shè)計(jì)方式。
關(guān)鍵詞:EMIF,;DSP,;FPGA;異步接口
中圖分類號(hào):TN911; TP39文獻(xiàn)標(biāo)識(shí)碼:ADOI: 10.19358/j.issn.1674-7720.2017.07.007
引用格式:陳術(shù)濤,俞鵬先,沈志,,等.基于高速外設(shè)模塊的多核DSP與FPGA通信系統(tǒng)設(shè)計(jì)[J].微型機(jī)與應(yīng)用,,2017,36(7):22-25.
0引言
隨著信息與通信技術(shù)的快速發(fā)展和進(jìn)步,其在圖像處理,、模式識(shí)別,、雷達(dá)信號(hào)處理、電子對(duì)抗,、無(wú)線通信,、導(dǎo)航定位等領(lǐng)域得到越來(lái)越深入的應(yīng)用,隨之而來(lái)的對(duì)硬件平臺(tái)高效穩(wěn)定通信能力的需求也在同步增長(zhǎng),。目前,,信號(hào)處理系統(tǒng)的硬件平臺(tái)大多采用高度集成的嵌入式系統(tǒng),基于DSP+FPGA的硬件架構(gòu)設(shè)計(jì)憑借其超強(qiáng)的處理能力和廣泛的工程應(yīng)用等優(yōu)勢(shì),已經(jīng)成為當(dāng)前通用數(shù)字信號(hào)處理平臺(tái)的首選,。TMS320C6678多核高速DSP芯片是目前TI公司最新推出的高性能數(shù)字信號(hào)處理芯片,,處理能力領(lǐng)先,基于該芯片的硬件處理平臺(tái)市場(chǎng)應(yīng)用前景廣泛,。本文針對(duì)TMS320C6678DSP芯片和Xilinx公司Kintex7系列FPGA組成的信號(hào)處理系統(tǒng)進(jìn)行研究,,設(shè)計(jì)了一種基于EMIF16模塊的DSP與FPGA通信接口。該接口充分利用EMIF接口高速,、穩(wěn)定,、設(shè)計(jì)簡(jiǎn)單等特性,同時(shí)配合FPGA邏輯處理能力強(qiáng),、可編程等優(yōu)點(diǎn)進(jìn)行接口邏輯設(shè)計(jì),,工作性能穩(wěn)定,數(shù)據(jù)處理能力強(qiáng),,功能靈活可擴(kuò)展,,可適應(yīng)多種通信需求,很好地解決了DSP與FPGA之間的通信問(wèn)題,。
1EMIF16接口模塊特征
1.1EMIF16接口簡(jiǎn)介
圖1EMIF16接口模塊框圖EMIF16是DSP芯片自帶的外部存儲(chǔ)器接口模塊,,其主要功能是支持內(nèi)核CPU對(duì)外部擴(kuò)展存儲(chǔ)空間的訪問(wèn),EMIF16可與ASRAM,、NOR Flash,、NARD Flash等類型的異步存儲(chǔ)設(shè)備連接,異步訪問(wèn)地址空間最大可擴(kuò)展為256 MB,,接口模塊提供4個(gè)片選信號(hào),,每個(gè)片選信號(hào)可選中64 MB獨(dú)立存儲(chǔ)空間。該接口模塊具有可編程能力,,通過(guò)設(shè)置模塊控制寄存器的不同參數(shù)可調(diào)節(jié)接口讀寫時(shí)序和傳輸數(shù)據(jù)寬度等傳輸特性,,EMIF16模塊接口結(jié)構(gòu)如圖1所示[1]。
由圖1可見(jiàn),,EMIF16模塊框圖主要由一系列信號(hào)引腳組成,,各接口管腳功能如下:EMIFD[15:0]表示EMIF模塊讀寫數(shù)據(jù)的16位數(shù)據(jù)總線;EMIFA[23:0]表示EMIF模塊訪問(wèn)存儲(chǔ)空間的24位地址總線,;EMIFCE[3:0]表示EMIF模塊片選信號(hào),,低電平有效,分別對(duì)應(yīng)DSP的CE0~CE3片選區(qū)間,;EMIFBE[1:0]表示EMIF模塊字節(jié)使能信號(hào),;EMIFWE表示EMIF模塊寫操作使能信號(hào),低電平有效,;EMIFOE表示EMIF模塊輸出使能信號(hào),,低電平有效,;EMIFWAIT[1:0]表示EMIF模塊等待信號(hào);EMIFRnW表示EMIF模塊的讀寫使能信號(hào)[2],。通過(guò)對(duì)上述的數(shù)據(jù)總線,、地址總線及控制信號(hào)的編程設(shè)計(jì)實(shí)現(xiàn)EMIF16接口與外部存儲(chǔ)器的通信功能。
1.2EMIF16接口連接及異步讀寫時(shí)序
EMIF16模塊外接不同類型存儲(chǔ)芯片時(shí)信號(hào)管腳的接口設(shè)置也不相同,,本系統(tǒng)設(shè)計(jì)的通信系統(tǒng)中多核DSP的EMIF16模塊接口直接與FPGA連接,,由FPGA端設(shè)計(jì)多個(gè)FIFO空間供DSP進(jìn)行讀寫,EMIF16模塊外接時(shí)序設(shè)計(jì)采用8-bit NOR Flash接口時(shí)序,,具體接口框圖如圖2所示[3],。
EMIF16接口的每個(gè)讀/寫周期分為三個(gè)階段:建立時(shí)間(Setup)、觸發(fā)時(shí)間(Strobe)和保持時(shí)間(Hold),,每個(gè)階段的相應(yīng)參數(shù)都可通過(guò)對(duì)EMIF16模塊控制寄存器編程進(jìn)行設(shè)置,具體參數(shù)設(shè)置在接口驅(qū)動(dòng)程序中實(shí)現(xiàn),。接口讀寫時(shí)序參數(shù)是EMIF接口設(shè)計(jì)中較為重要的參數(shù),,DSP端與FPGA端接口時(shí)序必須保持一致才能實(shí)現(xiàn)數(shù)據(jù)穩(wěn)定傳輸,EMIF異步讀時(shí)序如圖3所示,,EMIF異步寫時(shí)序如圖4所示,。
圖3、圖4中Setup,、Strobe,、Hold等參數(shù)設(shè)置皆以EMIF16時(shí)鐘周期為基準(zhǔn),本系統(tǒng)設(shè)計(jì)中EMIF16模塊默認(rèn)使用DSP系統(tǒng)輸出時(shí)鐘中的SysClk7時(shí)鐘信號(hào),,該時(shí)鐘頻率為芯片主頻的1/6分頻,,本系統(tǒng)中使用的TMS320C6678多核DSP主頻配置為1 GHz,所以EMIF16接口時(shí)鐘頻率可達(dá)到166.67 MHz,,能夠滿足高速串行通信需求[4],。
2DSP與FPGA通信系統(tǒng)設(shè)計(jì)
本文設(shè)計(jì)的DSP與FPGA通信接口基于圖2所示的異步 8bit NOR Flash接口連接圖要求進(jìn)行硬件電路設(shè)計(jì),同時(shí),,基于該硬件平臺(tái)設(shè)計(jì)一種通信應(yīng)用系統(tǒng),,實(shí)現(xiàn)DSP與FPGA之間數(shù)據(jù)的穩(wěn)定快速傳輸,本系統(tǒng)所設(shè)計(jì)的通信系統(tǒng)架構(gòu)如圖5所示,。
圖5描述了一種基于EMIF16接口模塊的DSP與FPGA通信系統(tǒng)應(yīng)用框圖,。FPGA端提供多個(gè)8 bit寬的FIFO供DSP進(jìn)行讀寫,DSP端除了使用EMIF模塊外,,同時(shí)調(diào)用了CPU中斷系統(tǒng)資源配合消息傳輸,。FPGA將消息寫入FIFO后發(fā)送相應(yīng)控制信號(hào)觸發(fā)DSP中斷,DSP收到讀消息中斷后啟動(dòng)EMIF接口讀取消息,;DSP端發(fā)送消息時(shí)可直接將數(shù)據(jù)寫入EMIF模塊對(duì)應(yīng)的寄存器,,EMIF模塊在異步寫周期內(nèi)將數(shù)據(jù)寫入FPGA提供的存儲(chǔ)FIFO中,。此框架中FPGA端的讀/寫存儲(chǔ)區(qū)分別提供多個(gè)FIFO進(jìn)行通信,從而使該系統(tǒng)可進(jìn)行多種類別或者多協(xié)議的消息通信,,提高了系統(tǒng)應(yīng)用的適應(yīng)性,;在DSP數(shù)據(jù)接收端使用了緩存機(jī)制設(shè)計(jì),EMIF接口模塊接收的每一條消息首先存入緩存區(qū),,然后再由CPU對(duì)緩存區(qū)消息逐條進(jìn)行校驗(yàn)和處理,,這樣操作不僅提高了EMIF模塊接收消息的效率,而且將接收消息和處理消息兩個(gè)CPU主要線程進(jìn)行了分離,,防止消息在未處理時(shí)被覆蓋或者篡改,,保證了緩沖區(qū)數(shù)據(jù)的完整性和正確性,從而提高信號(hào)處理的穩(wěn)定與可靠性,。
3通信系統(tǒng)軟件設(shè)計(jì)與實(shí)現(xiàn)
3.1通信接口軟件設(shè)計(jì)
根據(jù)EMIF16模塊接口特性,,系統(tǒng)可擴(kuò)展訪問(wèn)地址空間最大為256 MB, 存儲(chǔ)地址范圍為0x70000000~0x7FFFFFFF,平均分為4個(gè)CE地址空間,,每個(gè)CE空間支持外接NAND,、NOR及SRAM存儲(chǔ)器,每個(gè)CE空間都有單獨(dú)的異步配置寄存器(ACR)對(duì)其使用配置,,EMIF16模塊寄存器地址空間為0x20C00000~0x20C00FF,,共256 B,該地址空間內(nèi)包括EMIF16模塊的版本及狀態(tài)寄存器(RCSR),、異步等待周期寄存器 (AWCCR),、4個(gè)異步配置寄存器(ACR)及EMIF模塊中斷相關(guān)寄存器(IRR、IMR,、IMSR,、IMCR)等。要實(shí)現(xiàn)本系統(tǒng)所設(shè)計(jì)的通信接口功能,,首先需對(duì)DSP的EMIF16模塊進(jìn)行驅(qū)動(dòng)初始化編程,,即對(duì)上述相應(yīng)寄存器進(jìn)行編程配置,寄存器編程配置時(shí)可根據(jù)需要進(jìn)行重點(diǎn)位域編碼,,與系統(tǒng)功能實(shí)現(xiàn)無(wú)關(guān)的寄存器位域可選擇默認(rèn)值配置,。驅(qū)動(dòng)配置完成后方可進(jìn)行上層應(yīng)用系統(tǒng)的設(shè)計(jì)及實(shí)現(xiàn),本系統(tǒng)所設(shè)計(jì)的基于EMIF16接口的DSP與FPGA異步通信系統(tǒng)軟件流程如圖6所示,。
如圖6所示,,基于EMIF的接口通信程序完成系統(tǒng)初始化后即可與外界進(jìn)行通信,本文所設(shè)計(jì)的通信系統(tǒng)主要完成消息的接收與發(fā)送功能:接收端采用被動(dòng)接收模式,,需依靠系統(tǒng)告知EMIF模塊進(jìn)行數(shù)據(jù)接收,,本系統(tǒng)設(shè)計(jì)中使用中斷輔助實(shí)現(xiàn)數(shù)據(jù)接收功能,系統(tǒng)中使用GPIO9管腳上升沿信號(hào)作為中斷事件觸發(fā)CPU中斷,,當(dāng)FPGA端將數(shù)據(jù)準(zhǔn)備好后即對(duì)GPIO9管腳進(jìn)行拉高電平操作,,DSP端收到GPIO9上升沿信號(hào)后觸發(fā)INT9,,CPU收到中斷信號(hào)后執(zhí)行中斷服務(wù)函數(shù),在中斷服務(wù)函數(shù)中對(duì)消息接收控制寄存器(RCR)進(jìn)行判斷并執(zhí)行相應(yīng)消息接收操作,;發(fā)送端采用主動(dòng)發(fā)送模式,,由CPU直接操作EMIF模塊進(jìn)行數(shù)據(jù)發(fā)送,為了保證DSP與FPGA發(fā)送消息的穩(wěn)定性,,每次DSP發(fā)送消息時(shí)需查詢FPGA端對(duì)應(yīng)準(zhǔn)備狀態(tài),,當(dāng)消息發(fā)送控制寄存器(TCR)對(duì)應(yīng)狀態(tài)準(zhǔn)備完成時(shí)才能進(jìn)行消息發(fā)送。
3.2通信控制寄存器設(shè)計(jì)
消息接收控制寄存器(RCR)和發(fā)送控制寄存器(TCR)是通信系統(tǒng)中為保障系統(tǒng)穩(wěn)定執(zhí)行而設(shè)計(jì)的輔助寄存器,,并非芯片內(nèi)部固有寄存器,,輔助寄存器RCR和TCR由FPGA芯片設(shè)計(jì)提供,具體位域所表示的信息根據(jù)系統(tǒng)需求制定,。DSP芯片端在進(jìn)行讀寫操作時(shí)對(duì)指定地址進(jìn)行訪問(wèn)即可獲得寄存器當(dāng)前有效信息,,通過(guò)輔助寄存器的實(shí)時(shí)值分析可以判定系統(tǒng)當(dāng)前通信過(guò)程中消息類型及系統(tǒng)工作狀態(tài)等信息,從而保證通信過(guò)程的可控性與穩(wěn)定性,。
接收消息控制寄存器如表1所示,,當(dāng)某類消息已經(jīng)準(zhǔn)備好接收時(shí),其對(duì)應(yīng)的標(biāo)志位RxTypeX會(huì)被FPGA置1,,反之則置0,;發(fā)送端采用主動(dòng)發(fā)送模式,,由CPU直接操作EMIF模塊進(jìn)行數(shù)據(jù)發(fā)送,,為了保證DSP與FPGA發(fā)送消息的穩(wěn)定性,每次DSP發(fā)送消息時(shí)需查詢FPGA端對(duì)應(yīng)準(zhǔn)備狀態(tài),,當(dāng)發(fā)送控制寄存器(TCR)對(duì)應(yīng)狀態(tài)準(zhǔn)備完成時(shí)才能進(jìn)行消息發(fā)送,,發(fā)送控制寄存器如表2所示,當(dāng)某類消息準(zhǔn)備好發(fā)送時(shí),,其對(duì)應(yīng)的標(biāo)志位TxRdyX會(huì)被FPGA置1,,反之則置0。
RC:接收消息總標(biāo)志,。
RxTypeA:1:消息類型為A;0:無(wú)該類型消息,。
RxTypeB:1:消息類型為B;0:無(wú)該類型消息。
RxTypeC:1:消息類型為C;0:無(wú)該類型消息,。
RxTypeD:1:消息類型為D;0:無(wú)該類型消息,。
RSV:保留。
TC:發(fā)送消息準(zhǔn)備狀態(tài)總標(biāo)志,。
TxRdyA:1:A類消息準(zhǔn)備好,;0:未準(zhǔn)備好。
TxRdyB:1:B類消息準(zhǔn)備好,;0:未準(zhǔn)備好,。
TxRdyC:1:C類消息準(zhǔn)備好,;0:未準(zhǔn)備好。
TxRdyD:1:D類消息準(zhǔn)備好,;0:未準(zhǔn)備好,。
RSV:保留。
3.3接口測(cè)試與驗(yàn)證
針對(duì)上文所設(shè)計(jì)的接口和系統(tǒng)流程進(jìn)行了測(cè)試與驗(yàn)證,,選取CE0空間地址設(shè)置多個(gè)8 bit寬的FIFO,,其中FIFO0地址為0x71000000,用于接收DSP端發(fā)送來(lái)的數(shù)據(jù),,數(shù)據(jù)流向?yàn)閺腄SP到FPGA,,測(cè)試數(shù)據(jù)采用升序;FIFO1地址為0x71010000,,用于向DSP端發(fā)送數(shù)據(jù),,數(shù)據(jù)流向?yàn)閺腇PGA到DSP,測(cè)試數(shù)據(jù)采用降序,。測(cè)試結(jié)果如圖7,、圖8所示。
實(shí)驗(yàn)結(jié)果表明,,本文設(shè)計(jì)的DSP與FPGA之間的通信系統(tǒng)能夠按照設(shè)計(jì)要求工作,,傳輸數(shù)據(jù)長(zhǎng)度及地址可以根據(jù)需要進(jìn)行多種配置,經(jīng)過(guò)多次測(cè)試,,數(shù)據(jù)讀寫正確,,接口工作穩(wěn)定,滿足系統(tǒng)設(shè)計(jì)需求,。
4結(jié)束語(yǔ)
本系統(tǒng)實(shí)現(xiàn)了基于EMIF16模塊的DSP與FPGA異步通信接口,,系統(tǒng)設(shè)計(jì)簡(jiǎn)單、性能穩(wěn)定,,實(shí)現(xiàn)了DSP與FPGA之間的雙向高速通信,,擴(kuò)展了多核DSP處理芯片與外圖界的通信方式。采用DSP與FPGA聯(lián)合設(shè)計(jì)的方式,,可實(shí)現(xiàn)多種格式的高速數(shù)據(jù)傳輸,,同時(shí)軟件架構(gòu)設(shè)計(jì)簡(jiǎn)潔穩(wěn)定,有利于工程實(shí)現(xiàn)及應(yīng)用,。
參考文獻(xiàn)
?。?] Texas Instruments. TMS320C6678 multicore fixed and floatingpoint digital signal processor[S].2014.
[2] 卞紅雨.TMS320C6000系列DSP的CPU與外設(shè)[M].北京:清華大學(xué)出版社,2007.
?。?] Texas Instruments.External Memory Interface (EMIF16) for KeyStone devices user guide[S].2011.
?。?] Texas Instruments.KeyStone architecture external memory interface (EMIF16) user guide[S].2011.