DSP完整課件第課_第1頁
DSP完整課件第課_第2頁
DSP完整課件第課_第3頁
DSP完整課件第課_第4頁
DSP完整課件第課_第5頁
已閱讀5頁,還剩64頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

第2章TMS320LF240xDSP結(jié)構(gòu)及內(nèi)部資源介紹2.5中央處理單元附:鎖相環(huán)(PLL)時鐘模塊和低功耗模式作業(yè):7)CPU的主要功能8)ARn的作用 9)PLL的作用2.1

CPU功能模塊

CPU是DSP的核心部件,主要進(jìn)行取數(shù)、運算(加、乘、移位等)、送數(shù)的操作。包括:輸入定標(biāo)移位器、中央算術(shù)邏輯單元(CALU)和乘法單元等。

定標(biāo)移位器對輸入數(shù)據(jù)進(jìn)行0-15位左移。

左移時,輸出數(shù)據(jù)的最低有效位(LSB)為0,最高有效位(MSB)根據(jù)狀態(tài)寄存器ST1的符號擴展控制位SXM的值來決定是否需要進(jìn)行符號擴展。(1)當(dāng)SXM=1時,高位進(jìn)行符號擴展;(2)當(dāng)SXM=0時,高位填0。移位次數(shù)由包含在指令中的常量或臨時寄存器(TREG)中的值來指定。2.5.1輸入定標(biāo)移位器

用于完成不同數(shù)據(jù)格式之間的轉(zhuǎn)換。

因為240x芯片的數(shù)據(jù)總線是16位,而中央算術(shù)邏輯單元(CALU)是32位,必須把16位數(shù)據(jù)轉(zhuǎn)換為32位,實現(xiàn)數(shù)據(jù)格式轉(zhuǎn)換。因此,輸入定標(biāo)移位器的16位輸入與數(shù)據(jù)總線相連,32位輸出與CALU單元相連。輸入定標(biāo)移位器作為從數(shù)據(jù)總線到CALU之間的數(shù)據(jù)傳輸路徑的一部分,不會額外占用CPU的時鐘開銷。

16×16位的硬件乘法器,可以在一個機器周期內(nèi)完成有符號或無符號數(shù)的乘法運算,乘積結(jié)果為32位。

工作原理:

TREG的內(nèi)容和來自數(shù)據(jù)存儲器或程序存儲器中的數(shù)相乘,乘積存放到乘積寄存器(PREG)中(32位)。然后,通過乘積移位器(PSCALE)將PREG的值在送往CALU或進(jìn)行移位定標(biāo)處理送入數(shù)據(jù)存儲器。2.5.2乘法器PM決定移位位數(shù)

乘積移位器根據(jù)狀態(tài)寄存器ST1中的PM值的不同,可進(jìn)行4種不同形式的移位操作。PM移位作用和意義00不移位乘積送到CALU或數(shù)據(jù)寫總線,不移位01左移1位移去二進(jìn)制補碼乘法產(chǎn)生的冗余符號位,產(chǎn)生Q31格式的乘積10左移4位當(dāng)與一個13位的常數(shù)相乘時,移去在16X13位(常數(shù))二進(jìn)制補碼產(chǎn)生的4位冗余符號位,產(chǎn)生Q31格式的乘積11右移6位對乘積結(jié)果定標(biāo),以使得運行128次的乘積累加而累加器不會溢出注:移位后,PREG中的值不變。2.5.2乘法器由32位的中央算術(shù)邏輯單元(CALU)、32位的累加器(ACC)以及32位的輸出移位器組成。2.5.3中央算術(shù)邏輯單元(2)溢出方式位(OVM)決定累加器如何處理算術(shù)運算的溢出,當(dāng)OVM=1且有溢出發(fā)生時,累加器自動填充最大值或最小值;當(dāng)OVM=0時,累加器中的結(jié)果正常溢出。(3)當(dāng)未檢測到累加器溢出時,其值為0;當(dāng)溢出發(fā)生時,OV位被置1。

