《TMS320C3X系列-DSP原理與開發(fā)技術》課件第2章_第1頁
《TMS320C3X系列-DSP原理與開發(fā)技術》課件第2章_第2頁
《TMS320C3X系列-DSP原理與開發(fā)技術》課件第2章_第3頁
《TMS320C3X系列-DSP原理與開發(fā)技術》課件第2章_第4頁
《TMS320C3X系列-DSP原理與開發(fā)技術》課件第2章_第5頁
已閱讀5頁,還剩299頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第2章TMS320VC33處理器結(jié)構2.1TMS320VC33概述

2.2TMS320VC33的引腳描述2.3TMS320VC33的CPU結(jié)構

2.4總線結(jié)構及管理

2.5存儲器管理

2.6CPU寄存器與其它寄存器

2.7中斷管理2.8外圍設備本章小結(jié)

思考題和習題

2.1TMS320VC33概述

TMS320VC33(以下簡稱為VC33)是TI公司于2001年推出的TMS320系列的第三代處理器的升級產(chǎn)品,支持32位的浮點運算,144引腳的LQFP封裝,是目前在國內(nèi)外使用最為廣泛的浮點DSP芯片之一。其主要型號有:

VC33-120:17?ns單周期指令執(zhí)行時間,60MIPS,120MFLOPS。

VC33-150:13?ns單周期指令執(zhí)行時間,75MIPS,150MFLOPS。

VC33的主要性能如下:

(1)低功耗,一般小于200?mW;供電電壓:I/O接口為3.3?V,內(nèi)核為1.8?V。

(2)?32位高性能CPU,整數(shù)可用16位短整型或32位長整型表示,浮點數(shù)可用32位單精度或40位擴展精度表示。

(3)?34K×32位片內(nèi)RAM,共分為4塊,其中16K和1K各2塊,每個RAM塊在單周期內(nèi)都可以訪問2次。

(4)程序總線、地址總線和DMA總線分開,允許并行地取指、讀寫數(shù)據(jù)及DMA操作;指令和數(shù)據(jù)字長為32位,地址線有24條,總的尋址空間為16M×32位。程序、數(shù)據(jù)及I/O都包含在這16M×32位的地址空間內(nèi)。

(5)?CPU結(jié)構中有一個硬件乘法器和一個算術邏輯單元ALU,單周期乘法指令,在一個周期內(nèi)可以完成一次乘法和一次加法運算;ALU在單周期內(nèi)對32位整數(shù)、32位邏輯或40位浮點數(shù)執(zhí)行操作,ALU的結(jié)果總是保持32位的整數(shù)或40位的浮點數(shù)格式。

(6)8個擴展精度寄存器,可存儲32位的整數(shù)或40位的浮點數(shù);8個輔助寄存器和2個輔助寄存器運算單元,在單周期內(nèi)產(chǎn)生兩個地址。

(7)一個32位的桶形移位器,在單周期內(nèi)向左或向右移位32位。

(8)與CPU并行操作的片內(nèi)DMA控制器,DMA控制器可以讀寫存儲器中的任何單元而不會影響CPU的工作。因此VC33可以與慢速的外部存儲器或外部設備接口,而不會降低CPU的執(zhí)行速度。

(9)1個全雙工串行口,可編程為32位、24位、16位和8位字長,有固定和可變速率兩種工作模式。每種模式可設置為爆發(fā)、連續(xù)和標準三種工作狀態(tài)。

(10)兩個32位的硬件定時器。

(11)內(nèi)置5倍頻鎖相環(huán)時鐘電路,可采用外部的低頻時鐘源獲得片內(nèi)的高速工作周期。

(12)采用程序自引導方式,將存儲在外部的8位、16位或32位低速ROM中的程序加載到DSP內(nèi)部的32K高速RAM中指定的任何位置,實現(xiàn)高速運行。

(13)符合IEEE1149.1標準的片內(nèi)仿真和測試JTAG端口。2.2TMS320VC33的引腳描述

VC33芯片采用的是貼片型的方形封裝結(jié)構,144個引腳分四邊均布,每邊36個引腳,相鄰兩引腳的間距為0.5?mm,引腳從有缺口的一角或“O”形標志的一邊開始按逆時針方向順序編號,其引腳號的編排方式與其它芯片是一致的。芯片最大高度為1.6?mm,邊長最大值為22.2?mm,與電路板的連接方式是將各引腳直接焊接在電路板上。圖2.1所示是該芯片外形的俯視圖。表2.1進一步給出了它們的對應關系,表2.2給出引腳類型和功能。圖2.1TMS320VC33的外形圖表2.1引腳編號與信號名稱的對應關系表2.2TMS320VC33引腳類型和功能續(xù)表

表2.2按照引腳的用途進行了分類,并給出了各類引腳的I/O特性和功能的詳細說明。對該表作以下說明:

(1)表中所述類型是指引腳的輸入輸出類型和特性,I為輸入,O為輸出,Z為高阻。I/O/Z表示某類引腳有輸入、輸出或高阻三種狀態(tài)。在某一瞬間,任何引腳只能是其中的一種狀態(tài),不可能同時出現(xiàn)兩種或兩種以上狀態(tài)。

(2)表中最右邊一列表示出現(xiàn)高阻的條件,其中S、H、R分別表示、、有效。

(3)表中所述的主總線是相對于擴展總線而言的,雖然TMS320VC33沒有擴展總線,但TMS320C30和TMS320C32設置了擴展總線,為了與TMS320C3x系列其它芯片的總線名稱相統(tǒng)一,同時也為了不引起總線控制寄存器在名稱上的混淆,相對于擴展總路線而言,這里仍將不屬于擴展的總線稱之為主總線。

(4)在主總線接口、控制、JTAG這三種類型的引腳中,凡是引腳名稱(或信號名稱)上帶有橫線的,均表示低電平有效。

(5)按照表2.2的分類方法,把TMS320VC33的144個引腳按功能分為六類:①主總線接口:65個引腳;②控制:11個引腳;③串行口:6個引腳;④定時器:2個引腳;⑤電源及振蕩器:53個引腳;⑥JTAG:7個引腳。2.2.1主總線接口信號主總線接口信號包括數(shù)據(jù)線D0~D31、地址線A0~A23、讀寫信號R/、外部存取選通信號、頁選通信號~、就緒信號、保持信號和保持回答信號。現(xiàn)對上述信號作以下說明:

(1)除和為輸入信號外,其它信號均有輸出功能,其中數(shù)據(jù)線具有I/O功能。

(2)凡有輸出功能的信號,在一定條件下都可處于高阻狀態(tài)。

(3)數(shù)據(jù)線D0~D31,共32條,這就是說,TMS320VC33的字長為32位,是一種高精度芯片。數(shù)據(jù)線具有輸入、輸出、高阻、數(shù)據(jù)保持等狀態(tài)。數(shù)據(jù)線輸出的邏輯高電平為2.4~3.6?V,邏輯低電平小于0.8?V,這就是說,當數(shù)據(jù)線只作為輸出腳時,可以與供電電壓為5?V的CMOS集成電路直接接口,因為邏輯高電平的下限值2.4?V和邏輯低電平的上限值1.8?V與TTL電平是兼容的。但當數(shù)據(jù)線作為輸入引腳使用時,其能夠承受的最高電壓為4.6?V,而TTL電平的邏輯高電平的最大電壓可達5?V,這時必須增設電平轉(zhuǎn)換接口電路。

(4)地址線A0~A23,共24條,而24條地址線可尋址的存儲器空間為16?MB,每個字節(jié)的最大長度為32位,即TMS320VC33的最大尋址能力為16?MB。與數(shù)據(jù)線不同的是:地址線只有輸出功能,不能作為輸入引腳,其輸出的邏輯電平范圍與數(shù)據(jù)線相同。由于只有輸出功能,所以可以與具有TTL電平的集成電路直接連接,不需要進行電平轉(zhuǎn)換。另外,TMS320VC33的地址信號具有鎖存功能,也就是說,如果不通過指令使地址線的狀態(tài)發(fā)生改變,地址線上的電平將維持上一條指令輸出的地址信號,這一點與大多數(shù)單片機的地址信號是不同的。

(5)TMS320VC33的讀寫操作共用一個引腳R/,該引腳為輸出腳,高電平為讀,低電平為寫,任何時候都處于讀、寫兩種狀態(tài)之一,多數(shù)情況下與外部存取選通信號和頁選通信號~配合工作。

