《DSP在現(xiàn)代測(cè)控技術(shù)中的應(yīng)用》課件第2章_第1頁(yè)
《DSP在現(xiàn)代測(cè)控技術(shù)中的應(yīng)用》課件第2章_第2頁(yè)
《DSP在現(xiàn)代測(cè)控技術(shù)中的應(yīng)用》課件第2章_第3頁(yè)
《DSP在現(xiàn)代測(cè)控技術(shù)中的應(yīng)用》課件第2章_第4頁(yè)
《DSP在現(xiàn)代測(cè)控技術(shù)中的應(yīng)用》課件第2章_第5頁(yè)
已閱讀5頁(yè),還剩533頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

第2章TMS320LF240xA系列DSP的結(jié)構(gòu)、原理及硬件資源

2.1TMS320LF240xA的硬件結(jié)構(gòu)

2.2TMS320LF240xA的系統(tǒng)配置

2.3TMS320LF240xA的存儲(chǔ)空間及存儲(chǔ)器

2.4TMS320LF240xA的中斷系統(tǒng)

2.5TMS320LF240xA的尋址方式和指令系統(tǒng)

2.6TMS320LF240xA的時(shí)鐘和低功耗電路

2.7TMS320LF240xA的數(shù)字I/O模塊

2.8TMS320LF240xA的模/數(shù)轉(zhuǎn)換模塊(ADC)2.9TMS320LF240xA的事件管理器模塊(EV)2.10TMS320LF240xA的串行外設(shè)接口模塊(SPI)2.11TMS320LF240xA的串行通信接口模塊(SCI)2.1TMS320LF240xA的硬件結(jié)構(gòu)2.1.1TMS320LF240xA系列DSP的主要性能特征在TMS320LF24x系列DSP中,按制造工藝主要分為5V供電的TMS320F/C24x和3.3V供電的低功耗TMS320LF/LC240xA兩類。

TMS320F/C24x系列DSP主要包括內(nèi)部集成Flash的TMS320F243/F241/F240和內(nèi)部集成ROM的TMS320C242等產(chǎn)品,該系列芯片采用5V電源供電,最高運(yùn)算速度為20MIPS,內(nèi)部具有544字的雙存取RAM(DARAM)、最大16K字的Flash存儲(chǔ)器或4K字的ROM存儲(chǔ)器,其中F243和F240具有外部存儲(chǔ)器接口,可對(duì)存儲(chǔ)器進(jìn)行擴(kuò)展。在片上外設(shè)方面,該系列芯片具有2~3個(gè)通用定時(shí)器和看門狗定時(shí)器,有8/12個(gè)脈寬調(diào)制信號(hào)(PWM)輸出通道,8/16通道的10位A/D轉(zhuǎn)換通道,并集成有串行外設(shè)接口(SPI)、串行通信接口(SCI)和局域網(wǎng)控制器(CAN總線)等模塊,具有多達(dá)32個(gè)通用的數(shù)字I/O引腳,為工業(yè)控制和測(cè)控領(lǐng)域中的應(yīng)用提供了豐富的片上外設(shè)接口。TMS320F/C24x系列DSP的具體資源如表2-1所示。

表2-1TMS320F/C24x系列DSP的具體資源

TMS320LF/LC240xA采用3.3V的低電壓設(shè)計(jì),其最高運(yùn)算速度提高了一倍,達(dá)到40MIPS。TMS320LF2407A是該系列產(chǎn)品的典型代表,目前在工業(yè)控制和測(cè)控領(lǐng)域中的應(yīng)用也越來(lái)越廣泛。TMS320LF240xA的主要特征如下所述。

(1)采用高性能的靜態(tài)CMOS技術(shù),指令周期最高可達(dá)到25ns(即執(zhí)行速度為40MIPS)。

(2)片上集成了高達(dá)32K字、具有代碼加密功能的Flash或ROM存儲(chǔ)器;集成了高達(dá)2.5K字的程序/數(shù)據(jù)RAM存儲(chǔ)器,其中包括544字的雙存取RAM(DARAM)和2K字的單存取RAM(SARAM)。

(3)支持兩個(gè)功率驅(qū)動(dòng)保護(hù)中斷、復(fù)位中斷和兩個(gè)可屏蔽中斷共5個(gè)外部中斷資源。

(4)具有多達(dá)40個(gè)獨(dú)立的多路復(fù)用的可編程的數(shù)字I/O引腳。

(5)具有豐富的片上外設(shè):最多兩個(gè)事件管理器EVA和EVB(每個(gè)事件管理器包括2個(gè)16位通用定時(shí)器、8個(gè)16位脈寬調(diào)制信號(hào)產(chǎn)生通道、3個(gè)外部事件捕獲單元、正交脈沖編碼電路),看門狗定時(shí)器模塊,16路或8路10位A/D轉(zhuǎn)換模塊,CAN總線模塊,串行外設(shè)模塊(SPI),串行通信模塊(SCI)和PLL鎖相環(huán)電路等。

圖2-1TMS320LF2407A引腳圖(PGE封裝)表2-2TMS320LF/LC240xA系列DSP的具體資源

2.1.2TMS320LF240xA系列DSP的硬件結(jié)構(gòu)

TMS320C24x系列數(shù)字信號(hào)處理器(DSP)是針對(duì)工業(yè)控制領(lǐng)域應(yīng)用而專門設(shè)計(jì)的一種片上的計(jì)算機(jī)系統(tǒng),它在片上不但具有一個(gè)適于進(jìn)行數(shù)字信號(hào)處理的高效處理器,而且還集成了存儲(chǔ)器和適應(yīng)工業(yè)控制領(lǐng)域應(yīng)用的豐富的片上外設(shè),從而構(gòu)成了一個(gè)基本的片上系統(tǒng),為工業(yè)控制和測(cè)控方面的應(yīng)用提供了一個(gè)性能良好、穩(wěn)定性高的計(jì)算機(jī)系統(tǒng)。

TMS320LF2407A是2000系列中目前應(yīng)用最為廣泛的產(chǎn)品。TMS320LF2407A的基本結(jié)構(gòu)包括中央處理器單元(CPU)、存儲(chǔ)器、片內(nèi)外設(shè)與專用硬件電路三個(gè)組成部分。其中,CPU中主要包括中央算術(shù)邏輯單元(CALU)、累加器(ACC)、乘法器(MUL)、移位寄存器和尋址單元等。存儲(chǔ)器包括片內(nèi)FlashROM、片內(nèi)ROM、SARAM和DARAM。片內(nèi)外設(shè)與專用硬件電路包括數(shù)字輸入/輸出模塊(數(shù)字I/O)、事件管理器模塊(EV)、模/數(shù)轉(zhuǎn)換器模塊(ADC)、串行外設(shè)模塊(SPI)、串行通信模塊(SCI)和局域網(wǎng)控制器模塊(CAN)等。圖2-2給出了TMS320LF2407A的主要硬件單元的結(jié)構(gòu)功能框圖。

圖2-2TMS320LF2407A的主要硬件單元的結(jié)構(gòu)框圖

2.1.3DSP芯片的引腳說(shuō)明

TMS320LF/LC240xA系列DSP產(chǎn)品中,不同的芯片由于具有不同的外部接口功能和不同的封裝形式,因此其引腳數(shù)目和引腳分布各不相同。其中,TMS320LF2407A采用PGE封裝,具有144個(gè)引腳,其引腳數(shù)量和功能是TMS320LF/LC240xA系列DSP中最全的,因此熟練掌握TMS320LF2407A的引腳功能對(duì)該系列其他芯片的應(yīng)用具有重要意義。圖2-3按照對(duì)應(yīng)的功能模塊關(guān)系給出了TMS320LF2407A的引腳圖,該圖可以加深讀者對(duì)DSP引腳功能的理解和掌握。表2-3~表2-11按功能模塊給出了該芯片各引腳功能的詳細(xì)說(shuō)明。

圖2-3按功能模塊給出的TMS320LF2407A的引腳圖表2-3事件管理器A對(duì)應(yīng)引腳功能說(shuō)明

表2-4事件管理器B對(duì)應(yīng)引腳功能說(shuō)明

表2-5A/D轉(zhuǎn)換器對(duì)應(yīng)引腳功能說(shuō)明

表2-6CAN、SCI、SPI通信模塊對(duì)應(yīng)引腳功能說(shuō)明

表2-7外部中斷與時(shí)鐘模塊對(duì)應(yīng)引腳功能說(shuō)明

表2-8振蕩器/PLL/Flash/Boot模塊對(duì)應(yīng)引腳功能說(shuō)明

表2-9JTAG仿真測(cè)試引腳

表2-10外部空間擴(kuò)展引腳

表2-10外部空間擴(kuò)展引腳表2-11電

2.1.4DSP的總線結(jié)構(gòu)

區(qū)別于一般計(jì)算機(jī)系統(tǒng)采用的馮·諾依曼型總線結(jié)構(gòu),DSP系統(tǒng)采用哈佛型總線結(jié)構(gòu),在這種結(jié)構(gòu)中程序空間和數(shù)據(jù)空間相對(duì)獨(dú)立,具有各自的總線。這樣相對(duì)于馮·諾依曼型總線,哈佛總線結(jié)構(gòu)比較復(fù)雜,但由于不同空間總線的并行性,因此哈佛結(jié)構(gòu)為DSP系統(tǒng)提供了更高的總線效率。

作為TI公司的TMS320系列的數(shù)字信號(hào)處理器,C24xDSP具有一個(gè)基于2xLPASIC技術(shù)的C2xxDSP核心,它具有獨(dú)立的6條16位內(nèi)部數(shù)據(jù)和程序總線結(jié)構(gòu),其總線結(jié)構(gòu)如圖2-4所示。

圖2-4TMS320C24x系列DSP內(nèi)部總線結(jié)構(gòu)

這6條總線的具體功能如下所述。

(1)程序地址總線(PAB):提供對(duì)程序存儲(chǔ)器讀、寫操作時(shí)的地址。

(2)數(shù)據(jù)讀地址總線(DRAB):提供對(duì)數(shù)據(jù)存儲(chǔ)器讀操作時(shí)的地址。

(3)數(shù)據(jù)寫地址總線(DWAB):提供對(duì)數(shù)據(jù)存儲(chǔ)器寫操作時(shí)的地址。

(4)程序讀總線(PRDB):在CPU訪問(wèn)程序存儲(chǔ)器時(shí)按指令的執(zhí)行要求由程序存儲(chǔ)器向CPU傳輸指令代碼、立即數(shù)和表操作數(shù)據(jù)。

(5)數(shù)據(jù)讀總線(DRDB):在對(duì)數(shù)據(jù)存儲(chǔ)器進(jìn)行讀操作時(shí)將指定數(shù)據(jù)由數(shù)據(jù)存儲(chǔ)器讀入到CPU中的中央算術(shù)邏輯單元(CALU)和輔助寄存器算術(shù)運(yùn)算單元(ARAU)。