(4)根據(jù)被測試位的結(jié)果,測試控制標(biāo)志位(TC)位被置1或0。注意幾個問題:(1)當(dāng)加到累加器或從累加器減或?qū)⒗奂悠鲾?shù)值移1位或循環(huán)移1位時將影響進(jìn)位標(biāo)志位C。2.5.3中央算術(shù)邏輯單元存放CALU中的運算結(jié)果,其存放的數(shù)據(jù)可以執(zhí)行單一的移位或循環(huán)操作。其中的高位或低位字可以進(jìn)入輸出定標(biāo)移位器進(jìn)行移位后再存放進(jìn)數(shù)據(jù)存儲器。與ACC有關(guān)的狀態(tài)位有:1)進(jìn)位標(biāo)志位C①

當(dāng)累加器中的數(shù)據(jù)相加時,結(jié)果有進(jìn)位或減法無借位時C=1;相減時,結(jié)果有借位或或加法無進(jìn)位時,C=0。②當(dāng)累加器中的數(shù)據(jù)被移動1位時,累加器中的最低位或最高位進(jìn)入C。累加器(ACC)2)溢出方式控制位OVM

OVM決定ACC運算結(jié)果發(fā)生溢出時,是否進(jìn)行溢出處理。①

若OVM=1,當(dāng)運算結(jié)果發(fā)生溢出時,ACC結(jié)果被設(shè)定為確定值:若正向溢出,ACC=7FFFFFFFH(最大正數(shù));若負(fù)向溢出,ACC=80000000H(最小負(fù)數(shù))。②若OVM=0,ACC溢出為0.3)溢出標(biāo)志位OV當(dāng)累加器發(fā)生溢出時,OV=1,反之為0。累加器(ACC)4)測試/控制標(biāo)志位TC

根據(jù)被測試位的值置1,或清0。

與累加器有關(guān)的轉(zhuǎn)移指令主要取決于以上標(biāo)志位狀態(tài),及累加器的值。2.5.5輸出數(shù)據(jù)定標(biāo)移位器根據(jù)相應(yīng)的存儲指令中指定的位數(shù),將累加器輸出的內(nèi)容左移0~7位,然后將移位器的高16位或低16位存儲到數(shù)據(jù)RAM中。

注意:累加器中的數(shù)據(jù)不變狀態(tài)寄存器ST0和ST1狀態(tài)寄存器ST0和ST1,含有各種狀態(tài)和控制位。狀態(tài)寄存器的內(nèi)容可以被保存到數(shù)據(jù)寄存器,也可從數(shù)據(jù)寄存器中進(jìn)行加載。1)狀態(tài)寄存器ST0

位15~1312111098~0名

稱ARPOVOVM1INTMDP復(fù)位值X0X11XARP:輔助寄存器指針。利用MAR、LST指令可以修改狀態(tài)寄存器ST0中的輔助寄存器指針(ARP)。在間接尋址時用于選擇當(dāng)前輔助寄存器。在ARP被裝載時,原先的ARP值被復(fù)制到ARB中。狀態(tài)寄存器ST0和ST11)狀態(tài)寄存器ST0

位15~1312111098~0名

稱ARPOVOVM1INTMDP復(fù)位值X0X11XOV:溢出標(biāo)志位。當(dāng)中央算術(shù)邏輯單元發(fā)生溢出時,OV=1,直到發(fā)生復(fù)位、執(zhí)行以O(shè)V(溢出)或NOV(不溢出)為條件的轉(zhuǎn)移指令、或執(zhí)行LST指令時被清0。OVM:溢出方式位。OVM決定CALU發(fā)生溢出時的處理方式。當(dāng)OVM=0時,累加器中結(jié)果正常溢出;當(dāng)OVM=1時,根據(jù)溢出的情況,累加器被設(shè)置成它的最大正值(7FFFFFFFh)或負(fù)值(80000000h)。SETC、CLRC、LST指令均可修改OVM。

狀態(tài)寄存器ST0和ST11)狀態(tài)寄存器ST0

位15~1312111098~0名

稱ARPOVOVM1INTMDP復(fù)位值X0X11XINTM:全局中斷屏蔽控制位。全局屏蔽或使能所有的可屏蔽中斷。INTM=0時,使能所有可屏蔽的中斷;INTM=1時,禁止所有的可屏蔽中斷。復(fù)位或可屏蔽中斷發(fā)生時(TRAP指令除外),INTM置1,禁止中斷。DP:數(shù)據(jù)存儲器頁指針。9位的DP指針和指令字中的低7位連接在一起,形成直接尋址中的16位數(shù)據(jù)存儲單元地址??赏ㄟ^LST、LDP指令對其修改。狀態(tài)寄存器ST0和ST12)狀態(tài)寄存器ST1

