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

下載本文檔

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

文檔簡介

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

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

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

2.5存儲(chǔ)器管理

2.6CPU寄存器與其它寄存器

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

思考題和習(xí)題

2.1TMS320VC33概述

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

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

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

VC33的主要性能如下:

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

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

(3)?34K×32位片內(nèi)RAM,共分為4塊,其中16K和1K各2塊,每個(gè)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é)構(gòu)中有一個(gè)硬件乘法器和一個(gè)算術(shù)邏輯單元ALU,單周期乘法指令,在一個(gè)周期內(nèi)可以完成一次乘法和一次加法運(yùn)算;ALU在單周期內(nèi)對(duì)32位整數(shù)、32位邏輯或40位浮點(diǎn)數(shù)執(zhí)行操作,ALU的結(jié)果總是保持32位的整數(shù)或40位的浮點(diǎn)數(shù)格式。

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

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

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

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

(10)兩個(gè)32位的硬件定時(shí)器。

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

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

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

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

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

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

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

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

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

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

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

(2)凡有輸出功能的信號(hào),在一定條件下都可處于高阻狀態(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,這就是說,當(dāng)數(shù)據(jù)線只作為輸出腳時(shí),可以與供電電壓為5?V的CMOS集成電路直接接口,因?yàn)檫壿嫺唠娖降南孪拗?.4?V和邏輯低電平的上限值1.8?V與TTL電平是兼容的。但當(dāng)數(shù)據(jù)線作為輸入引腳使用時(shí),其能夠承受的最高電壓為4.6?V,而TTL電平的邏輯高電平的最大電壓可達(dá)5?V,這時(shí)必須增設(shè)電平轉(zhuǎn)換接口電路。

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

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

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

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

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

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

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

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

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

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

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

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

(7)?MCBL/是微計(jì)算機(jī)引導(dǎo)方式和微處理器方式控制信號(hào),若MCBL/

=1,則為微計(jì)算機(jī)引導(dǎo)方式,簡稱MCBL方式(MicrocomputerBootLoadMode);若MCBL

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

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

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

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

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

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

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

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

1.電源

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

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

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

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

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

4.H1和H3

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

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

TCK:測(cè)試時(shí)鐘輸入;

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

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

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

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

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

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

2.算術(shù)邏輯單元(ALU)

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

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

4.CPU總線和寄存器總線

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

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

6.CPU寄存器組

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

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

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

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

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

(3)解決了總線擁擠問題,提高了運(yùn)算速度。2.4.1內(nèi)部總線內(nèi)部總線是與CPU寄存器和程序計(jì)數(shù)器(PC)相關(guān)聯(lián)的總線。TMS320VC33的高性能在很大程度上歸功于其優(yōu)越的內(nèi)部總線結(jié)構(gòu)以及由此帶來的并行運(yùn)算性能。內(nèi)部總線的特點(diǎn)是:程序總線與數(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程序計(jì)數(shù)器(PC)與24位的程序地址總線(PADDR)相連。索引寄存器(IR)與32位的程序數(shù)據(jù)總線(PDATA)相連。這些總線在每一機(jī)器周期內(nèi)可讀取一個(gè)指令字。

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

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

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

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

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

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

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

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

(2)在微計(jì)算機(jī)引導(dǎo)方式下,1000h~7FFFFFh為外部存取空間,訪問該空間時(shí)有效,該空間的大小為8?MB-4?KB,即0h~7FFFFFh為8?MB,但因4?KB的ROM被映射到存儲(chǔ)空間了,所以,比8?MB少了4?KB。實(shí)際上,該空間內(nèi)還有兩個(gè)字節(jié)作為被引導(dǎo)的用戶程序的起始地址,即外部程序的首地址,這兩個(gè)地址分別是1000h和400000h,前者對(duì)應(yīng)于Boot1,由外部中斷引腳~觸發(fā)引導(dǎo)程序,后者對(duì)應(yīng)于Boot2,由外部中斷引腳~觸發(fā)引導(dǎo)程序。而在微處理器方式下,外部存取空間的起始地址為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)的存儲(chǔ)空間為1K×32位,但在微計(jì)算機(jī)引導(dǎo)方式下,上述范圍內(nèi)的809FC1h~809FFFh的64?B被用于存放中斷、陷阱的中斷服務(wù)程序的分支指令和保留字節(jié)。微處理器方式下,RAM1所屬的1K×32位空間可全部由用戶使用。

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

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

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

TINT0:定時(shí)器0中斷 TINT1:定時(shí)器1中斷

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

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

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

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

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

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

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

(1)?Cache中讀指令字;

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

1.定時(shí)器引腳定時(shí)器0和定時(shí)器1各對(duì)應(yīng)一個(gè)引腳,分別記為TCLK0和TCLK1,每個(gè)引腳可單獨(dú)設(shè)置為定時(shí)器方式或通用I/O方式。即使設(shè)置為定時(shí)器方式,引腳TCLK0和TCLK1也有輸入或輸出兩種功能。

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

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

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論