《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 嵌入式技术 > 业界动态 > TMS320C80与存储器接口分析

TMS320C80与存储器接口分析

2009-05-19
作者:卢再奇 付 强 何松华

  摘 要: 通過一個(gè)設(shè)計(jì)實(shí)驗(yàn),討論了TMS320C80通過傳輸控制器與幾種常用存儲(chǔ)器的接口方式,提出了接口設(shè)計(jì)中應(yīng)該考慮的一些問題。
  關(guān)鍵詞: TMS320C80 存儲(chǔ)器接口 譯碼


  多媒體視頻處理器TMS320C80是新一代的數(shù)字信號(hào)處理芯片,其內(nèi)部集成有四個(gè)DSP(PPs)和一個(gè)RISC主處理器(MP),一個(gè)傳輸控制器(TC),一個(gè)視頻控制器(VC)和50K字節(jié)的SRAM等資源。處理能力每秒達(dá)20億次操作(2BOPS),具有高度并行性,高計(jì)算精度和通用性。該芯片可實(shí)時(shí)實(shí)現(xiàn)新一代的視頻壓縮和解壓縮,可廣泛應(yīng)用于會(huì)議電視,高速電信,多媒體,虛擬現(xiàn)實(shí),保密,雷達(dá)和聲納處理等應(yīng)用場(chǎng)合,在軍事和民用方面有著廣闊的應(yīng)用前景。
  由于C80的多處理器結(jié)構(gòu),高速處理能力和全可編程性,使C80可以適應(yīng)主處理器或者協(xié)處理器等范圍廣泛的應(yīng)用系統(tǒng)要求。
  C80應(yīng)用系統(tǒng)包括主處理器和與之相連的保證處理器能完成既定功能的外部器件,存儲(chǔ)器為重要的外部器件之一。由于C80沒有內(nèi)部ROM,系統(tǒng)的啟動(dòng)靠加載在存儲(chǔ)器高端區(qū)的引導(dǎo)程序,使系統(tǒng)配置程序運(yùn)行,故在一個(gè)應(yīng)用系統(tǒng)中,EPROM必不可少。在程序調(diào)試和與主機(jī)的通信中,常常使用SRAM或者雙口RAM。雙口RAM由于有中斷接口,信號(hào)燈機(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)成本。對(duì)于不同的系統(tǒng)應(yīng)用,C80需要外接的存儲(chǔ)器也不同。本文對(duì)SRAM、雙口RAM、EPROM、DRAM等存儲(chǔ)器與C80的接口進(jìn)行了分析。
1 外部存儲(chǔ)器接口
1.1 接口概述

  C80與外設(shè)的接口由傳輸控制器(TC)處理,TC通過外部存儲(chǔ)器接口訪問片外存儲(chǔ)器和外設(shè)。TC內(nèi)的一個(gè)狀態(tài)序列器產(chǎn)生與各種RAM和外設(shè)接口的周期控制信號(hào),這些周期控制信號(hào)經(jīng)過外部邏輯器件譯碼生成訪問識(shí)別信息和存儲(chǔ)器訪問控制信號(hào)。訪問識(shí)別信息為AS,BS,CT,PS,UTIME等,它們輸入傳輸控制器用以配置外部存儲(chǔ)器訪問時(shí)序,使C80可動(dòng)態(tài)地選擇存儲(chǔ)器類型,根據(jù)存儲(chǔ)器的速度選擇最佳訪問時(shí)序;存儲(chǔ)器訪問控制信號(hào)輸入外部存儲(chǔ)器控制端口,使C80能對(duì)外部存儲(chǔ)器進(jìn)行正確的操作。外部存儲(chǔ)器接口信號(hào)定義見參考文獻(xiàn)2。
  C80與存儲(chǔ)器接口框圖如圖1所示。PLD為控制邏輯產(chǎn)生部分,產(chǎn)生C80需要的存儲(chǔ)器識(shí)別信號(hào)以及C80對(duì)存儲(chǔ)器的訪問控制信號(hào)??偩€緩沖收發(fā)電路用于緩沖數(shù)據(jù)線,地址線和控制線,以及用于C80與5V外部器件的接口電平轉(zhuǎn)換(3.3V到5V)。存儲(chǔ)器電路包括SRAM,雙口RAM,DRAM,EPROM。


  C80與存儲(chǔ)器接口可分為地址通道,數(shù)據(jù)通道和控制通道。地址通道由地址總線組成,根據(jù)AS值的不同,決定地址線連接方式。數(shù)據(jù)通道由數(shù)據(jù)總線組成,根據(jù)BS值的不同,決定數(shù)據(jù)總線寬度;系統(tǒng)啟動(dòng)時(shí),在系統(tǒng)復(fù)位信號(hào)的上升沿采樣UTIME信號(hào),確定C80運(yùn)行時(shí)使用何種數(shù)據(jù)輸出模式,當(dāng)UTIME=0時(shí),工作于大端模式(Big_endian),反之,工作于小端模式(Little_endian)。C80的數(shù)據(jù)輸出模式在下次系統(tǒng)復(fù)位前一直有效。數(shù)據(jù)總線和CAS信號(hào)對(duì)應(yīng)關(guān)系如表1。
  控制通道由存儲(chǔ)器讀寫信號(hào),選通信號(hào)以及C80訪問識(shí)別信息組成。C80端讀寫信號(hào)通過緩沖器與存儲(chǔ)器讀寫端口相連。為簡(jiǎn)化接口邏輯,片選信號(hào)采用部分譯碼方式產(chǎn)生,僅對(duì)C80地址線高4位A[31:28]進(jìn)行譯碼。存儲(chǔ)器地址分配如表2所示。