15~13121110987654321~0ARBCNFTCSXMC1111XF11PMX0X11111111100ARB:輔助寄存器的緩沖器指針。當(dāng)ARP被裝載時,ARP原來的值就被復(fù)制到ARB中;當(dāng)用LST指令裝載ARB時,同樣的值也被復(fù)制到ARP中。CNF:片內(nèi)DARAM配置位。當(dāng)CNF=0時,可配置的DARAM映射到數(shù)據(jù)存儲空間;當(dāng)CNF=1時,可配置的DARAM映射到程序存儲空間。可通過SETC、CLRC指令對其進(jìn)行修改。XF:XF引腳狀態(tài)位。該位決定XF引腳的狀態(tài)。SETC指令可對該位進(jìn)行置位,CLRC指令可對其進(jìn)行清0。

狀態(tài)寄存器ST0和ST12)狀態(tài)寄存器ST1

15~13121110987654321~0ARBCNFTCSXMC1111XF11PMX0X11111111100TC:測試/控制標(biāo)志位。在下列情況下TC位被置1:由BIT或BITT測試的某位為1時;用NORM指令對累加器最高的兩位進(jìn)行異或結(jié)果為真時;用CMPR指令對當(dāng)前ARn與AR0比較條件成立時。編程時,根據(jù)TC位的狀態(tài)可進(jìn)行程序的條件跳轉(zhuǎn)、調(diào)用和返回。SXM:符號擴展方式位。SXM決定是否進(jìn)行符號擴展。當(dāng)SXM=0時,禁止符號擴展;當(dāng)SXM=1時,數(shù)據(jù)被CALU使用之前進(jìn)行符號擴展。執(zhí)行ADDS和SUBS指令時禁止符號擴展。通過SETC、CLRC指令可對其置位或復(fù)位。

狀態(tài)寄存器ST0和ST12)狀態(tài)寄存器ST1

15~13121110987654321~0ARBCNFTCSXMC1111XF11PMX0X11111111100C:進(jìn)位位。加法結(jié)果產(chǎn)生進(jìn)位時置1,減法結(jié)果產(chǎn)生借位時被清0。執(zhí)行帶16位移位的ADD指令時,若產(chǎn)生進(jìn)位時置1,否則不影響該位;在執(zhí)行16位移位的SUB指令,若產(chǎn)生借位時置0,否則不影響該位。PM:乘積移位方式位。SPM、LST指令可以修改PM的值。00不移位乘積送到CALU或數(shù)據(jù)寫總線,不移位01左移1位移去二進(jìn)制補碼乘法產(chǎn)生的冗余符號位,產(chǎn)生Q31格式的乘積10左移4位當(dāng)與一個13位的常數(shù)相乘時,移去在16X13位(常數(shù))二進(jìn)制補碼產(chǎn)生的4位冗余符號位,產(chǎn)生Q31格式的乘積11右移6位對乘積結(jié)果定標(biāo),以使得運行128次的乘積累加而累加器不會溢出數(shù)據(jù)寫總線數(shù)據(jù)讀地址總線數(shù)據(jù)寫地址總線數(shù)據(jù)讀總線ARBARPMUX指令寄存器MUXARUXAR7AR0AR1AR2AR6AR5AR4AR33LSBs8LSBs3161616161616161633161616162.5.4

輔助寄存器算術(shù)單元(ARAU)

主要功能:

在CALU操作的同時執(zhí)行8個輔助寄存器(AR0~AR7)中的算術(shù)運算。提供了靈活而有效的間接尋址功能,使用任何一個輔助寄存器提供的16位地址,就可以訪問64K字的數(shù)據(jù)空間。

2.5.4

輔助寄存器算術(shù)單元(ARAU)

輔助寄存器ARx通常用作地址間接指針,其中存放的數(shù)據(jù)即為數(shù)據(jù)存儲器地址。8個輔助寄存器中,由狀態(tài)寄存器ST0中的輔助寄存器指針(ARP)指定的ARn為當(dāng)前ARn。

