摘 要: 通過一個設(shè)計(jì)實(shí)驗(yàn),討論了TMS320C80通過傳輸控制器與幾種常用存儲器的接口方式,提出了接口設(shè)計(jì)中應(yīng)該考慮的一些問題。
關(guān)鍵詞: TMS320C80 存儲器接口 譯碼
多媒體視頻處理器TMS320C80是新一代的數(shù)字信號處理芯片,其內(nèi)部集成有四個DSP(PPs)和一個RISC主處理器(MP),一個傳輸控制器(TC),一個視頻控制器(VC)和50K字節(jié)的SRAM等資源。處理能力每秒達(dá)20億次操作(2BOPS),具有高度并行性,高計(jì)算精度和通用性。該芯片可實(shí)時實(shí)現(xiàn)新一代的視頻壓縮和解壓縮,可廣泛應(yīng)用于會議電視,高速電信,多媒體,虛擬現(xiàn)實(shí),保密,雷達(dá)和聲納處理等應(yīng)用場合,在軍事和民用方面有著廣闊的應(yīng)用前景。
由于C80的多處理器結(jié)構(gòu),高速處理能力和全可編程性,使C80可以適應(yīng)主處理器或者協(xié)處理器等范圍廣泛的應(yīng)用系統(tǒng)要求。
C80應(yīng)用系統(tǒng)包括主處理器和與之相連的保證處理器能完成既定功能的外部器件,存儲器為重要的外部器件之一。由于C80沒有內(nèi)部ROM,系統(tǒng)的啟動靠加載在存儲器高端區(qū)的引導(dǎo)程序,使系統(tǒng)配置程序運(yùn)行,故在一個應(yīng)用系統(tǒng)中,EPROM必不可少。在程序調(diào)試和與主機(jī)的通信中,常常使用SRAM或者雙口RAM。雙口RAM由于有中斷接口,信號燈機(jī)制以及示忙電路,方便了C80與主機(jī)或者外設(shè)進(jìn)行的通信和數(shù)據(jù)交換;電路中使用高速SRAM芯片,起到補(bǔ)充C80片內(nèi)SRAM的作用,在程序調(diào)試過程中,可加載應(yīng)用程序在其中,使系統(tǒng)能夠全速運(yùn)行。DRAM與片內(nèi)快速RAM的組合即保證了系統(tǒng)的高性能,又減少了系統(tǒng)成本。對于不同的系統(tǒng)應(yīng)用,C80需要外接的存儲器也不同。本文對SRAM、雙口RAM、EPROM、DRAM等存儲器與C80的接口進(jìn)行了分析。
1 外部存儲器接口
1.1 接口概述
C80與外設(shè)的接口由傳輸控制器(TC)處理,TC通過外部存儲器接口訪問片外存儲器和外設(shè)。TC內(nèi)的一個狀態(tài)序列器產(chǎn)生與各種RAM和外設(shè)接口的周期控制信號,這些周期控制信號經(jīng)過外部邏輯器件譯碼生成訪問識別信息和存儲器訪問控制信號。訪問識別信息為AS,BS,CT,PS,UTIME等,它們輸入傳輸控制器用以配置外部存儲器訪問時序,使C80可動態(tài)地選擇存儲器類型,根據(jù)存儲器的速度選擇最佳訪問時序;存儲器訪問控制信號輸入外部存儲器控制端口,使C80能對外部存儲器進(jìn)行正確的操作。外部存儲器接口信號定義見參考文獻(xiàn)2。
C80與存儲器接口框圖如圖1所示。PLD為控制邏輯產(chǎn)生部分,產(chǎn)生C80需要的存儲器識別信號以及C80對存儲器的訪問控制信號??偩€緩沖收發(fā)電路用于緩沖數(shù)據(jù)線,地址線和控制線,以及用于C80與5V外部器件的接口電平轉(zhuǎn)換(3.3V到5V)。存儲器電路包括SRAM,雙口RAM,DRAM,EPROM。
C80與存儲器接口可分為地址通道,數(shù)據(jù)通道和控制通道。地址通道由地址總線組成,根據(jù)AS值的不同,決定地址線連接方式。數(shù)據(jù)通道由數(shù)據(jù)總線組成,根據(jù)BS值的不同,決定數(shù)據(jù)總線寬度;系統(tǒng)啟動時,在系統(tǒng)復(fù)位信號的上升沿采樣UTIME信號,確定C80運(yùn)行時使用何種數(shù)據(jù)輸出模式,當(dāng)UTIME=0時,工作于大端模式(Big_endian),反之,工作于小端模式(Little_endian)。C80的數(shù)據(jù)輸出模式在下次系統(tǒng)復(fù)位前一直有效。數(shù)據(jù)總線和CAS信號對應(yīng)關(guān)系如表1。
控制通道由存儲器讀寫信號,選通信號以及C80訪問識別信息組成。C80端讀寫信號通過緩沖器與存儲器讀寫端口相連。為簡化接口邏輯,片選信號采用部分譯碼方式產(chǎn)生,僅對C80地址線高4位A[31:28]進(jìn)行譯碼。存儲器地址分配如表2所示。
C80訪問外部存儲器時,行時間狀態(tài)碼在列訪問期間將會改變;C80訪問DRAM時,由于地址總線復(fù)用,其最高位地址在列訪問時無效。故參與存儲器譯碼的地址信號和狀態(tài)信號必須用C80輸出的RL信號來鎖存,設(shè)鎖存后輸出的地址信號為LA[31:28],鎖存后的狀態(tài)信號為LS[5:0]。
另外,由于C80并不是每次都輸出一個有用的地址(如刷新操作),總線沖突有可能發(fā)生。因此,行時間狀態(tài)碼信號STATUS必須參與譯碼,用來指示C80的時序類型。故片選信號譯碼時需要加入下列信號:
!ENB=!REF & !SDRAM_CYC(1)
這里:
REF=!LS5 & !LS4 & !LS3&!LS2 & LS1 & !LS0 ″刷新周期
SDRAM_CYC=!LS5 & !LS4 & !LS3 & !LS2 & LS1 & LS0 #!LS5 & !LS4 & LS3 & LS2 &!LS1 & !LS0 ″SDRAM周期
在行時間的r2狀態(tài),C80采樣UTIME,如果UTIME=0,C80在該頁工作于用戶定時方式。此時,RAS和CAS變化的方式改變。在每個列訪問的c1周期,RAS有一個周期的低電平,以表明每個列訪問的開始,CAS選通對整個尋址時間都有效。因此,在用戶定時方式,RAS參與片選信號譯碼。
1.2 存儲器接口電路設(shè)計(jì)
1.2.1 SRAM接口
如前述,CE譯碼由高位地址和狀態(tài)碼產(chǎn)生,如果UTIME=0,為了保證TC輸出有效的數(shù)據(jù),在寫周期,CE譯碼應(yīng)該加上RAS信號,以便對于不同的列訪問,CE信號有相應(yīng)的變化。CE譯碼如下:
!CEx=!ENB & LA[31:28] & !RAS & !CASx & ! W# !ENB&LA[31:28] & !CASx & W (2)
C80的地址線,數(shù)據(jù)線,W信號經(jīng)過緩沖接于SRAM的相應(yīng)端口;SRAM端OE信號直接接地;經(jīng)過外部邏輯器件譯碼后生成的CEx信號送入SRAM的CE端。
1.2.2 雙口RAM接口
雙口RAM用來實(shí)現(xiàn)C80與主機(jī)或者外設(shè)的通信和數(shù)據(jù)交換。由于有中斷接口,信號燈機(jī)制以及示忙電路,故與C80的接口比較復(fù)雜。
C80的地址線,數(shù)據(jù)線,W信號經(jīng)過緩沖接于雙口RAM的相應(yīng)端口,其CE信號經(jīng)過外部邏輯器件產(chǎn)生,送入雙口RAM的CE端。對于16位存儲器,有高低字節(jié)選通信號UB,LB。根據(jù)C80輸出數(shù)據(jù)模式,緩沖后的CAS信號接UB,LB端。雙口兩邊有BUSY信號,中斷信號以及SEM信號。當(dāng)雙口兩邊器件同時訪問同一存儲單元時,示忙信號BUSY有效,表示有一個訪問沖突發(fā)生。當(dāng)一邊向雙口高端地址(FE和FF地址)寫入數(shù)據(jù),另一邊的中斷信號有效時,向所連接的器件指示有消息需要傳遞。雙口的SEM信號與用戶軟件結(jié)合,可把雙口存儲空間最多劃分為8個部分。利用雙口RAM的中斷信號和SEM信號可大大提高C80與外設(shè)或主機(jī)的通信能力。由于SEM信號和CE信號利用同一套地址和數(shù)據(jù)線選通雙口RAM上的不同的地址空間,故兩個信號不能同時有效。當(dāng)CE信號有效時,C80對雙口進(jìn)行正常的讀寫操作;當(dāng)SEM信號有效時,利用雙口RAM低3位地址,可用于讀寫8個SEM空間。此時,只使用數(shù)據(jù)線D0。如果SEM空間寫入數(shù)據(jù)1(D0位),讀出數(shù)據(jù)為1,表明申請存儲空間成功;否則,表明該存儲空間已被另一邊的器件占用。實(shí)現(xiàn)SEM信號有兩種方法,其一為當(dāng)需要對SEM空間訪問時,C80通過命令口使SEM信號置低,同時外部邏輯使CE信號無效,當(dāng)C80對雙口RAM空間訪問時,由于CE信號無效而SEM信號有效,C80能夠讀寫SEM空間的值。當(dāng)SEM信號無效時,進(jìn)行正常的雙口存儲空間訪問。雙口RAM譯碼邏輯方程如下(UTIME=0):
??!DPRAM-CS =LA[31:28] & !ENB & !RAS & !W & SEMR # LA[31:28] & !ENB & W & SEMR (3)
其次,可利用系統(tǒng)高位地址譯碼選通SEM空間和雙口RAM空間。邏輯實(shí)現(xiàn)如下所示(UTIME=0):
!DPRAM-CS =LA[31:28] & !ENB & !RAS & !W # LA[31:28] & !ENB & W (4)
!SEM=LA[31:28] & !ENB (5)
1.2.3 EPROM接口
EPROM空間必須分配到C80地址空間的最高端,因?yàn)镸P復(fù)位時,從0XFFFF FFF8開始執(zhí)行程序。通常,這個地址上存儲一個帶有32位立即數(shù)的排空延遲槽的分支或跳轉(zhuǎn)指令,系統(tǒng)復(fù)位后,程序可轉(zhuǎn)移到所需的存儲空間繼續(xù)執(zhí)行。
EPROM的G端接相應(yīng)的CAS端。經(jīng)過緩沖后的地址線和數(shù)據(jù)線直接與EPROM的地址和數(shù)據(jù)端口相連,EPROM的輸出允許信號OE,由外部邏輯產(chǎn)生。OE譯碼如下:
?。E=LA[31:28] & !ENB (6)
1.2.4 DRAM接口
與以往DSP器件不同,C80可以不通過外部邏輯而直接支持對DRAM的訪問,故使得C80對DRAM的接口邏輯變得與訪問靜態(tài)存儲器一樣簡單。C80的W信號和CAS信號經(jīng)過緩沖后直接與DRAM相應(yīng)端口連接。C80的8個CAS信號用于選擇字節(jié),對于64位的DRAM,C80的8個CAS信號全部有效,相應(yīng)地,C80邏輯地址的低3位不使用。DRAM模塊上的PD信號指示存儲器的大小和速度。通常,DRAM模塊由數(shù)片SIMM組成,對于4M×n組織的SIMM,查C80地址移位表,對應(yīng)的AS=100,每個SIMM的最低位接C80的A14。使用16MB的SIMM時,C80的A14~A24與DRAM的地址線連接。當(dāng)C80訪問DRAM時或者C80對DRAM刷新時,DRAS信號有效。刷新時,對于比較大的存儲空間,可利用刷新時輸出的刷新偽地址的低位參與譯碼來劃分刷新空間,本設(shè)計(jì)使用16MB的SIMM組成32MB的DRAM,當(dāng)A16=0,A17=0和A16=0,A17=1時刷新DRAM空間。DRAS譯碼如下:
!DRAS0=(!RAS& LA[31:28] & !ENB & !BANK)
# !RAS & REF & !LA17 & !LA16) (7)
!DRAS1=(!RAS & LA[31:28] & !ENB & !BANK) # (!RAS & REF & LA17 & !LA16) (8)
!BANK指示存儲器大小信號,由PD信號和選通存儲器子模塊的地址信號產(chǎn)生。當(dāng)SIMM為4MB或者16MB時,只有DRAS0有效;當(dāng)SIMM為8MB或者32MB時,DRAS0,DRAS1都有效。在本設(shè)計(jì)中,DRAS0接DRAM模塊的RAS0和RAS2端,DRAS1接DRAM模塊的RAS1和RAS3端。
1.3 存儲器識別信息的產(chǎn)生
為了能與外部存儲器接口,C80必須知道存儲器的類型。外部邏輯電路在行時間中輸入的周期狀態(tài)信息標(biāo)識了存儲器地址線移位數(shù),數(shù)據(jù)總線寬度,訪問速度,頁大小等,這些輸入為AS、BS、CT、PS、UTIME,稱之為存儲器識別信息。只有讀取了這些參數(shù)值,C80才能以正確的方式訪問存儲器。
如前所述,存儲器識別信息從C80輸出的地址信號和狀態(tài)信號經(jīng)外部邏輯譯碼得到,由于C80必須在行時間的r2狀態(tài)讀取這些值,故存儲器識別信息譯碼不能使用經(jīng)過鎖存后的地址信號和狀態(tài)信號,否則,將不能滿足C80的時序要求。
對于快速SRAM和DRAM,C80使用頁模式訪問,可以大大提高系統(tǒng)速度。對于慢速器件,如EPROM,頁模式被禁止,即PS=1000。當(dāng)C80與靜態(tài)存儲器連接時,地址不需要移位,故C80的地址線直接對應(yīng)于存儲器的地址線(應(yīng)考慮總線寬度),此時,AS=000。C80訪問各存儲區(qū)時,識別信息定義如表3。
表中不同類型存儲器的識別信息譯碼邏輯的HDL描述如下:
?。繰ADIX 2;″二進(jìn)制
AS=[AS2..AS0];″地址移位選擇
BS=[BS1..BS0];”數(shù)據(jù)總線寬度
CT=[CT2..CT0];″列訪問時序
PS=[PS3..PS0];”存儲頁面大小
REC=[AS,BS,CT,PS,UTIME];“存儲器識別信息
REC_DRAM=[100,11,111,1100,1];
“DRAM區(qū)存儲器識別信息”
REC_SRAM=[000,10,110,1010,0];
“SRAM區(qū)存儲器識別信息
REC_DPRAM=[000,01,110,1100,0];
“雙口RAM區(qū)存儲器識別信息
REC_EPROM=[000,01,111,1000,1];
“EPROM區(qū)存儲器識別信息
REC_SEM=[000,01,111,1000,1];
“SEM區(qū)存儲器識別信息
@RADIX 1010;
S=[STATUS5..STATUS0];
AL=[A17..A16];
REF=2
AL1=0
AL2=2;
A=[A31..A28];“使用高4位地址譯碼
DRAM_AV=10;“DRAM地址區(qū)
SRAM_AV=11;“SRAM地址區(qū)
DPRAM_AV=12;“雙口RAM地址區(qū)
EPROM_AV=15;“EPROM地址區(qū)
SEM_AV=13;“SEM區(qū)
Equations
when ((A==DRAM_AV)# (S==REF & (AL==AL1 # AL==AL2)))
then REC=REC_DRAM;else
when ((A==SRAM_AV) & (S==REF & (AL==AL1 # AL==AL2)))
then REC=REC_SRAM;else
when ((A==DPRAM_AV) & (S=REF & (AL==AL1 # AL==AL2)))
then REC=REC_DPRAM;else
when (((A==EPROM_AV) # (A==SEM_AV)) & (S==REF &(AL==AL1 # AL==AL2)))
then REC=REC_EPROM;
根據(jù)C80不同的外設(shè),可以很方便地對識別信息進(jìn)行修改,以適應(yīng)不同的設(shè)計(jì)要求。
2 時序分析
C80的地址線,數(shù)據(jù)線,W信號,CAS信號經(jīng)過緩沖與存儲器連接,應(yīng)考慮這些信號線的延遲;由于有些控制信號由外部邏輯產(chǎn)生,應(yīng)考慮其最大的邏輯延遲。時序分析,主要是把存儲器和C80的時序參數(shù)加上外部邏輯器件的最大最小延遲綜合考慮后的結(jié)果。經(jīng)過分析,接口時序滿足要求。
總之,本文詳細(xì)分析了C80與幾種常用存儲器的接口關(guān)系。這些結(jié)果可作為電路設(shè)計(jì)時的參考。由于C80的TC支持多種外設(shè),如FIF0,VRAM,SDRAM,限于篇幅,本文未進(jìn)行討論,但其接口原理和分析方法類似。讀者可在本文的基礎(chǔ)上,結(jié)合應(yīng)用需要,設(shè)計(jì)出滿足要求的各種外設(shè)接口。
參考文獻(xiàn)
1 The User's Guides of The TMS320C80.TI公司,1996
2 The User's Guides of Transfer Controler of The TMS320C80.TI公司,1996
3 The Data Sheet of The TMS320C80.TI公司,1996