(6)外部存取選通信號對所有外部存取操作均輸出低電平,只要涉及到尋址,則它在16?MB尋址范圍內(nèi)均有效,即輸出低電平。

(7)頁選通信號~將16?MB地址空間分為4頁,每頁4?MB字節(jié)。各個頁選通信號的有效范圍如表2.3所示。表2.3~的有效范圍

(8)就緒信號為輸入信號,主要用于與外部低速器件接口,其方法是通過外部設計的硬件電路插入等待狀態(tài),插入的等待狀態(tài)數(shù)目可以任意。換言之,如果不需要插入等待狀態(tài),該引腳應接為低電平,即任何時候都處于就緒或準備好狀態(tài)。反之,如果該引腳誤接成了高電平,則DSP永遠不工作,一直處于未準備好的等待狀態(tài)。TMS320VC33等待狀態(tài)的插入也可通過軟件來實現(xiàn),但通過軟件最多可插入7個等待狀態(tài)。

(9)和分別為保持和保持回答信號,前者為輸入的控制信號,低電平有效,后者為處于保持狀態(tài)時的回答信號。顯然,如果由于某種連接錯誤原因使意外地變?yōu)榈碗娖剑瑒tDSP不工作。2.2.2控制信號控制信號共11個,包括復位信號、中斷觸發(fā)方式控制信號EDGEMODE、外部中斷信號~、內(nèi)部回答信號、微計算機引導方式和微處理器方式控制信號、高阻控制信號、通用I/O及或DSP互鎖操作信號XF1、XF0。其中為輸出信號,XF1和XF0既可作為輸入信號,也可作為輸出信號,這三個信號均有高阻狀態(tài),其它8個信號只能作為專門用途的輸入信號。結(jié)合表2.2,對其中的部分信號說明如下:

(1)凡是輸出信號或具有I/O功能的信號只作為輸出腳使用時,可以與TTL電平兼容的電路直接接口,不需要進行電平轉(zhuǎn)換。

(2)所有的輸入信號,其能夠承受的最高電平為4.0?V,不能直接與5?V的集成電路連接。

(3)復位信號為低電平有效,當該引腳上出現(xiàn)低電平時,DSP在10個CPU周期內(nèi)退出正在進行的讀、寫操作,然后進入復位狀態(tài)。進入復位狀態(tài)后,地址線、數(shù)據(jù)線和各輸出信號均處于高阻狀態(tài),這就是說,DSP能夠正常工作的必不可少的條件是=1,準確地說,必須經(jīng)歷由0變?yōu)?的過程,DSP才能進入正常的工作狀態(tài),而且在工作過程中該信號一直保持為1。當由0變?yōu)?時,DSP由復位向量指定的地址開始執(zhí)行程序,這里所述的復位向量也是一種中斷向量,而且是中斷級別最高的中斷向量。當和同時為低電平時,DSP將立即進入復位狀態(tài),即不作任何試圖安全地退出正在進行的讀、寫操作的嘗試而直接進入復位狀態(tài)。為使DSP進入正常的工作狀態(tài),上述兩個信號必須都為高電平,但在變?yōu)楦唠娖角?,應提?0個CPU周期進入高電平狀態(tài)。另外,對于特別重要的控制場合,為了避免在上電復位瞬間產(chǎn)生難以想象的不可控后果,最好使=0。

(4)如前所述,可以與配合使用,也可以單獨使用,使地址總線、數(shù)據(jù)總線和各輸出信號處于高阻狀態(tài),但應注意與的區(qū)別,前者可以使DSP的所有輸出信號均處于高阻狀態(tài),而后者只能使主總線接口信號中的地址線A0~A23、數(shù)據(jù)線D0~D31、讀寫控制信號R/、外部存取選通信號、頁選通信號~處于高阻狀態(tài)。二者的另一個區(qū)別是:?=?0不僅使各種輸出信號處于高阻狀態(tài),同時也使DSP的存儲器和寄存器的內(nèi)容丟失,而僅僅使前述的4種信號處于高阻的保持狀態(tài),不丟失有關的內(nèi)容。

(5)?EDGEMODE是中斷的邊緣觸發(fā)方式控制信號,若EDGEMODE?=?1,在中斷引腳上出現(xiàn)的下降沿觸發(fā)中斷。為了保證中斷信號被可靠識別,中斷引腳上出現(xiàn)的高電平和低電平輸入信號的持續(xù)時間不應少于2個CPU周期。如果EDGEMODE?=?0,則中斷引腳上的低電平將連續(xù)地使中斷寄存器中的中斷標志位置1,CPU或DMA響應中斷后在兩個CPU周期內(nèi)對該標志位清零。在DSP復位瞬間,不論EDGEMODE是0或是1,DSP都不對其進行檢測,這是因為復位后DSP首先檢測~中斷引腳上的低電平,以確定由哪個中斷腳觸發(fā)引導方式。

(6)~是外部中斷信號,其一個作用是用于上電復位瞬間進行程序的引導,所謂引導,就是將用戶編寫的程序由DSP外部的存儲器加載到DSP內(nèi)部的高速RAM中,以便高速運行;另一個作用是接受外部事件發(fā)出的中斷請求,使DSP響應外部中斷,進行緊急事件的處理。之所以稱之為外部中斷,是為了與定時器、串行口和軟件陷阱等觸發(fā)的中斷進行區(qū)分,這是因為后者所觸發(fā)的中斷來自于DSP內(nèi)部的計數(shù)、定時和軟件本身的執(zhí)行結(jié)果。當用于引導時,只要在上電瞬間將4個中斷引腳中的一個接為低電平就可以了。當然,也可永久性地接為低電平,這時該引腳不再作為DSP運行過程中的中斷源,其實現(xiàn)方法是只要將中斷控制寄存器中該引腳相應的控制位設置為不允許中斷的狀態(tài)即可。如果在引導完成后還想將該引腳用做外部事件的中斷信號,則需要增設狀態(tài)轉(zhuǎn)換控制電路,以使其切換為高電平狀態(tài)。對引導而言,不同的中斷引腳所對應的被引導的程序的首地址和傳輸途徑也不同,具體地說,、、對應的被引導程序存放在外部存儲器中的首地址分別是:1000H、400000H、0FFF000H,而為低電平時,則從串行口引導。對中斷請求而言,不同引腳上的中斷信號所對應的中斷向量的入口地址也不同。

(7)?MCBL/是微計算機引導方式和微處理器方式控制信號,若MCBL/

=1,則為微計算機引導方式,簡稱MCBL方式(MicrocomputerBootLoadMode);若MCBL

=0,則為微處理器工作方式,簡稱MP方式(MicroprocessorMode)。這兩種方式下,DSP的存儲器分配是不同的。2.2.3串行口信號 如表2.2所示,串行口信號共6個,分別對應于6個引腳,這6個引腳構成一個全雙工的串口,即任何時候都可以同時進行數(shù)據(jù)的接收和發(fā)送,而且接收和發(fā)送的數(shù)據(jù)的字長可以是8位、16位、24位或32位。對串行口的6個信號說明如下:

(1)引腳名或信號的記憶規(guī)則。串行口的6個信號分別是CLKR0、CLKX0、DR0、DX0、FSR0、FSX0,其中CLK表示時鐘,R表示接收,X表示發(fā)送,F(xiàn)S(FrameSynchronization)表示幀同步,每個信號最后的數(shù)字表示串口0。對TMS320VC33而言,這6個信號只構成了一個全雙工的串口,但考慮到TMS320C3x系列中其它一些DSP有兩個串口,為了避免不必要的混淆,并借用其它DSP的資料進行統(tǒng)一描述,生產(chǎn)商仍按多個串行口的編號規(guī)則將其記為串口0,但實際上,TMS320VC33只有一個串口。

(2)幀的概念是指一組數(shù)據(jù)的組合,TMS320VC33串口的幀同步用以指明所傳輸?shù)囊唤M數(shù)據(jù)的開始,這時所述的一組數(shù)據(jù)可以是一個字,也可以是多個字,其同步的方式視串行口的工作模式而定。

(3)前述的幀同步主要作為所傳輸?shù)囊唤M數(shù)據(jù)的同步,這組數(shù)的多少是以字的個數(shù)來表示的。而串口的接收時鐘和發(fā)送時鐘由是與位同步的,即每一個數(shù)據(jù)位對應一個時鐘。

(4)?TMS320VC33的串行口是一種多功能口,既可以定義為串口,也可以定義為通用I/O口。

(5)?TMS320VC33的串口與單片機的串口是不同的,不僅引腳數(shù)目不同,而且工作方式也不同,是一種功能更強、用途更為靈活的全雙工串口。