在使用當(dāng)前ARn時,其內(nèi)容即為將被訪問的數(shù)據(jù)存儲器的地址。如果當(dāng)前程序指令需要從數(shù)據(jù)存儲器中讀取數(shù)據(jù),則ARn將該數(shù)據(jù)單元的地址送至數(shù)據(jù)讀地址總線;

如果當(dāng)前程序指令需向某個數(shù)據(jù)寄存器單元寫數(shù)據(jù),則ARn將該地址送至數(shù)據(jù)寫地址總線。

執(zhí)行完對數(shù)據(jù)存儲器的操作后,可以通過對輔助寄存器的內(nèi)容的加、減來將輔助寄存器指向下一個即將被操作的數(shù)據(jù)單元。

鎖相環(huán)(PLL)時鐘模塊和低功耗模式

鎖相環(huán)(PLL)時鐘模塊功能:,將較低的外部時鐘在芯片內(nèi)部倍頻,既可實現(xiàn)高工作主頻,又有利于整個電路板的電磁兼容性,還可以控制低功耗操作。LF240xPLL的倍頻系數(shù)從0.5~4,由系統(tǒng)控制狀態(tài)寄存器(SCSR1)的位11~9決定。1

鎖相環(huán)(PLL)CLKPS2CLKPS1CLKPS0系統(tǒng)時鐘倍頻0004*fin0012*fin0101.33*fin0111*fin1000.8*fin1010.66*fin1100.57*fin1110.5*fin注意:復(fù)位時,PLL的倍頻系數(shù)為0.5

鎖相環(huán)(PLL)1)鎖相環(huán)的時鐘模塊電路fin

XTAL1/CLKINXTAL2XTALOSC

PLL

PLL選擇(SCSR1.11:9)CLKOUT

鎖相環(huán)(PLL)2)外部濾波器電路回路PLL有2個外接濾波輸入引腳:PLLF,PLLF2

PLL模塊使用外部濾波電路回路來抑制信號抖動和電磁干擾,使信號抖動和干擾影響最小。在設(shè)計PCB板時,所有連接PLL的導(dǎo)線必須盡可能的短。PLLVCCAVSS與最近的Vss連接時鐘模塊

鎖相環(huán)(PLL)2)外部濾波器電路回路(1)PLL的電源端PLLVCCA的連接也要注意連線要短。在PLLVCCA與地端之間應(yīng)該接旁路電容,還可以增加低通濾波電路。

注意:可選低通濾波電路旁路電容(0.01~0.1uF陶瓷電容)(2)如果低通的截止頻率為10MHz,可以改善信號的抖動性能,并減少電磁干擾。(3)使這些導(dǎo)線、芯片和旁路電容形成的環(huán)路面積最小,以減少電磁干擾。(4)避免附近有噪聲的導(dǎo)線連接到時鐘模塊。

鎖相環(huán)(PLL)3)內(nèi)部時鐘由外接晶振與內(nèi)部時鐘電路(PLL鎖相環(huán))共同組成。4)外部時鐘直接將外電路產(chǎn)生的時鐘信號連接到時鐘信號輸入端。5)晶振的使用

有源晶振、無源晶振。

鎖相環(huán)(PLL)6)PLL旁路方式通過復(fù)位時拉低TRST、TMS、TMS2電平實現(xiàn)。此時,系統(tǒng)控制狀態(tài)寄存器SCSR1.11~.9位無效。PLL旁路方式時鐘規(guī)范:(1)內(nèi)部時鐘方式最小和最大的CLKIN頻率分別為4MHz和20MHz。(2)外部時鐘方式最小和最大的CLKIN頻率分別為4MHz和30MHz(2407A為40MHz)。且改變系統(tǒng)時鐘頻率的唯一方法是改變CLKIN的輸入頻率。且工作主頻與時鐘頻率相同,也不需要連接外部濾波器元件。

看門狗定時器時鐘當(dāng)CPU工作于低功耗模式下,看門狗能持續(xù)計數(shù)

