《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 模擬設(shè)計 > 設(shè)計應(yīng)用 > TMS320C32的存儲器接口設(shè)計
TMS320C32的存儲器接口設(shè)計
摘要:   由于C32可以非常靈活地調(diào)整其存儲器接口寬度,使得存儲器接口電路的設(shè)計更加的靈活,,因此非常適用于電機或電力系統(tǒng)等實時系統(tǒng)的數(shù)據(jù)采集與處理,。
Abstract:
Key words :

1 TMS320C32的外部存儲器接口的特點

  TMS320C32是一個32位微處理器,它可以通過24位地址總線,、32位數(shù)據(jù)總線和選通信號對外部存儲器進行訪問,。其外部存儲器接口結(jié)構(gòu)如下圖l所示。

  

 

  圖1,,TMS320C32的外部存儲器接口

  在圖1中,,引腳(引腳,又叫管腳,,英文叫Pin,。就是從集成電路(芯片)內(nèi)部電路引出與外圍電路的接線,所有的引腳就構(gòu)成了這塊芯片的接口)PRGW是用來配置外部程序存儲器的寬度的,。當(dāng)PRGW引腳為低電平時程序存儲器寬度為16位;當(dāng)PRGW引腳為高電平時程序存儲器寬度為32位。STRBO和STRBl各為一組訪問外部存儲器的選通信號,,各有4個信號引腳(STRBx_B3/A_1,、STRBx_B2/A_2、STRBx_Bl和STRBx_B0),。從圖l中我們可以看出,,選通信號STRB0和STRBl能從8/16/32位存儲器中訪問8/16/32位數(shù)據(jù),,或從16/32位存儲器中執(zhí)行32位程序;IOSTRB是外設(shè)I/O的選通信號引腳,它只能從32位寬度的存儲器中訪問32位的數(shù)據(jù)和程序,。

  可以通過對STRBx和IOSTRB的設(shè)置,,從8/16/32位的存儲器中訪問8/16/32位數(shù)據(jù)或程序。也就是說,,可以從任何一個外部存儲器中訪問任何一種類型的數(shù)據(jù),。這就說明可以通過設(shè)置IOSTRB、STRB0和STRB1的選通信號來尋址整個外部存儲器空間,。例如,,一個32位外部存儲器可以被設(shè)定為只存放一個32位的雙字,但是也可以被分為具有2個連續(xù)地址的16位字或者4個連續(xù)地址的8位字節(jié),。反之,,一個32位雙字可以放在一個32位外部存儲器中,也可以放在2個16位或4個8位寬度的外部存儲器中,。

  TMS320C32內(nèi)部總共提供了64 MB的存儲器映射空間,。其中,STRB0所對應(yīng)的存儲映像區(qū)間是不連續(xù)的兩段區(qū)問,,一段是03FH~7FFFFFH(共31.999 MB),,另一段是880000H~8FFFFFH(共2 MB);STRBl所對應(yīng)的存儲映像區(qū)間是900000H~FFFFFFH(共28 MB);IOSTRB所對應(yīng)的存儲映像區(qū)間是810000H~82FFFFH(共512KB)。當(dāng)外部總線訪問這些空間時,,相應(yīng)的選通信號就使能,。

  負(fù)責(zé)控制信號的輸入和輸出叫做使能,是一個動詞,,英文‘Enable’,。使能通俗點說就是一個“允許”信號,進給使能也就是允許進給的信號,,也就是說當(dāng)進給使能信號有效的時候電機才能轉(zhuǎn)動,。一般的數(shù)控系統(tǒng)會將電機的進給使能信號跟急停開關(guān)和行程限位開關(guān)串聯(lián)起來,當(dāng)按下急停開關(guān)或者電機運轉(zhuǎn)超出行程后,,進給使能信號被斷開,,電機不能繼續(xù)轉(zhuǎn)動,從而保護機床在安全的行程內(nèi)運行,。

  2 TMS320C32的3種存儲器設(shè)計方案

  2.1 8位存儲器寬度

  設(shè)計為8位的存儲器,,其硬件接線方案如圖2所示。STRBx_B3/Al_1和STRBx_B2/A_2引腳作為地址引腳,,STRBx_B0引腳作為片選引腳,,而STRBx_B1則不用。

  

 

  圖2,,8位存儲器的硬件接線圖

  

 

  圖3,,16位存儲器的硬件接線圖

  設(shè)計為16位的存儲器,,其硬件接線方案如圖3所示。STRBx_B3/A_1引腳作為地址引腳,,STRBx_B0和STRBx_B1引腳作為片選引腳,,而STRBx_B2/A_2則不用。

  2.3 32位存儲器寬度

  設(shè)計為32位的存儲器,,其硬件接線方案如下圖4所示,。STRBx所有的引腳都設(shè)置成片選引腳。

  

 

  圖4,,32位存儲器的硬件接線圖

  3 存儲器映射外部總線控制寄存器

 

  綜上所述,,TMS320C32可以從8/16/32位存儲器中訪問8/16/32位數(shù)據(jù),或者從16/32位存儲器中執(zhí)行32位的程序,。但是如果內(nèi)外部數(shù)據(jù)的位數(shù)不一致時該如何處理呢?C32的外部總線控制寄存器可以根據(jù)相應(yīng)控制位的值,,自動對存儲器接口的寬度進行相應(yīng)的調(diào)整。下面則對總線控制寄存器作出一個詳細(xì)的介紹,。

  STRBo,、STRBl以及IOSTRB控制寄存器在存儲器映射空間的物理地址分別是808064H、808068H和808060H,,并且都是32位的,,各位的定義如圖5、圖6和圖7所示,。

  

 

  圖5,,STRBo控制寄存器

  

 

  圖6,STRBl控制寄存器

  

 

  圖7,,IOSTRB控制寄存器

  從圖5和圖6中我們可以看到,,STRBx控制寄存器的第18、19位是用來控制存儲器的寬度的,,而第16,、17位是用來控制數(shù)據(jù)寬度的,具體定義如表1所列,。

  4 存儲器接口實例

  圖8給出了一個實際TMS320C32存儲囂接口的電路圖,。16位存儲器由2片128 K8位的SRAM構(gòu)成,32位存儲器由4片128 K8位的SRAM構(gòu)成,,STRB0的4組選通信號接16位外部存儲器,,STRBl的4組選通信號接32位外部存儲器。為說明數(shù)據(jù)在存儲器及處理器中的存放格式,,本文設(shè)計了兩種存儲器接口電路:一是在16位存儲器中存放32位數(shù)據(jù);二是在32位存儲器中存放32位數(shù)據(jù),。

  

 

  圖8,TMS320C32存儲囂接口的電路圖

  在16位存儲器中存放32位數(shù)據(jù)時,,STRB0_B3/A1作為地址引腳與外部存儲器的AO相接,,STRB0_B0和STRB0_B1作為片選信號,STRBx_B2/A_2不用,。由于數(shù)據(jù)寬度大于存儲器寬度,,所以在外部存儲器偶地址中存放32位數(shù)據(jù)的低16位,奇地址中存放32位數(shù)據(jù)的高16位,,外部存儲器的地址為OH~lFFFFH,,對應(yīng)的在C32存儲映射中的地址為OH~0FFFFH。當(dāng)一條指令向邏輯地址OH中裝入一個32位數(shù)據(jù)時,,存儲器接口必須向外部16位存儲器執(zhí)行兩個指令周期,。這兩個指令周期訪問2個連續(xù)的外部存儲器地址OH和1H,從而完成對32位數(shù)據(jù)的操作,。

  當(dāng)在外部32位存儲器中存放32位數(shù)據(jù)時,,STRBl的4個引腳都設(shè)置為片選引腳。這時數(shù)據(jù)寬度與外部存儲器寬度一致,,由于是STRBl使能,,所以128 K32位的外部存儲空間與C32存儲器映射的900000H~91FFFFH相對應(yīng)。

  當(dāng)接口電路設(shè)計為16位時,,其物理地址等于邏輯地址右移l位,,即DSP的地址線A00接在SRAM的A1上;當(dāng)接口電路設(shè)計為32位時,其物理地址等于邏輯地址,,即DSP的地址線A00接在SRAM的A0上,。

  5 小結(jié)

  由于C32可以非常靈活地調(diào)整其存儲器接口寬度,使得存儲器接口電路的設(shè)計更加的靈活,,因此非常適用于電機或電力系統(tǒng)等實時系統(tǒng)的數(shù)據(jù)采集與處理,。

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載,。