(6)所述串行口的6個引腳都有高阻狀態(tài),但只能通過和使其處于高阻狀態(tài),這就是說,不受的影響。2.2.4定時器信號

TMS320VC33有兩個32位的定時器,定時器0和定時器1各用一個引腳,分別記為TCLK0和TCLK1。同串行口一樣,TMS320VC33的定時器口也是多功能口,每個定時器既可單獨設置為定時器,也可單獨設置為通用I/O引腳,即兩個定時器可以獨立地設置為定時器方式或通用I/O方式。而且,即使是設置為定時器,引腳TCLK0和TCLK1也有輸入或輸出兩種功能,如果設置為輸入方式,則定時器引腳用于對外部輸入的時鐘進行定時或計數(shù),即起著定時或計數(shù)的作用;如果將其設置為定時器的輸出方式,則輸出定時器產(chǎn)生的脈沖。在TMS320系列的DSP資料中,相對于DSP內(nèi)部的CPU而言,將定時器、串行口和DMA作為外圍(Peripheral)電路,它們的設置或控制是通過寄存器來實現(xiàn)的。DSP的寄存器也分為兩種類型,一是與DSP內(nèi)部的CPU發(fā)生直接聯(lián)系的寄存器,稱為CPU寄存器;另一類是設置或控制外圍設備的寄存器,稱為外圍寄存器。其中定時器的控制寄存器有3個,串行口的控制寄存器有8個,DMA的控制寄存器有4個。2.2.5電源及振蕩器信號電源及振蕩器信號有53個引腳,包括CPU工作時鐘H1、H3,1.8?V電源CVDD,3.3?V電源DVDD,電源地VSS,鎖相環(huán)電源PLLVDD,鎖相環(huán)地PLLVSS,外部時鐘輸入信號EXTCLK,內(nèi)部晶體振蕩電路輸入信號XIN,輸出信號XOUT,CPU時鐘控制信號CLKMD0,CLKMD1,以及保留信號RS0、RS1。所有這些信號中,只有H1和H3有高阻狀態(tài)。

1.電源

TMS320VC33有DVDD和CVDD兩種電源,其中DVDD為3.3?V,是I/O引腳的供電電源;CVDD為1.8?V,用于對DSP芯片內(nèi)部的CPU供電。采用兩種電源的好處是既便于接口,又可使CPU的功耗降低。在144個引腳中,DVDD有16個腳,CVDD有8個腳,VSS有18個腳。DVDD、CVDD和VSS采用多個引腳的原因是使芯片內(nèi)部的負載盡可能均勻,因此,在使用時,最好將所有的DVDD都連接到3.3?V的電源上,所有CVDD都連接到1.8?V的電源上,所有VSS都連接到電源地上。

2.振蕩器振蕩器即時鐘發(fā)生器,其作用是為DSP提供工作時鐘。時鐘發(fā)生器由DSP芯片的片內(nèi)振蕩電路和鎖相環(huán)(Phase-LockedLoop,PLL)電路組成。時鐘發(fā)生器工作時,必須對其輸入一個參考時鐘。該參考時鐘可以采用兩種方法之一來產(chǎn)生。第一種方法是在EXTCLK引腳上直接接入一外部輸入的時鐘,如一體化振蕩器的輸出信號等,這時XIN接地,XOUT懸空,如圖2.2(a)所示。第二種方法是將EXTCLK接地,通過XIN和XOUT引腳接入晶體或陶瓷振蕩器,其連接方法如圖2.2(b)所示。圖2.2參考時鐘的連接方法鎖相環(huán)電路的作用是鎖定參考時鐘的相位,一旦達到同步或鎖定后,將自動跟蹤參考時鐘的相位,并對輸入的參考時鐘進行倍頻,使倍頻后的時鐘與參考時鐘實現(xiàn)同步。圖2.2(a)和圖2.2(b)中的晶體振蕩器也可以用陶瓷振蕩器替代,其成本也更低。但應該說明的是,陶瓷振蕩器的頻率精度和穩(wěn)定性遠不如晶體振蕩器的。與鎖相環(huán)電路相關的引腳PLLVDD、PLLVSS的接法如圖2.2(a)和圖2.2(b)所示,這兩個圖中的連接方法是相同的。也可以采用圖2.3所示的連接方法,如果將圖2.3中與VSS相接的電阻值取為0,其接法與圖2.2完全相同,上述接法都可以避免PLL有可能引入到CVDD中的高頻噪聲。圖2.3鎖相環(huán)電路的接法圖2.2(b)所示電路采用了晶體振蕩器,頻率為8~30?MHz的晶體振蕩器的典型的串聯(lián)阻抗為25?Ω,當頻率低于8?MHz時,阻抗將更高。為了對振蕩電路濾波并使相位保持穩(wěn)定,振蕩電路的阻抗應為晶體振蕩器阻抗的10~40倍,為此在電路中引入了補償電阻Rd。C1和Rd構成了濾波電路,C2進一步起濾波的作用。經(jīng)過上述濾波后,XIN引腳上輸入的電壓幅度是晶體振蕩器所提供電壓幅度的75%~85%。隨晶體振蕩器頻率的不同,外接元件Rd、C1、C2也應不同的值,具體選擇方法如表2.4所示。表中CL和RL分別表示晶體振蕩器本身的等效串聯(lián)電阻和電容。表2.4晶體振蕩器電路參數(shù)選擇

3.時鐘方式選擇通過引腳CLKMD0和CLKMD1可以對CPU的工作時鐘進行選擇,即對參考時鐘進行倍頻,可選擇的倍數(shù)如表2.5所示。由表可以看出,CPU時鐘可以是參考時鐘頻率的1倍、1/2和5倍,但鎖相環(huán)電路只有在5倍頻的情況下才處于工作狀態(tài)。表2.5時鐘控制引腳的接法與倍頻的關系

1倍頻時CLKMD0和CLKMD1有兩種不同的接法,但二者都為低電平時,內(nèi)部振蕩電路不工作,其它三種情況下,內(nèi)部振蕩電路都處于工作狀態(tài)。但并不意味著一定要采用晶體振蕩器作為參考時鐘,即也可以采用外部電路從EXTCLK引腳提供參考時鐘,這時,內(nèi)部振蕩電路的工作可以理解為只是接通了片內(nèi)對這一局部電路供電的電源通道。鎖相環(huán)路的工作與不工作的含義與此類同。

CPU的工作時鐘還可以通過指令進行控制,完整的時鐘工作方式可借助圖2.4加以說明。圖2.4時鐘工作方式(控制方法)圖2.4中XOR為異或門,PLL為鎖相環(huán)電路,MUX為多路選擇開關電路。參考時鐘可通過EXTCLK輸入,也可通過XIN、XOUT兩端外接晶體振蕩器輸入。CLKMD0和CLKMD1用于控制內(nèi)部振蕩電路是否工作的開關S1,同時控制PLL是否工作,還對兩路MUX進行控制。CPU的工作頻率可以是參考時鐘的1倍、1/2或5倍,也可以通過指令MAXSPEED使其工作在倍頻后工作頻率的1倍,或通過LOWPOWER指令使其工作在倍頻后頻率的1/16,還可以通過指令IDLE2使CPU不工作。其中CPU通過IDLE2進入不工作狀態(tài)后,使其重新進入工作狀態(tài)的途徑有二:一是對DSP復位;二是外部中斷引腳上出現(xiàn)中斷信號。

4.H1和H3

H1和H3是通過外部引腳輸出的CPU的工作時鐘,只作為輸出用,當有效時可處于高阻狀態(tài)。H1和H3的用途一是作為電路調(diào)試時檢測CPU的工作時鐘,二是在需要時,為DSP以外的電路提供時鐘信號。H1和H3的頻率一定是CPU的工作時鐘頻率,其周期也是CPU的指令周期,但并不一定等于外部輸入時鐘EXTCLK或晶體振蕩器的頻率,這是因為外部輸入時鐘EXTCLK或晶體振蕩器的振蕩頻率要經(jīng)過倍頻電路倍頻后才作為CPU的工作時鐘,倍頻的倍數(shù)通過CLKMD0和CLKMD1控制。2.2.6JTAG仿真信號

JTAG(JointTestActionGroup)實際上是檢測IC芯片的一個標準,制定于1985年,1990年被修改后成為IEEE的一個標準,即IEEE?1149.1—1990。通過這個標準,可對具有JTAG口芯片的硬件電路進行邊界掃描和故障檢測。具有JTAG口的芯片都有以下引腳:

