用FIFO實(shí)現高速模數轉換器與TMS320C6000系列DSP的接口
在數字信號處理系統中,大多數高速模數轉換器都不能直接與DSP相連接。FIFO恰好架起了DSP與ADC之間的一座橋梁,因為它能緩存大量的數據塊。同時(shí)由于DSP訪(fǎng)問(wèn)外部存儲器器件必須通過(guò)外部存儲器接口External Memory InterfaceEMIF 而C6000系列DSP的EMIF具有很強的接口能力。它不僅具有很高的數據吞吐率(最高1200MB/s),而且可以與目前幾乎所有類(lèi)型的存儲器直接接口。本文介紹了用FIFO 在DSPs和模擬前端(AFEs)之間進(jìn)行數據緩存的實(shí)現方法。
1 AD9042高速模數轉換器
1 AD9042高速模數轉換器
AD9042是一款低功率12bit的41MSPS模數轉換器。它的快速、高分辨率特點(diǎn)使其非常適合于視頻、多媒體、圖像處理、高速數據采集和通信等很多應用領(lǐng)域。圖1為AD9042的采樣時(shí)序圖。由該圖可以看出:AD9042不能與TMS320C6205直接相連。
因為ADC總是在進(jìn)行數據輸出,因此輸出無(wú)高阻狀態(tài),而如果模數轉換器直接與DSP總線(xiàn)相連接,DSP就不能使用其它外圍設備了,而且DSP必須在每個(gè)轉換時(shí)鐘周期讀一次采樣數據,這樣,即使使用DMA通道傳輸也是不可能實(shí)現的,因為其它外圍設備也要使用總線(xiàn)。
雖然采樣鎖存可以解決數據總是輸出的問(wèn)題,但是,如果模數轉換器運行在41MSPS,那么,DSP每24ns就要讀一次新采樣。這將占去DSP中的大部分I/O帶寬,此時(shí)如果DSP處于busy態(tài),那么在24ns內就不能讀取下一次采樣,這樣將使數據丟失。

一個(gè)比較好的解決辦法是使用FIFO作為輸入緩沖,由ADC把采樣轉換的值同步寫(xiě)進(jìn)FIFO。每寫(xiě)入一塊數據便向DSP發(fā)出一信號,以提醒DSP從FIFO中讀取數據塊。這樣比單次讀的效率要快很多。
2 CY7C4265-10AC同步FIFO

一個(gè)比較好的解決辦法是使用FIFO作為輸入緩沖,由ADC把采樣轉換的值同步寫(xiě)進(jìn)FIFO。每寫(xiě)入一塊數據便向DSP發(fā)出一信號,以提醒DSP從FIFO中讀取數據塊。這樣比單次讀的效率要快很多。
2 CY7C4265-10AC同步FIFO
CY7C4265是高速低功耗CMOS時(shí)鐘FIFO存儲器。它是一款同步FIFO,意思是它的讀寫(xiě)端口使用同步接口,每一個(gè)端口的時(shí)鐘都是互相獨立的,這些時(shí)鐘可以同步,也可以異步。這使得FIFO的讀寫(xiě)口能以不同的速度運行。傳統的FIFO在進(jìn)行數據傳輸時(shí)通常要求額外的控制邏輯,而新一代CY7C4265則可實(shí)現FIFO與DSP之間的無(wú)縫連接。3 FIFO與EMIF的連接C6000系列DSP的EMIF具有很強的接口能力,它可以連接不同類(lèi)型的存儲器,如異步SRAMSDRAM、SBSRAM等。
3.1 EMIF與FIFO的接口
CY7C4265 FIFOs提供有與DSP的無(wú)縫連接,這樣的無(wú)縫連接要求FIFO作為一個(gè)輸出緩沖器。而當FIFO作為輸入緩沖器時(shí),FIFO是EMIF的唯一異步設備。本設計恰好讓?zhuān)疲桑疲献鳛檩斎刖彌_器,且就此一個(gè)異步設備,因而避免了復雜的接口邏輯。
圖2是EMIF與FIFO接口的具體硬件實(shí)現,FI-FO的半滿(mǎn)標志HF作為DSP的輸入信號。HF用于告訴DSP此時(shí)FIFO中的有效數據是可以讀取的(而且容量是FIFO總大小的一半),以便DSP產(chǎn)生一個(gè)中斷來(lái)讀?。疲桑疲现械臄祿K。
3.2 DSP讀FIFO時(shí)序
在這個(gè)高速微弱信號數據采集卡的設計中,C6205的時(shí)鐘頻率為200MHz,且沒(méi)有使用其它外部控制邏輯。圖2中,EMIF異步接口提供的控制信號可以通過(guò)不同的組合(并非都需要)實(shí)現與不同類(lèi)型器件的無(wú)縫接口。EMIF的CExCTL寄存器負責設置異步讀/寫(xiě)操作的接口時(shí)序,以滿(mǎn)足對不同速度異步器件的存取要求。
C6000異步接口時(shí)序具有很強的可編程性,每個(gè)讀/寫(xiě)周期由三個(gè)階段構成:建立時(shí)間(Setup)、觸發(fā)時(shí)間(Strobe)、保持時(shí)間(Hold)。其中建立時(shí)間是從存儲器訪(fǎng)問(wèn)周期開(kāi)始(片選地址有效)到讀/寫(xiě)選通有效之前的時(shí)間;觸發(fā)時(shí)間是讀/寫(xiě)選通信號從有效到無(wú)效之間的時(shí)間;保持時(shí)間則是從讀/寫(xiě)無(wú)效到訪(fǎng)問(wèn)周期結束之間時(shí)間。