(6)程序和數(shù)據(jù)寫總線(DWEB):在對(duì)程序存儲(chǔ)器或數(shù)據(jù)存儲(chǔ)器進(jìn)行寫操作時(shí)將需寫入的數(shù)據(jù)由CPU送至相應(yīng)的存儲(chǔ)器。

由C24xDSP的內(nèi)部總線結(jié)構(gòu)可知,由于具有獨(dú)立的數(shù)據(jù)讀地址總線(DRAB)和數(shù)據(jù)寫地址總線(DWAB),因此DSP允許CPU在同一時(shí)鐘周期內(nèi)完成對(duì)數(shù)據(jù)空間的讀和寫操作。2.1.5DSP的中央處理單元

中央處理器(CPU)是DSP的運(yùn)算處理核心,它的主要任務(wù)是按指令的要求完成相應(yīng)的處理和計(jì)算任務(wù)。CPU內(nèi)部功能結(jié)構(gòu)如圖2-5所示。

TMS320LF240xA系列DSP的CPU主要由以下幾個(gè)部分組成:

(1)1個(gè)32位的中央算術(shù)邏輯單元(CALU);

(2)32位累加器(ACC);

(3)輸入定標(biāo)移位器(ISCALE);

(4)16×16位硬件乘法器(MUL);

(5)輸出定標(biāo)移位器(OSCALE);

(6)系統(tǒng)狀態(tài)寄存器(ST0和ST1);

(7)輔助寄存器和輔助寄存器算術(shù)單元(AR和ARAU)。

圖2-5TMS320LF240xA系列DSP的CPU內(nèi)部結(jié)構(gòu)功能框圖

1.中央算術(shù)邏輯單元

中央算術(shù)邏輯單元(CALU)用來(lái)實(shí)現(xiàn)DSP中大部分算術(shù)運(yùn)算和邏輯運(yùn)算,這些功能包括:16位加法、16位減法、布爾邏輯操作、位測(cè)試、移位和位循環(huán)功能。其中,大部分運(yùn)算只需要一個(gè)時(shí)鐘周期。

CPU核心中的CALU如圖2-6所示,C24x核心中的CALU是一個(gè)32位的算術(shù)邏輯器件,它有兩個(gè)32位輸入,其中一個(gè)來(lái)自數(shù)據(jù)總線或乘法器的輸出,另一個(gè)來(lái)自累加器。兩個(gè)32位輸入按指令完成算術(shù)邏輯運(yùn)算,結(jié)果送入32位累加器。

CPU的狀態(tài)寄存器中與中央算術(shù)邏輯單元的狀態(tài)相關(guān)的狀態(tài)位有兩個(gè),它們分別是溢出方式位(OVM)和符號(hào)擴(kuò)展模式位(SXM)。OVM位決定了當(dāng)CALU計(jì)算發(fā)生溢出時(shí)采用正常溢出或飽和溢出方式。SXM位決定了CALU運(yùn)算中的符號(hào)擴(kuò)展方式,當(dāng)SXM=0時(shí)符號(hào)擴(kuò)展方式無(wú)效,當(dāng)SXM=1時(shí)符號(hào)擴(kuò)展方式有效。

2.32位累加器

32位的累加器(ACC)主要用于存放來(lái)自中央算術(shù)邏輯單元的32位運(yùn)算結(jié)果,并可在其中對(duì)數(shù)據(jù)進(jìn)行移位,累加器的結(jié)果可以作為輸入直接送至中央算術(shù)邏輯單元(CALU),也可送至輸出移位單元進(jìn)行0~7位移位后輸出。

累加器可分為高16位和低16位單獨(dú)操作,分別記為ACCH和ACCL。如圖2-6所示,人們經(jīng)常將CPU的狀態(tài)寄存器中的進(jìn)位標(biāo)志C畫于累加器前,用于表示累加器和進(jìn)位標(biāo)志之間的進(jìn)位關(guān)系。

圖2-6CALU和ACC的結(jié)構(gòu)

CPU的狀態(tài)寄存器中與累加器的狀態(tài)相關(guān)的狀態(tài)位有四個(gè),它們分別是溢出方式位(OVM)、溢出標(biāo)志位(OV)、進(jìn)位位(C)和測(cè)試控制標(biāo)志位(TC)。OVM位決定了當(dāng)累加器計(jì)算發(fā)生溢出時(shí)采用正常溢出或飽和溢出方式;OV是當(dāng)前累加器是否溢出的標(biāo)志位,未檢測(cè)到累加器溢出時(shí)OV=0,檢測(cè)到累加器溢出時(shí)OV=1且被鎖存;C位是進(jìn)位標(biāo)志位,當(dāng)累加器進(jìn)行加、減、移位或循環(huán)移位操作時(shí)可能影響C標(biāo)志,當(dāng)C=1時(shí)表明當(dāng)前操作發(fā)生了進(jìn)位或借位,當(dāng)C=0時(shí)表明當(dāng)前操作未發(fā)生進(jìn)位或借位;TC用于標(biāo)志測(cè)試的結(jié)果,當(dāng)執(zhí)行相關(guān)的測(cè)試指令時(shí),根據(jù)被測(cè)試位的結(jié)果,該位被置為0或1。

3.輸入定標(biāo)移位器

如圖2-5所示,輸入定標(biāo)移位器(ISCALE)位于數(shù)據(jù)/程序總線和中央算術(shù)邏輯單元(CALU)之間,用于完成數(shù)據(jù)/程序總線和CALU之間的數(shù)據(jù)傳遞。C24x系列DSP的數(shù)據(jù)/程序總線都是16位的,而CALU是32位的,所以由數(shù)據(jù)/程序總線向CALU加載數(shù)據(jù)時(shí)必須實(shí)現(xiàn)16位到32位的轉(zhuǎn)換,ISCALE就主要完成這一功能。ISCALE可對(duì)輸入數(shù)據(jù)進(jìn)行0~16位的移位,并在移位后對(duì)數(shù)據(jù)的高位和低位進(jìn)行補(bǔ)位,以將其擴(kuò)展為32位數(shù)據(jù)輸入至CALU。由于ISCALE是獨(dú)立于CALU的硬件器件,因此它的移位操作與CALU的計(jì)算并行進(jìn)行,并不占用CPU額外的時(shí)鐘開(kāi)銷。

CPU的狀態(tài)寄存器中的SXM位可影響ISCALE的高位補(bǔ)位方式,ISCALE在對(duì)16位數(shù)據(jù)進(jìn)行移位后對(duì)低位總是補(bǔ)入相應(yīng)數(shù)目的0。對(duì)于高位,當(dāng)SXM=0時(shí)高位補(bǔ)0,當(dāng)SXM=1時(shí)高位進(jìn)行符號(hào)擴(kuò)展。

4.16×16位硬件乘法器

硬件乘法器(MUL)是DSP器件的一個(gè)標(biāo)志性器件,C24x系列DSP核心中有一個(gè)16×16位的硬件乘法器,它可以在單個(gè)機(jī)器周期內(nèi)完成乘法運(yùn)算并產(chǎn)生一個(gè)32位的有符號(hào)或無(wú)符號(hào)的乘積結(jié)果。這使得DSP較其他類型的處理器來(lái)講可以更高效率地完成乘法運(yùn)算。我們知道,在數(shù)字信號(hào)處理領(lǐng)域,一般算法都需要進(jìn)行大量的乘法運(yùn)算,這樣硬件乘法器就使得DSP具有了十分突出的數(shù)字信號(hào)處理能力。

圖2-7硬件乘法器

如圖2-7所示,在乘法器工作的過(guò)程中,有兩個(gè)專門的寄存器輔助硬件乘法器完成乘法運(yùn)算,它們分別是臨時(shí)寄存器(TREG)和乘積寄存器(PREG)。由圖2-7可以看出,乘法器的兩個(gè)輸入,一個(gè)來(lái)自數(shù)據(jù)或程序總線,另外一個(gè)必須來(lái)自臨時(shí)寄存器(TREG)。也就是說(shuō),TREG用于存放參與運(yùn)算的一個(gè)乘數(shù),TREG中的數(shù)據(jù)可由數(shù)據(jù)總線進(jìn)行加載。乘積寄存器(PREG)用于存放乘法器的運(yùn)算結(jié)果。32位的PREG保證了兩個(gè)16位乘數(shù)一次相乘后結(jié)果不會(huì)溢出。在硬件乘法器的輸出處配置有一個(gè)專門用于乘積結(jié)果移位的乘積移位器(PSCALE),存儲(chǔ)于PREG中的乘積結(jié)果經(jīng)過(guò)乘積移位器的移位處理后送至中央算術(shù)邏輯單元。此處對(duì)乘積結(jié)果的移位處理主要是為了消除乘法符號(hào)數(shù)在運(yùn)算過(guò)程中產(chǎn)生的多余的符號(hào)位。由圖2-7可以看到,PSCALE共支持4種移位,分別為-6、0、1、4位的移位,其中正數(shù)代表左移,負(fù)數(shù)代表右移。移位位數(shù)由CPU的狀態(tài)寄存器中的乘積移位模式PM位決定,具體如表2-12所示。

表2-12乘積移位器的乘積移位模式

5.輸出定標(biāo)移位器

輸出定標(biāo)移位器(OSCALE)位于累加器的輸出端。32位累加器中的數(shù)據(jù)需要保存到存儲(chǔ)器中時(shí),可根據(jù)需要對(duì)累加器中的數(shù)據(jù)進(jìn)行移位定標(biāo)后,通過(guò)16位的數(shù)據(jù)總線送至存儲(chǔ)器,輸出定標(biāo)移位器就是完成輸出數(shù)據(jù)的移位定標(biāo)的專門器件。如圖2-6所示,OSCALE可對(duì)累加器中的數(shù)據(jù)完成0~7位移位后送至數(shù)據(jù)總線。由于OSCALE是獨(dú)立于CALU的硬件器件,因此這一移位過(guò)程不需要額外的時(shí)鐘開(kāi)銷。

6.系統(tǒng)狀態(tài)寄存器

C24x系列DSP具有兩個(gè)16位的寄存器,它們用于保存描述CPU當(dāng)前計(jì)算狀態(tài)和對(duì)CPU的計(jì)算模式進(jìn)行控制的信息,這兩個(gè)寄存器稱為系統(tǒng)狀態(tài)寄存器(ST0和ST1)。通過(guò)讀取ST0或ST1中相關(guān)位的值可以獲取CPU的當(dāng)前狀態(tài),置位或清零相關(guān)的位可以改變CPU的狀態(tài)或計(jì)算模式。DSP允許將存儲(chǔ)器ST0和ST1的值存入數(shù)據(jù)存儲(chǔ)器或從數(shù)據(jù)存儲(chǔ)器中加載到這兩個(gè)寄存器,這就允許在子程序調(diào)用和退出時(shí)保存和恢復(fù)CPU的狀態(tài)。下面分別介紹ST0和ST1的構(gòu)成及其各位的含義。

1)ST0