TCK:測試時鐘輸入;

TDI:測試數(shù)據(jù)輸入,數(shù)據(jù)通過TDI輸入JTAG口;

TDO:測試數(shù)據(jù)輸出,數(shù)據(jù)通過TDO從JTAG口輸出;

TMS:測試模式選擇,TMS用來設置JTAG口處于某種特定的測試模式;:測試復位時的可選引腳,輸入引腳,低電平有效。含有JTAG口的芯片種類較多,如CPU、DSP、CPLD等。JTAG標準定義了一個串行的移位寄存器。寄存器的每一個單元分配給IC芯片的相應引腳,每一個獨立的單元稱為邊界掃描單元,簡稱BSC(Boundary-ScanCell)。TMS320VC33的JTAG口除了TCK、TDI、TDO、TMS、外,還有兩個引腳EMU0和EMU1,用以激活JTAG口,實現(xiàn)仿真功能。這兩個引腳通過上拉電阻直接接到3.3?V電源DVDD上。

TMS320VC33的JTAG口的作用主要是用于將程序下載到芯片中,并對軟硬件進行仿真。TMS320VCC33片內(nèi)雖然有4K×32位的ROM,但用戶不能使用該片內(nèi)的ROM,因為在ROM內(nèi)存放的是出廠時已經(jīng)固化的引導程序,所以,通過JTAG口只能將程序下載到DSP的RAM內(nèi),一旦掉電,下載到RAM中的程序?qū)詣觼G失,所以,該DSP中的JTAG口只能用于對DSP的測試和仿真。脫離開仿真器后DSP的自動運行需要在每次上電時,通過復位和中斷引腳,將存放于芯片外部存儲器中的程序自動地引導到DSP的內(nèi)部RAM中。2.3TMS320VC33的CPU結(jié)構

TMS320VC33具有一個以寄存器為基礎的CPU結(jié)構,CPU由以下幾部分組成:乘法器;算術和邏輯運算單元(ALU);32位桶式移位器;CPU總線和寄存器總線;輔助寄存器運算單元(ARAUs);CPU寄存器組,包括28個CPU寄存器。以上各部分的連接關系如圖2.5所示。圖2.5中央處理單元(CPU)

1.乘法器乘法器可對整數(shù)及浮點數(shù)進行乘法運算。TMS320VC33實現(xiàn)了浮點運算,由于其具有高速和高度的并行運算性能,其浮點運算能以定點的運算速度進行,而且通過使用并行指令,可在一個指令周期內(nèi)完成一次乘法和一次算術、邏輯運算。執(zhí)行浮點乘法時,結(jié)果可以用40位浮點數(shù)表示。執(zhí)行整數(shù)乘法時,結(jié)果可以用32位整數(shù)表示。

2.算術邏輯單元(ALU)

ALU對32位整數(shù)、32位邏輯及40位浮點數(shù)實行單周期操作,包括單周期的整數(shù)與浮點轉(zhuǎn)換。ALU的結(jié)果總是保持32位整數(shù)或40位浮點數(shù)的格式。

3.桶式移位器桶式移位器在單周期內(nèi)左移或右移的位數(shù)可高達32位。

4.CPU總線和寄存器總線

CPU總線(CPU1bus,CPU2bus)和寄存器總線(REG1bus,REG2bus)在一個指令周期內(nèi)可從存儲器讀取2個操作數(shù),同時從寄存器組讀取2個操作數(shù),從而可在單周期內(nèi)對4個整數(shù)或浮點操作數(shù)進行并行的乘和加(減)。

5.輔助寄存器運算單元(ARAUs)兩個輔助寄存器運算單元(ARAU0和ARAU1)可在單周期內(nèi)產(chǎn)生兩個地址。ARAUs與乘法器及ALU并行操作。它們支持由立即數(shù)、索引寄存器IR0和IR1給出的帶有偏移量的尋址方式,還支持專門用于相關運算、卷積、有限沖激響應(FIR)、無限沖激響應(IIR)、快速傅氏變換(FFT)等專門用于數(shù)字信號處理的循環(huán)尋址和位翻轉(zhuǎn)尋址。

6.CPU寄存器組

TMS320VC33的CPU寄存器組由28個CPU寄存器組成。所有這些寄存器都可被乘法器和ALU操作,既可用做通用寄存器,又可實現(xiàn)一些特殊的功能,例如其中的8個擴展精度寄存器特別適合于進行擴展精度浮點數(shù)的運算,8個輔助寄存器支持各種間接尋址方式,并可用做通用的32位整數(shù)及邏輯寄存器,其余的寄存器提供諸如尋址、堆棧管理、中斷及塊重復等功能。2.4總線結(jié)構及管理計算機的總線結(jié)構可分為兩種,一是馮·諾依曼結(jié)構,二是哈佛結(jié)構。馮·諾依曼結(jié)構的特點是程序和數(shù)據(jù)共用一個存儲空間,統(tǒng)一編址,程序和數(shù)據(jù)通過同一總線訪問同一地址空間上的存儲器,依靠指令計數(shù)器提供的地址來區(qū)分是指令數(shù)據(jù)還是地址。由于這種總線結(jié)構對數(shù)據(jù)和程序進行分時讀寫,因而執(zhí)行速度慢,數(shù)據(jù)吞吐量低,但這種結(jié)構比較簡單,從而使計算機的結(jié)構得到了簡化。另外,半導體工藝的飛速發(fā)展對運算速度的提高起到了重要的作用,馮·諾依曼結(jié)構成為了計算機發(fā)展的一個標準。

TMS320VC33有四種總線,分別是程序總線、數(shù)據(jù)總線、DMA總線、外部總線,其中前三種總線統(tǒng)稱為內(nèi)部總線。TMS320VC33芯片完整的硬件結(jié)構框圖如圖2.6所示,該圖不僅包括了總線結(jié)構,也給出了CPU、存儲器、寄存器與內(nèi)部電路的連接關系。圖2.6TMS320VC33的硬件結(jié)構

TI公司的DSP采用了改進的哈佛結(jié)構,既采用了獨立的程序總線和數(shù)據(jù)總線,又在程序總線和數(shù)據(jù)總線中采用了交叉連接,允許數(shù)據(jù)存放在程序存儲器中,并被算術運算指令直接使用,增強了芯片的靈活性,提高了運行速度,只要調(diào)度好兩個獨立的總線就可使處理能力得到提高,實現(xiàn)全速運行;另外,增加了高速的緩沖器(Cache)。在TMS320VC33及其它C3x芯片中,指令還可以存放在高速緩存器(Cache)中,省出了從存儲器中讀寫指令的時間,提高了運行速度。TMS320VC33具有64個字的Cache。改進的哈佛結(jié)構有以下優(yōu)點:

(1)提供了總線數(shù)據(jù)交換器,保證了總線操作的靈活性;

(2)程序總線和數(shù)據(jù)總線的寬度可以不同,支持更強大的并行操作指令,保證足夠高的運算速度;

(3)解決了總線擁擠問題,提高了運算速度。2.4.1內(nèi)部總線內(nèi)部總線是與CPU寄存器和程序計數(shù)器(PC)相關聯(lián)的總線。TMS320VC33的高性能在很大程度上歸功于其優(yōu)越的內(nèi)部總線結(jié)構以及由此帶來的并行運算性能。內(nèi)部總線的特點是:程序總線與數(shù)據(jù)總線是分開的,地址總線與數(shù)據(jù)總線是分開的。內(nèi)部總線的具體劃分情況是:程序總線: 程序的地址總線PADDR

程序的數(shù)據(jù)總線PDATA數(shù)據(jù)總線: 數(shù)據(jù)的地址總線DADDR1和DADDR2

數(shù)據(jù)的數(shù)據(jù)總線DDATADMA總線: DMA的地址總線DMAADD DMA的數(shù)據(jù)總線DMADATA程序計數(shù)器(PC)與24位的程序地址總線(PADDR)相連。索引寄存器(IR)與32位的程序數(shù)據(jù)總線(PDATA)相連。這些總線在每一機器周期內(nèi)可讀取一個指令字。

24位的數(shù)據(jù)地址總線(DADDR1和DADDR2)和32位數(shù)據(jù)的數(shù)據(jù)總線(DDATA),在每一機器周期中支持兩次數(shù)據(jù)存儲器的讀寫操作。DDATA總線通過CPU1和CPU2總線將數(shù)據(jù)傳輸?shù)紺PU。CPU1和CPU2在每一機器周期內(nèi)可將兩個操作數(shù)傳送到乘法器、算術邏輯單元(ALU)及寄存器組。寄存器REG1和REG2在每一個機器周期內(nèi)可將兩個數(shù)據(jù)傳送到乘法器。

