基于DSP-dMAX的嵌入式FIFO 數據傳輸系統設計
嵌入式設備由于具有硬件可在線(xiàn)配置,實(shí)現靈活等特點(diǎn),使得其應用越來(lái)越廣泛。尤其在基于FPGA的硬件系統中應用較多,目前在許多產(chǎn)品中實(shí)現了嵌入式網(wǎng)口、嵌入式PCI/PCI-E、嵌入式USB等各種模塊。但在DSP中實(shí)現嵌入式設備還比較少,一般DSP都直接集成這些設備模塊,用戶(hù)選擇不同型號的DSP芯片以滿(mǎn)足產(chǎn)品應用要求。但對于一些較為特殊的嵌入式設備,DSP也可以實(shí)現該功能。
TI公司的DSP芯片C6727B,由于其片內集成dMAX模塊,使得實(shí)現嵌入式FIFO成為可能。其實(shí)現嵌入式FIFO的本質(zhì)就是將DSP的片內一段RAM空間設置成FIFO空間,FIFO和外部設備的數據交換由EMIF接口完成。該FIFO的數據讀寫(xiě)不需要DSP的CPU參與,從而提高整個(gè)系統性能,實(shí)現數據交換和數據處理的同時(shí)進(jìn)行。本文以dMAX和EMIF接口的數據傳輸為例,介紹嵌入式FIFO的設計、配置及其使用。
dMAX及其結構
dMAX(Dual Data Movement Accelerator,雙向數據傳輸加速器)是TI公司的DSP芯片C6727B特有的一種片內設備。應用dMAX和EMIF(External Memory Interface,外部存儲器接口)可以實(shí)現片內RAM、片內和片外設備以及兩個(gè)片外設備之間的數據傳輸。dMAX模塊的內部結構如圖1所示。
圖1 dMAX內部結構圖
從圖中可以看出,dMAX主要由事件和中斷處理模塊、事件編碼器、傳輸事件模塊等組成。事件模塊分成高優(yōu)先級和低優(yōu)先級兩個(gè)相互獨立的模塊,各自有獨立的事件入口和事件參數表,和CPU有獨立的接口。使得dMAX可以同時(shí)處理兩個(gè)不同的事件。當訪(fǎng)問(wèn)CPU端口時(shí),MAX0的優(yōu)先級高,MAX1的優(yōu)先級低。dMAX能夠通過(guò)執行先進(jìn)的一維、二維與三維數據的存儲器傳輸工作,從而使DSP得以專(zhuān)注于信號處理任務(wù),顯著(zhù)提高系統性能。適合圖像的子幀提取或者語(yǔ)音信號的子信道提取。
DSP內部的數據交換中心在dMAX的控制下,可以實(shí)現片內RAM、EMIF以及HPI接口之間的數據交換。本文介紹在dMAX控制下,實(shí)現片內RAM和EMIF接口之間的數據交換。如果DSP采用普通的異步接口方式,數據傳輸需要建立、選通和保持3個(gè)階段,最少需要5個(gè)EMIF時(shí)鐘(建立和保持各1個(gè)時(shí)鐘,選通3個(gè)時(shí)鐘)。為了保證通信的可靠性,一般采用10個(gè)EMIF時(shí)鐘(建立3個(gè)時(shí)鐘,保持2個(gè)時(shí)鐘,選通5個(gè)時(shí)鐘)。而EMIF時(shí)鐘最快為133MHz;這樣,采用異步接口的通信速率一般為13.3M×32b/s(采用32位數據總線(xiàn)寬度)。此外,異步接口數據傳輸必須在CPU的參與下,使用指令實(shí)現數據搬移。將占用大量的CPU開(kāi)銷(xiāo),在很多高速的數據采集和處理中,將降低系統的整體性能。為此,采用dMAX實(shí)現嵌入式FIFO數據傳輸克服異步傳輸的缺點(diǎn),其傳輸采用突發(fā)讀寫(xiě)方式進(jìn)行,可以連續突發(fā)讀寫(xiě)8個(gè)數據,一共只需要20個(gè)時(shí)鐘,通信速率提高為53.2M×32b/s,提高4倍讀寫(xiě)速率。還可以采用和DMA后臺運行,這樣將大大降低整個(gè)系統數據讀寫(xiě)的開(kāi)銷(xiāo),從而可以實(shí)現更加復雜和可靠的算法處理。
嵌入式FIFO設計
嵌入式FIFO的設計主要就是控制FIFO的7個(gè)參數。這7個(gè)參數分別為基地址、空間大小、空標志、滿(mǎn)標志、錯誤標志、讀指針和寫(xiě)指針。它們之間的關(guān)系如圖2所示。
圖2 FIFO結構示意圖
評論