《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 嵌入式技術(shù) > 設(shè)計(jì)應(yīng)用 > 基于高速外設(shè)模塊的多核DSP與FPGA通信系統(tǒng)設(shè)計(jì)
基于高速外設(shè)模塊的多核DSP與FPGA通信系統(tǒng)設(shè)計(jì)
2017年微型機(jī)與應(yīng)用第7期
陳術(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 異步接口
Abstract:
Key words :

  陳術(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)介

001.jpg

  圖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可見,,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],。

002.jpg

  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所示。

  

003.jpg

004.jpg

  圖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所示的異步 8bit 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所示,。

 

005.jpg

  圖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所示,。

006.jpg

  如圖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)定性。

009.jpg

  接收消息控制寄存器如表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:保留。

010.jpg

  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所示,。

  

007.jpg

  實(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ì)需求,。

008.jpg

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 floatingpoint 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.


此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載,。