DMA設有專門的總線,由24位地址總線(DMAADD)和32位數(shù)據(jù)總線(DMADATA)構成,這些總線使DMA能與數(shù)據(jù)總線及程序總線并行地對存儲器進行操作。上述總線可使程序的讀取、數(shù)據(jù)的存取和DMA操作并行地進行。這些總線可以對所有TMS320VC33支持的存儲空間(片內(nèi)存儲器,片外存儲器)和CPU寄存器進行尋址和數(shù)據(jù)存取。另外,需要說明的是,雖然上述內(nèi)部總線結(jié)構是針對TMS320VC33介紹的,但也適應于其它TMS320C3x系列其它型號的DSP。2.4.2外部總線在TMS320VC33中采用了多種總線,其目的是提高運算能力和速度,但對用戶而言,主要涉及24條地址線和32條數(shù)據(jù)線,外部引腳通過多路選擇開關連接到內(nèi)部總線上,簡化了芯片的外部結(jié)構,同時也提高了DSP的性能。這種通過多路切換開關輸出的總線稱為外部總線。由圖2.6可知,外部總線有兩種,一是主總線,二是外圍總線。主總線是相對于擴展總線而言的,擴展總線是為了對更大的外部存儲器和I/O尋址空間而增設的地址線,例如,TMS320VC30和TMS320VC32除了主總線中有24條地址總線外,還有13條地址的擴展總線。雖然TMS320VC33并無擴展總線,但仍然將通過多路切換后通過外部引腳所體現(xiàn)的總線稱為主總線。由圖2.6和表2.6可清楚地看出,主總線包括32位數(shù)據(jù)線、24位地址線、讀寫信號R/、外部存取選通信號、頁選通信號~、就緒信號、保持信號、保持回答信號。其中頁選通信號是由芯片內(nèi)的地址線A22和A23經(jīng)過譯碼產(chǎn)生的,外部存取選通信號也是由地址線決定的,、是總線狀態(tài)的控制信號,R/根據(jù)數(shù)據(jù)總線的輸入輸出狀態(tài)而取不同的電平。除主總線外,外部總線還包括外圍總線(PeripheralBus),這種總線也是通過多路切換開關輸出的總線,主要用于對定時器、串行口控制寄存器和DMA寄存器的控制,這些寄存器是與CPU無關的寄存器,因而不屬于CPU寄存器,也沒有專門的寄存器名稱,其地址在DSP的內(nèi)部RAM中。4.4.3總線管理總線管理主要涉及外部總線的管理,達到訪問外部存儲器和外圍器件的目的。通過主總線控制寄存器和使用外部輸入信號,用戶可控制總線的等待狀態(tài),從而允許CPU訪問低速存儲器和外圍設備。主總線接口控制寄存器的地址為:808064h,該寄存器為32位的寄存器,結(jié)構如圖2.7所示。表2.6列出了該寄存器中各位的功能。圖2.7主總線接口控制寄存器結(jié)構表2.6主總線控制寄存器各位的名稱和功能需要注意的是:當改變主總線控制寄存器的某一位后,主總線在取3條指令之后,總線的狀態(tài)才得以改變。一般情況下,如果存儲器速度很快,則可以不插入等待狀態(tài);總線控制寄存器取值1018H,即插入0狀態(tài)。表2.7給出了BNKCMP與用于定義塊大小的最高有效位地址的關系。表2.7BNKCMP與用于定義塊大小的最高有效位地址的關系2.5存?儲?器?管?理

TMS320VC33的全部存儲器空間是16M×32位,程序、數(shù)據(jù)和I/O空間都包含在這個存儲器空間內(nèi),表格、系數(shù)、程序代碼或數(shù)據(jù)既可以存儲在RAM中,也可以存儲在ROM中,這就可以最大程度地使用存儲器空間并且按照需要分配存儲器空間。但應注意片內(nèi)可供用戶使用的存儲空間只有RAM,片內(nèi)的ROM在芯片出廠時已固化了引導程序,用戶不能對其進行修改。由圖2.6可見,供用戶使用的片內(nèi)RAM共4塊,RAM0和RAM1均為1K×32位,RAM2和RAM3各為16K×32位,4塊RAM的總?cè)萘繛?4K×32位。存儲器中還有一塊64×32位的高速緩存器(Cache),供指令快速譯碼使用,另有一塊4K×32位的ROM,用于存放引導程序。用戶的程序和數(shù)據(jù)只能存放在總?cè)萘繛?4K×32位的四個RAM中,不能存放在ROM和Cache內(nèi)。上述各RAM和Cache的位置是固定的,但ROM、中斷向量以及被引導的外部程序的起始地址在16?MB空間中的位置是由用戶設定的存儲器的工作方式?jīng)Q定的,具體分配方式如2.5.1節(jié)所述。2.5.1存儲器組織存儲器分配方式有兩種:微計算機引導方式和微處理器方式,方式的選擇由MCBL/引腳上的電平?jīng)Q定。如果將該引腳接為高電平,則為微計算機引導方式;如果該引腳接為低電平,則為微處理器方式。這兩種方式下的存儲器分配情況如圖2.8所示。圖2.8存儲器映射圖這兩種方式下,有四個區(qū)域是完全相同的:

(1)RAM2是完全相同的,RAM2的起始地址為800000h,結(jié)束地址為803FFFh,其大小為16K?×?32位。

(2)RAM3是完全相同的,RAM3的起始地址為804000h,結(jié)束地址為807FFFh,其大小為16K?×?32位。

(3)被分配在808000h~8097FFh范圍內(nèi)的6K×32位空間的外圍總線存儲器映射寄存器(PeripheralBusMemory-mappedRegister)是完全相同的。

(4)?RAM0是完全相同的,RAM0的起始地址為809800h,結(jié)束地址為809BFFh,其大小為1K?×?32位。兩種方式下,有四個區(qū)域是有區(qū)別的:

(1)在微計算機引導方式下,出廠時固化在片內(nèi)的引導程序被映射到0h~FFFh的4K×32位空間內(nèi),DSP上電復位后,該程序自動執(zhí)行,將存放在外部ROM中的用戶程序裝載到規(guī)定的DSP的片內(nèi)存儲器內(nèi)。而在微處理器方式下,該4K片內(nèi)ROM未被映射到存儲器空間中,0h~3Fh單元包含中斷矢量、陷阱矢量和保留單元,它們是通過外部存取信號(有效)進行存取的。

(2)在微計算機引導方式下,1000h~7FFFFFh為外部存取空間,訪問該空間時有效,該空間的大小為8?MB-4?KB,即0h~7FFFFFh為8?MB,但因4?KB的ROM被映射到存儲空間了,所以,比8?MB少了4?KB。實際上,該空間內(nèi)還有兩個字節(jié)作為被引導的用戶程序的起始地址,即外部程序的首地址,這兩個地址分別是1000h和400000h,前者對應于Boot1,由外部中斷引腳~觸發(fā)引導程序,后者對應于Boot2,由外部中斷引腳~觸發(fā)引導程序。而在微處理器方式下,外部存取空間的起始地址為40h,結(jié)束地址為7FFFFFh,其大小為8?MB-64?B,即0h~7FFFFFh為8?MB,但因0h~3Fh單元所屬的64?B用于存放中斷矢量、陷阱矢量和保留單元,所以比8?MB少了64?B。

(3)兩種方式下的RAM1有所區(qū)別。雖然RAM1的起始地址都為809C00h,結(jié)束地址也都為809FFFh,該范圍內(nèi)的存儲空間為1K×32位,但在微計算機引導方式下,上述范圍內(nèi)的809FC1h~809FFFh的64?B被用于存放中斷、陷阱的中斷服務程序的分支指令和保留字節(jié)。微處理器方式下,RAM1所屬的1K×32位空間可全部由用戶使用。