WDCLK引腳為看門狗電路的時鐘輸入端。WDCLK的時鐘來自于時鐘輸出引腳CLKOUT。WDCLK=CLKOUT/512

當(dāng)CPU的掛起信號有效時,WDCLK將被停止。低功耗模式低功耗模式:CPU時鐘關(guān)閉,進(jìn)入睡眠狀態(tài)。進(jìn)入方法:執(zhí)行IDLE指令。退出方法:中斷請求或復(fù)位。

1)時鐘域(1)CPU時鐘域:包含大部分CPU邏輯的時鐘;(2)系統(tǒng)時鐘域:包含外設(shè)時鐘(來自于CLKOUT分頻和用于CPU中斷邏輯的時鐘。低功耗模式分類IDLE1模式:當(dāng)CPU進(jìn)入睡眠狀態(tài),CPU時鐘域停止,系統(tǒng)時鐘域繼續(xù)工作IDLE2模式:當(dāng)CPU進(jìn)入睡眠狀態(tài),CPU時鐘域和系統(tǒng)時鐘域均停止。功耗更低HALT模式:CPU時鐘域和系統(tǒng)時鐘域均停止,且振蕩器(輸入到PLL的時鐘)和WDCLK關(guān)閉,功耗最低低功耗模式的選擇:

執(zhí)行IDLE指令時,系統(tǒng)控制狀態(tài)寄存器SCSR1.13,12位控制進(jìn)入不同的模式。00--IDLE1模式

01--IDLE2模式1x--HALT模式2)喚醒、退出低功耗模式(1)復(fù)位:退出IDLE模式(2)外部中斷:XINTx不能退出HALT模式(3)喚醒中斷:有些外設(shè)具有啟動器件時鐘的能力,然后產(chǎn)生一個中斷去響應(yīng)一定的外部事件。

低功耗模式

進(jìn)入HALT模式之前,片內(nèi)Flash模塊可以被斷電,使電流消耗降到最低。片內(nèi)Flash的斷電與上電

7)CPU的主要功能8)ARn的作用9)PLL的作用作業(yè)第2章6節(jié)存儲器和I/O空間

TMSLF240xDSP具有16位地址線,可訪問分別訪問這三個獨立的地址空間,每個空間的容量均為64K字: (1)程序存儲器空間-64K字; (2)數(shù)據(jù)存儲器空間-64K字; (3)I/O空間-64K字。注意:LF240xDSP的所有片內(nèi)外設(shè)的寄存器均映射在數(shù)據(jù)存儲器空間。

“LF”

-片內(nèi)有Flash存儲器;“LC”

-片內(nèi)有CMOS工藝的程序存儲器,LF2407/LF2407A片內(nèi):2K字的單訪問RAM(SARAM)544字的雙訪問RAM-DARAM(B0塊-256字;B1塊-256字;B2塊-32字)6.1片內(nèi)存儲器

雙訪問RAM(DARAM)

一個機器周期內(nèi)可被訪問2次:主相寫數(shù)據(jù)到DARAM;而從相從DARAM讀出數(shù)據(jù)。從而大大提高運行速度。544字DARAM分為三塊:B0、B1和B2該存儲器空間主要用來保存數(shù)據(jù),但是B0塊也可以用來保存程序。B0塊配置成數(shù)據(jù)存儲器空間還是程序存儲器空間,要由狀態(tài)寄存器ST1的CNF位來決定:(1)CNF=1,B0映射到程序存儲器空間;(2)CNF=0,B0映射到數(shù)據(jù)存儲器空間。6.1單訪問RAM(SARAM)片內(nèi)有2K字的單訪問RAM(SARAM),在一個機器周期內(nèi)只能被訪問1次。例如,如果要將累加器的值保存,且裝載一個新值到累加器,在SARAM中,完成這個任務(wù)需要兩個時鐘周期,而在DARAM中只需要一個時鐘周期。利用軟件可將SARAM配置成外部存儲器或內(nèi)部SARAM。Flash程序存儲器片內(nèi)的Flash存儲器映射到程序存儲器空間。MP/MC*引腳決定是訪問片內(nèi)的程序存儲器(Flash)還是訪問片外的程序存儲器。

