| DSP與海量存儲器的接口技術(shù) 長沙國防科技大學(xué)劉國福張王己張連超 摘要在分析DSP芯片TMS320F206存儲結(jié)構(gòu)的基礎(chǔ)上,解決TMS320F206與海量SRAM、FLASH和DRAM的接口設(shè)計(jì)問題;比較三種海量存儲器在DSP系統(tǒng)中應(yīng)用的優(yōu)缺點(diǎn),并給出一個(gè)應(yīng)用實(shí)例。 關(guān)鍵詞TMS320F206海量存儲器接口 TMS320F206是美國TI(德州儀器)公司繼TMS320C2X和TMS320C5X之后推出的一種低價(jià)格、高性能的16位定點(diǎn)運(yùn)算DSP。其CPU接近于TMS320C25,但時(shí)鐘速率提高、指令集更為豐富和優(yōu)化、片內(nèi)外設(shè)向TMS320C5X靠攏\[1\]。TMS320F206(以下簡稱F206)的性價(jià)比極高,目前已成為高檔單片機(jī)的理想替代品,在通信、語音/語言、軍事、儀器儀表、圖像處理、工業(yè)控制等領(lǐng)域得到了廣泛的應(yīng)用。盡管F206可以滿足許多實(shí)際系統(tǒng)對DSP芯片的性能要求,但由于其地址總線只有16根,故尋址空間僅為64K,因而遠(yuǎn)遠(yuǎn)滿足不了需要大容量數(shù)據(jù)存儲系統(tǒng)的需要。本文就是在分析F206的存儲結(jié)構(gòu)的基礎(chǔ)上,通過借用I/O空間來擴(kuò)展存儲空間,解決了TMS320F206與海量SRAM、FLASH和DRAM的接口設(shè)計(jì)問題。讀者在設(shè)計(jì)實(shí)際DSP應(yīng)用系統(tǒng)過程中,可根據(jù)需要來選擇合適的海量存儲器。 一、 F206的存儲結(jié)構(gòu) 表1給出了F206的存儲結(jié)構(gòu)分布。從表1可以看出,F206擁有獨(dú)立的程序空間、數(shù)據(jù)空間和I/O空間,每個(gè)空間的大小均為64KB。在程序空間,F206利用FLASH存儲器來存儲程序,不僅降低了成本,減小了體積,同時(shí)系統(tǒng)升級也比較方便;F206片內(nèi)的32KB FLASH存儲器也幾乎能滿足大多數(shù)DSP系統(tǒng)的要求,不用再外接其它非易失性存儲器。在I/O空間,除了256字節(jié)的高端I/O空間由F206保留或作為外設(shè)寄存器使用外,其余的I/O空間皆可為用戶使用;但對于需要頻繁對數(shù)據(jù)進(jìn)行讀寫操作的數(shù)據(jù)空間,F206留給用戶的只有從1800H到FFFFH大約58KB的范圍,這對于需要海量數(shù)據(jù)存儲的場合是遠(yuǎn)遠(yuǎn)不能滿足的。目前應(yīng)用在DSP系統(tǒng)中的海量存儲器主要有三種:SRAM、FLASH和DRAM。它們的存儲容量一般都在64KB以上,因而如果只依靠數(shù)據(jù)空間是不可能實(shí)現(xiàn)F206與這些海量存儲器間的接口的。但仔細(xì)觀察表1可以發(fā)現(xiàn),F206有大量的I/O空間閑置不用,這就自然地啟發(fā)我們能否借用I/O空間來擴(kuò)展數(shù)據(jù)空間呢?如果將I/O空間的每個(gè)I/O地址看作是“頁”,每“頁”的大小是用戶的58KB數(shù)據(jù)空間,則F206的整個(gè)擴(kuò)展的數(shù)據(jù)空間將達(dá)到(64K-256)×58K≈3700M。根據(jù)上述設(shè)想,作者設(shè)計(jì)了F206與IS61C1024(SRAM,128KB)、AM29F040B(FLASH,512KB)的接口電路。DRAM由于其地址線分時(shí)復(fù)用為行地址和列地址,因而它的地址線少,可以和F206直接接口,但需解決分時(shí)傳送行列地址和周期刷新的問題,故F206與DRAM的接口設(shè)計(jì)比SRAM和FLASH復(fù)雜,實(shí)際DSP系統(tǒng)中也很少使用。 表1F206的存儲結(jié)構(gòu) 程序空間〖〗數(shù)據(jù)空間〖〗I/O空間地址〖〗說明〖〗地址〖〗說明〖〗地址〖〗說明0000H 7FFFH〖〗片內(nèi)32KB FLASH8000H FFFFH〖〗外部擴(kuò)展程 序空間使用〖〗0000H 07FFH〖〗片內(nèi)RAM 及保留空間〖〗0000H FEFFH〖〗外部I/O 空間0800H 17FFH[]片內(nèi)4KB RAM[]FF00H FF0FH[]保留1800H FFFFH[]外部擴(kuò)展數(shù) 據(jù)空間使用[]FF10H FFFFH[]片內(nèi)I/O外 設(shè)寄存器二、 F206與海量SRAM的接口電路設(shè)計(jì) 圖1示出了F206與海量SRAM、FLASH和圖1F206與SRAM、FLASH和DRAM接口的譯碼電路DRAM接口的譯碼電路。U2將F206的I/O空間選擇信號IS、數(shù)據(jù)空間選擇信號DS、讀信號RD和寫信號WE譯碼生成I/O空間讀寫信號IOR和IOW、存儲空間讀寫信號MEMRD和MEMWE;U3將U2譯碼生成的I/O空間讀寫信號與F206的地址信號譯碼,從而得到具體的I/O地址;U4則譯圖2F206與IS61C1024的接口電路碼生成海量FLASH、DRAM的片選信號,同時(shí)還得到了對DRAM操作的三個(gè)信號:讀寫方式選擇信號、行地址選通信號RAS和列地址選通信號CAS。圖1所示電路是實(shí)現(xiàn)F206與海量存儲器接口的前提。 IS61C1024為128KB的SRAM,地址線有17根。設(shè)計(jì)F206與其接口的關(guān)鍵是將IS61C1024的高位地址線(圖2中為A14、A15和A16,可根據(jù)分頁的多少和頁面的大小而定)通過八D鎖存器74HC574的輸出保持,其余地址線直接連到F206的地址總線上。如圖2所示,IS61C1024的128KB空間被分成8頁,每頁為16KB。這16KB的空間被定位在F206數(shù)據(jù)空間的哪一個(gè)范圍則是由信號線CSRAM決定的。在對SRAM操作時(shí),先要通過74HC574選擇頁面,然后便可對當(dāng)前頁面的16KB數(shù)據(jù)空間讀寫。 三、 F206與海量FLASH的接口電路設(shè)計(jì) AM29F040B是AMD公司生產(chǎn)的CMOS型FLASH,存儲容量為512KB,使用單5V電源進(jìn)行按扇區(qū)的擦除和按字節(jié)的寫入操作。其引腳輸出與工業(yè)標(biāo)準(zhǔn)的EPROM、E2PROM完全兼容,在電路設(shè)計(jì)時(shí)非常方便\[2\]。圖3示出了F206與AM29F040B的接口電路,它將512KB的數(shù)據(jù)空間分成32頁,每頁16KB。圖3與圖2設(shè)計(jì)原理相同,這里不再贅述。與SRAM不同,對FLASH的操作是通過一系列命令來實(shí)現(xiàn)的。表2給出了AM29F040B的主要命令定義(其中XXX表示任意地址;RA表示要讀的存儲地址,RD表示要讀的數(shù)據(jù);PA表示編程地址,PD表示編程數(shù)據(jù);SA表示扇區(qū)地址A18~A16)。從表2可以看出,讀FLASH只需要1個(gè)時(shí)鐘周期,而寫入一個(gè)字節(jié)則需要4個(gè)時(shí)鐘周期,因此FLASH的讀寫速度比SRAM慢。但FLASH比相同容量的SRAM便宜得多,工作可靠性高,因而FLASH非常適用于需要大容量、非易失性、重復(fù)編程存儲的場合。 圖3F206與AM29F040B的接口電路表2AM29F040B的主要命令 命令 描述〖〗時(shí)鐘 周期〖〗總線周期1〖〗2〖〗3〖〗4〖〗5〖〗6地址〖〗數(shù)據(jù)〖〗地址〖〗數(shù)據(jù)〖〗地址〖〗數(shù)據(jù)〖〗地址〖〗數(shù)據(jù)〖〗地址〖〗數(shù)據(jù)〖〗地址〖〗數(shù)據(jù)讀〖〗1〖〗RA〖〗RD復(fù)位〖〗1〖〗XXX〖〗F0編程〖〗4〖〗555〖〗AA〖〗2AA〖〗55〖〗555〖〗A0〖〗PA〖〗PD片擦除〖〗6〖〗555〖〗AA〖〗2AA〖〗55〖〗555〖〗80〖〗555〖〗AA〖〗2AA〖〗55〖〗555〖〗10扇區(qū)擦除〖〗6〖〗555〖〗AA〖〗2AA〖〗55〖〗555〖〗80〖〗555〖〗AA〖〗2AA〖〗55〖〗SA〖〗30四、 F206與海量DRAM的接口電路設(shè)計(jì) 1. DRAM芯片KM416C簡介 KM416C是三星公司生產(chǎn)的DRAM芯片,其容量為1M×16bit,結(jié)構(gòu)是行4096×列256個(gè)單元,每個(gè)單元表示16bit,即一個(gè)字\[3\]。圖4示出了KM416C的引腳及其與F206的接口電路。圖4中DRAM芯片的三個(gè)控制讀寫信號、CAS和RAS均來自圖1中U4的譯碼。由于KM416C的地圖4F206與KM416C的接口電路址線是分時(shí)復(fù)用的,故地址線少,只有12根,因而外接電路不再需要鎖存器。在討論圖4是如何實(shí)現(xiàn)F206對KM416C進(jìn)行讀寫操作和刷新操作前,首先介紹其引腳功能如下。 RAS:行地址選通信號,其下降沿將行地址鎖存。 UCAS和LCAS:用來對高8位和低8位數(shù)據(jù)引腳進(jìn)行單獨(dú)控制。LCAS控制低8位,UCAS控制高8位。 OE:控制DQ的輸出阻抗。當(dāng)CAS、RAS都為低,為高時(shí),即對芯片進(jìn)行讀操作時(shí),OE選通時(shí),數(shù)據(jù)輸出端DQ有效;而OE為高時(shí),DQ呈高阻態(tài)。 :用于選擇讀和寫方式。為高時(shí),表示讀操作;為低時(shí),寫操作。讀操作時(shí),數(shù)據(jù)輸入被禁止。當(dāng)在CAS之前變低時(shí)(早寫操作),數(shù)據(jù)輸出在整個(gè)周期,處于高阻態(tài),這就允許有獨(dú)立于OE的寫操作,即可以在OE接地的情況下進(jìn)行寫操作。 A0~A11:12位地址線。由于該DRAM是4096行、256列,因此,送行地址時(shí),12位全部有效;送列地址時(shí),僅低8位有效。 DQ0~DQ15:16位I/O數(shù)據(jù)線?捎蒛CAS和LCAS分別對高8位和低8位選通。 2. 接口電路說明 圖4中OE接地,這是因?yàn)樽x操作時(shí),OE為低時(shí)輸出使能;而DRAM早寫操作又可獨(dú)立于OE進(jìn)行。由于F206是16位定點(diǎn)DSP,因此它與DRAM接口時(shí),不需要高8位低8位分別操作,可一次性進(jìn)行16位操作,因而電路中將LCAS和UCAS相連,使用同一信號同時(shí)選通高低8位。F206還具有對數(shù)據(jù)存儲器操作的選通信號DS,即對存儲器操作時(shí),該信號為低。讀寫選擇信號R/,當(dāng)DSP寫操作時(shí)為低,讀操作時(shí)為高,因此可用來作信號的譯碼信號。 3. 對DRAM的操作 DRAM的操作分為讀、寫和刷新操作。其中寫操作包含早寫操作和一般的寫操作,兩者的區(qū)別就在于對OE的要求:早寫操作對OE無要求,而一般的寫操作需OE為高電平。由于DRAM是靠場效應(yīng)管的柵極電容來存儲數(shù)據(jù)的,因此,要保持?jǐn)?shù)據(jù)需要定時(shí)對DRAM進(jìn)行刷新操作。本系統(tǒng)所使用的芯片,需要至少每64ms刷新一次,即每64ms要對每一行進(jìn)行一次讀或?qū)懖僮。這里限于篇幅,僅討論F206對DRAM的讀操作,其時(shí)序如圖5所示。 圖5讀操作時(shí)序?qū)τ谒械牟僮鱽碚f,最關(guān)鍵的是行列地址的輸入要正確。從時(shí)序圖可以看出,當(dāng)RAS下降沿時(shí),將行地址鎖存;而當(dāng)CAS下降沿時(shí),將列地址鎖存,同時(shí)進(jìn)行相應(yīng)單元的讀寫操作。 但是RAS需要在整個(gè)操作周期都處于低電平狀態(tài),如果用單指令分別送行列地址,則難以保證這個(gè)條件,因?yàn)橛脝沃噶顚Υ鎯ζ鞑僮髦?DS總是會回到高電平狀態(tài),由DS譯碼的RAS信號不會整個(gè)操作周期處于低電平。但注意到F206對數(shù)據(jù)塊操作時(shí),用重復(fù)指令RPT可使DS在整個(gè)重復(fù)操作期間一直保持為低,所以我們使用該指令并配合寄存器變址間接尋址指令進(jìn)行數(shù)據(jù)塊轉(zhuǎn)移(實(shí)際上每次只轉(zhuǎn)移一個(gè)數(shù)據(jù),但可以使不同的地址來譯碼產(chǎn)生RAS和CAS信號)。 在讀操作中,使用指令 RPT#2 ;將下一條指令重復(fù)2 +1次 BLDD*0-,#1001H;將從當(dāng)前輔助寄存器指向的單元讀 ;出到1001H,從(當(dāng)前寄存器-AR0)所指向的單元讀出 ;到1002H;從(當(dāng)前寄存器-2AR0)所指向的單元讀出 ;到1003H 配合讀操作的時(shí)序圖看出,重復(fù)三次BLDD指令:第一次將、RAS和CAS都置高;第二次將RAS置低,和CAS保持為高,同時(shí)將行地址鎖存;第三次將CAS置低,RAS保持為高,為高,同時(shí)將列地址鎖存,得到有效的數(shù)據(jù)輸出,保存到1003H中。第一次和第二次讀指令,是為了產(chǎn)生RAS和CAS的時(shí)序,實(shí)際的物理地址并不存在,因此讀出的是FFFFH。 從上面F206對DRAM的讀操作過程可知,與SRAM、FLASH需要I/O空間來確定頁面地址不同,F206實(shí)際上是通過行地址來確定當(dāng)前頁地址,通過列地址來尋址每頁中的具體存儲單元的。因此KM416C被分成4K頁,每頁256字。 小結(jié) 在實(shí)際的DSP系統(tǒng)應(yīng)用中,SRAM、FLASH和DRAM各有其優(yōu)缺點(diǎn)。SRAM與F206接口最簡單,軟件設(shè)計(jì)也最容易,讀寫速度最快;然而由于價(jià)格因素,成本也最高。FLASH與F206的接口比較容易,數(shù)據(jù)讀出速度較快,只是寫入速度稍慢;但其價(jià)格適中,可靠性高,數(shù)據(jù)可永久保存。DRAM與F206的硬件接口簡單,軟件設(shè)計(jì)卻非常繁瑣,故在實(shí)際應(yīng)用中一般都需要DRAM控制器。在DSP系統(tǒng)中很少單獨(dú)使用DRAM芯片。 在作者設(shè)計(jì)的DSP與海量存儲器的接口系統(tǒng)中,由于需要DSP對聲卡進(jìn)行DMA采集和播放語音信號,因而選擇存儲器時(shí)還要看其是否能滿足DMA操作的要求。由于DMA只對存儲器讀寫操作一個(gè)總線周期,故SRAM能DMA讀寫;FLASH可DMA讀,不能寫;DRAM不能DMA讀或?qū)憽?綜上所述,作者在實(shí)際的DSP系統(tǒng)中使用了1片IS61C1024和2片AM29F040B。它們與F206的接口電路可參閱圖1、圖2和圖3。整個(gè)系統(tǒng)的58KB用戶數(shù)據(jù)空間的地址分配如表3所列。 表3一個(gè)DSP系統(tǒng)數(shù)據(jù)空間分配表 芯片〖〗容量〖〗地址范圍〖〗分頁大小IS61C1024〖〗128KB〖〗2000H~5FFFH,16KB〖〗8頁A片:AM29F040B〖〗512KB〖〗8000H~BFFFH,16KB〖〗32頁B片:AM29F040B〖〗512KB〖〗C000H~FFFFH,16KB〖〗32頁MES 參考文獻(xiàn) 1TMS320C2xx數(shù)字信號處理器用戶指南.武漢力源電子股份有限公司,1998 2AMD公司FLASH數(shù)據(jù)手冊 3三星公司DRAM數(shù)據(jù)手冊 |