系統(tǒng)狀態(tài)寄存器ST0的各位如表2-13所示。

表2-13系統(tǒng)狀態(tài)寄存器ST0寄存器ST0的各比特域的具體含義如下所述。

●位15~13:ARP,輔助寄存器指針。與間接尋址相關(guān),在間接尋址時(shí)選擇當(dāng)前的輔助寄存器。當(dāng)使用LST以外的指令修改ARP的值時(shí),修改前的ARP值被復(fù)制到輔助寄存器指針緩沖器ARB(見(jiàn)ST1)中。

位12:OV,溢出標(biāo)志位。該位標(biāo)志著當(dāng)前中央算術(shù)邏輯單元(CALU)是否發(fā)生溢出。未檢測(cè)到CALU溢出時(shí)OV=0,檢測(cè)到CALU溢出時(shí)OV=1。一旦發(fā)生溢出,OV位將保持置位狀態(tài),直到發(fā)生復(fù)位,或執(zhí)行以O(shè)V(溢出)或NOV(不溢出)為條件的條件跳轉(zhuǎn)指令,或執(zhí)行LST指令時(shí)被清0。

●位11:OVM,溢出模式位。OVM位決定了當(dāng)CALU計(jì)算發(fā)生溢出時(shí)采用正常溢出還是飽和溢出方式。當(dāng)OVM=0時(shí)為正常溢出方式;當(dāng)OVM=1時(shí)為飽和溢出方式,即當(dāng)發(fā)生上溢時(shí)用最大的正數(shù)7FFFFFFFh加載累加器,當(dāng)發(fā)生下溢時(shí)用最小的負(fù)數(shù)80000000h加載累加器。飽和溢出方式在圖像處理等應(yīng)用場(chǎng)合十分有用。

位10:保留位。

●位9:INTM,中斷模式位。通過(guò)INTM位可以在全局上屏蔽或使能所有的可屏蔽中斷,相當(dāng)于可屏蔽中斷的總開(kāi)關(guān)。當(dāng)INTM=0時(shí),使能所有的可屏蔽中斷;當(dāng)INTM=1時(shí),禁止所有的可屏蔽中斷。INTM位不影響不可屏蔽的復(fù)位中斷(RS)、不可屏蔽中斷(NMI)和所有軟件中斷。LST指令不影響INTM位。

位8~0:DP,數(shù)據(jù)存儲(chǔ)器頁(yè)指針。與直接尋址方式相關(guān),在直接尋址方式中,邏輯上將數(shù)據(jù)存儲(chǔ)空間分為512頁(yè),這9位DP可以表示當(dāng)前尋址的數(shù)據(jù)頁(yè)的頁(yè)碼。采用直接尋址方式訪問(wèn)數(shù)據(jù)空間時(shí),由DP中的數(shù)值和指令中給出的低7位地址一起構(gòu)成實(shí)際尋址的16位物理地址。

2)ST1

系統(tǒng)狀態(tài)寄存器ST1的各位如表2-14所示。

表2-14系統(tǒng)狀態(tài)寄存器ST1寄存器ST1的各比特域的具體含義如下所述。

●位15~13:ARB,輔助寄存器指針緩沖器。當(dāng)使用LST以外的指令修改輔助寄存器指針緩沖器(ARP)的值時(shí),修改前的ARP值被復(fù)制到輔助寄存器指針緩沖器ARB中。這樣相當(dāng)于為前一個(gè)使用的輔助寄存器指針值留有一個(gè)備份,可以在程序中方便地回到上一個(gè)使用的ARP。

位12:CNF,片內(nèi)DARAM配置位。通過(guò)該位設(shè)置,可以方便地將片內(nèi)的DARAM存儲(chǔ)器映射到數(shù)據(jù)地址空間或程序地址空間。當(dāng)CNF=0時(shí),片內(nèi)DARAM映射到數(shù)據(jù)地址空間;當(dāng)CNF=1時(shí),片內(nèi)DARAM映射到程序地址空間。

●位11:TC,測(cè)試/控制標(biāo)志位。該位用于存放中央算術(shù)邏輯單元(CALU)進(jìn)行位測(cè)試的結(jié)果。當(dāng)位測(cè)試指令BIT或BITT對(duì)指定位的測(cè)試結(jié)果為1,或輔助寄存器比較指令CMPR的比較條件成立,或歸一化指令NORM對(duì)累加器最高兩位進(jìn)行異或操作結(jié)果為真時(shí),TC=1。條件跳轉(zhuǎn)、條件調(diào)用和條件返回指令都可以TC位的值作為條件。

●位10:SXM,符號(hào)擴(kuò)展模式位。該位決定著DSP對(duì)數(shù)據(jù)高位的擴(kuò)展方式。當(dāng)SXM=0時(shí),禁用符號(hào)擴(kuò)展方式,利用補(bǔ)0對(duì)高位進(jìn)行擴(kuò)展;當(dāng)SXM=1時(shí),數(shù)據(jù)在被CALU使用之前對(duì)高位進(jìn)行符號(hào)擴(kuò)展。一些指令不受SXM的影響,如無(wú)論SXM為何值,在執(zhí)行ADDS、LDU和SUB指令時(shí)禁用符號(hào)擴(kuò)展模式。

●位9:C,進(jìn)位位。當(dāng)算術(shù)邏輯單元(CALU)進(jìn)行加、減、累加器(ACC)移位或循環(huán)移位操作時(shí)可能影響C位。對(duì)CALU進(jìn)行的一般32位運(yùn)算,加法運(yùn)算產(chǎn)生進(jìn)位時(shí)置1,減法運(yùn)算產(chǎn)生借位時(shí)清0;加法運(yùn)算未產(chǎn)生進(jìn)位時(shí)清0,減法運(yùn)算未產(chǎn)生借位時(shí)置1。對(duì)帶16位移位的ADD指令或SUB指令,加法運(yùn)算產(chǎn)生進(jìn)位時(shí)置1,減法運(yùn)算產(chǎn)生借位時(shí)清0,未產(chǎn)生進(jìn)位或未產(chǎn)生借位時(shí)對(duì)C位沒(méi)有影響。進(jìn)位和借位定義在第32位。

位8~5:保留位。

●位4:XF,引腳狀態(tài)位。該位指示DSP的XF引腳的電平狀態(tài),XF是輸出引腳,通過(guò)指令改變?cè)撐坏闹悼梢愿淖僁SP的XF引腳的輸出電平。SSBX指令可將XF位置1,RSBX指令可將XF位清0。

●位3~2:保留位。

位1~0:PM,乘積移位模式位。PM位控制硬件乘法器輸出通道的乘積定標(biāo)移位器(PSCALE)對(duì)乘積結(jié)果的移位位數(shù)。PSCALE共支持4種移位,分別為-6、0、1、4位的移位,其中正數(shù)代表左移,負(fù)數(shù)代表右移,具體見(jiàn)表2-12。

7.輔助寄存器和輔助寄存器算術(shù)運(yùn)算單元

如圖2-5和圖2-8所示,DSP的CPU核心中有8個(gè)16位的輔助寄存器,分別用AR0~AR7表示。8個(gè)輔助寄存器專門用于間接尋址。在間接尋址中,系統(tǒng)將待訪問(wèn)的數(shù)據(jù)空間地址賦值給AR0~AR7中的任意一個(gè)輔助寄存器,以該輔助寄存器的值為地址進(jìn)行尋址。圖2-8中給出了狀態(tài)寄存器中輔助寄存器指針(ARP)和輔助寄存器指針緩沖器(ARB)的邏輯功能示意。如圖2-8所示,給3位的ARP可以賦值0~7,其值表示當(dāng)前間接尋址時(shí)使用的輔助寄存器的編號(hào),它在邏輯上像一個(gè)指向當(dāng)前輔助寄存器的指針,從這個(gè)意義上我們將ARP稱為輔助寄存器指針。ARB是ARP的備份,在ARP每次更新時(shí)(LST指令除外),更新前的ARP值被復(fù)制到輔助寄存器指針緩沖器ARB中。

圖2-8輔助寄存器AR和輔助寄存器算術(shù)運(yùn)算單元ARAU的結(jié)構(gòu)原理圖

除進(jìn)行間接尋址外,輔助寄存器作為DSP中獨(dú)立的寄存器還具有以下用途。

(1)將輔助寄存器用做軟件計(jì)數(shù)器,按照計(jì)數(shù)需要對(duì)它進(jìn)行加、減計(jì)數(shù)操作。

(2)將輔助寄存器用做通用寄存器,如利用LAR指令向輔助寄存器加載數(shù)據(jù),利用SAR指令將輔助寄存器的值存入存儲(chǔ)器。

(3)利用輔助寄存器進(jìn)行條件轉(zhuǎn)移、條件調(diào)用和條件返回操作,如利用CMPR將AR0與當(dāng)前AR中的值進(jìn)行比較,然后將比較的結(jié)果置于狀態(tài)寄存器ST1中的測(cè)試/控制標(biāo)志位TC中,用于控制程序的條件轉(zhuǎn)移、條件調(diào)用和條件返回操作。

在許多算法的實(shí)現(xiàn)中,我們經(jīng)常需要對(duì)數(shù)據(jù)空間中的一段地址進(jìn)行連續(xù)訪問(wèn),或按照一定的規(guī)律進(jìn)行跳躍式的訪問(wèn),這樣我們通過(guò)編寫程序即可按規(guī)律實(shí)現(xiàn)對(duì)訪問(wèn)地址的修正。修正地址的指令必然要爭(zhēng)用CPU的時(shí)間,因此在完成大量的數(shù)據(jù)處理時(shí)需要耗費(fèi)大量的時(shí)間在地址的修正上。由圖2-8可以看出,DSP的硬件結(jié)構(gòu)中為8個(gè)輔助寄存器(AR)配備了專門進(jìn)行算術(shù)運(yùn)算的硬件單元,即我們所提到的輔助寄存器算術(shù)運(yùn)算單元(ARAU)。在利用間接尋址時(shí),對(duì)AR值的修正(即對(duì)尋址地址的修正)所需進(jìn)行的算術(shù)運(yùn)算由專門的硬件ARAU來(lái)完成,不需要耗費(fèi)CPU額外的時(shí)間。這一功能為大量的數(shù)字信號(hào)處理時(shí)的數(shù)據(jù)尋址提供了很大方便,使間接尋址具有更好的靈活性和更高的效率。

2.2TMS320LF240xA的系統(tǒng)配置

1.系統(tǒng)控制與狀態(tài)寄存器SCSR1表2-15系統(tǒng)控制與狀態(tài)寄存器SCSR1寄存器SCSR1的各比特域的具體含義如下所述。

●位15:保留位。

位14:CLKSRC,DSP的CLKOUT引腳時(shí)鐘輸出選擇位。CLKOUT是DSP的時(shí)鐘輸出引腳,DSP通過(guò)該引腳可以輸出時(shí)鐘信號(hào)。當(dāng)CLKSRC=0時(shí),CLKOUT引腳輸出DSP的系統(tǒng)時(shí)鐘;當(dāng)CLKSRC=1時(shí),CLKOUT引腳輸出看門狗時(shí)鐘。