?


  C80訪問外部存儲(chǔ)器時(shí),行時(shí)間狀態(tài)碼在列訪問期間將會(huì)改變;C80訪問DRAM時(shí),由于地址總線復(fù)用,其最高位地址在列訪問時(shí)無效。故參與存儲(chǔ)器譯碼的地址信號(hào)和狀態(tài)信號(hào)必須用C80輸出的RL信號(hào)來鎖存,設(shè)鎖存后輸出的地址信號(hào)為L(zhǎng)A[31:28],鎖存后的狀態(tài)信號(hào)為L(zhǎng)S[5:0]。
  另外,由于C80并不是每次都輸出一個(gè)有用的地址(如刷新操作),總線沖突有可能發(fā)生。因此,行時(shí)間狀態(tài)碼信號(hào)STATUS必須參與譯碼,用來指示C80的時(shí)序類型。故片選信號(hào)譯碼時(shí)需要加入下列信號(hào):
  !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周期
  在行時(shí)間的r2狀態(tài),C80采樣UTIME,如果UTIME=0,C80在該頁(yè)工作于用戶定時(shí)方式。此時(shí),RAS和CAS變化的方式改變。在每個(gè)列訪問的c1周期,RAS有一個(gè)周期的低電平,以表明每個(gè)列訪問的開始,CAS選通對(duì)整個(gè)尋址時(shí)間都有效。因此,在用戶定時(shí)方式,RAS參與片選信號(hào)譯碼。
1.2 存儲(chǔ)器接口電路設(shè)計(jì)
1.2.1 SRAM接口
  如前述,CE譯碼由高位地址和狀態(tài)碼產(chǎn)生,如果UTIME=0,為了保證TC輸出有效的數(shù)據(jù),在寫周期,CE譯碼應(yīng)該加上RAS信號(hào),以便對(duì)于不同的列訪問,CE信號(hào)有相應(yīng)的變化。CE譯碼如下:
 ??!CEx=!ENB & LA[31:28] & !RAS & !CASx & ! W# !ENB&LA[31:28] & !CASx & W  (2)
  C80的地址線,數(shù)據(jù)線,W信號(hào)經(jīng)過緩沖接于SRAM的相應(yīng)端口;SRAM端OE信號(hào)直接接地;經(jīng)過外部邏輯器件譯碼后生成的CEx信號(hào)送入SRAM的CE端。