(4)在兩種方式下,起始地址為80A000h,結(jié)束地址為FFFFFFh的8?MB都為外部存取空間,訪問該空間時有效,但在微計算機引導方式下,字節(jié)FFF000h作為被引導程序的首地址,該地址也就是由觸發(fā)的Boot3所對應的地址。總之,微處理器方式和微計算機引導方式最大的差異在于是否允許引導,如果不引導,則為微處理器方式,否則就為微計算機引導方式。2.5.2中斷向量和分支指令存儲器分配 在微處理器方式下,復位、中斷和陷阱向量被分配在0~3Fh的空間內(nèi),各向量的具體地址如圖2.9(a)所示,其中陷阱是指通過軟件觸發(fā)的中斷,向量的地址值越低,其優(yōu)先級越高。由圖可知,在所有中斷向量中,復位的優(yōu)先級最高。0~3Fh所指的64個地址中,07h、08h、0Ch~1Fh、3Ch~3Fh等26個字節(jié)為保留字,中斷向量共38個。圖中各符號的含義:

RESET:復位INTx:外部中斷(x?=?0,1,2,3)

XINT0:串行口發(fā)送中斷 RINT0:串行口接收中斷

TINT0:定時器0中斷 TINT1:定時器1中斷

DINT:DMA中斷 TRAPx:陷阱(x?=?0,1,2,…,27)圖2.9中斷向量和中斷服務程序的地址分配在微計算機引導方式下,中斷服務程序和陷阱的分支指令被分配在809FC1h~809FFFh所指向的63個字節(jié)中,各向量的具體地址如圖2.9(b)所示。地址值越低,其優(yōu)先級越高,由圖可知,外部中斷0的優(yōu)先級最高。809FC1~809FFFh所指向的63個字節(jié)中,809FC7h、809FC8h、809FCCh~809FDFh、809FFC~809FFFh等26個字節(jié)為保留字,中斷服務程序的分支地址共37個。微計算機引導方式與微處理器方式相比,前者缺少了復位所對應的中斷向量,即微處理器方式下,復位也是一種中斷,而且是優(yōu)先級最高的中斷,需要對復位給定中斷向量的入口地址。而在微計算機引導方式下,不需要為復位指定中斷復位的分支指令,這是由于該方式下,復位后DSP自動執(zhí)行片內(nèi)ROM中的引導程序,即復位后,程序計數(shù)器自動指向0h地址。另外,需要特別注意的是:在微處理器方式下,0~3Fh為中斷向量、陷阱向量和保留字節(jié);而在微計算機引導方式下,809FC1~809FFFh為中斷服務程序和陷阱的分支指令和保留字節(jié),這里強調(diào)的是分支地址,而不是向量。即前者直接指定了中斷服務程序的入口地址,而后者是通過中斷服務程序的分支指令給出中斷服務程序的入口地址的,即后者需要對中斷服務程序的入口地址進行搬遷。2.5.3外圍寄存器地址分配外圍寄存器地址被分配在以地址808000h開始的單元中,如圖2.10所示。這里所述的外圍寄存器是相對于CPU寄存器而言的,即這些寄存器與CPU無直接關聯(lián),是分配在16?MB存儲空間內(nèi)的。外圍寄存器也可以理解為控制外圍設備的寄存器,這些外圍設備包括DMA、定時器0、定時器1、串行口和主總線,它們雖然在DSP芯片內(nèi)部,但相對于算術邏輯單元(ALU)、輔助寄存器運算單元(ARAUs)和乘法器而言,它們與CPU并無直接的關聯(lián),因而將其稱為外圍設備。圖2.10外圍寄存器的地址分配由圖可見,與5種外圍設備相關的控制寄存器共19個,具體的關聯(lián)關系是:

(1)?DMA控制寄存器。共4個寄存器,它們分別是:DMA全局控制器寄存器、DMA源地址寄存器、DMA目的地址寄存器、DMA傳輸計數(shù)器。

2)定時器0控制寄存器。共3個寄存器,它們分別是:定時器0全局控制寄存器、定時器0計數(shù)器、定時器0周期寄存器。

(3)定時器1控制寄存器。共3個寄存器,它們分別是:定時器1全局控制寄存器、定時器1計數(shù)器、定時器1周期寄存器。

(4)串行口控制寄存器。共8個寄存器,它們分別是:串行口全局控制寄存器、發(fā)送端口控制寄存器、接收端口控制寄存器、收發(fā)定時器控制寄存器、收發(fā)計數(shù)器、收發(fā)周期寄存器、數(shù)據(jù)發(fā)送寄存器、數(shù)據(jù)接收寄存器。

(5)主總線控制寄存器。僅1個寄存器,用于設置主總線的等待狀態(tài)以及是否啟動高速緩存器等。2.5.4指令高速緩存器指令高速緩沖存儲器(Cache)用于存放最近使用過的重復率比較高的指令代碼,對于最近出現(xiàn)過的指令,可直接從Cache中取指,從而減少取指所開銷的時間,加速指令的運行。當程序存儲在外部低速存儲器中時,Cache的作用尤為重要,對重復使用過的指令仍可實現(xiàn)單周期取指,減少了由于取指所占用外部總線的時間,有利于DMA及存儲器配置為微處理器方式時運行速度的提高(在微處理器方式下,由于不引導,所以程序存儲在外部ROM中)。Cache能以完全自動的方式工作而無需用戶干涉,用戶唯一需要做的是在狀態(tài)寄存器中設置好是否允許Cache工作的相關控制位。

Cache的結(jié)構如圖2.11所示,由64個32位字的RAM組成,這64個字分成兩個段,每段32個字,這兩個段分別稱為段0和段1,每段各有一個19位的段基址(SegmentStartAddress,SSA)寄存器,段中的每個字對應一個標志位P,簡稱P標志,該標志位是32位指令字以外的一個單獨的位,用以表明指令代碼是否存在。Cache中還有一個段代碼堆棧,簡稱LMRU(Least&MostRecentUsed)堆棧。該堆棧只有兩個位,用于存放段代碼(0或1),其中棧頂和棧底各1位,棧頂存放最新使用過的段代碼,棧底存放次新使用過的段代碼,這兩種段代碼分別簡稱為LRU(LeastRecentused)和MRU(MostRecentused)。圖2.11Cache結(jié)構當CPU從外部存儲器的某一地址中取指時,首先通過地址的比較來檢測Cache中是否已經(jīng)包含了該指令。首先被讀取的指令在外部存儲器中的高19位地址與兩個SSA寄存器的內(nèi)容比較,如果相符,則根據(jù)低5位地址找到32個字節(jié)中的一個,然后查該字節(jié)相對應的P標志是“1”還是“0”,如果P?=?1,則該指令字就是被取指的指令;如果P?=?0,則Cache中的指令與外部存儲器中的指令不符,需要根據(jù)Cache算法刷新其中一段的內(nèi)容。Cache控制算法使用的指令地址的劃分示于圖2.12中,指令地址的19位最高有效位用于選擇段,而5位最低有效位在有關的段內(nèi)定義了指令字地址。圖2.12Cache控制算法的地址劃分每次對Cache進行存取之后,LMRU堆棧跟蹤兩段中的哪一段用做最新使用的段,因此棧頂為0或1。若棧頂為0,則棧底必然為1,反之亦然。系統(tǒng)復位時,LMRU的棧頂初始化為0,而棧底初始化為1,指令Cache中的所有P標志均清零。當TMS320VC33需要從外部存儲器的某一地址處取指令字時,首先檢查Cache中是否已經(jīng)存放有該地址處的指令,這時會發(fā)生兩種可能之一:Cache被選中或Cache沒被選中。若Cache被選中,即所需的指令包括在Cache中。這時:

(1)?Cache中讀指令字;

(2)包含該指令的段的代碼被推入LMRU堆棧的棧頂,另一個段的代碼推到棧底。若Cache沒被選中,則指令不包括在Cache中。Cache沒有被選中的類型有:

(1)指令字沒被選中,段地址寄存器與指令地址的高19位相匹配,但由低5位地址確定的段內(nèi)的某指令字所對應的P標志不為1,這時:①從外部存儲器中讀指令字并且拷貝到Cache的對應段中,拷貝后高19位地址和低5位地址與外部指令的地址完全符合,因此將該指令字所對應的P標志置1;②該段的代碼推入到LMRU堆棧的棧頂,另一段的段代碼移到棧底。

(2)段沒被選中,兩個段地址寄存器的內(nèi)容與指令地址的高19位都不符,這時:①次新使用的段的32個字所對應的P標志全部清零;②被讀取的指令字的高19位地址寫入該段的SSA寄存器;③取指令字并且拷貝到Cache,指令字的低5位地址確定了該指令字在該段中存放的具體位置,拷貝完成后,將Cache中該字所對應的P標志置1;④含有該指令字的段的代碼壓入LMRU堆棧的棧頂,另一段的段代碼移到棧底。需要說明的是:對DSP芯片外部的程序存儲器取指時,Cache才有意義,如果是在片內(nèi)取指,則Cache不工作,也不刷新。關于是否允許Cache工作的控制方法見2.7.7節(jié)中的狀態(tài)控制寄存器。2.6CPU寄存器與其它寄存器