表2-16PLL時(shí)鐘倍頻系數(shù)配置表

●位8:保留位。

●位7:ADC_CLKEN,模/數(shù)轉(zhuǎn)換模塊時(shí)鐘使能位。當(dāng)ADC_CLKEN=0時(shí),禁止模/數(shù)轉(zhuǎn)換模塊時(shí)鐘,該模塊處于停機(jī)狀態(tài);當(dāng)ADC_CLKEN=1時(shí),使能模/數(shù)轉(zhuǎn)換模塊時(shí)鐘,該模塊正常工作。通過(guò)該位置1或清0,可以使能或禁用該模塊,這樣在不用該模塊時(shí)可以通過(guò)編程使其處于停機(jī)狀態(tài)以降低系統(tǒng)的功耗。

位6:SCI_CLKEN,串行通信接口模塊時(shí)鐘使能位。當(dāng)SCI_CLKEN=0時(shí),禁止串行通信接口模塊時(shí)鐘,該模塊處于停機(jī)狀態(tài);當(dāng)SCI_CLKEN=1時(shí),使能串行通信接口模塊時(shí)鐘,該模塊正常工作。

●位5:SPI_CLKEN,串行外設(shè)接口模塊時(shí)鐘使能位。當(dāng)SPI_CLKEN=0時(shí),禁止串行外設(shè)接口模塊時(shí)鐘,該模塊處于停機(jī)狀態(tài);當(dāng)SPI_CLKEN=1時(shí),使能串行外設(shè)接口模塊時(shí)鐘,該模塊正常工作。

●位4:CAN_CLKEN,CAN總線模塊時(shí)鐘使能位。當(dāng)CAN_CLKEN=0時(shí),禁止CAN總線模塊時(shí)鐘,該模塊處于停機(jī)狀態(tài);當(dāng)CAN_CLKEN=1時(shí),使能CAN總線模塊時(shí)鐘,該模塊正常工作。

位3:EVB_CLKEN,事件管理器B模塊時(shí)鐘使能位。當(dāng)EVB_CLKEN=0時(shí),禁止事件管理器B模塊時(shí)鐘,該模塊處于停機(jī)狀態(tài);當(dāng)EVB_CLKEN=1時(shí),使能事件管理器B模塊時(shí)鐘,該模塊正常工作。

●位2:EVA_CLKEN,事件管理器A模塊時(shí)鐘使能位。當(dāng)EVA_CLKEN=0時(shí),禁止事件管理器A模塊時(shí)鐘,該模塊處于停機(jī)狀態(tài);當(dāng)EVA_CLKEN=1時(shí),使能事件管理器A模塊時(shí)鐘,該模塊正常工作。

●位1:保留位。

●位0:ILLADR,無(wú)效地址檢測(cè)位。當(dāng)檢測(cè)到程序?qū)o(wú)效地址的訪問(wèn)時(shí),該位被置1并產(chǎn)生一個(gè)不可屏蔽中斷(NMI)。若要清0,則必須由用戶對(duì)該位寫1。

由SCSR1中的7~2位的功能可知,我們可以通過(guò)相應(yīng)位置1或清0,使能或禁用相應(yīng)的模塊,這樣可在不用某個(gè)模塊時(shí)通過(guò)編程使其處于停機(jī)狀態(tài)以降低系統(tǒng)的功耗,當(dāng)需要使用該模塊時(shí)再將SCSR1中相應(yīng)位置1使能其時(shí)鐘。

2.系統(tǒng)控制與狀態(tài)寄存器SCSR2

表2-17系統(tǒng)控制與狀態(tài)寄存器SCSR2●位15~7:保留位。

位6:I/PQUAL,輸入時(shí)寬限定位。該位用于設(shè)定一些輸入引腳,如捕獲輸入引腳CAP1~CAP6、外部中斷輸入引腳XINT1~XINT2、A/D轉(zhuǎn)換啟動(dòng)信號(hào)ADCSOC及功率驅(qū)動(dòng)保護(hù)中斷輸入。PDPINTA/B等引腳輸入信號(hào)可被有效檢測(cè)到并鎖存的最小脈沖寬度。當(dāng)這些引腳發(fā)生寬度小于設(shè)定值的電平跳變時(shí),不會(huì)對(duì)引腳狀態(tài)產(chǎn)生影響。當(dāng)這些引腳被設(shè)為數(shù)字I/O功能時(shí),該位無(wú)效。通過(guò)改變可鎖存的有效脈沖的寬度,可根據(jù)實(shí)際系統(tǒng)的信號(hào)特點(diǎn)盡可能地減少誤檢測(cè)。

●位5:WDOVERRIDE,看門狗(WD)保護(hù)位。該位決定是否允許用戶通過(guò)軟件禁止看門狗的工作。當(dāng)該位為0時(shí),不允許用戶通過(guò)軟件禁止WD工作;當(dāng)該位為1時(shí),允許用戶通過(guò)軟件禁止WD工作。該位的復(fù)位值為1,用戶可以通過(guò)軟件向該位寫1來(lái)使其清0,但該位清0后只能通過(guò)復(fù)位使其為1,而不能通過(guò)軟件方法將該位置1。

位4:XMIFHI-Z,輸入時(shí)鐘限定器外部存儲(chǔ)器接口信號(hào)(XMIF)高阻狀態(tài)控制位。該位控制所有的XMIF接口信號(hào)引腳的狀態(tài)。當(dāng)該位為0時(shí),所有的XMIF接口信號(hào)為正常驅(qū)動(dòng)模式;當(dāng)該位為1時(shí),所有的XMIF接口信號(hào)均為高阻狀態(tài)。

位3:BOOT_EN,引導(dǎo)ROM使能位。該位控制DSP系統(tǒng)的引導(dǎo)狀態(tài),反映了DSP的BOOT_EN/XF引腳在復(fù)位時(shí)的電平狀態(tài),該位可由用戶通過(guò)軟件方式置1或清0。當(dāng)該位為0時(shí),程序空間的0000h~00FFh地址被引導(dǎo)ROM塊占用,DSP系統(tǒng)由引導(dǎo)ROM引導(dǎo),此方式下禁用片上的Flash存儲(chǔ)器;當(dāng)該位為1時(shí),禁用引導(dǎo)ROM,對(duì)TMS320LF2407來(lái)說(shuō),程序空間的0000h~FFFFh地址被映射到Flash存儲(chǔ)器,系統(tǒng)由Flash存儲(chǔ)器中的程序引導(dǎo)。

位2:MP/MC,微處理器/微控制器方式選擇位。DSP有一個(gè)稱為MP/MC的輸入引腳,復(fù)位時(shí)該引腳的電平狀態(tài)決定了DSP處于微處理器工作方式或微控制器工作方式,稱為微處理器/微控制器方式選擇引腳。當(dāng)DSP處于微處理器工作方式時(shí),系統(tǒng)程序空間的0000h~7FFFh地址段被映射到片外;當(dāng)DSP處于微控制器工作方式時(shí),系統(tǒng)程序空間的0000h~7FFFh地址段被映射到片上的Flash存儲(chǔ)器。該位反映了復(fù)位時(shí)DSP的MP/MC引腳的電平狀態(tài)。在復(fù)位后可通過(guò)軟件將該位置1或清0來(lái)改變DSP的工作方式。

●位1:DON,片上的SARAM在數(shù)據(jù)空間映射選擇位。該位決定了片上2K大小的SARAM是否映射到數(shù)據(jù)空間。當(dāng)DON=0時(shí),片上的SARAM不映射到數(shù)據(jù)空間,數(shù)據(jù)空間的0080h~0FFFh地址段為保留地址;當(dāng)DON=1時(shí),片上的SARAM映射到數(shù)據(jù)空間的0080h~0FFFh地址段。

位0:PON,片上的SARAM在程序空間映射選擇位。該位決定了片上2K大小的SARAM是否映射到程序空間。當(dāng)PON=0時(shí),片上的SARAM不映射到程序空間,程序空間的8000h~87FFh地址段映射到片外;當(dāng)PON=1時(shí),片上的SARAM映射到程序空間的8000h~87FFh地址段。

當(dāng)DON和PON均為1時(shí),片上的SARAM既映射到數(shù)據(jù)空間的0080h~0FFFh地址段,同時(shí)又映射到程序空間的8000h~87FFh地址段。也就是說(shuō),當(dāng)訪問(wèn)數(shù)據(jù)空間的0080h~0FFFh地址段或程序空間的8000h~87FFh地址段時(shí),實(shí)際上訪問(wèn)了同一物理存儲(chǔ)器,即片上集成的容量為2K的SARAM存儲(chǔ)器。這里所涉及的存儲(chǔ)器與存儲(chǔ)空間及地址映射的概念可參考本書2.3節(jié)的相關(guān)內(nèi)容。

2.3TMS320LF240xA的存儲(chǔ)空間及存儲(chǔ)器

2.3.1TMS320LF240xA的片上存儲(chǔ)器

1.只讀存儲(chǔ)器只讀存儲(chǔ)器(ROM)主要有兩個(gè)特點(diǎn):一是對(duì)用戶來(lái)講,ROM是只讀的,一般不能或不易寫入數(shù)據(jù);二是掉電之后ROM中的數(shù)據(jù)不會(huì)丟失。這些特點(diǎn)使得ROM主要用于存放程序。C24x系列DSP中許多型號(hào)的產(chǎn)品都集成了片上的ROM資源(產(chǎn)品型號(hào)中有LF標(biāo)志的DSP由于片上集成了Flash存儲(chǔ)器,一般沒(méi)有ROM資源),具體如表2-1和表2-2所示。片上ROM中主要是TI公司預(yù)先寫入的DSP的引導(dǎo)程序,用戶如需要定制ROM,可以將程序和數(shù)據(jù)以目標(biāo)文件(.obj)的格式提交給TI公司,由TI公司將其轉(zhuǎn)化為相應(yīng)的代碼并編程掩膜寫入產(chǎn)品的ROM中。

2.單存取隨機(jī)存取存儲(chǔ)器

單存取隨機(jī)存取存儲(chǔ)器(SARAM)是非順序存取的存儲(chǔ)器,用戶可對(duì)存儲(chǔ)器中任意位置的數(shù)據(jù)進(jìn)行隨機(jī)的讀/寫操作。所謂單存取,是指這種存儲(chǔ)器在一個(gè)機(jī)器周期內(nèi)只能被訪問(wèn)一次,也就是說(shuō),每個(gè)機(jī)器周期只能進(jìn)行一次讀操作或?qū)懖僮?。掉電時(shí)存儲(chǔ)器上的數(shù)據(jù)將會(huì)丟失。C24x系列DSP產(chǎn)品一般都集成了片上的SARAM存儲(chǔ)器,不同型號(hào)的產(chǎn)品集成的SARAM存儲(chǔ)器容量不同,具體如表2-1和表2-2所示。片上SARAM存儲(chǔ)器一般用做數(shù)據(jù)存儲(chǔ)器來(lái)存放數(shù)據(jù),在C24x系列DSP系統(tǒng)中也可以被映射到程序存儲(chǔ)器,用以存放程序代碼或表數(shù)據(jù)。