1.2.2 雙口RAM接口
  雙口RAM用來實(shí)現(xiàn)C80與主機(jī)或者外設(shè)的通信和數(shù)據(jù)交換。由于有中斷接口,信號(hào)燈機(jī)制以及示忙電路,故與C80的接口比較復(fù)雜。
  C80的地址線,數(shù)據(jù)線,W信號(hào)經(jīng)過緩沖接于雙口RAM的相應(yīng)端口,其CE信號(hào)經(jīng)過外部邏輯器件產(chǎn)生,送入雙口RAM的CE端。對(duì)于16位存儲(chǔ)器,有高低字節(jié)選通信號(hào)UB,LB。根據(jù)C80輸出數(shù)據(jù)模式,緩沖后的CAS信號(hào)接UB,LB端。雙口兩邊有BUSY信號(hào),中斷信號(hào)以及SEM信號(hào)。當(dāng)雙口兩邊器件同時(shí)訪問同一存儲(chǔ)單元時(shí),示忙信號(hào)BUSY有效,表示有一個(gè)訪問沖突發(fā)生。當(dāng)一邊向雙口高端地址(FE和FF地址)寫入數(shù)據(jù),另一邊的中斷信號(hào)有效時(shí),向所連接的器件指示有消息需要傳遞。雙口的SEM信號(hào)與用戶軟件結(jié)合,可把雙口存儲(chǔ)空間最多劃分為8個(gè)部分。利用雙口RAM的中斷信號(hào)和SEM信號(hào)可大大提高C80與外設(shè)或主機(jī)的通信能力。由于SEM信號(hào)和CE信號(hào)利用同一套地址和數(shù)據(jù)線選通雙口RAM上的不同的地址空間,故兩個(gè)信號(hào)不能同時(shí)有效。當(dāng)CE信號(hào)有效時(shí),C80對(duì)雙口進(jìn)行正常的讀寫操作;當(dāng)SEM信號(hào)有效時(shí),利用雙口RAM低3位地址,可用于讀寫8個(gè)SEM空間。此時(shí),只使用數(shù)據(jù)線D0。如果SEM空間寫入數(shù)據(jù)1(D0位),讀出數(shù)據(jù)為1,表明申請(qǐng)存儲(chǔ)空間成功;否則,表明該存儲(chǔ)空間已被另一邊的器件占用。實(shí)現(xiàn)SEM信號(hào)有兩種方法,其一為當(dāng)需要對(duì)SEM空間訪問時(shí),C80通過命令口使SEM信號(hào)置低,同時(shí)外部邏輯使CE信號(hào)無效,當(dāng)C80對(duì)雙口RAM空間訪問時(shí),由于CE信號(hào)無效而SEM信號(hào)有效,C80能夠讀寫SEM空間的值。當(dāng)SEM信號(hào)無效時(shí),進(jìn)行正常的雙口存儲(chǔ)空間訪問。雙口RAM譯碼邏輯方程如下(UTIME=0):
 ?。PRAM-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ù)位時(shí),從0XFFFF FFF8開始執(zhí)行程序。通常,這個(gè)地址上存儲(chǔ)一個(gè)帶有32位立即數(shù)的排空延遲槽的分支或跳轉(zhuǎn)指令,系統(tǒng)復(fù)位后,程序可轉(zhuǎn)移到所需的存儲(chǔ)空間繼續(xù)執(zhí)行。
  EPROM的G端接相應(yīng)的CAS端。經(jīng)過緩沖后的地址線和數(shù)據(jù)線直接與EPROM的地址和數(shù)據(jù)端口相連,EPROM的輸出允許信號(hào)OE,由外部邏輯產(chǎn)生。OE譯碼如下:
  !OE=LA[31:28] & !ENB  (6)
1.2.4 DRAM接口
  與以往DSP器件不同,C80可以不通過外部邏輯而直接支持對(duì)DRAM的訪問,故使得C80對(duì)DRAM的接口邏輯變得與訪問靜態(tài)存儲(chǔ)器一樣簡(jiǎn)單。C80的W信號(hào)和CAS信號(hào)經(jīng)過緩沖后直接與DRAM相應(yīng)端口連接。C80的8個(gè)CAS信號(hào)用于選擇字節(jié),對(duì)于64位的DRAM,C80的8個(gè)CAS信號(hào)全部有效,相應(yīng)地,C80邏輯地址的低3位不使用。DRAM模塊上的PD信號(hào)指示存儲(chǔ)器的大小和速度。通常,DRAM模塊由數(shù)片SIMM組成,對(duì)于4M×n組織的SIMM,查C80地址移位表,對(duì)應(yīng)的AS=100,每個(gè)SIMM的最低位接C80的A14。使用16MB的SIMM時(shí),C80的A14~A24與DRAM的地址線連接。當(dāng)C80訪問DRAM時(shí)或者C80對(duì)DRAM刷新時(shí),DRAS信號(hào)有效。刷新時(shí),對(duì)于比較大的存儲(chǔ)空間,可利用刷新時(shí)輸出的刷新偽地址的低位參與譯碼來劃分刷新空間,本設(shè)計(jì)使用16MB的SIMM組成32MB的DRAM,當(dāng)A16=0,A17=0和A16=0,A17=1時(shí)刷新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指示存儲(chǔ)器大小信號(hào),由PD信號(hào)和選通存儲(chǔ)器子模塊的地址信號(hào)產(chǎn)生。當(dāng)SIMM為4MB或者16MB時(shí),只有DRAS0有效;當(dāng)SIMM為8MB或者32MB時(shí),DRAS0,DRAS1都有效。在本設(shè)計(jì)中,DRAS0接DRAM模塊的RAS0和RAS2端,DRAS1接DRAM模塊的RAS1和RAS3端。
