如何基于EMIF接口的DSP控制系統(tǒng)設計?
摘要:提出一種DSP 通過EMIF 接口控制復雜系統(tǒng)的方案。通過將DSP 芯片連接多片FPGA,并利用FPGA 與各種外部芯片連接,使得DSP 通過EMIF 接口就能控制各種芯片,實現復雜系統(tǒng)的控制。這樣節(jié)省DSP 的引腳資源,使DSP 的運算功能得以更充分的發(fā)揮。
本文引用地址:http://m.butianyuan.cn/article/201808/385890.htm1 引言
隨著信息技術的發(fā)展,數字信號處理技術成為數字化社會最重要的技術之一。由于數字信號處理器(DSP)速度快,穩(wěn)定性高,功耗小,近些年來在通信、圖像處理、自動控制等領域中得到了廣泛的應用。其中,美國德州儀器公司(TI)的TMS320 系列DSP 占據了世界DSP 市場的主要份額,TI 也因此成為了世界上最大的DSP 制造商。本系統(tǒng)采用了TMS320C6722 浮點型DSP芯片。
EMIF接口(External Memory Interface)是TMS320 系列DSP上具有的一種高速接口,其設計初衷是實現DSP 與不同類型的外部擴展存儲器(如 SDRAM,FLASH 等)之間的高速連接。在當前的一些應用中,為了更充分的應用DSP的運算能力,擴展其引腳資源,工程師們常用EMIF接口連接FPGA,再通過FPGA與多種外部設備相連。這樣,FPGA成為了一個中轉站,各種數字芯片的數據都可以通過FPGA傳輸至DSP.對于更加復雜的系統(tǒng),當一塊FPGA 芯片的引腳資源都被用盡時,可以在DSP 的EMIF接口上連接多塊FPGA芯片,再將功能各異的芯片連接至FPGA.這樣,DSP 芯片僅通過EMIF 接口就能實現對復雜系統(tǒng)的控制。
2 基于EMIF 接口的DSP+FPGA 系統(tǒng)實現
2.1 系統(tǒng)架構
圖1 是本人所使用的系統(tǒng),DSP芯片通過EMIF接口連接了2 片FPGA,其中EP2C8F256I8 主要負責DSP核心處理所需數據的交換,連接了FLASH 芯片,SDRAM芯片,A/D 芯片。另一塊FPGA 芯片EP2C8F144I8 負責與外部通信,連接了USB 接口芯片,I2C通信芯片和CAN總線通信芯片。
TMS320C6722 型DSP的EMIF接口設計初衷是與外部擴展存儲器連接,EMIF接口有兩種工作方式:SDRAM工作模式與異步工作模式。SDRAM工作模式是專為 SDRAM設計的同步工作模式,EMIF接口能自動給SDRAM進行刷新;異步工作模式是與SRAM、FLASH等異步器件工作時采用的模式。在本系
圖2 所示是DSP 與一片FPGA 的接口連接圖,DSP 與多片FPGA連接時,接口可以按圖的方式復用,TMS320C6722 型DSP的EMIF 接口有14 根地址線,與不同FPGA進行通信時,要使用不同的地址。
2.2 DSP 與FPGA 通信時序
2.2.1 異步讀操作
DSP發(fā)出對FPGA的讀申請時,就會進行異步讀操作。當讀操作不能在外部器件的一個訪問周期內完成時,EMIF就會進行多個周期的操作,直到完成整個申請。
一個EMIF讀操作分為建立時間、觸發(fā)時間和保持時間三部分。在建立時間開始時,EM_CS[2]片選信號拉低,同時地址線EM_A 與EM_BA 給出所讀取數據的地址。觸發(fā)時間開始時,EM_OE信號拉低,同時FPGA在EM_D信號線上傳輸數據,DSP將在觸發(fā)時間的最后一個時鐘處對數據采樣。保持時間中EM_OE 信號將拉高,并在保持時間結束后,EM_CS[2]信號拉高。在整個周期中EM_WE_DQM、EM_WE、EM_RW信號始終為高電平。
2.2.2 異步寫操作
DSP發(fā)出對FPGA的寫申請時,就會進行異步寫操作。當寫操作不能在外部器件的一個訪問周期內完成時,EMIF就會進行多個周期的操作,直到完成整個申請。
類似于讀操作,EMIF 寫操作分為建立時間、觸發(fā)時間和保持時間三部分。在建立時間開始時,EM_CS[2]片選信號拉低,EM_RW信號拉低,同時地址線EM_A與EM_BA 給出所讀取數據的地址,數據線EM_D 給出需要寫入FPGA的數據。觸發(fā)時間開始時,EM_WE信號拉低,EM_WE_DMQ信號給出字節(jié)使能信號。保持時間開始時EM_WE_DMQ信號與 EM_WE信號拉高,并在保持時間結束后,EM_CS[2]信號與EM_RW信號拉高。在整個寫操作周期中EM_OE信號始終為高電平。
DSP 通過配置EMIF 接口的寄存器來實現上述時序,FPGA可采用IP 核來實現EMIF協(xié)議,不同的FPGA芯片要采用不同的地址。
3 系統(tǒng)BOOT 方法
TMS320C6722 型DSP的內部沒有可寫的ROM,DSP的程序必須存放在外部器件中,DSP 芯片上電后必須首先從外部芯片下載程序。本款DSP可以通過SPI 總線啟動、通過I2C總線啟動和通過EMIF接口啟動。這幾種Boot 方式和對應的引腳配置如表1 所示,在本系統(tǒng)中,EMIF接口除了實現通常的數據交換,還兼任帶動DSP啟動的功能。
系統(tǒng)上電后,DSP 的RESET 引腳要通過下拉電阻拉低,使DSP 處于復位態(tài)。FPGA 芯片EP2C8F256I8 上電后從FPGA 配置芯片EPCS4 中下載程序啟動。FPGA啟動成功后將DSP芯片的SPI0SOMI 引腳與SPI0CLK 引腳拉低,將SPI0SIMO 引腳拉高,然后再將RESET引腳拉高。這樣配置是為了使DSP退出復位態(tài)時能根據上述3 個引腳的電平獲知DSP 芯片將通過EMIF接口啟動。此后,DSP芯片將從EMIF 接口讀取1KB數據,并將這1KB數據存放于DSP的RAM中,再執(zhí)行這1KB的程序。
上述過程稱為DSP的第一次啟動過程。這1KB的程序是由匯編語言編寫并通過CCStudio 軟件編譯成機器語言,存放于FPGA中(通過mif 文件編譯進FPGA的程序)。該1KB程序的功能是再次調用EMIF 接口,操作FPGA,使得FPGA 通過IP 核從FLASH芯片中將其余的程序(本系統(tǒng)的程序約為32K)拷入DSP的RAM 中并執(zhí)行這些新拷入的程序。這是DSP 的第二次啟動。第一次啟動是硬件啟動,是TMS320C6722 型DSP已經設定好的啟動方式,第二次啟動是軟件啟動,所執(zhí)行的啟動程序由用戶編寫。
評論