3.雙存取隨機(jī)存取存儲(chǔ)器

雙存取隨機(jī)存取存儲(chǔ)器(DARAM)也是非順序存取的存儲(chǔ)器,用戶可對(duì)存儲(chǔ)器中任意位置的數(shù)據(jù)進(jìn)行隨機(jī)的讀/寫操作。與SARAM的不同之處在于可以在CPU的一個(gè)機(jī)器周期內(nèi)對(duì)其進(jìn)行讀和寫操作,在機(jī)器周期的主相進(jìn)行寫操作,而在從相進(jìn)行讀操作,這樣實(shí)質(zhì)上在一個(gè)機(jī)器周期內(nèi)完成了對(duì)存儲(chǔ)器的兩次訪問(wèn),即所謂的雙存取。DARAM在掉電時(shí)其中的數(shù)據(jù)也會(huì)丟失。C240x系列DSP產(chǎn)品一般都集成了544字的片上的DARAM存儲(chǔ)器,不同型號(hào)的產(chǎn)品集成的SARAM存儲(chǔ)器其容量不同,具體如表2-1和表2-2所示。在C240x系列DSP系統(tǒng)中,DARAM被分為B0塊(256字)、B1塊(256字)和B2塊(32字)三個(gè)不同地址的區(qū)域。片上DARAM存儲(chǔ)器一般用做數(shù)據(jù)存儲(chǔ)器來(lái)存放數(shù)據(jù),在系統(tǒng)對(duì)其進(jìn)行訪問(wèn)時(shí),它比SARAM具有更高的效率。在C24x系列DSP系統(tǒng)中,DARAM的B0塊(256字)也可以被映射到程序存儲(chǔ)器,用以存放程序代碼或表數(shù)據(jù)。

4.Flash型存儲(chǔ)器

Flash型存儲(chǔ)器也稱為閃存存儲(chǔ)器,它一方面類似于ROM存儲(chǔ)器在調(diào)電時(shí)不會(huì)丟失數(shù)據(jù),另一方面允許用戶在一定條件下對(duì)其進(jìn)行寫入數(shù)據(jù)和擦除數(shù)據(jù)的操作。DSP為每個(gè)Flash存儲(chǔ)器都提供了一組控制寄存器來(lái)控制該Flash塊的擦除、編程和測(cè)試等狀態(tài),通過(guò)對(duì)該寄存器進(jìn)行編程,用戶可以方便地對(duì)Flash存儲(chǔ)器進(jìn)行多次擦除和編程。因此,系統(tǒng)中一般使用Flash型存儲(chǔ)器來(lái)作為程序存儲(chǔ)器,這樣不但掉電時(shí)不會(huì)丟失程序,還可方便地進(jìn)行程序的修改和擦除。在產(chǎn)品型號(hào)中,有LF標(biāo)志的DSP芯片片上都集成了Flash型存儲(chǔ)器。這些芯片中,不具有外部存儲(chǔ)器擴(kuò)展接口的其片上的Flash型存儲(chǔ)器始終處于使能狀態(tài),具有外部存儲(chǔ)器擴(kuò)展接口的芯片在復(fù)位時(shí)由其MP/MC引腳的電平狀態(tài)決定是否使能片上的Flash型存儲(chǔ)器。Flash型存儲(chǔ)器一般只作為程序存儲(chǔ)器使用,為保證程序的知識(shí)產(chǎn)權(quán),有些C240x系列DSP的Flash型存儲(chǔ)器具有加密位,這對(duì)于產(chǎn)品的開(kāi)發(fā)是很有商業(yè)意義的。

2.3.2TMS320LF240xA的存儲(chǔ)空間

1.程序存儲(chǔ)空間

TMS320LF240xA系列DSP系統(tǒng)具有64K字的程序?qū)ぶ房臻g,映射到程序空間的存儲(chǔ)器稱為程序存儲(chǔ)器,它主要用于存放程序代碼和需要存放于程序空間的表。利用DSP的特定引腳和控制位,用戶可以在一定程度上定制分配到程序空間的存儲(chǔ)器。與程序空間映射相關(guān)的主要有DSP的MP/MC引腳、狀態(tài)寄存器ST1中的CNF位、系統(tǒng)控制與狀態(tài)寄存器SCSR2中的PON位。

DSP的MP/MC引腳稱為微處理器/微計(jì)算機(jī)模式選擇,由外部控制該引腳的電位。對(duì)于具有外部存儲(chǔ)器擴(kuò)展接口的DSP,復(fù)位時(shí)若該位電平為低,則DSP處于微計(jì)算機(jī)模式,程序空間的0000h~7FFFh地址段映射到片內(nèi)Flash,并從該地址開(kāi)始執(zhí)行程序;復(fù)位時(shí)若該位電平為高,則DSP處于微處理器模式,程序空間的0000h~7FFFh地址段映射到片外存儲(chǔ)器,并從該地址開(kāi)始執(zhí)行程序。在復(fù)位后可通過(guò)軟件對(duì)系統(tǒng)控制與狀態(tài)寄存器SCSR的第2位進(jìn)行置1或清0來(lái)改變DSP的工作方式和程序空間的映射。對(duì)于不具有外部存儲(chǔ)器擴(kuò)展接口的DSP,程序空間的0000h~7FFFh地址段始終映射到片內(nèi)Flash。

CNF位位于狀態(tài)寄存器ST1的第12位,稱為片內(nèi)DARAM配置位。通過(guò)該位設(shè)置,可以方便地將片內(nèi)的DARAM存儲(chǔ)器的D0塊(256字)映射到數(shù)據(jù)地址空間或程序地址空間。當(dāng)CNF=0時(shí),片內(nèi)DARAM映射到數(shù)據(jù)地址空間;當(dāng)CNF=1時(shí),片內(nèi)DARAM映射到程序地址空間的FF00h~FFFFh地址段。

PON位位于系統(tǒng)控制與狀態(tài)寄存器SCSR2的第0位,稱為片上的SARAM在程序空間的映射選擇位。該位決定了片上2K大小的SARAM是否映射到程序空間。當(dāng)PON=0時(shí),片上的SARAM不映射到程序空間,程序空間的8000h~87FFh地址段映射到片外;當(dāng)PON=1時(shí),片上的SARAM映射到程序空間的8000h~87FFh地址段。

TMS320LF2407A的程序空間映射如圖2-9所示。

2.?dāng)?shù)據(jù)存儲(chǔ)空間

TMS320LF240xA系列DSP系統(tǒng)具有64K字的數(shù)據(jù)尋址空間,映射到數(shù)據(jù)空間的存儲(chǔ)器稱為數(shù)據(jù)存儲(chǔ)器,它主要用于存放程序中定義的變量和常量、輸入/輸出的數(shù)據(jù)、程序執(zhí)行中產(chǎn)生的中間結(jié)果和需要存放于數(shù)據(jù)空間的其他數(shù)據(jù)。利用DSP的特定控制位,用戶可以在一定程度上定制分配到數(shù)據(jù)空間的存儲(chǔ)器。與數(shù)據(jù)空間映射相關(guān)的主要有狀態(tài)寄存器ST1中的CNF位,系統(tǒng)控制與狀態(tài)寄存器SCSR2中的DON位。

CNF位位于狀態(tài)寄存器ST1的第12位,稱為片內(nèi)DARAM配置位。通過(guò)該位設(shè)置,可以方便地將片內(nèi)的DARAM存儲(chǔ)器的D0塊(256字)映射到數(shù)據(jù)地址空間或程序地址空間。當(dāng)CNF=0時(shí),片內(nèi)DARAM映射到數(shù)據(jù)地址空間;當(dāng)CNF=1時(shí),片內(nèi)DARAM映射到程序地址空間的FF00h~FFFFh地址段。

DON位位于系統(tǒng)控制與狀態(tài)寄存器SCSR2的第1位,稱為片上的SARAM在數(shù)據(jù)空間的映射選擇位。該位決定了片上2K大小的SARAM是否映射到數(shù)據(jù)空間。當(dāng)DON=0時(shí),片上的SARAM不映射到數(shù)據(jù)空間,數(shù)據(jù)空間的0080h~0FFFh地址段為保留地址;當(dāng)DON=1時(shí),片上的SARAM映射到數(shù)據(jù)空間的0080h~0FFFh地址段。為便于用戶在程序中訪問(wèn)寄存器,DSP中幾乎所有的寄存器都在數(shù)據(jù)空間中進(jìn)行編址,這樣在程序中就可以像訪問(wèn)數(shù)據(jù)存儲(chǔ)器一樣訪問(wèn)寄存器,該寄存器稱為存儲(chǔ)器映射的寄存器。圖2-10表示存儲(chǔ)器映射的寄存器在數(shù)據(jù)空間中的地址段,每個(gè)寄存器具體的地址可以參考相應(yīng)DSP芯片的說(shuō)明書。本書在介紹相關(guān)的存儲(chǔ)器時(shí)一般也會(huì)給出TMS320LF2407ADSP中該寄存器的地址。圖2-9TMS320LF2407ADSP存儲(chǔ)空間映射圖2-10TMS320LF2407ADSP存儲(chǔ)器映射的寄存器

3.I/O空間

DSP系統(tǒng)提供了專門的I/O地址空間,主要用于對(duì)外部設(shè)備的訪問(wèn)。DSP系統(tǒng)中對(duì)I/O空間采用了獨(dú)立于存儲(chǔ)器空間的16位獨(dú)立編址,因此I/O空間的尋址范圍也為64K。由于采用了獨(dú)立于存儲(chǔ)器空間的編址方式,因此指令系統(tǒng)中應(yīng)具有專門針對(duì)I/O空間的訪問(wèn)指令,兩條專門的指令I(lǐng)N和OUT用于完成對(duì)這些空間的訪問(wèn)。

需要注意的是,有兩個(gè)片上的寄存器映射在I/O空間:一個(gè)是Flash存儲(chǔ)器控制模式寄存器,地址為FF0Fh,用于控制Flash存儲(chǔ)器的正常、擦除、編程和測(cè)試等工作模式;另一個(gè)是等待狀態(tài)產(chǎn)生控制寄存器,地址為FFFFh,用于控制產(chǎn)生訪問(wèn)外部存儲(chǔ)器和外部設(shè)備時(shí)的等待狀態(tài)。

TMS320LF2407A的I/O空間映射圖如圖2-9所示。2.3.3TMS320LF240xA系列DSP系統(tǒng)的存儲(chǔ)器擴(kuò)展

