摘要 通過(guò)對(duì)高性能浮點(diǎn)DSP" rel="http://www.eeworld.com.cn/my/keyad/ti.html" target="_blank">DSP處理器TMS320C32的外部存儲(chǔ)器接口的研究,,介紹其存儲(chǔ)器結(jié)構(gòu)的特點(diǎn),并根據(jù)其特點(diǎn)給出3種設(shè)計(jì)方案,。這3種不同的方案,,分別可以實(shí)現(xiàn)3種寬度的存儲(chǔ)器接口,即8位,、16位和32位的外部數(shù)據(jù)訪問(wèn)或是16位和32住的外部程序訪問(wèn),。這一特點(diǎn)使得TMS320C32芯片非常適合于時(shí)變系統(tǒng)的控制與處理。
TMS320C32是美國(guó)TI公司生產(chǎn)的一款浮點(diǎn)數(shù)字信號(hào)處理器(DSP),,其CPU是在TMS320C30和TMS320C3l的基礎(chǔ)上進(jìn)行改進(jìn)和簡(jiǎn)化來(lái)的,,是C3X系列中的增強(qiáng)版。增強(qiáng)的功能有:可變寬度的存儲(chǔ)器接口,,更快的指令周期,,節(jié)電模式,可重定位的中斷向量表,,以及外部中斷可由電平的邊沿或電平觸發(fā)等,。
1 TMS320C32的外部存儲(chǔ)器接口的特點(diǎn)
TMS320C32是一個(gè)32位微處理器,它可通過(guò)24位地址總線,、32位數(shù)據(jù)總線和選通信號(hào)對(duì)外部存儲(chǔ)器進(jìn)行訪問(wèn),。其外部存儲(chǔ)器接口結(jié)構(gòu)如圖l所示。
圖l中,,引腳PRGW是用來(lái)配置外部程序存儲(chǔ)器寬度的,。當(dāng)PRGW引腳為低電平時(shí)程序存儲(chǔ)器寬度為16位;為高電平時(shí)程序存儲(chǔ)器寬度為32位,。STRBO和STRBl各為一組訪問(wèn)外部存儲(chǔ)器的選通信號(hào),,各有4個(gè)信號(hào)引腳(STRBx_B3/A_1、STRBx_B2/A_2、STRBx_Bl和STRBx_B0),。從圖l中可以看出,,選通信號(hào)STRB0和STRBl能從8/16/32位存儲(chǔ)器中訪問(wèn)8/16/32位數(shù)據(jù),或從16/32位存儲(chǔ)器中執(zhí)行32位程序,;IOSTRB是外設(shè)I/O的選通信號(hào)引腳,,它只能從32位寬度的存儲(chǔ)器中訪問(wèn)32位的數(shù)據(jù)和程序。
可以通過(guò)對(duì)STRBx和IOSTRB的設(shè)置,,從8/16/32位的存儲(chǔ)器中訪問(wèn)8/16/32位數(shù)據(jù)或程序,。也就是說(shuō),可以從任何一個(gè)外部存儲(chǔ)器中訪同任何一種類(lèi)型的數(shù)據(jù),。這就說(shuō)明可以通過(guò)設(shè)置IOSTRB,、STRB0和STRB1的選通信號(hào)來(lái)尋址整個(gè)外部存儲(chǔ)器空間。比如,,一個(gè)32位外部存儲(chǔ)器可以被設(shè)定為存放一個(gè)32位的雙字,,但也可以被分為具有2個(gè)連續(xù)地址的16位字或4個(gè)連續(xù)地址的8位字節(jié)。反之,,一個(gè)32位雙字可放在一個(gè)32位外部存儲(chǔ)器中,,也可放在2個(gè)16位或4個(gè)8位寬度的外部存儲(chǔ)器中。
TMS320C32內(nèi)部總共提供了64 MB的存儲(chǔ)器映射空間,。其中,,STRB0所對(duì)應(yīng)的存儲(chǔ)映像區(qū)間是不連續(xù)的兩段區(qū)問(wèn),一段是03FH~7FFFFFH(共31.999 MB),,另一段是880000H~8FFFFFH(共2 MB),;STRBl所對(duì)應(yīng)的存儲(chǔ)映像區(qū)間是900000H~FFFFFFH(共28 MB);IOSTRB所對(duì)應(yīng)的存儲(chǔ)映像區(qū)間是810000H~82FFFFH(共512KB),。當(dāng)外部總線訪問(wèn)這些空間時(shí),,相應(yīng)的選通信號(hào)就使能。
2 TMS320C32的3種存儲(chǔ)器設(shè)計(jì)方案
2.1 8位存儲(chǔ)器寬度
設(shè)計(jì)為8位的存儲(chǔ)器,,其硬件接線方案如圖2所示,。STRBx_B3/Al_1和STRBx_B2/A_2引腳作為地址引腳,STRBx_B0引腳作為片選引腳,,而STRBx_B1不用,。
2.2 16位存儲(chǔ)器寬度
設(shè)計(jì)為16位的存儲(chǔ)器,其硬件接線方案如圖3所示,。STRBx_B3/A_1引腳作為地址引腳,,STRBx_B0和STRBx_B1引腳作為片選引腳,而STRBx_B2/A_2不用,。
2.3 32位存儲(chǔ)器寬度
設(shè)計(jì)為32位的存儲(chǔ)器,,其硬件接線方案如圖4所示,。STRBx所有的引腳都設(shè)置為片選引腳。
3 存儲(chǔ)器映射外部總線控制寄存器
如上所述,,TMS320C32可以從8/16/32位存儲(chǔ)器中訪問(wèn)8/16/32位數(shù)據(jù),,或從16/32位存儲(chǔ)器中執(zhí)行32位的程序。但如果內(nèi)外部數(shù)據(jù)的位數(shù)不一致該如何處理呢?C32的外部總線控制寄存器可根據(jù)相應(yīng)控制位的值,,自動(dòng)調(diào)整存儲(chǔ)器接口寬度,。下面對(duì)總線控制寄存器作具體的介紹。
STRBo,、STRBl以及IOSTRB控制寄存器在存儲(chǔ)器映射空間的物理地址分別是808064H,、808068H和808060H,且都是32位的,,各位的定義如圖5,、圖6和圖7所示。
從圖5和圖6中可以看出,,STRBx控制寄存器的第18,、19位是用來(lái)控制存儲(chǔ)器寬度的,第16,、17位是用來(lái)控制數(shù)據(jù)寬度的,,具體定義如表1所列。
4 存儲(chǔ)器接口實(shí)例
圖8給出了一個(gè)實(shí)際TMS320C32存儲(chǔ)囂接口的電路圖,。16位存儲(chǔ)器由2片128 K8位的SRAM構(gòu)成,32位存儲(chǔ)器由4片128 K8位的SRAM構(gòu)成,,STRB0的4組選通信號(hào)接16位外部存儲(chǔ)器,,STRBl的4組選通信號(hào)接32位外部存儲(chǔ)器。為說(shuō)明數(shù)據(jù)在存儲(chǔ)器及處理器中的存放格式,,本文設(shè)計(jì)了兩種存儲(chǔ)器接口電路:一是在16位存儲(chǔ)器中存放32位數(shù)據(jù),;二是在32位存儲(chǔ)器中存放32位數(shù)據(jù)。
在16位存儲(chǔ)器中存放32位數(shù)據(jù)時(shí),,STRB0_B3/A1作為地址引腳與外部存儲(chǔ)器的AO相接,,STRB0_B0和STRB0_B1作為片選信號(hào),STRBx_B2/A_2不用,。由于數(shù)據(jù)寬度大于存儲(chǔ)器寬度,,所以在外部存儲(chǔ)器偶地址中存放32位數(shù)據(jù)的低16位,奇地址中存放32位數(shù)據(jù)的高16位,,外部存儲(chǔ)器的地址為OH~lFFFFH,,對(duì)應(yīng)的在C32存儲(chǔ)映射中的地址為OH~0FFFFH。當(dāng)一條指令向邏輯地址OH中裝入一個(gè)32位數(shù)據(jù)時(shí),,存儲(chǔ)器接口必須向外部16位存儲(chǔ)器執(zhí)行兩個(gè)指令周期,。這兩個(gè)指令周期訪問(wèn)2個(gè)連續(xù)的外部存儲(chǔ)器地址OH和1H,,從而完成對(duì)32位數(shù)據(jù)的操作。
當(dāng)在外部32位存儲(chǔ)器中存放32位數(shù)據(jù)時(shí),,STRBl的4個(gè)引腳都設(shè)置為片選引腳,。這時(shí)數(shù)據(jù)寬度與外部存儲(chǔ)器寬度一致,由于是STRBl使能,,所以128 K32位的外部存儲(chǔ)空間與C32存儲(chǔ)器映射的900000H~91FFFFH相對(duì)應(yīng),。
當(dāng)接口電路設(shè)計(jì)為16位時(shí),其物理地址等于邏輯地址右移l位,,即DSP的地址線A00接在SRAM的A1上,;當(dāng)接口電路設(shè)計(jì)為32位時(shí),其物理地址等于邏輯地址,,即DSP的地址線A00接在SRAM的A0上,。
5 小結(jié)
本文主要介紹了如何根據(jù)實(shí)際需要來(lái)自動(dòng)地調(diào)節(jié)存儲(chǔ)器接口寬度。由于C32能夠靈活地調(diào)整其存儲(chǔ)器接口寬度,,使得存儲(chǔ)器接口電路的設(shè)計(jì)更加靈活,,因此非常適合用于電機(jī)或電力系統(tǒng)等實(shí)時(shí)系統(tǒng)的數(shù)據(jù)采集與處理。