Flash程序存儲器使用電擦除的方式,進(jìn)行程序的修改和開發(fā)。Flash模塊特點:運行在3.3V電壓模式。對Flash編程時需要在VCCP上有5V(±5%)電壓供電。Flash有多個向量,用來保護(hù)它,防止被擦除。Flash的編程是由CPU來實現(xiàn)的。Flash控制方式寄存器(FCMR)Flash模塊有4個寄存器??刂茖lash的操作。在任意時刻,用戶可以訪問Flash模塊中的存儲器陣

列,也可以訪問控制寄存器,但不能同時訪問。模塊有一個Flash控制方式寄存器來選擇兩種訪問模式。該寄存器映射在內(nèi)部I/O空間的FF0Fh,這是一個不能讀的特殊功能寄存器,它可在Flash的存儲器陣列方式下使能Flash,用來對Flash陣列編程。該寄存器的功能如下:

使用OUT指令,可以將Flash模塊置于寄存器訪問

模式,被使用的存儲器數(shù)據(jù)操作數(shù)是無意義的。例:OUTdummy,0FF0Fh

;選擇寄存器訪問方式使用IN指令,可將Flash模塊置于存儲器陣列訪問模式,被使用的數(shù)據(jù)操作數(shù)是無意義的。例如:INdummy,0FF0Fh ;選擇存儲器陣列訪問方式6.1

程序存儲器

程序存儲器空間尋址范圍為64K,包括了片內(nèi)DARAM和片內(nèi)Flash。圖5-1所示為LF2407A的程序存儲器空間的映射。

有兩個因素決定程序存儲器的配置:(1)CNF位。CNF位是狀態(tài)寄存器ST1的第12位,決定DARAM中的B0塊配置在數(shù)據(jù)存儲器空間,還是配置在程序存儲器空間。0:256字的B0塊被映射到數(shù)據(jù)存儲器空間。1:256字的B0塊被映射到程序存儲器空間。復(fù)位時,CNF=0,B0塊被映射到數(shù)據(jù)存儲器空間。(2)MP/MC*引腳。該引腳決定是從片內(nèi)Flash讀取指令。還是從外部程序存儲器讀取指令。

0:微控制器方式。此時訪問的是片內(nèi)程序存儲器(片內(nèi)Flash)0000h-7FFFh空間。

1:微處理器方式。此時訪問的是片外程序存儲器的0000h-7FFFh空間。無論MP/MC*引腳為何值,LF240xDSP都是從程序存儲器空間的0000h單元開始執(zhí)行程序。6.2

數(shù)據(jù)存儲器尋址范圍高達(dá)64K字:前32K字(0000h-7FFFh)是內(nèi)部數(shù)據(jù)存儲器空間,包括了DARAM和片內(nèi)外設(shè)的映射寄存器。后32K字(8000h-FFFFh)空間的存儲器為外部數(shù)據(jù)存儲器。

1.數(shù)據(jù)存儲器映射片內(nèi)有3個DARAM塊:B0、B1和B2塊。B0塊:即可為數(shù)據(jù)存儲器,也可配置為程序存儲器。B1、B2塊:只能配置為數(shù)據(jù)存儲器。圖5-2為數(shù)據(jù)存儲器空間的映射。兩種尋址方式:直接尋址和間接尋址。直接尋址時,128字為一頁的數(shù)據(jù)塊來對數(shù)據(jù)存儲器進(jìn)行尋址。圖5-3顯示了這些塊是如何被尋址的。全部64K的數(shù)據(jù)存儲器分為512個數(shù)據(jù)頁,其標(biāo)號從0-511。當(dāng)前頁由狀態(tài)寄存器ST0中的9位數(shù)據(jù)頁指針(DP)值來確定。因此,當(dāng)使用直接尋址指令時,用戶必須事先指定數(shù)據(jù)頁,并在訪問數(shù)據(jù)存儲器的指令中指定偏移量,偏移量為7位。

編程時要注意,訪問下面的數(shù)據(jù)存儲器的地址空間是非法的,并會對NMI置位。除了以下地址,任何對外設(shè)寄存器映射中的保留地址的訪問也是非法的。