在設(shè)計(jì)基于DSP的應(yīng)用系統(tǒng)時(shí),如果應(yīng)用程序或數(shù)據(jù)對(duì)存儲(chǔ)器空間要求較大,經(jīng)常會(huì)遇到片上集成的存儲(chǔ)器不足以提供所需的存儲(chǔ)器容量的情況,則此時(shí)可以選用具有外部擴(kuò)展接口的DSP芯片,通過(guò)DSP的外部擴(kuò)展接口實(shí)現(xiàn)外部擴(kuò)展存儲(chǔ)器。進(jìn)行存儲(chǔ)器擴(kuò)展可以解決兩個(gè)問(wèn)題:一是可實(shí)現(xiàn)存儲(chǔ)器容量的升級(jí);二是可以與其他處理器或數(shù)字器件共享存儲(chǔ)器,以實(shí)現(xiàn)數(shù)據(jù)的共享和數(shù)據(jù)交換。

LF/LC240xA系列DSP的外部擴(kuò)展接口主要包括16位地址信號(hào)、16位數(shù)據(jù)信號(hào)和控制信號(hào),控制信號(hào)主要包括讀/寫控制信號(hào)、選通控制信號(hào)和狀態(tài)信號(hào)等。圖2-11給出了DSP外部擴(kuò)展接口的原理示意圖,具體每個(gè)引腳的功能詳見(jiàn)表2-10。圖2-11DSP外部擴(kuò)展接口的原理示意圖在需要給DSP擴(kuò)展外部存儲(chǔ)器時(shí),首先要根據(jù)應(yīng)用的要求和選用的DSP處理器的參數(shù)來(lái)選擇合適的存儲(chǔ)器器件。一般主要從存儲(chǔ)器的類型、容量、價(jià)格和速度等幾個(gè)方面來(lái)選擇存儲(chǔ)器,還可按照應(yīng)用要求(作為程序存儲(chǔ)器還是數(shù)據(jù)存儲(chǔ)器,長(zhǎng)期存放數(shù)據(jù)還是在系統(tǒng)工作時(shí)存放數(shù)據(jù)),DSP的接口電平等方面的因素選擇存儲(chǔ)器的類型。在選擇容量時(shí),既要考慮到系統(tǒng)當(dāng)前的程序、數(shù)據(jù)量的大小,也應(yīng)考慮系統(tǒng)調(diào)試和功能擴(kuò)展的要求。存儲(chǔ)器的訪問(wèn)速度是衡量存儲(chǔ)器性能的一項(xiàng)重要指標(biāo),在選擇存儲(chǔ)器時(shí)必須保證其速度與DSP的外部接口時(shí)鐘相匹配,這樣才能保證它們之間的訪問(wèn)時(shí)序。在很多情況下,DSP相對(duì)于選擇的存儲(chǔ)器時(shí)鐘較高,它們之間的時(shí)序無(wú)法直接匹配時(shí),可以采用DSP的READY引腳產(chǎn)生等待延時(shí)來(lái)訪問(wèn)存儲(chǔ)器,也可通過(guò)對(duì)DSP片上集成的等待狀態(tài)發(fā)生器編程來(lái)產(chǎn)生適當(dāng)數(shù)目的等待周期。圖2-12給出了一個(gè)在DSP系統(tǒng)中擴(kuò)展Flash型存儲(chǔ)器的例子。從圖2-12中可以看出,DSP與Flash主要連接了地址信號(hào)、數(shù)據(jù)信號(hào)、選通信號(hào)和控制信號(hào)四種類型的信號(hào)。地址信號(hào)是將DSP的16位地址線直接與Flash的地址線對(duì)應(yīng)相連,具體的對(duì)應(yīng)連接關(guān)系按Flash在DSP的存儲(chǔ)器空間中的映射關(guān)系決定。例如,若Flash為32K存儲(chǔ)器,且DSP存儲(chǔ)空間為7FFFh~FFFFh地址范圍,則應(yīng)將DSP的A0~A14與FLASH的A0~A14對(duì)應(yīng)相連,并將DSP的A15位地址線取非后參與片選信號(hào)的譯碼。對(duì)于數(shù)據(jù)線,由于圖2-12所示的Flash為16位存儲(chǔ)器,因此只需將其16根數(shù)據(jù)線與DSP的數(shù)據(jù)線對(duì)應(yīng)相連。圖2-12DSP與Flash型存儲(chǔ)器的連接原理圖2-13給出了一個(gè)在DSP系統(tǒng)中擴(kuò)展16位靜態(tài)RAM存儲(chǔ)器的例子。由圖2-13可見(jiàn),DSP與SRAM的連接也主要是地址信號(hào)、數(shù)據(jù)信號(hào)、選通信號(hào)和控制信號(hào)四種類型的信號(hào)。由圖2-13中可見(jiàn),DSP的A0~A14直接和SRAM的A0~A14地址線相連,因此該SRAM存儲(chǔ)器占用了DSP的32K地址空間。由于DSP的高位地址(A15)沒(méi)有參與譯碼,因此僅由地址線的連接無(wú)法確定SRAM被映射在0000h~7FFFh地址段還是8000h~FFFFh地址段。由于以DS作為選通信號(hào),即當(dāng)DSP訪問(wèn)外部數(shù)據(jù)空間時(shí)DS為低電位,選通該SRAM存儲(chǔ)器,因此該SRAM被映射到DSP系統(tǒng)的數(shù)據(jù)空間屬于數(shù)據(jù)存儲(chǔ)器。由圖2-9所示的TMS320LF240xA系列DSP程序空間映射圖可知,低32K(0000h~7FFFh地址段)均被映射在DSP片內(nèi),DSP對(duì)這段地址尋址時(shí)并不會(huì)驅(qū)動(dòng)外部擴(kuò)展接口,因此該RAM存儲(chǔ)器一定處于DSP數(shù)據(jù)空間的高32位,即它的地址范圍為8000h~FFFFh。圖2-13中W/R信號(hào)為存儲(chǔ)器的輸出控制信號(hào)。DSP外部擴(kuò)展接口的READY信號(hào)通過(guò)電阻上拉,即READY一直為就緒狀態(tài),因此該SRAM與DSP工作于同步方式,選擇SRAM時(shí)應(yīng)選用訪問(wèn)速度較快的存儲(chǔ)器,以保證它們的訪問(wèn)時(shí)序能夠匹配,否則只能通過(guò)對(duì)等待狀態(tài)發(fā)生器進(jìn)行編程來(lái)加入適當(dāng)數(shù)量的等待狀態(tài)。圖2-13DSP與16位靜態(tài)RAM存儲(chǔ)器的連接原理圖

以上兩個(gè)例子都是在DSP中擴(kuò)展16位存儲(chǔ)器,由于TMS320LF2407A的外部擴(kuò)展接口是16位的,因此在擴(kuò)展時(shí)只需要將16位的數(shù)據(jù)總線直接連接。事實(shí)上,也可以用兩片8位的存儲(chǔ)器拼成一片16位的存儲(chǔ)器,如圖2-14所示。圖2-14中,其他信號(hào)的連接與圖2-13完全相同。在實(shí)踐中如需實(shí)現(xiàn)16位的DSP與8位系統(tǒng)交換數(shù)據(jù)時(shí),也可將DSP數(shù)據(jù)總線的某8位與8位系統(tǒng)相連,將其他8位置0或置1。

圖2-14DSP與兩片8位靜態(tài)RAM存儲(chǔ)器的連接原理圖

2.4TMS320LF240xA的中斷系統(tǒng)

2.4.1TMS320LF240xA的中斷系統(tǒng)構(gòu)成

TMS320LF240xA系列DSP的CPU可以接受6個(gè)級(jí)別的可屏蔽中斷申請(qǐng),分別為INT1~I(xiàn)NT6,相對(duì)來(lái)講具有較強(qiáng)的外部中斷處理能力。由于TMS320LF240xA具有十分豐富的片上外設(shè),在測(cè)控系統(tǒng)的應(yīng)用中,我們還需要在片外擴(kuò)展一些具有數(shù)字接口的外部設(shè)備,這樣DSP在工作時(shí)就需要處理更多的外設(shè)中斷源,因此DSP應(yīng)具有更高的中斷處理能力。類似于微處理器系統(tǒng)中的中斷控制器8259,TMS320LF240xA在片上集成了一個(gè)片上外部中斷控制器,用來(lái)對(duì)中斷系統(tǒng)進(jìn)行擴(kuò)展,我們將其稱為外設(shè)中斷擴(kuò)展(PIE)。PIE具有46個(gè)中斷請(qǐng)求輸入,6個(gè)中斷請(qǐng)求輸出對(duì)應(yīng)于DSP的CPU的6個(gè)級(jí)別的中斷請(qǐng)求。這樣DSP共可接受46個(gè)外設(shè)中斷請(qǐng)求,并在PIE中將46個(gè)外設(shè)中斷請(qǐng)求按優(yōu)先級(jí)分為6個(gè)級(jí)別發(fā)送給DSP的CPU。其具體結(jié)構(gòu)如圖2-15所示。

當(dāng)外設(shè)發(fā)出中斷請(qǐng)求時(shí),中斷請(qǐng)求被直接送到PIE,由PIE接受和管理外設(shè)的中斷請(qǐng)求,PIE總共可管理46個(gè)外設(shè)的中斷請(qǐng)求。PIE將外設(shè)的中斷請(qǐng)求按優(yōu)先級(jí)分為6個(gè)級(jí)別,PIE判斷外設(shè)中斷的優(yōu)先級(jí)級(jí)別,并產(chǎn)生相應(yīng)的中斷請(qǐng)求發(fā)送到CPU。CPU按中斷是否屏蔽和中斷的優(yōu)先級(jí)來(lái)決定是否響應(yīng)中斷,并根據(jù)PIE提供的中斷向量調(diào)用中斷服務(wù)程序以響應(yīng)中斷。這就構(gòu)成了TMS320LF240xA系列DSP中所謂的兩級(jí)中斷處理結(jié)構(gòu)體系,在這個(gè)體系中CPU只接受和管理INT1~I(xiàn)NT6的6個(gè)中斷,它并不知道也不關(guān)心具體是由哪個(gè)外設(shè)發(fā)出的中斷請(qǐng)求,具體的外設(shè)中斷源由PIE管理,PIE中有專門的寄存器記錄46個(gè)外設(shè)中斷源,并在CPU響應(yīng)中斷時(shí)向CPU提供中斷向量。

相應(yīng)于硬件上的兩級(jí)中斷管理結(jié)構(gòu),DSP的中斷服務(wù)程序(ISR)也分為全局中斷服務(wù)程序(GISR)和專用中斷服務(wù)程序(SISR)。

CPU對(duì)它響應(yīng)的6個(gè)優(yōu)先級(jí)的中斷分別有一個(gè)中斷服務(wù)程序,我們稱之為全局中斷服務(wù)程序(GISR)。例如,當(dāng)CPU響應(yīng)一個(gè)優(yōu)先級(jí)為1級(jí)(INT1)的中斷時(shí),CPU將分支到GISR1的入口地址并執(zhí)行GISR1。在GISR中主要完成CPU狀態(tài)和原程序執(zhí)行的上下文的保存,并由PIE確定觸發(fā)中斷的中斷源,控制CPU分支到相應(yīng)的SISR中執(zhí)行對(duì)應(yīng)的中斷操作,執(zhí)行完SISR的任務(wù)后返回原程序。其具體過(guò)程如圖2-16所示。

