|
引言 DSP(數字信號處理器)和FPGA(現場可編程門陣列)一直是數字信號處理的兩個核心處理單元。目前的無線通信、圖像系統、語音系統都是以這兩類芯片為核心,配置必要的外圍電路來組成整個系統。 DSP的主要優點是算法處理能力強,而FPGA的主要優點則是并行處理。隨著電子技術和芯片技術的發展,DSP和FPGA逐漸融合,目前一般的FPGA芯片都提供數字算法處理IP核,可以在FPGA上完成FFT、濾波等傳統意義上屬于DSP的工作。這些核的主要缺點是算法固定,只提供成熟的算法,算法處理的靈活性較低。經過長期的發展,DSP的片內外設逐漸豐富,但一直很難觸及FPGA的并行處理。 TI公司推出的C6727B芯片其片內集成了最新的dMAX(Dual Data Movement Accelerator,雙向數據傳輸加速器)模塊,使得并行數據傳輸成為可能。其實現并行數據傳輸的本質就是相當于在片內集成2個EDMA(En— hanced Direct Memory Access,增強的直接存儲器訪問)模塊,實現數據在無需CPU參與情況下的并行雙路傳輸。本文以HPI和EMIF接口的數據傳輸為例,介紹dMAX的結構、配置及其使用方法。 1 dMAX及其結構 C6727B是在C671x基礎上發展的浮點型DSP,其最高工作頻率達到350 MHz。單個指令周期可以執行6個浮點數據運算,最高達到2 100MFLOPS;片內具有256KB的RAM,片內外設有。EMIF、UHPI、音頻串口、dMAX、定時器以及I2C、SPI接口等。 dMAx模塊是C672x系列DSP所特有的數據傳輸模塊,可以實現內部存儲器、片內外設和外部存儲器兩兩之間的數據傳輸。其內部結構如圖1所示。
從圖中可以看出,dMAX主要由事件和中斷處理模塊、事件編碼器、事件參數表、事件的地址生成硬件等組成。事件模塊分成高優先級和低優先級兩個相互獨立的模塊,各自有獨立的事件入口和事件參數表,和CPU有獨立的接口,使得dMAX可以同時處理兩個不同的事件。當訪問CPU端口時,MAX0的優先級高,MAXl的優先級低。 dMAX可以使用戶定義的數據在內部數據存儲器與外設之間移動,dMAX能夠移動數據到任意能夠尋址的存儲器空間,包括內部存儲器、外設存儲器空間、擴展內存。dMAx能夠同時處理2個數據轉移請求,而且dMAX能夠通過執行先進的一維、二維與三維數據的存儲器傳輸工作,從而使DSP得以專注于信號處理任務,顯著提高系統性能,適合圖像的子幀提取或者語音信號的子信道提取。 為了方便CPU直接控制dMAX,C6727B還有2個專門的寄存器負責CPU與dMAX的通信,分別為DETR與DESR寄存器,CPU通過對這兩個寄存器的讀寫就可以控制dMAX的操作。 2 系統硬件結構 C6727B和其他DSP有一個較大的區別就是,C6727B不再提供專門的外部中斷引腳,而是使用一些GPIO引腳與dMAX配合使用,通過寄存器的設置將GPIO引腳配置成外部中斷引腳。為了實現并行的數據傳輸,需要使用2個外部中斷引腳。為此,使用C6727B的音頻串口的AXR[8]和 AXR[9]作為通用I/O引腳,同時需要將音頻串口的CONFIGMCASP0和CONFIGMCASP1分別配置成Ox0001和0x0002,如圖 2所示。此時音頻串口不能再作為普通的音頻口使用,而是配置成I/0接口。 從圖2可以看出,配置好音頻串口后,一旦AXR[8]和AXR[9]引腳有上升沿到,則McASP0和McASP1激活dMAX的事件26和事件27。這兩個事件分別連接到dMAX的低優先級和高優先級模塊。即使兩個中斷同時發生,dMAX也可以同時響應事件,并處理相應的數據傳輸。
為了實現并行數據傳輸,必須將事件26的參數設置成與EMIF接口通信,同時需要將傳輸數據的源地址,目的地址,數據個數和數據增加方式(不變、加1、減 1等)在初始化時寫入dMAx(Lo)的參數中。這樣,一旦事件26觸發,dMAX(Lo)將自動傳輸數據;數據傳輸結束后,可以根據需要將 dMAX(Lo)配置為向CPU發送內部中斷14。同樣,對于事件27,配置dMAX(Hi)的參數就可以完成對HPI接口的數據傳輸,也可以根據需要將 dMAX(Hi)配置為向CPU發送內部中斷13。 McASP與中斷相關的寄存器配置是實現以上方案的重點,其中斷配置框圖如圖3所示。從圖中可以看出,使用PFUNC寄存器將其配置成通用I/0引腳;PDIR寄存器控制I/O引腳的方向,若是輸出引腳則由POUT引腳輸出高低電平,若是輸入引腳則由PDIN寄存器讀出該引腳的狀態;此外,可以使用 PDCLR和PSET寄存器清除或者設置輸出引腳的狀態。
3 系統軟件設計 系統軟件設計主要包括McASP、dMAX、HPI和EMIF的初始化,以及中斷使能等。系統主程序只需要等待中斷進行相應的處理,主要的數據傳輸工作都是由dMAX按照軟件配置自動完成,不需要CPU參與。系統軟件流程如圖4所示。圖中,虛線部分表示由dMAX獨立完成的工作,實線部分表示由CPU完成的工作。兩者之間通過內部中斷方式實現狀態的交流。
當有2個以上傳輸事件發生,尤其是多個事件都在同一個dMAX優先級完成時,事件仲裁就變得很重要。圖5是多個dMAX事件進行數據傳輸的例子。圖中,事件A為dMAX(Hi)數據傳輸;事件0~2為dMAX(Lo)數據傳輸。在dMAX(Lo)中,設定事件O優先級最高,事件2優先級最低。
事件A和事件0同時發生,將分別觸發dMAX(Hi)和dMAX(Lo)進行數據傳輸。在之后的時鐘周期內,dMAX(Hi)不再有其他事件發生,將穩定、持續地進行事件A的數據傳輸,直到傳輸結束,如圖5中最后一行所示。 對于dMAX(Lo),在傳輸了事件0的一個數據后,事件2發生。雖然事件2的優先級低于事件O,但dMAX(Lo)仍然會響應事件2,并且會傳輸一個事件2的數據,如圖中第5行的E2/QO。此時,dMAX(Lo)就存在2個激活的事件——事件O和事件2。之后的數據傳輸dMAX(Lo)進行優先級判斷,將優先傳輸事件O的數據,而將事件2掛起,直到事件O結束后才開始處理事件2的數據傳輸。 4 總結 dMAX使用2路獨立的傳輸通道從而實現并行數據傳輸,其本質是采用了獨立的物理通道,這與FPGA實現并行處理基本一致。本文介紹了基于C6727B的 dMAX的基本結構以及軟硬件設計,使用事件優先級控制區分多個事件的數據傳輸。由于可以并行傳輸數據,使得DSP與外部設備的通信更加方便和快捷,而且不需要CPU的參與,減輕了CPU的負擔,使CPU可以專注于復雜的算法處理。 參考文獻 1. 汪安民.張松燦.常春藤 TMS320C6000 DSP實用技術與開發案例 2008 2. Texas Instruments Inc TMS320C672x DSP Dual Data Movement Accelerator (dMAX) Reference Guide 2007 3. Texas Instruments Inc TMS320C672x DSP Multichannel Audio Serial Port (McASP) Reference Guide 2008 作者:國營第713廠博士后工作站 陳向明 汪安民 來源:單片機與嵌入式系統應用 2009 (2) |