DSP的ARE信號作為FIFO的讀時(shí)鐘,FIFO在ARE的上升沿在總線(xiàn)上輸出數據,DSP和FIFO的獨立時(shí)序參數值。

DSP的ARE信號作為FIFO的讀時(shí)鐘,FIFO在ARE的上升沿在總線(xiàn)上輸出數據,DSP和FIFO的獨立時(shí)序參數值。
根據DSP的異步讀時(shí)序,為了完成C6205的建立時(shí)間,第一個(gè)數據的讀取必須滿(mǎn)足下式:
Setup+Strobe ≥tdCK-AOEVmax+tOEmax+tSUEDV-CKmin
根據上式,在最差情況下,建立和觸發(fā)時(shí)間必須大于15ns(4ns+7ns+4ns)。當DSP的時(shí)鐘頻率為200MHz時(shí),一個(gè)時(shí)鐘周期應該是5ns。此時(shí)如果Setup和Strobe的值都?。?,則Setup+strobe為10ns,故不能滿(mǎn)足時(shí)序要求,因此Setup和Strobe這兩個(gè)可編程參數若一個(gè)?。?,另外一個(gè)必須大于等于2。而實(shí)際上,Setup和Strobe可以都?。?,其原因是C6205不論是連續存取還是單次存取操作,在存取第一個(gè)數時(shí),EMIF會(huì )自動(dòng)將最小建立時(shí)間設置為2。
而對于以后數據的讀取,OE總是有效?,F在主要考慮的是FIFO的訪(fǎng)問(wèn)時(shí)間應滿(mǎn)足下式:
Hold+Setup+Strobe ≥tAmax+tSUEDV-CKmin
也就是說(shuō),一個(gè)完整的數據訪(fǎng)問(wèn)時(shí)間必須大于12ns(8ns+4ns),即Hold+Setup+Strobe ≥3;要完成C6205的保持時(shí)間,必須滿(mǎn)足下面兩個(gè)公式:
tdCK-AREVmin+tAmin ≥ thCK-EDVmin
Hold ≥thCK-EDVmin-tdCK-AREVmin-tOHZmin
當上邊的式子滿(mǎn)足條件時(shí),-0.2+2>0.8。為了得到最小的Hold時(shí)間,此時(shí)Hold可以為0ns,也就是說(shuō),Hold可以被編程為0。
最后要滿(mǎn)足的條件是時(shí)鐘的高低時(shí)間。因為FIFO的時(shí)鐘信號直接由ARE產(chǎn)生,因此ARE信號保持低電平的時(shí)間必須大于FIFO的時(shí)鐘周期。即:
Strobe ≥tCLKL min
Hold+Setup ≥tCLKH min
Setup+Strobe+Hold ≥tCLK min
由以上七個(gè)式子可知,在200MHz的鐘頻率下,CExCTL寄存器中Setup/Strobe/Hold的值可以作如下設置:
由以上七個(gè)式子可知,在200MHz的鐘頻率下,CExCTL寄存器中Setup/Strobe/Hold的值可以作如下設置:
Setup=1,Strobe=1,Hold=1;
此時(shí),DSP讀?。疲桑疲现袛祿乃俣葹椋叮叮罚停龋?。
4 結論
4 結論
FIFO在ADC高速模數轉換器與DSP的通訊過(guò)程中起到了很好的數據緩沖作用,其標志位可被用來(lái)控制FIFO中數據的讀取。如果選用內部時(shí)鐘頻率為133MHz的SN74V2×5-7系列FIFO,DSP讀取數據的速度可以達到100MHz。
評論