圖2-15TMS320LF240xA系列DSP中斷系統(tǒng)結(jié)構(gòu)

圖2-16中斷服務(wù)程序的兩級(jí)結(jié)構(gòu)

表2-18TMS320LF240xADSP的中斷源優(yōu)先級(jí)和中斷入口地址向量

圖2-17DSP對(duì)可屏蔽中斷的響應(yīng)流程

表2-18TMS320LF240xADSP的中斷源優(yōu)先級(jí)和中斷入口地址向量表2-18TMS320LF240xADSP的中斷源優(yōu)先級(jí)和中斷入口地址向量表2-18TMS320LF240xADSP的中斷源優(yōu)先級(jí)和中斷入口地址向量2.4.2TMS320LF240xA的中斷響應(yīng)過(guò)程

本節(jié)將主要討論DSP對(duì)可屏蔽硬件中斷的響應(yīng)過(guò)程??善帘斡布袛嗟闹袛嘣词瞧贤獠吭O(shè)備或是通過(guò)外部中斷引腳輸入的片外中斷信號(hào)。DSP對(duì)中斷的響應(yīng)是由CPU和PIE兩個(gè)部分分級(jí)完成的。因此,中斷響應(yīng)過(guò)程主要是由外部設(shè)備、PIE和CPU三個(gè)器件共同參與完成的。本節(jié)將通過(guò)分析這三個(gè)器件在中斷響應(yīng)中的作用來(lái)說(shuō)明中斷響應(yīng)的整個(gè)過(guò)程。圖2-17按功能模塊給出了DSP中斷響應(yīng)的流程,為體現(xiàn)與中斷服務(wù)程序的兩級(jí)結(jié)構(gòu),圖中也按GISR和SISR兩個(gè)模塊給出了中斷服務(wù)程序的結(jié)構(gòu)。圖2-17中左半部分是參與中斷響應(yīng)的三個(gè)硬件模塊的響應(yīng)流程,當(dāng)外部設(shè)備具有中斷要求時(shí),由外部設(shè)備向PIE發(fā)送中斷請(qǐng)求,PIE按中斷優(yōu)先級(jí)向CPU遞交中斷請(qǐng)求,并在CPU響應(yīng)中斷后向CPU提供外設(shè)中斷向量。圖2-17的右半部分是CPU響應(yīng)中斷后執(zhí)行的中斷服務(wù)程序的兩個(gè)程序模塊。中斷源是外設(shè)模塊,當(dāng)外設(shè)中發(fā)生中斷事件時(shí),中斷事件將外設(shè)寄存器(PR)中的中斷標(biāo)志位(IF)置1,中斷標(biāo)志位為1表明外設(shè)有中斷請(qǐng)求。然后判斷外設(shè)寄存器(PR)中的中斷使能位(IE)是否使能該外設(shè)中斷,當(dāng)IE=1時(shí)允許外設(shè)發(fā)出中斷請(qǐng)求,當(dāng)IE=0時(shí)禁止外設(shè)發(fā)出中斷請(qǐng)求。因此,當(dāng)IF置1且IE=1時(shí),外設(shè)就向外設(shè)中斷擴(kuò)展模塊(PIE)發(fā)出中斷請(qǐng)求。否則,外設(shè)就在IF置1的狀態(tài)下等待軟件將IE置1后立即向PIE發(fā)送中斷請(qǐng)求。若在此等待期間IF被清0,則此次中斷請(qǐng)求將取消,不會(huì)被發(fā)送至PIE。

圖2-17DSP對(duì)可屏蔽中斷的響應(yīng)流程

PIE接到外設(shè)發(fā)來(lái)的中斷請(qǐng)求后,在外設(shè)中斷請(qǐng)求寄存器(PIRQ)對(duì)應(yīng)的請(qǐng)求位置1,表示接到這個(gè)中斷請(qǐng)求,并按照中斷的類型確定中斷的優(yōu)先級(jí),向CPU發(fā)送相應(yīng)的中斷請(qǐng)求(INT1~I(xiàn)NT6)。

CPU接到PIE發(fā)來(lái)的中斷請(qǐng)求后,首先將中斷標(biāo)志寄存器(IFR)中的相應(yīng)位置1,表示接收到這個(gè)中斷請(qǐng)求。然后CPU在中斷屏蔽寄存器(IMR)中查詢?cè)撝袛鄬?duì)應(yīng)的位是否為1,以判斷該中斷是否被屏蔽。若IMR中相應(yīng)位為0,則說(shuō)明該優(yōu)先級(jí)的中斷在CPU中被屏蔽,這時(shí)CPU將暫停響應(yīng)該中斷,直到IMR中相應(yīng)位被置1或IFR中的標(biāo)志位被軟件清0,以取消該中斷請(qǐng)求。若IMR中相應(yīng)位為1,則說(shuō)明該優(yōu)先級(jí)的中斷在CPU中未被屏蔽,這時(shí)CPU將繼續(xù)判斷狀態(tài)寄存器ST0中的中斷模式位(INTM位)的值。

當(dāng)INTM=1時(shí),所有的可屏蔽中斷均被屏蔽,此時(shí)CPU暫停對(duì)該中斷的響應(yīng),等待INTM被清0時(shí)繼續(xù)響應(yīng)中斷;當(dāng)INTM=0時(shí),CPU正式進(jìn)入對(duì)該中斷的響應(yīng)。CPU將IFR中該中斷對(duì)應(yīng)的標(biāo)志位清0,將INTM位置1以暫時(shí)關(guān)閉對(duì)其他可屏蔽中斷的響應(yīng),并將該優(yōu)先級(jí)中斷所對(duì)應(yīng)的中斷向量地址(表2-18中的CPU中斷向量地址,范圍為0000h~000Ch)加載到程序計(jì)數(shù)器(PC)以分支到全局中斷服務(wù)程序(GISR)。同時(shí)CPU向PIE發(fā)布一個(gè)對(duì)該中斷的響應(yīng)應(yīng)答,PIE接到應(yīng)答信號(hào)后清除PIE的外設(shè)中斷請(qǐng)求寄存器(PIRQ)對(duì)應(yīng)的中斷請(qǐng)求標(biāo)志,將該中斷外設(shè)中斷向量(PIV)的值加載到PIE的外設(shè)中斷向量寄存器(PIVR)中。至此對(duì)CPU來(lái)講,中斷只有INT1~I(xiàn)NT6這6種中斷,46種外設(shè)中斷源對(duì)CPU來(lái)講完全是透明的。

全局中斷服務(wù)程序(GISR)是針對(duì)CPU直接響應(yīng)的6個(gè)中斷源的中斷服務(wù)程序(ISR),INT1~I(xiàn)NT6中每個(gè)中斷應(yīng)對(duì)應(yīng)有一個(gè)GISR,因此DSP系統(tǒng)中應(yīng)具有6個(gè)GISR。GISR的主要功能有兩個(gè):一是保存CPU狀態(tài)和原程序執(zhí)行的上下文;二是由外設(shè)中斷向量寄存器(PIVR)讀取被CPU響應(yīng)的中斷所對(duì)應(yīng)的外設(shè)中斷向量(PIV),并由PIV的值確定專用中斷服務(wù)程序(SISR)的入口地址,控制CPU分支到SISR。

專用中斷服務(wù)程序(SISR)是處理外設(shè)中斷的具體程序,一般系統(tǒng)中用到的外設(shè)中斷都具有自己的SISR,根據(jù)外設(shè)中斷所需完成的任務(wù)不同,SISR的具體內(nèi)容也不相同。一般在完成了特定的處理任務(wù)后,SISR應(yīng)通過(guò)指令語(yǔ)句將外設(shè)寄存器(PR)中的中斷標(biāo)志位(IF)清0,并將CPU狀態(tài)寄存器ST0的INTM位清0,以解除對(duì)所有可屏蔽中斷的禁止。

為了保持中斷系統(tǒng)的完整性,也為保證在發(fā)生意外錯(cuò)誤時(shí)系統(tǒng)以可以控制的方式正常運(yùn)行,DSP在中斷系統(tǒng)中引入了假中斷向量。所謂假中斷向量,是指在中斷系統(tǒng)中人為設(shè)置的一種中斷,其目的是當(dāng)中斷系統(tǒng)因?yàn)槟撤N錯(cuò)誤在CPU響應(yīng)中斷后不能正確獲得中斷向量值時(shí),調(diào)用假中斷服務(wù)程序以使系統(tǒng)退出中斷響應(yīng),恢復(fù)到正常的工作狀態(tài)。具體地說(shuō),當(dāng)一個(gè)CPU中斷被響應(yīng)后,CPU將由外設(shè)中斷擴(kuò)展(PIE)的外設(shè)中斷向量寄存器(PIVR)讀取PIV的值,用以確定SISR的入口地址,此時(shí)若因某種錯(cuò)誤使PIE未將中斷的PIV值加載到PIVR中,則CPU讀出的將是假中斷的PIV值,即0000h。用戶可以在假中斷服務(wù)程序中使系統(tǒng)退出本次中斷響應(yīng),以避免系統(tǒng)因錯(cuò)誤的PIV值而發(fā)生程序執(zhí)行失控。

2.4.3TMS320LF240xA中斷相關(guān)的寄存器

1.CPU中的中斷寄存器

1)中斷標(biāo)志寄存器(地址為0006h)

中斷標(biāo)志寄存器(IFR)是CPU中專門用于存放發(fā)送到CPU的各個(gè)中斷請(qǐng)求標(biāo)志的寄存器,該寄存器是一個(gè)16位的寄存器,其中的6位對(duì)應(yīng)于中斷INT1~I(xiàn)NT6,某位為1表示接到相應(yīng)的中斷請(qǐng)求且該請(qǐng)求處于掛起狀態(tài)。對(duì)IFR可進(jìn)行讀/寫操作,讀IFR寄存器可以識(shí)別掛起的中斷,寫IFR可以清除寫入位對(duì)應(yīng)的已處于掛起狀態(tài)的中斷請(qǐng)求。應(yīng)注意的是,要清除IFR的相應(yīng)位,應(yīng)對(duì)該位寫1,而不是寫0。對(duì)由外設(shè)硬件引起的中斷,在中斷被CPU響應(yīng)后CPU會(huì)自動(dòng)將IFR中的相應(yīng)位清除,但對(duì)由INTR指令發(fā)出的中斷請(qǐng)求,中斷響應(yīng)后CPU不會(huì)自動(dòng)清除IFR的相應(yīng)位,該位必須由用戶通過(guò)軟件來(lái)清除。CPU在復(fù)位時(shí)IFR中所有位均被清除。

