用FIFO實(shí)現(xiàn)高速模數(shù)轉(zhuǎn)換器與TMS320C6000系列DSP的接口
在數(shù)字信號(hào)處理系統(tǒng)中,大多數(shù)高速模數(shù)轉(zhuǎn)換器都不能直接與DSP相連接。FIFO恰好架起了DSP與ADC之間的一座橋梁,因?yàn)樗芫彺娲罅康臄?shù)據(jù)塊。同時(shí)由于DSP訪問外部存儲(chǔ)器器件必須通過外部存儲(chǔ)器接口External Memory InterfaceEMIF 而C6000系列DSP的EMIF具有很強(qiáng)的接口能力。它不僅具有很高的數(shù)據(jù)吞吐率(最高1200MB/s),而且可以與目前幾乎所有類型的存儲(chǔ)器直接接口。本文介紹了用FIFO 在DSPs和模擬前端(AFEs)之間進(jìn)行數(shù)據(jù)緩存的實(shí)現(xiàn)方法。
1 AD9042高速模數(shù)轉(zhuǎn)換器
1 AD9042高速模數(shù)轉(zhuǎn)換器
AD9042是一款低功率12bit的41MSPS模數(shù)轉(zhuǎn)換器。它的快速、高分辨率特點(diǎn)使其非常適合于視頻、多媒體、圖像處理、高速數(shù)據(jù)采集和通信等很多應(yīng)用領(lǐng)域。圖1為AD9042的采樣時(shí)序圖。由該圖可以看出:AD9042不能與TMS320C6205直接相連。
因?yàn)椋粒模每偸窃谶M(jìn)行數(shù)據(jù)輸出,因此輸出無高阻狀態(tài),而如果模數(shù)轉(zhuǎn)換器直接與DSP總線相連接,DSP就不能使用其它外圍設(shè)備了,而且DSP必須在每個(gè)轉(zhuǎn)換時(shí)鐘周期讀一次采樣數(shù)據(jù),這樣,即使使用DMA通道傳輸也是不可能實(shí)現(xiàn)的,因?yàn)槠渌鈬O(shè)備也要使用總線。
雖然采樣鎖存可以解決數(shù)據(jù)總是輸出的問題,但是,如果模數(shù)轉(zhuǎn)換器運(yùn)行在41MSPS,那么,DSP每24ns就要讀一次新采樣。這將占去DSP中的大部分I/O帶寬,此時(shí)如果DSP處于busy態(tài),那么在24ns內(nèi)就不能讀取下一次采樣,這樣將使數(shù)據(jù)丟失。
一個(gè)比較好的解決辦法是使用FIFO作為輸入緩沖,由ADC把采樣轉(zhuǎn)換的值同步寫進(jìn)FIFO。每寫入一塊數(shù)據(jù)便向DSP發(fā)出一信號(hào),以提醒DSP從FIFO中讀取數(shù)據(jù)塊。這樣比單次讀的效率要快很多。
2 CY7C4265-10AC同步FIFO
一個(gè)比較好的解決辦法是使用FIFO作為輸入緩沖,由ADC把采樣轉(zhuǎn)換的值同步寫進(jìn)FIFO。每寫入一塊數(shù)據(jù)便向DSP發(fā)出一信號(hào),以提醒DSP從FIFO中讀取數(shù)據(jù)塊。這樣比單次讀的效率要快很多。
2 CY7C4265-10AC同步FIFO
CY7C4265是高速低功耗CMOS時(shí)鐘FIFO存儲(chǔ)器。它是一款同步FIFO,意思是它的讀寫端口使用同步接口,每一個(gè)端口的時(shí)鐘都是互相獨(dú)立的,這些時(shí)鐘可以同步,也可以異步。這使得FIFO的讀寫口能以不同的速度運(yùn)行。傳統(tǒng)的FIFO在進(jìn)行數(shù)據(jù)傳輸時(shí)通常要求額外的控制邏輯,而新一代CY7C4265則可實(shí)現(xiàn)FIFO與DSP之間的無縫連接。3 FIFO與EMIF的連接C6000系列DSP的EMIF具有很強(qiáng)的接口能力,它可以連接不同類型的存儲(chǔ)器,如異步SRAMSDRAM、SBSRAM等。
3.1 EMIF與FIFO的接口
CY7C4265 FIFOs提供有與DSP的無縫連接,這樣的無縫連接要求FIFO作為一個(gè)輸出緩沖器。而當(dāng)FIFO作為輸入緩沖器時(shí),FIFO是EMIF的唯一異步設(shè)備。本設(shè)計(jì)恰好讓FIFO作為輸入緩沖器,且就此一個(gè)異步設(shè)備,因而避免了復(fù)雜的接口邏輯。
圖2是EMIF與FIFO接口的具體硬件實(shí)現(xiàn),FI-FO的半滿標(biāo)志HF作為DSP的輸入信號(hào)。HF用于告訴DSP此時(shí)FIFO中的有效數(shù)據(jù)是可以讀取的(而且容量是FIFO總大小的一半),以便DSP產(chǎn)生一個(gè)中斷來讀取FIFO中的數(shù)據(jù)塊。
3.2 DSP讀FIFO時(shí)序
在這個(gè)高速微弱信號(hào)數(shù)據(jù)采集卡的設(shè)計(jì)中,C6205的時(shí)鐘頻率為200MHz,且沒有使用其它外部控制邏輯。圖2中,EMIF異步接口提供的控制信號(hào)可以通過不同的組合(并非都需要)實(shí)現(xiàn)與不同類型器件的無縫接口。EMIF的CExCTL寄存器負(fù)責(zé)設(shè)置異步讀/寫操作的接口時(shí)序,以滿足對(duì)不同速度異步器件的存取要求。
C6000異步接口時(shí)序具有很強(qiáng)的可編程性,每個(gè)讀/寫周期由三個(gè)階段構(gòu)成:建立時(shí)間(Setup)、觸發(fā)時(shí)間(Strobe)、保持時(shí)間(Hold)。其中建立時(shí)間是從存儲(chǔ)器訪問周期開始(片選地址有效)到讀/寫選通有效之前的時(shí)間;觸發(fā)時(shí)間是讀/寫選通信號(hào)從有效到無效之間的時(shí)間;保持時(shí)間則是從讀/寫無效到訪問周期結(jié)束之間時(shí)間。
DSP的ARE信號(hào)作為FIFO的讀時(shí)鐘,FIFO在ARE的上升沿在總線上輸出數(shù)據(jù),DSP和FIFO的獨(dú)立時(shí)序參數(shù)值。
DSP的ARE信號(hào)作為FIFO的讀時(shí)鐘,FIFO在ARE的上升沿在總線上輸出數(shù)據(jù),DSP和FIFO的獨(dú)立時(shí)序參數(shù)值。
根據(jù)DSP的異步讀時(shí)序,為了完成C6205的建立時(shí)間,第一個(gè)數(shù)據(jù)的讀取必須滿足下式:
Setup+Strobe ≥tdCK-AOEVmax+tOEmax+tSUEDV-CKmin
根據(jù)上式,在最差情況下,建立和觸發(fā)時(shí)間必須大于15ns(4ns+7ns+4ns)。當(dāng)DSP的時(shí)鐘頻率為200MHz時(shí),一個(gè)時(shí)鐘周期應(yīng)該是5ns。此時(shí)如果Setup和Strobe的值都取1,則Setup+strobe為10ns,故不能滿足時(shí)序要求,因此Setup和Strobe這兩個(gè)可編程參數(shù)若一個(gè)取1,另外一個(gè)必須大于等于2。而實(shí)際上,Setup和Strobe可以都取1,其原因是C6205不論是連續(xù)存取還是單次存取操作,在存取第一個(gè)數(shù)時(shí),EMIF會(huì)自動(dòng)將最小建立時(shí)間設(shè)置為2。
而對(duì)于以后數(shù)據(jù)的讀取,OE總是有效。現(xiàn)在主要考慮的是FIFO的訪問時(shí)間應(yīng)滿足下式:
Hold+Setup+Strobe ≥tAmax+tSUEDV-CKmin
也就是說,一個(gè)完整的數(shù)據(jù)訪問時(shí)間必須大于12ns(8ns+4ns),即Hold+Setup+Strobe ≥3;要完成C6205的保持時(shí)間,必須滿足下面兩個(gè)公式:
tdCK-AREVmin+tAmin ≥ thCK-EDVmin
Hold ≥thCK-EDVmin-tdCK-AREVmin-tOHZmin
當(dāng)上邊的式子滿足條件時(shí),-0.2+2>0.8。為了得到最小的Hold時(shí)間,此時(shí)Hold可以為0ns,也就是說,Hold可以被編程為0。
最后要滿足的條件是時(shí)鐘的高低時(shí)間。因?yàn)椋疲桑疲系臅r(shí)鐘信號(hào)直接由ARE產(chǎn)生,因此ARE信號(hào)保持低電平的時(shí)間必須大于FIFO的時(shí)鐘周期。即:
Strobe ≥tCLKL min
Hold+Setup ≥tCLKH min
Setup+Strobe+Hold ≥tCLK min
由以上七個(gè)式子可知,在200MHz的鐘頻率下,CExCTL寄存器中Setup/Strobe/Hold的值可以作如下設(shè)置:
由以上七個(gè)式子可知,在200MHz的鐘頻率下,CExCTL寄存器中Setup/Strobe/Hold的值可以作如下設(shè)置:
Setup=1,Strobe=1,Hold=1;
此時(shí),DSP讀?。疲桑疲现袛?shù)據(jù)的速度為66.7MHz。
4 結(jié)論
4 結(jié)論
FIFO在ADC高速模數(shù)轉(zhuǎn)換器與DSP的通訊過程中起到了很好的數(shù)據(jù)緩沖作用,其標(biāo)志位可被用來控制FIFO中數(shù)據(jù)的讀取。如果選用內(nèi)部時(shí)鐘頻率為133MHz的SN74V2×5-7系列FIFO,DSP讀取數(shù)據(jù)的速度可以達(dá)到100MHz。
評(píng)論