TMS320VC33的CPU寄存器共28個,它們的特點是:①有一個專門的名稱;②不占用16?MB的存儲空間;③譯碼時,每一個寄存器都有一個特定的機器代碼;④可以通過乘法器和ALU(算術邏輯單元)進行操作。這28個CPU寄存器的名稱、機器代碼和功能描述如表2.8所示。表2.8CPU寄存器2.6.1擴展精度寄存器寄存器R0~R7稱為擴展精度寄存器,這些寄存器的字長為40位,可支持40位的浮點數(shù)操作。當對浮點數(shù)操作時,任何浮點數(shù)的操作指令均使用這些寄存器的39~0位。圖2.13給出了擴展精度寄存器中40位浮點數(shù)的存儲格式,其中39~32位用來存儲浮點數(shù)的指數(shù)e(exponent),30~0位用來存儲浮點數(shù)的分數(shù)f(fraction)值,第31位是符號位s(sign),符號位和分數(shù)合起來稱為尾數(shù)m。圖2.13擴展精度寄存器浮點格式當進行整數(shù)運算時,擴展精度寄存器只作為32位的寄存器,該整數(shù)(有符號或無符號)存放在31~0位。采用有符號或無符號整數(shù)進行操作的任何指令僅使用31~0位,39~32位保持不變,這對于所有的移位操作也是適用的。圖2.14給出了擴展精度寄存器中32位整數(shù)的存儲格式。2.6.2輔助寄存器寄存器AR0~AR7稱為輔助寄存器(AuxiliaryRegister,AR),這8個輔助寄存器的字長為32位,可通過CPU進行存取,其內(nèi)容由兩個輔助寄存器算術單元(ARAU)修改。輔助寄存器的主要功能是產(chǎn)生24位的地址,尤其是在間接尋址、循環(huán)尋址和位翻轉(zhuǎn)尋址指令中有著重要的用途,可極大地簡化程序的結(jié)構,提高相關、卷積、FIR、IIR以及FFT的運算效率,便于對大量數(shù)據(jù)的順序存取進行地址的調(diào)整。當然,這8個輔助寄存器也可作為通用寄存器使用。2.6.3數(shù)據(jù)頁指針數(shù)據(jù)頁指針DP(DataPointer)是一個32位的寄存器。TMS320VC33把16?MB存儲空間分為256頁,每頁64?KB,這256個頁碼用數(shù)據(jù)頁指針寄存器的低8位(即7~0位)表示。通過LDP指令對該寄存器賦值。在間接尋址模式中,DP的低8位用作被尋址的數(shù)據(jù)頁的地址指針,數(shù)據(jù)頁指針寄存器的31~8位被用戶保留且總保持為零。2.6.4索引寄存器

32位的索引寄存器(IndexRegister)IR0和IR1的主要用途是給出地址偏移量,多與輔助寄存器配合使用,在間接尋址、循環(huán)尋址、位翻轉(zhuǎn)尋址中給出地址的偏移量。當然,IR0和IR1也可用作通用寄存器。2.6.5塊規(guī)模寄存器

32位的塊規(guī)模寄存器BK(BlockSizeRegister)的主要用途是給定數(shù)據(jù)塊的大小,即給定循環(huán)尋址和位翻轉(zhuǎn)尋址的存儲空間的大小。2.6.6系統(tǒng)堆棧指針系統(tǒng)堆棧指針SP(System-stackPointer)是一個32位的寄存器,用來保持系統(tǒng)棧頂?shù)刂?。SP總是指向最后堆入棧中的元素,中斷、陷阱、調(diào)用、返回以及PUSH、PUSHF、POP和POPF指令均使用SP。壓棧和彈出32位的堆棧指針執(zhí)行預增和后減操作,并且遵循后進先出的原則;由于TMS320VC33的尋址空間為16?MB,所以只有低24位被用作地址。2.6.7狀態(tài)寄存器狀態(tài)寄存器ST(StatusRegister)包含了與CPU狀態(tài)有關的全部信息。通常CPU根據(jù)指令的操作和運行結(jié)果是零還是負等情況來設置狀態(tài)寄存器的標志位,這就是說,狀態(tài)寄存器的內(nèi)容會隨著數(shù)據(jù)傳輸、存儲、算術運算、邏輯操作的結(jié)果而變化。當對狀態(tài)寄存器進行寫操作時,狀態(tài)寄存器的內(nèi)容恒等于源操作數(shù)的內(nèi)容,這保證了狀態(tài)寄存器內(nèi)容易于被保護和恢復。在系統(tǒng)復位時,狀態(tài)寄存器的內(nèi)容為0。狀態(tài)寄存器的格式示于圖2.15,表2.9中定義了狀態(tài)寄存器中各位的名稱和功能。圖2.15狀態(tài)寄存器表2.9狀態(tài)寄存器各位的名稱和功能2.6.8CPU/DMA中斷使能寄存器

CPU/DMA中斷使能寄存器IE(InterruptEnable)是一個32位的寄存器,結(jié)構如圖2.16所示。CPU中斷使能位位于第10~0位,DMA中斷使能位位于26~16位,CPU/DMA中斷使能寄存器中的某位為1則使能相應的中斷,若為0則禁止相應的中斷。復位時,這個寄存器被寫為0。表2.10定義了該寄存器各位的名稱和功能。圖2.16CPU/DMA中斷使能寄存器表2.10CPU/DMA中斷使能寄存器各位的名稱和功能

2.6.9CPU中斷標志寄存器

CPU中斷標志寄存器(IF)是一個32位的寄存器,結(jié)構如圖2.17所示。當一個中斷發(fā)生時,IF寄存器中相應的位被置1,通過軟件對某一位寫1也能引起該位相對應的中斷,前提是IE寄存器中已經(jīng)設置了使能該位中斷。如果把0寫入到IF中的某位,則清除相應的中斷。復位時,該寄存器的內(nèi)容為0。表2.11列出了CPU中斷標志寄存器各位的名稱和功能。圖2.17CPU中斷標志寄存器表2.11IF寄存器各位的名稱和功能2.6.10I/O控制寄存器

I/O控制寄存器(IOF)是一個32位的寄存器,控制通用I/O引腳XF0和XF1的功能,這些引腳可配置為輸入或輸出,也可對它們進行讀出和寫入,結(jié)構如圖2.18所示。復位時,該寄存器的內(nèi)容為0。表2.12列出了I/O控制寄存器各位的名稱和功能。圖2.18I/O控制寄存器表2.12IOF各位的名稱和功能2.6.11重復計數(shù)器和塊重復寄存器

RC、RS、RE這三個寄存器是與重復操作有關的寄存器。重復計數(shù)器RC(RepeatCounter)是一個32位的寄存器,當執(zhí)行一個塊重復時,用于確定被重復的次數(shù)。當RC=n時,循環(huán)執(zhí)行n+1次。重復起始地址寄存器RS(RepeatStart-address)是一個32位的寄存器,當工作在重復方式時,它包含所要重復的程序塊的起始地址。重復結(jié)束地址寄存器RE(RepeatEnd-address)是一個32位的寄存器,當工作在重復方式時,它包含所要重復的程序塊的結(jié)束地址。2.6.12其它寄存器程序計數(shù)器PC(ProgramCounter)是一個32位寄存器,它包含下一條被讀取的指令的地址。必須說明的是PC寄存器不屬于CPU寄存器,其內(nèi)容可以通過流程控制指令進行修改。指令寄存器IR(InstructionRegister)是一個32位的寄存器,在指令譯碼期間,它保存指令的操作碼。該寄存器被指令譯碼控制電路使用,CPU不能訪問它。2.7中斷管理