中斷標(biāo)志寄存器(IFR)各位的結(jié)構(gòu)如下:

●位15~6:保留位。這些位讀出時(shí)始終為0。

●位5:INT6的中斷標(biāo)志位。該位為0時(shí)表示沒(méi)有INT6級(jí)的中斷被掛起;該位為1時(shí)表示至少有一個(gè)INT6級(jí)的中斷被掛起,此種情況下在程序中向該位寫1可將該位清除為0,即清除該中斷請(qǐng)求。

位4:INT5的中斷標(biāo)志位。該位為0時(shí)表示沒(méi)有INT5級(jí)的中斷被掛起;該位為1時(shí)表示至少有一個(gè)INT5級(jí)的中斷被掛起,此種情況下在程序中向該位寫1可將該位清除為0,即清除該中斷請(qǐng)求。

●位3:INT4的中斷標(biāo)志位。該位為0時(shí)表示沒(méi)有INT4級(jí)的中斷被掛起;該位為1時(shí)表示至少有一個(gè)INT4級(jí)的中斷被掛起,此種情況下在程序中向該位寫1可將該位清除為0,即清除該中斷請(qǐng)求。

●位2:INT3的中斷標(biāo)志位。該位為0時(shí)表示沒(méi)有INT3級(jí)的中斷被掛起;該位為1時(shí)表示至少有一個(gè)INT3級(jí)的中斷被掛起,此種情況下在程序中向該位寫1可將該位清除為0,即清除該中斷請(qǐng)求?!裎?:INT2的中斷標(biāo)志位。該位為0時(shí)表示沒(méi)有INT2級(jí)的中斷被掛起;該位為1時(shí)表示至少有一個(gè)INT2級(jí)的中斷被掛起,此種情況下在程序中向該位寫1可將該位清除為0,即清除該中斷請(qǐng)求。

●位0:INT1的中斷標(biāo)志位。該位為0時(shí)表示沒(méi)有INT1級(jí)的中斷被掛起;該位為1時(shí)表示至少有一個(gè)INT1級(jí)的中斷被掛起,此種情況下在程序中向該位寫1可將該位清除為0,即清除該中斷請(qǐng)求。

2)中斷屏蔽寄存器(地址為0004h)

中斷屏蔽寄存器(IMR)是CPU中專門用于控制是否屏蔽某一可屏蔽中斷的寄存器,該寄存器是一個(gè)16位的寄存器,其中的6位對(duì)應(yīng)于中斷INT1~I(xiàn)NT6是否屏蔽或使能,某位為1表示使能該優(yōu)先級(jí)的可屏蔽中斷,為0表示禁止該優(yōu)先級(jí)的可屏蔽中斷。對(duì)IMR可進(jìn)行讀/寫操作,讀IMR寄存器可以識(shí)別各種優(yōu)先級(jí)的可屏蔽中斷的屏蔽狀態(tài),寫IMR可以改變各種優(yōu)先級(jí)的可屏蔽中斷的屏蔽狀態(tài),向某位寫0可以屏蔽該優(yōu)先級(jí)的中斷,而寫1可以使能該優(yōu)先級(jí)的中斷。當(dāng)然,通過(guò)該位使能某個(gè)優(yōu)先級(jí)的中斷,該優(yōu)先級(jí)中斷能否被CPU響應(yīng)取決于CPU狀態(tài)寄存器ST0中的INTM位的狀態(tài)。CPU復(fù)位時(shí)IMR中所有位均不受影響。

中斷屏蔽寄存器(IMR)各位的結(jié)構(gòu)如下:

●位15~6:保留位。這些位讀出時(shí)始終為0。

●位5:INT6的中斷屏蔽位。該位為0時(shí)表示屏蔽優(yōu)先級(jí)為INT6的中斷;該位為1時(shí)表示使能優(yōu)先級(jí)為INT6的中斷。

●位4:INT5的中斷屏蔽位。該位為0時(shí)表示屏蔽優(yōu)先級(jí)為INT5的中斷;該位為1時(shí)表示使能優(yōu)先級(jí)為INT5的中斷。

位3:INT4的中斷屏蔽位。該位為0時(shí)表示屏蔽優(yōu)先級(jí)為INT4的中斷;該位為1時(shí)表示使能優(yōu)先級(jí)為INT4的中斷。

●位2:INT3的中斷屏蔽位。該位為0時(shí)表示屏蔽優(yōu)先級(jí)為INT3的中斷;該位為1時(shí)表示使能優(yōu)先級(jí)為INT3的中斷。

●位1:INT2的中斷屏蔽位。該位為0時(shí)表示屏蔽優(yōu)先級(jí)為INT2的中斷;該位為1時(shí)表示使能優(yōu)先級(jí)為INT2的中斷。

位0:INT1的中斷屏蔽位。該位為0時(shí)表示屏蔽優(yōu)先級(jí)為INT1的中斷;該位為1時(shí)表示使能優(yōu)先級(jí)為INT1的中斷。

2.外設(shè)中斷擴(kuò)展(PIE)中的中斷寄存器

1)外設(shè)中斷向量寄存器(地址為701Eh)

在DSP對(duì)外設(shè)中斷的響應(yīng)過(guò)程中,CPU只接受6個(gè)中斷源INT0~I(xiàn)NT6的中斷請(qǐng)求,具體的外設(shè)中斷源由PIE管理,在CPU響應(yīng)中斷執(zhí)行專用中斷服務(wù)程序(SISR)時(shí)PIE需要向CPU提供外設(shè)中斷向量(PIV),CPU由PIV計(jì)算SISR的入口地址。外設(shè)中斷向量寄存器(PIVR)是PIE中專門用于向CPU提供外設(shè)中斷向量的寄存器,PIE應(yīng)在接到CPU的中斷響應(yīng)應(yīng)答時(shí)將請(qǐng)求中斷的PIV存至PIVR供CPU讀取。外設(shè)中斷向量寄存器(PIVR)為16位寄存器,用于存放16位的最近一次被應(yīng)答的外設(shè)中斷向量。

2)外設(shè)中斷請(qǐng)求寄存器0~2(地址為7010h~7012h)

當(dāng)外設(shè)向PIE提出中斷請(qǐng)求時(shí),PIE將記錄每一外設(shè)的中斷請(qǐng)求,并按中斷請(qǐng)求的優(yōu)先級(jí)向CPU發(fā)出INT1~I(xiàn)NT6的中斷請(qǐng)求。當(dāng)相同優(yōu)先級(jí)有兩個(gè)或兩個(gè)以上外設(shè)中斷請(qǐng)求時(shí),PIE將記錄每一個(gè)外設(shè)中斷請(qǐng)求,并按同一優(yōu)先級(jí)內(nèi)的優(yōu)先順序等待CPU的應(yīng)答,當(dāng)接到CPU的應(yīng)答后相應(yīng)的中斷請(qǐng)求記錄會(huì)被自動(dòng)清除。外設(shè)中斷請(qǐng)求寄存器(PIRQR)是PIE中專門用于記錄外設(shè)中斷請(qǐng)求的寄存器。由于TMS320LF240xA系列DSP共可響應(yīng)46種外設(shè)中斷,每種外設(shè)中斷都需要一位來(lái)記錄中斷請(qǐng)求,這樣共需要46個(gè)二進(jìn)制位,因此在PIE中共有3個(gè)16位的外設(shè)中斷請(qǐng)求寄存器(PIRQR),分別記做外設(shè)中斷請(qǐng)求寄存器0(PIRQR0)、外設(shè)中斷請(qǐng)求寄存器1(PIRQR1)和外設(shè)中斷請(qǐng)求寄存器2(PIRQR2)。3個(gè)寄存器的某位為0時(shí)表示相應(yīng)外設(shè)中斷類型沒(méi)有被掛起的中斷請(qǐng)求;某位為1時(shí)表示相應(yīng)外設(shè)中斷類型有被掛起的中斷請(qǐng)求。在外設(shè)中斷的響應(yīng)過(guò)程中,DSP會(huì)自動(dòng)完成對(duì)外設(shè)中斷請(qǐng)求寄存器的置1或清0操作,一般在程序中不對(duì)該寄存器進(jìn)行讀/寫操作,但在系統(tǒng)調(diào)試中,可對(duì)PIRQR0~PIRQR2進(jìn)行讀/寫操作來(lái)測(cè)試系統(tǒng)的中斷功能。讀該寄存器可了解各外設(shè)中斷的掛起狀態(tài),寫1到該寄存器的位會(huì)向CPU發(fā)送相應(yīng)優(yōu)先級(jí)的中斷請(qǐng)求,寫0對(duì)該寄存器沒(méi)有影響。表2-19~表2-21列出了PIRQR0~PIRQR2中各位所代表的外設(shè)中斷類型。表2-19外設(shè)中斷請(qǐng)求寄存器0(PIRQR0)中各二進(jìn)制位的定義

表2-20外設(shè)中斷請(qǐng)求寄存器1(PIRQR1)中各二進(jìn)制位的定義表2-21外設(shè)中斷請(qǐng)求寄存器2(PIRQR2)中各二進(jìn)制位的定義

3)外設(shè)中斷應(yīng)答寄存器0~2(地址為7014h~7016h)

外設(shè)中斷應(yīng)答寄存器(PIACKR)用于保存CPU對(duì)PIE中斷請(qǐng)求的應(yīng)答信號(hào),每一種外設(shè)中斷都對(duì)應(yīng)有一個(gè)二進(jìn)制位,用于表示該中斷的應(yīng)答狀態(tài),因此PIE中共有3個(gè)16位外設(shè)中斷應(yīng)答寄存器,分別記做外設(shè)中斷應(yīng)答寄存器0(PIACKR0)、外設(shè)中斷應(yīng)答寄存器1(PIACKR1)和外設(shè)中斷應(yīng)答寄存器2(PIACKR2)。該寄存器中某位為0表示相應(yīng)的外設(shè)中斷未被響應(yīng),為1表示相應(yīng)的外設(shè)中斷正被響應(yīng)。在外設(shè)中斷的響應(yīng)過(guò)程中,DSP會(huì)自動(dòng)完成對(duì)外設(shè)中斷應(yīng)答寄存器的置1或清0操作,一般在程序中不對(duì)該寄存器進(jìn)行讀/寫操作,但在系統(tǒng)調(diào)試中,可對(duì)PIACKR0~PIACKR2進(jìn)行讀/寫操作來(lái)測(cè)試系統(tǒng)的中斷功能。讀該寄存器的結(jié)果為0,寫1到該寄存器的位會(huì)給PIE一個(gè)假的外設(shè)中斷響應(yīng)信號(hào),從而使PIE中相應(yīng)的外設(shè)中斷請(qǐng)求寄存器位清0,但它并不更新外設(shè)中斷向量寄存器(PIVR)的值。表2-22~表2-24列出了PIACKR0~PIACKR2中各位代表的外設(shè)中斷類型。表2-22外設(shè)中斷應(yīng)答寄存器0(

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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)論