基于EMIF接口的DSP控制系統設計

一個EMIF讀操作分為建立時間、觸發時間和保持時間三部分。在建立時間開始時,EM_CS[2]片選信號拉低,同時地址線EM_A 與EM_BA 給出所讀取數據的地址。觸發時間開始時,EM_OE信號拉低,同時FPGA在EM_D信號線上傳輸數據,DSP將在觸發時間的最后一個時鐘處對數據采樣。保持時間中EM_OE 信號將拉高,并在保持時間結束后,EM_CS[2]信號拉高。在整個周期中EM_WE_DQM、EM_WE、EM_RW信號始終為高電平。
2.2.2 異步寫操作
DSP發出對FPGA的寫申請時,就會進行異步寫操作。當寫操作不能在外部器件的一個訪問周期內完成時,EMIF就會進行多個周期的操作,直到完成整個申請。

類似于讀操作,EMIF 寫操作分為建立時間、觸發時間和保持時間三部分。在建立時間開始時,EM_CS[2]片選信號拉低,EM_RW信號拉低,同時地址線EM_A與EM_BA給出所讀取數據的地址,數據線EM_D給出需要寫入FPGA的數據。觸發時間開始時,EM_WE信號拉低,EM_WE_DMQ信號給出字節使能信號。保持時間開始時EM_WE_DMQ信號與EM_WE信號拉高,并在保持時間結束后,EM_CS[2]信號與EM_RW信號拉高。在整個寫操作周期中EM_OE信號始終為高電平。
DSP 通過配置EMIF 接口的寄存器來實現上述時序,FPGA可采用IP 核來實現EMIF協議,不同的FPGA芯片要采用不同的地址。
3 系統BOOT 方法
TMS320C6722 型DSP的內部沒有可寫的ROM,DSP的程序必須存放在外部器件中,DSP 芯片上電后必須首先從外部芯片下載程序。本款DSP可以通過SPI 總線啟動、通過I2C總線啟動和通過EMIF接口啟動。這幾種Boot 方式和對應的引腳配置如表1 所示,在本系統中,EMIF接口除了實現通常的數據交換,還兼任帶動DSP啟動的功能。

系統上電后,DSP 的RESET 引腳要通過下拉電阻拉低,使DSP 處于復位態。FPGA 芯片EP2C8F256I8 上電后從FPGA 配置芯片EPCS4 中下載程序啟動。FPGA啟動成功后將DSP芯片的SPI0SOMI 引腳與SPI0CLK 引腳拉低,將SPI0SIMO 引腳拉高,然后再將RESET引腳拉高。這樣配置是為了使DSP退出復位態時能根據上述3 個引腳的電平獲知DSP 芯片將通過EMIF接口啟動。此后,DSP芯片將從EMIF 接口讀取1KB數據,并將這1KB數據存放于DSP的RAM中,再執行這1KB的程序。
上述過程稱為DSP的第一次啟動過程。這1KB的程序是由匯編語言編寫并通過CCStudio 軟件編譯成機器語言,存放于FPGA中(通過mif 文件編譯進FPGA的程序)。該1KB程序的功能是再次調用EMIF 接口,操作FPGA,使得FPGA 通過IP 核從FLASH芯片中將其余的程序(本系統的程序約為32K)拷入DSP的RAM 中并執行這些新拷入的程序。這是DSP 的第二次啟動。第一次啟動是硬件啟動,是TMS320C6722 型DSP已經設定好的啟動方式,第二次啟動是軟件啟動,所執行的啟動程序由用戶編寫。
綜上,本文介紹了DSP芯片通過EMIF接口連接FPGA的硬件電路與時序,根據本文介紹的方法,DSP芯片通過FPGA能控制大量外部芯片工作,僅使用DSP的EMIF接口就能實現DSP啟動和控制復雜系統工作的功能,大大擴展了DSP芯片的靈活性,使其強大的運算功能得以更好的發揮。
陀螺儀相關文章:陀螺儀原理














評論