2.7.1TMS320VC33中斷向量表表2.13和表2.14列出了中斷向量。TMS320VC33可工作在不同的處理模式下,有MCBL/引腳狀態(tài)決定的微處理器模式和微計算機引導模式。中斷向量包括了中斷服務子程序的入口地址,當中斷發(fā)生時,程序跳轉(zhuǎn)到此處開始執(zhí)行。另一方面,在微計算機引導模式下,中斷向量包含指向中斷服務子程序的跳轉(zhuǎn)指令。表2.13微處理器模式下的復位、中斷及陷阱向量地址表2.14TMS320VC33微計算機引導模式下的中斷及陷阱向量地址2.7.2中斷優(yōu)先級當在同一個時鐘周期發(fā)生多個中斷時,CPU按照中斷的優(yōu)先級來區(qū)分中斷執(zhí)行次序。根據(jù)中斷向量表的位置對中斷優(yōu)先級進行設置,偏移量越靠近向量表基址的中斷,其優(yōu)先級別越高。表2.15給出了中斷的優(yōu)先級順序。表2.15復位及中斷向量優(yōu)先級2.7.3與中斷有關的控制寄存器有三個與中斷有關的寄存器,它們相應的位可控制中斷的操作,它們是狀態(tài)寄存器(ST)、中斷使能寄存器(IE)、中斷標志寄存器(IF)。

(1)狀態(tài)寄存器中的全局中斷使能位GIE置1時,CPU響應相應的中斷;該位置0時,所有中斷禁止。

(2)通過對中斷使能寄存器的每一位操作,可以使能或禁止CPU、DMA、串行口、定時器等中斷。

(3)中斷標志寄存器包含了中斷標志位,指出相應的中斷是否已經(jīng)發(fā)生。2.7.4中斷標志寄存器描述當中斷發(fā)生時,中斷標志寄存器中相應的位被置1。當CPU或DMA控制器處理此中斷時,相應的中斷標志位被內(nèi)部中斷獲取信號清除為0。但是對于按照優(yōu)先級排隊等待處理的中斷來說,如果當中斷獲取信號發(fā)生時仍為低電平,則中斷標志位被清零后僅保持一個周期后又被置位,因為仍然為低。當為0時,IF寄存器中相應的位同樣有可能為0,這取決于何時對IF寄存器進行讀操作。TMS320VC33復位時IF寄存器為0,并清除所有的等待處理的中斷。通過軟件控制可以讀取和寫入中斷標志寄存器的各個位。向IF寄存器的位寫入1,即設置相應的中斷標志位1,同樣寫0可以將相應的中斷標志復位為0。通過這種方法,可以使用軟件對所有的中斷進行觸發(fā)和清除。所有內(nèi)部中斷均占用一個H1/H3周期,如需保存IF寄存器中某一位的值,可直接對IF進行邏輯指令的操作,以此方式對IF寄存器進行修改。IF的加載有優(yōu)先級,若對IF寄存器的加載動作與中斷脈沖對標志進行復位的動作同時發(fā)生,則對標志的加載擁有更高的優(yōu)先級,由此決定寫入IF寄存器的值。2.7.5中斷處理過程

TMS320VC33允許CPU和DMA并行響應處理中斷。中斷處理流程如圖2.19所示。圖2.19CPU和DMA中斷處理示意圖當CPU中斷發(fā)生時,至少需要滿足以下兩個條件:

(1)將狀態(tài)寄存器(ST)中的GIE位置1,對所有的中斷進行全局使能;

(2)設置IE寄存器,對相應的中斷進行使能。在CPU中斷處理期間,IF寄存器中相應的標志位被清零,同時中斷被全局禁止(GIE=0)。PC指針被壓入,中斷向量被取出加載到PC,同時CPU開始執(zhí)行中斷服務子程序(ISR)中的第一條指令。若希望中斷服務子程序可以被中斷,那么當進入ISR中斷服務子程序后,設置GIE=1,這樣中斷服務可以被另外的中斷暫停。需要注意的是,中斷只在取指令時響應,若取指令因傳輸沖突或RPTS循環(huán)的執(zhí)行而停止,則直到下一個取指令時,中斷才可被響應。在執(zhí)行RPTS的過程中不響應中斷;在執(zhí)行完緊跟在延遲跳轉(zhuǎn)指令后面的3條指令之前,不響應中斷;已經(jīng)完成了取指而處于譯碼、讀操作數(shù)和執(zhí)行階段的所有指令在被執(zhí)行完后才能響應中斷,而正處于取指令階段的指令將被停止操作。2.7.6CPU中斷響應時間從獲取中斷到執(zhí)行中斷服務子程序的第一條指令之前的時間被定義為CPU中斷響應時間,這個階段至少持續(xù)8個周期。表2.16解釋了這8個周期,假定所有的指令均為單周期指令。表2.16中斷響應描述2.7.7外部中斷

TMS320VC33支持多個內(nèi)部和外部中斷。外部中斷是在內(nèi)部進行同步的,時鐘H1/H3驅(qū)動3個觸發(fā)器,如圖2.20所示。如果中斷有效,則中斷輸出將置位相應的中斷標志寄存器(IF)。圖2.20中斷邏輯功能框圖在H1信號的下降沿或脈沖持續(xù)時間對中斷~進行觸發(fā),同時內(nèi)部通過一系列的H1/H3鎖存,這些鎖存需要中斷信號至少在一個H1/H3時鐘周期內(nèi)保持低電平,便于TMS320VC33進行識別。當有中斷在同一個時鐘周期到來時,通過選擇其中之一先執(zhí)行來確定中斷優(yōu)先級。當中斷發(fā)生時,狀態(tài)寄存器ST的GIE位被復位為0,禁止任何到來的中斷。由此阻止了其他的中斷~取得程序控制權,直到ST的GIE位被設置為1后。中斷子程序返回時,RETI或RETIcond指令將ST的GIE位設置為1。對于TMS320VC33來說,外部中斷為電平觸發(fā)方式時,低電平的持續(xù)時間至少為一個H1/H3周期,但不能超過兩個H1/H3周期,否則會被認為是多個中斷。2.8外圍設備

TMS320VC33有兩個定時器:一個串行口和一個DMA(DirectMemoryAccess),它們是通過外圍總線上的存儲器映射寄存器來管理的,因而將其稱為外圍設備。管理這些外圍設備的寄存器共18個,其中定時器0和定時器1各有3個寄存器,串行口有8個寄存器,DMA有4個寄存器。2.8.1定時器

TMS320VC33有兩個32位的定時器,每個定時器有兩種信號模式及內(nèi)部或外部時鐘模式,可以使用定時器定時一定周期的脈沖或方波信號輸出,或者對外部的事件計數(shù)。使用內(nèi)部時鐘時,定時器可以發(fā)出信號作為外部設備(如A/D轉(zhuǎn)換器)的控制信號,或者可以中斷DMA控制器以開始一次數(shù)據(jù)傳輸。定時器中斷是內(nèi)部中斷的一種。在外部時鐘的作用下,定時器可以對外部事件進行計數(shù),并且在指定的事件發(fā)生后中斷CPU。上述兩個定時器的功能、結(jié)構、控制寄存器的內(nèi)容和用法是完全相同的,所不同的僅是地址。每個定時器都由一個32位的計數(shù)器、一個比較器、一個輸入時鐘選擇器、一個脈沖發(fā)生器及支撐硬件組成,如圖2.21所示。定時器的工作過程為:時鐘選擇器用于選擇計數(shù)器的時鐘源,該時鐘可以采用DSP內(nèi)部的CPU時鐘,也可以采用外部的時鐘,還可以對輸入的內(nèi)部或外部時鐘進行反向。當采用內(nèi)部時鐘時,輸入計數(shù)器的最高頻率是CPU時鐘頻率fH1的1/2,或周期的2倍,記作2TH1;當采用外部時鐘時,外部時鐘的最高頻率是CPU時鐘頻率fH1的1/2.6。周期寄存器用于存放需要計數(shù)的個數(shù),計數(shù)器用于累計實際的計數(shù)值,比較器對周期寄存器和計數(shù)器的值進行比較,當二者相等時,可通過脈沖發(fā)生器產(chǎn)生定時器的輸出信號,同時將信息反饋到定時器的全局控制寄存器的狀態(tài)位TSTAT。圖2.21定時器的原理框圖每一個定時器有三個控制寄存器:定時器全局控制寄存器、周期寄存器、計數(shù)器。它們在存儲器中的地址如圖2.22所示,為了便于比較,該圖還同時給出了串行口、DMA和主總線控制寄存器的地址。圖2.22定時器及其它外圍寄存器的地址

1.定時器引腳定時器0和定時器1各對應一個引腳,分別記為TCLK0和TCLK1,每個引腳可單獨設置為定時器方式或通用I/O方式。即使設置為定時器方式,引腳TCLK0和TCLK1也有輸入或輸出兩種功能。

2.定時器控制寄存器每個定時器使用了三個存儲器映射寄存器,在存儲器中的地址如圖2.22所示。其功能如下:

(1)全局控制寄存器(Global-controlRegi

溫馨提示

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

評論

0/150

提交評論