1.3 存儲(chǔ)器識(shí)別信息的產(chǎn)生
  為了能與外部存儲(chǔ)器接口,C80必須知道存儲(chǔ)器的類型。外部邏輯電路在行時(shí)間中輸入的周期狀態(tài)信息標(biāo)識(shí)了存儲(chǔ)器地址線移位數(shù),數(shù)據(jù)總線寬度,訪問速度,頁(yè)大小等,這些輸入為AS、BS、CT、PS、UTIME,稱之為存儲(chǔ)器識(shí)別信息。只有讀取了這些參數(shù)值,C80才能以正確的方式訪問存儲(chǔ)器。
  如前所述,存儲(chǔ)器識(shí)別信息從C80輸出的地址信號(hào)和狀態(tài)信號(hào)經(jīng)外部邏輯譯碼得到,由于C80必須在行時(shí)間的r2狀態(tài)讀取這些值,故存儲(chǔ)器識(shí)別信息譯碼不能使用經(jīng)過鎖存后的地址信號(hào)和狀態(tài)信號(hào),否則,將不能滿足C80的時(shí)序要求。
  對(duì)于快速SRAM和DRAM,C80使用頁(yè)模式訪問,可以大大提高系統(tǒng)速度。對(duì)于慢速器件,如EPROM,頁(yè)模式被禁止,即PS=1000。當(dāng)C80與靜態(tài)存儲(chǔ)器連接時(shí),地址不需要移位,故C80的地址線直接對(duì)應(yīng)于存儲(chǔ)器的地址線(應(yīng)考慮總線寬度),此時(shí),AS=000。C80訪問各存儲(chǔ)區(qū)時(shí),識(shí)別信息定義如表3。


  表中不同類型存儲(chǔ)器的識(shí)別信息譯碼邏輯的HDL描述如下:
  @RADIX 2;″二進(jìn)制
  AS=[AS2..AS0];″地址移位選擇
  BS=[BS1..BS0];”數(shù)據(jù)總線寬度
  CT=[CT2..CT0];″列訪問時(shí)序
  PS=[PS3..PS0];”存儲(chǔ)頁(yè)面大小
  REC=[AS,BS,CT,PS,UTIME];“存儲(chǔ)器識(shí)別信息
  REC_DRAM=[100,11,111,1100,1];
  “DRAM區(qū)存儲(chǔ)器識(shí)別信息”
  REC_SRAM=[000,10,110,1010,0];
  “SRAM區(qū)存儲(chǔ)器識(shí)別信息
  REC_DPRAM=[000,01,110,1100,0];
  “雙口RAM區(qū)存儲(chǔ)器識(shí)別信息
  REC_EPROM=[000,01,111,1000,1];
  “EPROM區(qū)存儲(chǔ)器識(shí)別信息
  REC_SEM=[000,01,111,1000,1];
  “SEM區(qū)存儲(chǔ)器識(shí)別信息
 ?。繰ADIX 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è),可以很方便地對(duì)識(shí)別信息進(jìn)行修改,以適應(yīng)不同的設(shè)計(jì)要求。
2 時(shí)序分析
  C80的地址線,數(shù)據(jù)線,W信號(hào),CAS信號(hào)經(jīng)過緩沖與存儲(chǔ)器連接,應(yīng)考慮這些信號(hào)線的延遲;由于有些控制信號(hào)由外部邏輯產(chǎn)生,應(yīng)考慮其最大的邏輯延遲。時(shí)序分析,主要是把存儲(chǔ)器和C80的時(shí)序參數(shù)加上外部邏輯器件的最大最小延遲綜合考慮后的結(jié)果。經(jīng)過分析,接口時(shí)序滿足要求。
  總之,本文詳細(xì)分析了C80與幾種常用存儲(chǔ)器的接口關(guān)系。這些結(jié)果可作為電路設(shè)計(jì)時(shí)的參考。由于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

本站內(nèi)容除特別聲明的原創(chuàng)文章之外,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點(diǎn)。轉(zhuǎn)載的所有的文章、圖片、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無法一一聯(lián)系確認(rèn)版權(quán)者。如涉及作品內(nèi)容、版權(quán)和其它問題,請(qǐng)及時(shí)通過電子郵件或電話通知我們,以便迅速采取適當(dāng)措施,避免給雙方造成不必要的經(jīng)濟(jì)損失。聯(lián)系電話:010-82306118;郵箱:aet@chinaaet.com。

相關(guān)內(nèi)容