基于TMS320C32 DSP的存儲(chǔ)器接口設(shè)計(jì)
3 存儲(chǔ)器映射外部總線控制寄存器
如上所述,TMS320C32可以從8/16/32位存儲(chǔ)器中訪問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位是用來控制存儲(chǔ)器寬度的,第16、17位是用來控制數(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ǔ)器。為說明數(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è)指令周期訪問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í)際需要來自動(dòng)地調(diào)節(jié)存儲(chǔ)器接口寬度。由于C32能夠靈活地調(diào)整其存儲(chǔ)器接口寬度,使得存儲(chǔ)器接口電路的設(shè)計(jì)更加靈活,因此非常適合用于電機(jī)或電力系統(tǒng)等實(shí)時(shí)系統(tǒng)的數(shù)據(jù)采集與處理。
評(píng)論