0080h-00FFh 701Fh-71FFh(CAN內(nèi)部的) 0500h-07FFh 7230h-73FFh(部分在CAN內(nèi)部) 1000h-700Fh 7440h-74FFh 7030h-703Fh 7540h-75FFh 7060h-706Fh 7600h-77EFh 77F4h-7FFFh 7080h-708Fh

3.第0頁數(shù)據(jù)地址映射數(shù)據(jù)存儲器中包括存儲器映射寄存器,它們位于數(shù)據(jù)存儲器的第0頁(地址0000h-007Fh),表5-1對第0頁數(shù)據(jù)地址映射進(jìn)行詳細(xì)說明。應(yīng)用中必須注意以下幾點:(1)以零等待狀態(tài)訪問兩個映射寄存器:中斷屏蔽寄存器(IMR)和中斷標(biāo)志寄存器(IFR)(2)測試/仿真保留區(qū)被測試和仿真系統(tǒng)用于特定信息發(fā)送。因此不能對測試/仿真地址進(jìn)行操作。表5-1第0頁數(shù)據(jù)地址映射

地址 名稱 說明 0000h-0003h - 保留 0004h IMR

中斷屏蔽寄存器 0005h - 保留 0006h IFR

中斷標(biāo)志寄存器

0023h-0027h - 保留 002Bh-002Fh - 保留用作測試和仿真 0060h-007Fh B2 雙訪問RAM的B2塊4.配置數(shù)據(jù)存儲器CNF位決定B0塊的配置,CNF位是狀態(tài)寄存器ST1的第12位。

CNF=0,B0塊被映射為數(shù)據(jù)存儲器空間。復(fù)位時,CNF=0

CNF=1,B0塊被映射到程序存儲器空間。6.3I/O空間I/O空間的尋址可達(dá)64K字,圖5-4

為LF2407A的I/O空間映射。I/O空間訪問的控制信號為IS*。

所有64K的I/O空間均可以用IN和OUT指令來訪問。當(dāng)執(zhí)行IN或OUT指令時,信號IS*變?yōu)橛行?可作為外部I/O設(shè)備的片選信號。

訪問外部I/O端口與訪問程序存儲器、數(shù)據(jù)存儲器復(fù)用相同的的地址總線和數(shù)據(jù)總線。

數(shù)據(jù)總線的寬度為16位,若使用8位的外設(shè),即可使用高8位數(shù)據(jù)總線,也可使用低8位數(shù)據(jù)總線,以適應(yīng)特定應(yīng)用的需要。

當(dāng)訪問片內(nèi)的I/O空間時,信號IS*和STRB*變成無效,外部地址和數(shù)據(jù)總線僅僅當(dāng)訪問外部I/O地址時有效。下面是使用匯編語言的直接訪問I/O空間的實際例子。

IN DAT2,0AFEEh;從端口地址為AFEEh的外設(shè);讀數(shù)據(jù),并存入DAT2寄存器

OUT DAT2,0CFEFh;輸出數(shù)據(jù)存儲器DAT2的內(nèi)容

;到端口地址為CFEFh的外設(shè)

下面是訪問等待狀態(tài)發(fā)生器的寄存器的實例:

IN DAT2,0FFFFh

;從等待狀態(tài)發(fā)生器讀取數(shù)據(jù)到DAT2寄存器

OUT DAT2,0FFFFh

;將DAT2寄存器的數(shù)據(jù)寫入等待狀態(tài)發(fā)生器,使用等待狀態(tài)發(fā)生器外部存儲器接口選通信號說明LF240xDSP可以訪問如表5-2所列出的外部存儲器和I/O空間。當(dāng)DSP外擴存儲器和I/O時,需要將選通信號與外部存儲器和I/O的使能引腳相連。表5-2

外部存儲器空間訪問及片選信號外部存儲空間 空間大小(字) 選通信號程序空間 64K PS*數(shù)據(jù)空間 64K DS*I/O空間 64K IS*LF240xDSP的外部存儲器和I/O空間接口信號的功能描述如表5-3(P60)所示。

等待狀態(tài)發(fā)生器

當(dāng)訪問速度較慢的外部存儲器或外設(shè)時,CPU需要產(chǎn)生等待狀態(tài)。等待狀態(tài)是以機器周期為單位,CPU通過READY引腳可產(chǎn)生任意數(shù)目的等待狀態(tài)(延長訪問時間),可使快速的CPU訪問慢速的外部存儲器或外設(shè)。用READY信號產(chǎn)生等待狀態(tài)信號若CPU所訪問的外設(shè)沒有準(zhǔn)備好,則外設(shè)應(yīng)保持READY引腳為低,此時LF240x等待一個CLKOUT周期,并再次檢查READY腳。若READY信號沒有被使用,LF240x將在外部訪問時把READY信號拉高。READY引腳可

用來產(chǎn)生任意數(shù)目的等待狀態(tài)。

但是,當(dāng)LF240x全速運行時,它不能對第一個周期作出快速響應(yīng)來產(chǎn)生一個基于READY的等待狀態(tài)。為立即得到等待狀態(tài),應(yīng)先使用片內(nèi)等待狀態(tài)發(fā)生器,然后用READY信號產(chǎn)生其余的等待狀態(tài)。用等待狀態(tài)發(fā)生器產(chǎn)生等待狀態(tài)

等待狀態(tài)發(fā)生器可編程為指定的片外空間(數(shù)據(jù)、程序或I/O)產(chǎn)生第一個等待狀態(tài),而與READY信號的狀態(tài)無關(guān)。為了控制等待狀態(tài)發(fā)生器,就必須對映射到I/O空間的等待狀態(tài)控制寄存器(WSGR,地址為FFFFh)訪問。等待狀態(tài)控制寄存器的格式如下:位15-11:保留,讀出的值永遠(yuǎn)為0位10-9:BVIS,總線可視模式。提供了一種跟蹤內(nèi)部總線活動的方式。當(dāng)運行片內(nèi)的程序或數(shù)據(jù)存儲器時,位10-9允許各種總線的可視模式。

00-總線可視模式關(guān)(降低功耗和噪聲);

01-總線可視模式關(guān)(降低功耗和噪聲);

10-數(shù)據(jù)到地址總線輸出到外部地址總線數(shù)據(jù)到數(shù)據(jù)總線輸出到外部數(shù)據(jù)總線

11-程序到地址總線輸出到外部地址總線程序到數(shù)據(jù)總線輸出到外部數(shù)據(jù)總線位8-6:ISWS,I/O空間等待狀態(tài)位。這三位決定了片外I/O空間等待狀態(tài)(0-7)的數(shù)目。復(fù)位時,這三位置為111,為片外I/O空間的讀寫設(shè)定了7個等待狀態(tài)。位5-3:DSWS,數(shù)據(jù)空間等待狀態(tài)位。這三位決定了片外數(shù)據(jù)空間等待狀態(tài)(0-7)的數(shù)目。復(fù)位時,這三位置為111,為片外數(shù)據(jù)空間的讀寫設(shè)定了7個等待狀態(tài)。位2-0:PSWS,程序空間等待狀態(tài)位。這三位決定了片外程序空間等待狀態(tài)(0-7)的數(shù)目。復(fù)位時,這三位置為111,為片外程序空間的讀寫設(shè)定了7個等待狀態(tài)??傊?,不管READY信號的狀態(tài)如何,等待狀態(tài)發(fā)生器都將向給定的空間(數(shù)據(jù)、程序或I/O)插入0-7個等待狀態(tài),等待狀態(tài)的數(shù)目由軟件來確定。然后READY信號可以變?yōu)榈碗娖?,產(chǎn)生附加的等待狀態(tài)。如果m是一個特定的讀寫操作的所要求的時鐘周期(CLKOUT)的數(shù)目,w是附加的等待狀態(tài)數(shù)目,那么操作將會花費(m+w)個周期。復(fù)位時,WSGR各位均置1,且默認(rèn)每個外部空間(數(shù)據(jù)、程序或I/O)均產(chǎn)生7個等待狀態(tài)。

外部存儲器接口LF240x/240xA程序存儲器有64K空間的尋址空間,當(dāng)LF240x/240xA訪問片內(nèi)程序存儲器塊時,外部存儲器訪問信號PS*和STRB*無效。僅當(dāng)LF240x/240xA訪問映射到外部存儲器地址范圍的位置時,外部數(shù)據(jù)和地址總線才有效。表5-4(P62)列出了外部存

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論