第3章 TMS320C54數(shù)字信號處理器硬件結(jié)構(gòu)_第1頁
第3章 TMS320C54數(shù)字信號處理器硬件結(jié)構(gòu)_第2頁
第3章 TMS320C54數(shù)字信號處理器硬件結(jié)構(gòu)_第3頁
第3章 TMS320C54數(shù)字信號處理器硬件結(jié)構(gòu)_第4頁
第3章 TMS320C54數(shù)字信號處理器硬件結(jié)構(gòu)_第5頁
已閱讀5頁,還剩149頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第3章TMS320C54x數(shù)字信號處理器硬件結(jié)構(gòu)3.1TMS320C54x的特點和基本結(jié)構(gòu)3.2TMS320C54x的總線結(jié)構(gòu)3.3中央處理單元(CPU)3.4TMS320C54x的存儲器結(jié)構(gòu)3.5TMS320C54x的片內(nèi)外設3.6小結(jié)DSP芯片屬于專用微處理器,不同廠家的DSP器件各不相同,但都具有哈佛結(jié)構(gòu)和硬件乘法電路等基本特征。TMS320C5400DSP具有高速度、低功耗、小型封裝和最佳電源效率等優(yōu)點。TMS320C54x是其一個子系列。3.1TMS320C54xDSP的特點與基本結(jié)構(gòu)技術指標

對于同一系列的DSP器件,各型號器件所采用的CPU是基本相同的。TMS320C54x系列芯片中各型號器件內(nèi)部CPU結(jié)構(gòu)完全相同,只是在時鐘頻率、工作電壓、片內(nèi)存儲器容量大小、外圍設備和接口電路的設計上有所不同。表3-1TMS320C54x系列芯片的技術特征3.1.1TMS320C54x系列器件的基本結(jié)構(gòu)

TMS320C54x采用了增強的哈佛總線結(jié)構(gòu),允許數(shù)據(jù)存放在程序存儲器中,這些存放在程序存儲器中的數(shù)據(jù)可以由算術運算指令直接調(diào)用,同時,還提供了存儲指令的高速緩沖器和相應的指令,這些指令只需要讀入一次,就可以連續(xù)使用而不需要再次從程序存儲器中讀出,從而減少了指令執(zhí)行所需要的時間,提高了運行速度。圖3.1TMS320C54xDSP的內(nèi)部硬件組成框圖TMS320C54x的主要特性如下所示:CPU(實現(xiàn)高效的數(shù)據(jù)存取和處理能力)先進的多總線結(jié)構(gòu)(8條16位總線)。40位算術邏輯運算單元(ALU)。17位×17位并行乘法器與40位專用加法器相連。比較、選擇、存儲單元(CSSU)。指數(shù)編碼器可以在單個周期內(nèi)計算40位累加器中數(shù)值的指數(shù)。雙地址生成器包括8個輔助寄存器和兩個輔助寄存器算術運算單元(ARAU)。3.1.2TMS320C54xDSP的特點存儲器(192K)64K字程序存儲器、64K字數(shù)據(jù)存儲器以及64K字I/O空間。在C548、C549、C5402、C5410和C5420中程序存儲器可以擴展。指令系統(tǒng)專業(yè)的指令集可以幫助快速實現(xiàn)復雜算法和優(yōu)化編程。單指令重復和塊指令重復操作。(RPTRPTB)塊存儲器傳送指令。(MVDDMVDK等)32位長操作數(shù)指令。(DLDDSTDADD等)同時讀入兩個或3個操作數(shù)的指令。(FIRSLMS等)并行存儲和并行加載的算術指令。(ST‖LDLD‖MAC等)條件存儲指令。(CMPSSACCDSRCCD等)從中斷快速返回指令。(RETF)在片外圍電路(如圖3.1所示)軟件可編程等待狀態(tài)發(fā)生器??删幊谭謪^(qū)轉(zhuǎn)換邏輯電路。帶有內(nèi)部振蕩器。外部總線關斷控制,以斷開外部的數(shù)據(jù)總線、地址總線和控制信號。數(shù)據(jù)總線具有總線保持特性。可編程定時器。并行主機接口(HPl)。電源可用IDLEl、IDLE2和IDLE3指令控制功耗,以工作在省電方式。可以控制關斷CLKOUT輸出信號。在片仿真接口具有符合IEEE1149.1標準的在片仿真接口(JTAG)。速度單周期定點指令的執(zhí)行時間為25/20/15/12.5/10-ns(40MIPS/50MIPS/66MIPS/80MIPS/100MIPS)。3.2TMS320C54x的總線結(jié)構(gòu)TMS320C54xDSP采用先進的哈佛結(jié)構(gòu)并具有八組總線,其獨立的程序總線和數(shù)據(jù)總線允許同時讀取指令和操作數(shù),實現(xiàn)高度的并行操作。采用各自分開的數(shù)據(jù)總線分別用于讀數(shù)據(jù)和寫數(shù)據(jù),允許CPU在同一個機器周期內(nèi)進行兩次讀操作數(shù)和一次寫操作數(shù)。獨立的程序總線和數(shù)據(jù)總線允許CPU同時訪問程序指令和數(shù)據(jù)。

返回首頁

(1)程序總線(PB)傳送從程序存儲器來的指令代碼和立即數(shù)。(2)三組數(shù)據(jù)總線(CB,DB和EB)分別連接不同功能的各種元器件,如CPU、數(shù)據(jù)地址產(chǎn)生邏輯、程序地址產(chǎn)生邏輯,片內(nèi)外設和數(shù)據(jù)存儲器。

CB和DB總線傳送從數(shù)據(jù)存儲器讀出的操作數(shù)。EB總線傳送寫入到存儲器中的數(shù)據(jù)。(3)四組地址總線(PAB,CAB,DAB和EAB)傳送執(zhí)行指令所需要的地址。表3-2讀/寫訪問時的總線占用說明C54x通過使用兩個輔助寄存器算術單元(ARAU0和ARAU1)(AuxiliaryRegisterArithmeticUnit),每周期能產(chǎn)生兩個數(shù)據(jù)存儲器地址。

PB總線能把存儲在程序空間的數(shù)據(jù)操作數(shù)(如系數(shù)表)傳送到乘法器和加法器中進行乘/累加運算,或者在數(shù)據(jù)移動指令(MVPD和READA)中傳送到數(shù)據(jù)空間。這種能力再加上雙操作數(shù)讀的特性,支持單周期3操作數(shù)指令的執(zhí)行,如FIRS指令。3.3TMS320C54xDSP的CPU結(jié)構(gòu)TMS320C54x的CPU包括:

40-bit的算術邏輯運算單元(ALU,ArithmeticLogicUnit)40-bit累加器A和B移位-16~31位的桶形移位寄存器(Barrelshifter)17×17bit乘法器/加法器單元(Multiplier/Adder)比較,選擇和存儲單元(CSSU,Compare,SelectionandStoreUnit)指數(shù)編碼器(EXPencoder)

CPU狀態(tài)和控制寄存器3.3.1算術邏輯運算單元(ALU)

要點:ALU如何獲取數(shù)據(jù),ALU輸出送往何方,溢出怎么辦?進位位的作用,什么是雙16位算術運算?要點:作用,結(jié)構(gòu)和位置,A和B的異同,加載與存儲中的移位

3.3.2累加器A和BAG、AH、AL、BG、BH和BL都是存儲器映射寄存器(在存儲空間中占有地址),可作為獨立的寄存器,使用寄存器尋址方式,由特定的指令將其內(nèi)容放到16位數(shù)據(jù)存儲器中,并從數(shù)據(jù)存儲器中讀出或?qū)懭?2位累加器值。舉例:已知累加器A=FF12345678H,求執(zhí)行帶移位的STH和STL指令后,數(shù)據(jù)存儲單元T中的結(jié)果.1)STHA,8,T2)STHA,-8,T3)STLA,8,T3.3.3桶形移位器(定標移位器)要點:什么是定標?移位處理的作用功能:把輸入的數(shù)據(jù)進行0~31位的左移和0~15位的右移。(即定標)所移的位數(shù)就是指令中的移位數(shù)。移位數(shù)都是用二進制補碼表示,正值表示左移,負值表示右移。移位數(shù)可由立即數(shù)、狀態(tài)寄存器ST1中的累加器移位方式(ASM)字段和被指定為移位數(shù)值寄存器的暫存器T來決定。4040多路開關符號控制

桶形移位寄存器(-16~31)

MSW/LSW線選EB15-EB0CB15-CB0DB15-DB016164016CSSUALUSXMTC(測試位)T(范圍-16~31)ASM(范圍-16~15)快速指令寄存器(范圍-16~31或0~15)BADC

輸入:DB:取得16位輸入數(shù)據(jù)。CB和DB:取得32位輸入數(shù)據(jù)。40位累加器A或B。輸出:ALU的一個輸入端。經(jīng)過MSW/LSW(MostSignificantWord/LeastSignificantWord,最高有效字/最低有效字)寫選擇單元至EB總線。3.3.4乘累加單元17×17位并行乘法器,與40位專用加法器相連,可用于進行非流水線的單周期乘法-累加運算。要點:結(jié)構(gòu)、功能、數(shù)據(jù)流向A174040CDACtr符號位Ctr符號位乘法器(17×17)多路開關XMYM零檢測舍入飽和送至累加器A或B40OVMOVA/OVBZA/ZBFRCTFract/intYAXA加法器(40b)TCB15-CB0DB15-DB0PB15-PB0TDAP累加器A累加器B1717B03.3.5比較,選擇和存儲單元(CSSU)完成累加器的高位字和低位字之間的最大值比較,即選擇累加器中較大的字并存儲在數(shù)據(jù)存儲器中,比較結(jié)果存在狀態(tài)寄存器ST0中的測試/控制位(TC)和狀態(tài)轉(zhuǎn)移寄存器(TRN)的第0位中。同時,CSSU支持各種Viterbi算法并利用優(yōu)化的片內(nèi)硬件加速Viterbi的蝶形運算。要點:結(jié)構(gòu)、功能Viterbi算法示意圖3.3.6指數(shù)編碼器用于支持單周期EXP的一個專用硬件??稍趩蝹€周期內(nèi)執(zhí)行EXP指令,求得累加器中數(shù)的指數(shù)值。在EXP指令中,累加器中的指數(shù)值能以二進制補碼的形式存儲在T寄存器中,范圍為-8至31。

指數(shù)值定義為前面的冗余位數(shù)減8的差值,即累加器中為消除非有效符號位所需左移的位數(shù)。當累加器中的值超過了32bits,該操作將產(chǎn)生負值。EXP編碼器6BA來自累加器A來自累加器B送至T寄存器要點:結(jié)構(gòu)、功能,如何計算指數(shù)3.3.7CPU狀態(tài)和控制寄存器TMS320C54XX有3個狀態(tài)和控制寄存器:(1)狀態(tài)寄存器ST0(2)狀態(tài)寄存器ST1(3)處理器工作方式狀態(tài)寄存器PMST(ProcessorModeState)。要點:3個狀態(tài)寄存器的功能,位置,各位的作用15~1312111098~0ARPTCCOVAOVBDP(1)狀態(tài)寄存器ST0(反映尋址要求和計算的中間運行狀態(tài))151413121110987654~0BRAFCPLXFHMINTM0OVMSXMC16FRCTCMPTASM(2)狀態(tài)寄存器ST1

(反映尋址要求,計算的初始狀態(tài)設置,I/O及中斷控制)續(xù):

在操作中,可以使用置位指令SSBX和復位指令RSBX對ST0和ST1的各個位進行單獨置位(置1)或清零(置0)。例如:SSBXSXM ;SXM=1,允許符號擴展RSBXSXM ;SXM=0,禁止符號擴展ARP、DP和ASM字段可以通過LD指令裝載一個短立即數(shù),ASM和DP也可以通過使用LD指令用數(shù)據(jù)存儲器的值來裝載。15~76543210IPTRMP/MCOVLYAVISDROMCLKOFFSMULSSTt(3)處理器方式狀態(tài)寄存器PMST

(設定并控制處理器的工作方式、決定存儲器的配置情況、反映處理器的工作狀態(tài))3.3.8尋址單元用以迅速有效地訪問存儲器單元,提高運算和指令執(zhí)行效率

主要包括數(shù)據(jù)尋址和程序?qū)ぶ穬纱箢?/p>

;

程序?qū)ぶ愤^程中的一個關鍵單元是程序計數(shù)器PC;

對于數(shù)據(jù)尋址,指令執(zhí)行中所涉及的操作數(shù)地址一般由指令提供。為了加速數(shù)據(jù)尋址的速度,減少指令中為操作數(shù)地址所保留的比特位數(shù),提高指令執(zhí)行效率,一般DSP芯片都提供了多種數(shù)據(jù)尋址方式

。TMS320C54xDSP有兩個地址發(fā)生器:程序地址生成單元PAGEN(ProgramAddressGenerationLogic)和數(shù)據(jù)地址生成單元DAGEN(DataAddressGenerationLogic)。1.程序地址生成單元(PAGEN)PAGEN包括5個寄存器:程序計數(shù)器PC、重復計數(shù)器RC、塊重復計數(shù)器BRC、塊重復起始地址RSA和結(jié)束地址REA(后四個寄存器合起來也叫重復寄存器),這些寄存器可支持程序存儲器尋址。PAGEN使用PC對內(nèi)部或外部程序存儲器尋址。PC保存將被執(zhí)行的下一條指令的地址。通過程序地址總線(PAB),從程序存儲器中該地址處取回指令并裝入指令寄存器。當裝入指令寄存器時,PC保存下一地址。在重復操作指令中,數(shù)據(jù)表地址由PAGEN產(chǎn)生,而數(shù)據(jù)地址由DAGEN產(chǎn)生,從而允許重復指令從數(shù)據(jù)表中連續(xù)取值,以及在任一間接尋址方式下獲取數(shù)據(jù)。2.數(shù)據(jù)地址生成單元(DAGEN)

包括輔助寄存器指針ARP、循環(huán)緩沖區(qū)大小寄存器BK、DP、堆棧指針寄存器SP、8個輔助寄存器(AR0~AR7)和2個輔助寄存器算術單元(ARAU0和ARAU1)。ARAU0和ARAU1的主要功能是在ALU操作的同時,執(zhí)行8個輔助寄存器(AR0~AR7)的16位無符號數(shù)算術運算,

8個輔助寄存器支持間接尋址,利用包含在輔助寄存器中的16位地址,可訪問64K數(shù)據(jù)空間中的任意單元,AR0~AR7由ST0中的ARP來指定。3.4TMS320C54xDSP的存儲器結(jié)構(gòu)3.4.1存儲器空間3.4.2程序存儲器3.4.3數(shù)據(jù)存儲器3.4.4I/O存儲器返回首頁為了提高數(shù)據(jù)處理能力,TMS320C54xDSP芯片提供了片內(nèi)存儲器,包含ROM和RAM,而RAM通常有兩類:雙尋址RAM(DARAM)和單尋址RAM(SARAM),分別也可稱為雙口RAM和單口RAM?!颮AM總是安排到數(shù)據(jù)存儲空間,但也可以構(gòu)成程序存儲空間?!颮OM一般構(gòu)成程序存儲空間,也可以部分地安排到數(shù)據(jù)存儲空間。使用片內(nèi)存儲器的優(yōu)點:無需等待周期故性能更高;比外部存儲器成本低、功耗小。當片內(nèi)存儲器不能滿足系統(tǒng)設計的存儲要求時,就需要擴展片外存儲器,擴展存儲器主要分為兩類:隨機存儲器(RAM)和只讀存儲器(ROM),其中RAM主要指靜態(tài)RAM(SRAM);ROM包括EPROM、EEPROM、FlashMemory等,這一類存儲器主要用于存儲用戶程序和系統(tǒng)常數(shù)表,一般映射在程序存儲空間?!疌54x片內(nèi)存儲器資源配置DSP存儲器’C541’C542’C543’C545’C546’C548’C549’C5402’C5410’C5416’C5420ROM程序程序/數(shù)據(jù)DARAMSARAM28K20K8K5K02K2K010K02K2k010K048K32K16K6K048K32K16K6K02K2K08K24K16K16K08K24K4K4K4K16K0

16K16K08K56K

16K16K064K64K

00032K168K

注:用戶可以將雙尋址RAM(DARAM)和單尋址RAM(SARAM)配置為數(shù)據(jù)存儲器或程序/數(shù)據(jù)存儲器3.4.1存儲器空間★TMS320C54x存儲器的總存儲空間為192K字,由3個獨立的可選擇空間組成:64K字的程序存儲空間、64K字的數(shù)據(jù)存儲空間和64K字的I/O空間。對于548,549,5402和5410還可以外部擴展程序空間?!锍绦虼鎯ζ骺臻g包括程序指令和程序中所需的常數(shù)表格;數(shù)據(jù)存儲器空間用于存儲需要程序處理的數(shù)據(jù)或程序處理后的結(jié)果;I/O空間用于與存儲器映射的外圍設備相連接,也可以作為附加的數(shù)據(jù)存儲空間使用?!锲瑑?nèi)或片外的程序或數(shù)據(jù)存儲器及外設都要映射到這三個空間。C54x可通過設置處理器工作狀態(tài)寄存器PMST中的

MP/

、OVLY和DROM三個控制位來實現(xiàn)片內(nèi)RAM是否可以映射到程序存儲空間、片內(nèi)ROM是否可以映射到程序儲存空間或程序和數(shù)據(jù)存儲空間。MP/位:決定DSP芯片使用哪種工作方式。若MP/=0,則片內(nèi)ROM映射到程序空間。若MP/=1,則片內(nèi)ROM不映射為程序空間。OVLY位:決定片內(nèi)RAM是否映射到程序存儲空間若OVLY=1,則片內(nèi)RAM映射為程序和數(shù)據(jù)空間。若OVLY=0,則片內(nèi)RAM只映射為數(shù)據(jù)存儲空間而不映射為程序存儲空間。DROM位:決定片內(nèi)ROM是否使能映射為數(shù)據(jù)存儲空間。若DROM=1,則允許部分片內(nèi)ROM映射為數(shù)據(jù)空間。若DROM=0,則片內(nèi)ROM不映射成數(shù)據(jù)空間。不同的C54x的數(shù)據(jù)和程序存儲空間分配略有不同圖3-2TMS320VC5402存儲器分配圖(a)TMS320VC5402程序存儲器分配圖4K字16K字(b)TMS320VC5402數(shù)據(jù)存儲器分配圖4K字128字8K字24K字16K字3.4.2程序存儲器C54xDSP可尋址64K字的程序存儲空間(C548和C549可以擴展到8M字)。C54xDSP的片內(nèi)ROM、雙尋址RAM(DARAM)以及單尋RAM(SARAM),都可以通過軟件映射到程序空間。所謂映射到程序存儲空間,就是指把片內(nèi)存儲器與程序存儲器空間對應起來,通過訪問程序存儲空間就可以實現(xiàn)對這些片內(nèi)存儲器的訪問。片內(nèi)存儲器映射到程序存儲器的優(yōu)點就是提高了數(shù)據(jù)處理速度,因為CPU對程序存儲器的訪問是在程序計數(shù)器的控制下自動完成的。

1.程序存儲器的配置(PMST的設置)片內(nèi)存儲器是否作為程序存儲器,取決于軟件對處理器工作方式狀態(tài)存儲器PMST的狀態(tài)位MP/和OVLY的編程。(1)若當MP/=1,OVLY=0時,TMS320C549DSP工作在微處理器模式下,片內(nèi)RAM、片內(nèi)ROM不映射到程序存儲空間。(2)若MP/=0,OVLY=1時,TMS320C549DSP工作在微計算機模式下,則片內(nèi)2K字ROM,片內(nèi)中斷向量分別映射到了程序存儲器的C000H~FEFFH,FF00H~FFFFH地址空間,片內(nèi)8K字的DARAM,24K字的SARAM分別映射到了程序存儲器0080H~1FFFH,2000H~7FFFH地址空間。(3)當MP/=1,OVLY=1時,TMS320C549DSP工作在微處理器模式下,片內(nèi)ROM不映射到程序存儲空間,但片內(nèi)8K字DARAM,24K字的SARAM分別映射到了程序存儲器0080H~1FFFH,2000H~7FFFH地址空間。(4)若MP/=0,OVLY=0時,TMS320C549DSP工作在微計算機模式下,則片內(nèi)2K字ROM,片內(nèi)中斷向量分別映射到了程序存儲器的C000H~FEFFH,FF00H~FFFFH地址空間,但片內(nèi)DARAM,SARAM都不映射到程序存儲空間。

為了增強處理器的性能,增加執(zhí)行速度,將片內(nèi)ROM再細分為若干塊,這樣在片內(nèi)ROM的一個塊內(nèi)取指的同時,又在別的塊中讀取數(shù)據(jù)。根據(jù)C54xDSP的不同,ROM可以組織成容量為2K字、4K字或8K字的塊。以2K字為塊單位以4K字為塊單位2.復位時片內(nèi)ROM在程序存儲器中的映射當處理器復位時,復位和中斷向量都映射到程序空間的FF80h。復位后,這些向量可以被重新映射到程序空間中任何一個128字頁的開頭。器件復位時,復位、中斷和陷阱中斷向量被映射到程序存儲器FF80H地址開始的存儲空間中。然而,復位后,TMS320C54x的中斷向量表可以被重新映射到程序存儲器中任何128字頁的開始。這樣,就可以把中斷向量表從引導ROM中移出,然后再根據(jù)存儲器意圖重新配置其地址,這對于中斷操作有著十分重要的意義。3.片內(nèi)ROM的內(nèi)容和映射C54x的片內(nèi)ROM容量有大(28K字或48K字)有小(2K字),容量大的片內(nèi)ROM可以把用戶的程序代碼編寫進去,然而片內(nèi)高2K字ROM中的內(nèi)容是由TI公司定義的。這2K字程序空間(F800h~FFFFh)中包含如下內(nèi)容:

1)自舉加載程序。從串行口、外部存儲器、I/O口、或者主機接口(如果存在的話)自舉加載。

2)256字μ律壓擴表。

3)256字A律壓擴表。

4)256字正弦函數(shù)值查找表。

5)中斷向量表。

注意:在C54xDSP的片內(nèi)ROM中,128字被保留用于器件的測試。寫到片內(nèi)ROM并且在片內(nèi)ROM執(zhí)行的應用程序代碼必須保留128字(FF00h~FF7Fh)。4.擴展程序存儲器C548和C549采用頁擴展方法,使其程序空間可擴展到8192K字(8M×16b),分成128頁,每頁64K字。為了能夠訪問這種分頁擴展的程序存儲空間,這些芯片具有以下一些增強的特性:有23條地址線增加了一個額外的存儲器映射寄存器,即程序計數(shù)器擴展寄存器(XPC),芯片通過XPC的值來訪問程序存儲器的各個頁,包含當前程序存儲器地址的高7位6條額外的指令用于尋址擴展的程序存儲空間,改變XPC的值當片內(nèi)RAM安排到程序空間時,每頁程序存儲器分成兩部分:一部分是公共的32K字,另一部分是各自獨立的32K字,公共存儲區(qū)為所有頁共享,而每頁獨立的32K字存儲區(qū)只能按指定的頁號尋址。如果片內(nèi)ROM被尋址(MP/=0),被尋址的片內(nèi)ROM只能在0頁,不能映射到程序存儲器的其它頁。擴展程序存儲器的頁號由XPC寄存器設定。XPC映射到數(shù)據(jù)存儲單元001Eh。在硬件復位時,XPC各位被置為0。

為了便于軟件進行頁切換,設置了6條影響XPC的專用指令:

FB[D]——長跳轉(zhuǎn)指令;

FBACC[D]——長跳轉(zhuǎn)到累加器A或B所

指定的位置;

FCALA[D]——長調(diào)用累加器A或B所指

定的位置;

FCALL[D]——長調(diào)用指令;

FRET[D]——長返回;

FRETE[D]——帶中斷使能的長返回指令。圖2-6C5402擴展程序存儲器圖返回本節(jié)C5402采用頁擴展方法,使其程序空間可擴展到1024K字(1M×16b)。有20根地址線。C5402的程序空間分成16頁,每頁64K字3.4.3數(shù)據(jù)存儲器C54x的數(shù)據(jù)存儲器的容量最多可達64K字。數(shù)據(jù)存儲器包含片內(nèi)或片外的RAM,片內(nèi)的RAM映射到數(shù)據(jù)存儲空間。此外,C54x還可以通過軟件將片內(nèi)ROM映射為數(shù)據(jù)存儲空間。表2-4各種C54xDSP可用的片內(nèi)數(shù)據(jù)存儲器的容量(單位:K字)1.數(shù)據(jù)存儲器的配置(PMST的設置)

TMS320C54x可尋址64K字數(shù)據(jù)存儲器空間,數(shù)據(jù)存儲器空間包含片內(nèi)和片外,采用內(nèi)部和外部存儲器統(tǒng)一編址。片內(nèi)DARAM映射為數(shù)據(jù)存儲空間。對于C54xDSP,用戶可以通過設置PMST寄存器的DROM位,將部分片內(nèi)ROM映射到數(shù)據(jù)存儲空間。這一部分片內(nèi)ROM既可以在數(shù)據(jù)存儲空間使能(DROM位置1),也可以在程序空間使能(MP/清0)。復位時,處理器將DROM位清0。

當DAGEN產(chǎn)生的數(shù)據(jù)地址處于內(nèi)部存儲器的范圍內(nèi)時,CPU直接對內(nèi)部數(shù)據(jù)存儲器尋址。

當DAGEN產(chǎn)生的數(shù)據(jù)地址不在內(nèi)部存儲器的范圍內(nèi)時,CPU自動對外部數(shù)據(jù)存儲器尋址。

2.片內(nèi)的RAM的組織為了提高處理器的性能,片內(nèi)RAM也細分成若干塊。分塊后,用戶可以在同一個時鐘周期內(nèi)從同一塊DARAM取出兩個操作數(shù),并將數(shù)據(jù)寫入到另一塊DARAM中,但一個SARAM塊在一個機器周期只能被訪問一次。C54xDSP內(nèi)的RAM的分塊組織見圖2-15所示。

8K

8K

0060H

1FFFH

2000H

3FFFH

圖2-15C5402的RAM分塊圖8K字的DARAM24K字的SARAM6K字的DARAM10K字的DARAM5K字的DARAM64K字的數(shù)據(jù)存儲器空間包括存儲器映射寄存器,所有C54xDSP上的DARAM的起始1K字的塊包括存儲器映射CPU寄存器(0000H-001FH)和外設寄存器(0020H-005FH),32字的暫存存儲器DARAM(0060H-007FH)和896字的DARAM(0080H-03FFH)。C54x內(nèi)部RAM前1K的配置:0380H~03FFH0300H~037FH0280H~02FFH0200H~027FH0180H~01FFH0100H~017FH0080H~00FFH0060H~007FH0200H~005FH0000H~001FH存儲器映射的CPU寄存器存儲器映像的CPU寄存器,特殊功能寄存器0000~001FH:特殊功能寄存器存儲器映射的外設寄存器存儲器映射的外設寄存器0020~005FH:外設寄存器暫存器SPRAM(DP=0)32字暫存寄存器SPRAM0060~007FH:暫存寄存器DARAM(DP=7)DARAM(DP=6)DARAM(DP=5)DARAM(DP=4)DARAM(DP=3)DARAM(DP=2)DARAM(DP=1)0080~03FFH:7個DARAM數(shù)據(jù)塊。3.數(shù)據(jù)存儲器映射寄存器

特殊功能寄存器

功能:主要用于程序的運算處理和尋址方式的選

擇和設定。地址范圍:0000H~001FH。

’C5402的CPU寄存器共有27個,CPU訪問這些寄存器時,不需要插入等待時間。

外設寄存器

功能:用來控制片內(nèi)外設電路的狀態(tài)和存放數(shù)據(jù)。

地址范圍:0020H~005FH。

包括串行口通信控制寄存器組、定時器定時控制寄存器組、時鐘周期設定寄存器組等。訪問它們需使用專門的外設總線結(jié)構(gòu)。

暫存器SPRAM

功能:用來暫存變量。地址范圍:0060H~007FH。

地址符號寄存器名稱地址符號寄存器名稱00H

IMR中斷屏蔽寄存器10HAR0輔助寄存器001H

IFR中斷標志寄存器11H

AR1輔助寄存器102H

保留(用于測試)12HAR2輔助寄存器203H保留(用于測試)13H

AR3輔助寄存器304H保留(用于測試)14H

AR4輔助寄存器405H保留(用于測試)15HAR5輔助寄存器506H

ST0狀態(tài)寄存器016H

AR6輔助寄存器607H

ST1狀態(tài)寄存器117H

AR7輔助寄存器708H

AL累加器A低字(15~0位)18H

SP堆棧指針09H

AH累加器A高字(31~16位)19H

BK循環(huán)緩沖區(qū)長度寄存器0AH

AG累加器A保護位(39~32位)1AH

BRC塊重復計數(shù)器0BH

BL累加器B低字(15~0位)1BH

RSA塊重復起始地址寄存器0CH

BH累加器B高字(31~16位)1CHREA塊重復結(jié)束地址寄存器0DH

BG累加器B保護位(39~32位)1DHPMST處理器模式狀態(tài)寄存器0EH

T暫存寄存器1EHXPC程序計數(shù)器擴展寄存器0FH

TRN狀態(tài)轉(zhuǎn)移寄存器1FH保留特殊功能寄存器注:程序計數(shù)器擴展寄存器(XPC)僅C548、C549、C5402、C5410、C5420有第2章TMS320C54x的硬件結(jié)構(gòu)2.存儲器映像寄存器

片內(nèi)外設寄存器存在于一個專用的外設總線結(jié)構(gòu)中,它可以發(fā)送數(shù)據(jù)至外設總線或者從外設中接收數(shù)據(jù)。設置或清除寄存器的控制位可以激活、屏蔽或者重新配置外設狀態(tài)。

不同型號的芯片具有不同的片內(nèi)外設寄存器?!疌549片內(nèi)外設寄存器地址符號寄存器名稱地址符號寄存器名稱20H

BDRR0緩沖串行口0數(shù)據(jù)接收寄存器35HTRAD

TDM串行口接收地址寄存器

21HBDXR0緩沖串行口0數(shù)據(jù)發(fā)送寄存器36~37H保留22H

BSPC0緩沖串行口0控制寄存器38HAXR0

ABU0發(fā)送地址寄存器23H

BSPCE0緩沖串行口0控制擴展寄存器39H

BKX0

ABU0發(fā)送緩沖范圍寄存器24H

TIM定時設定寄存器3AH

ARR0

ABU0接收地址寄存器25H

PRD定時周期寄存器3BHBKR0

ABU0接收緩沖范圍寄存器26H

TCR定時控制寄存器3CH

AXR1

ABU1發(fā)送地址寄存器27H保留3DH

BKX1

ABU1發(fā)送緩沖范圍寄存器28HSWWSR軟件等待狀態(tài)寄存器3EH

ARR1

ABU1接收地址寄存器29HBSCR多路開關控制寄存器3FH

BKR1

ABU1接收緩沖范圍寄存器2A~2BH

保留40H

BDRR1緩沖串行口1數(shù)據(jù)接收寄存器2CH

HPIC主機口(HPI)控制寄存器41H

BDXR1緩沖串行口1數(shù)據(jù)發(fā)送寄存器2D~2FH

保留42HBSPC1緩沖串行口1控制寄存器30H

TRCV

TDM串行口數(shù)據(jù)接收寄存器43HBSPCE1緩沖串行口1控制擴展寄存器31HTDXR

TDM串行口數(shù)據(jù)發(fā)送寄存器44~57H保留32HTSPCTDM串行口控制寄存器58HCLKMD時鐘模式寄存器33H

TCSR

TDM串行口通道選擇寄存器

59~5FH

保留34H

TRTA

TDM串行口接收發(fā)送寄存器

3.4.4I/O存儲器除程序存儲器空間和數(shù)據(jù)存儲器空間外,C54x系列器件還提供了64K字的I/O存儲器空間(0000h~FFFFh),I/O空間都位于片外。I/O空間的作用是與片外設備連接,所以利用它可以擴展外部存儲器。

采用IOSTRB、R/W、IS等信號可以實現(xiàn)對外部I/O設備的訪問。有兩條指令PORTR和PORTW可以對I/O存儲器空間數(shù)據(jù)的存取。I/O空間的讀寫時序與程序存儲器空間和數(shù)據(jù)存儲器空間有很大不同,這有助于訪問單獨I/O映射的設備而不是存儲器。

TMS320C54x還有一個可屏蔽存儲器保護選項,用來保護片內(nèi)存儲器的內(nèi)容。當選定這項時,所有外部產(chǎn)生的指令都不能訪問片內(nèi)存儲器空間。返回本節(jié)3.5TMS320C54xDSP片內(nèi)外設TMS320C54xDSP的CPU都是相同的,由x所表示的子系列器件的差別在于其片內(nèi)外圍電路的不同。下面介紹幾種常見的片內(nèi)外設。1.中斷系統(tǒng)2.定時器3.主機接口(HPI)4.串行口5.外部總線結(jié)構(gòu)返回首頁3.5.1中斷系統(tǒng)

中斷系統(tǒng)是DSP應用系統(tǒng)實現(xiàn)實時操作和多任務多進程操作的關鍵部分。

’C54x的中斷系統(tǒng)根據(jù)芯片型號的不同,提供了24~27個硬件及軟件中斷源,分為11~14個中斷優(yōu)先級,可實現(xiàn)多層任務嵌套。

中斷是指CPU暫時停止當前程序的執(zhí)行,而去執(zhí)行中斷服務程序,并在服務完成后自動返回原程序執(zhí)行的過程。

1.中斷類型

軟件中斷

硬件中斷

——

由程序指令產(chǎn)生的中斷。

如:INTR、TRAP或RESET。

——

由外圍設備信號產(chǎn)生的中斷。

硬件中斷①受外部中斷引腳信號觸發(fā)的外部硬件中斷:RS和NMI引腳,INT0-INT3引腳

②受片內(nèi)外設電路信號觸發(fā)的內(nèi)部硬件中斷:串行口中斷:接收中斷:BRINT0、BRINT1發(fā)送中斷:BXINT0、BXINT1定時器中斷:TINT0、TINT1DMA中斷:DMAC5~DMAC0HPI中斷:HPINT

從引起中斷的來源分:

不論是軟件中斷還是硬件中斷,’C54x的中斷都可以分成兩大類。

可屏蔽中斷

非屏蔽中斷

1)可屏蔽中斷

可用軟件設置來屏蔽或開放的中斷,即通過對中斷屏蔽寄存器(IMR)中的相應位和狀態(tài)寄存器(ST1)中的中斷允許控制位INTM編程來屏蔽或開放中斷。

TMS320C54xDSP最多可支持16個用戶可屏蔽中斷。

VC5402共有13個可屏蔽中斷:INT3~INT0

——

外部中斷

BRINT0、BXINT0BRINT1、BXINT1

——

串行口中斷

TINT0、TINT1

——

定時器中斷

DMAC4、DMAC5

——

DMA中斷

HPINT——

HPI中斷

中斷分類無法用軟件屏蔽,一旦發(fā)生,CPU立即響應,從主程序轉(zhuǎn)移到中斷服務程序(ISP)。C54x的非屏蔽中斷包括:①所有的軟件中斷②兩個外部硬件中斷(RS和NMI)。

2)非屏蔽中斷

RS:

是一個對C54x所有操作方式產(chǎn)生影響的非屏蔽中斷。

NMI:

不會對C54x的任何操作方式產(chǎn)生影響。當中斷響應時,所有其他中斷將被禁止。

中斷向量中存放對應中斷服務程序的入口地址,采用中斷向量來確定CPU響應每個中斷時程序指針(PC)的跳轉(zhuǎn)地址。C5000,C6000等系列DSP芯片都采用了軟件可重定位中斷向量形式。TMS320C54xDSP給每個中斷源都分配一個確定的中斷向量號。所有的中斷向量放在一起就是中斷向量表。TMS320C54xDSP在中斷向量表中為每個中斷向量提供了4個字的存儲空間用于對應中斷服務程序的存放。2.中斷向量

當同時有多個中斷出現(xiàn)時,’C54x將按照中斷優(yōu)先級別的高低對它們進行中斷響應。VC5402中斷源和優(yōu)先級中斷序號

中斷名稱

中斷地址

中斷優(yōu)先級

功能

0RS/SINTR00H1復位(硬件和軟件復位)

1NMI/SINT1604H2不可屏蔽中斷

2SINT1708H——軟件中斷#17

3SINT180CH——軟件中斷#184SINT1910H——軟件中斷#195SINT2014H——軟件中斷#206SINT2118H——軟件中斷#217SINT221CH——軟件中斷#22VC5402中斷源和優(yōu)先級中斷序號

中斷名稱

中斷地址

中斷優(yōu)先級

功能

8SINT2320H——軟件中斷#239SINT2424H——軟件中斷#2410SINT2528H——軟件中斷#25

11SINT262CH——軟件中斷#2612SINT2730H——軟件中斷#2713SINT2834H——軟件中斷#2814SINT2938H——軟件中斷#2915SINT303CH——軟件中斷#30VC5402中斷源和優(yōu)先級中斷序號

中斷名稱

中斷地址

中斷優(yōu)先級

功能

16INT0/SINT040H3外部用戶中斷#0

17INT1/SINT144H4外部用戶中斷#1

18INT2/SINT248H5外部用戶中斷#219TINT0/SINT34CH6內(nèi)部定時器0中斷

20

BRINT0/SINT4

50H7緩沖串口McBSP0接收中斷

21

BXINT0/SINT5

54H8緩沖串口McBSP0發(fā)送中斷

22保留(DMAC0)/SINT6

58H9保留(默認)或DMA通道0中斷,由DMPREC寄存器選擇

VC5402中斷源和優(yōu)先級中斷序號

中斷名稱

中斷地址

中斷優(yōu)先級

功能

23

TINT1(DMAC1)/SINT7

5CH10內(nèi)部定時器1中斷(默認)或DMA通道1中斷,由DMPREC寄存器選擇24INT3/SINT8

60H11外部用戶中斷#325

HPINT/SINT9

64H12HPI中斷26BRINT1(DMAC2)/SINT10

68H13緩沖串口McBSP1接收中斷(默認)或DMA通道2中斷,由DMPREC寄存器選擇

27BXINT1(DMAC3)/SINT116CH14緩沖串口McBSP1發(fā)送中斷(默認)或DMA通道3中斷,由DMPREC寄存器選擇

VC5402中斷源和優(yōu)先級中斷序號

中斷名稱

中斷地址

中斷優(yōu)先級

功能

28

DMAC4/SINT12

70H

15DMA通道4中斷29

DMAC5/SINT13

74H16DMA通道5中斷

HPINT/SINT9

78H~7FH——保留中斷向量地址

中斷向量可以映射到程序存儲器的任何128字頁面的起始位置,除保留區(qū)域外。C54x的中斷向量地址是由PMST寄存器中的IPTR(9位中斷向量指針)和左移2位后的中斷向量號所組成。

中斷向量地址=IPTR+(左移2位的中斷向量序號)

例如,IPTR=0001H,INT0的中斷向量序號為10H,中斷向量的地址為00C0H。

中斷向量地址=0

00000001100

0000

=00C0H復位時,IPTR為全1(IPTR=1FFh),并按此值將復位向量映像到程序存儲器的511頁空間。此時,IPTR=1FFh=111111111b,由表查得復位的中斷序號為0,因此復位所對應的中斷地址為:硬件復位后的開始地址為0FF80h。除硬件復位向量外,其它的中斷向量,只要改變IPTR位的值,都可以重新安排它們的地址。

例如,SINTR中斷,用0001h加載IPTR,IPTR=0001h=000000001b,由表查得SINTR中斷序號為0h=00000b,左移2位后仍為0h=0000000b。即此時中斷向量被移到從0080h單元開始的程序存儲器空間中斷向量表程序.sect“.vectors”

;定義段的名稱為vectors,使后面的代碼和數(shù)據(jù)與該段相關聯(lián).refstart;程序入口,主程序中必須有start標號

.align0x80;將段程序計數(shù)器對準128字的邊界,確保在偽指令后的代碼開始于第X個字或頁面邊界RESET:;復位中斷,優(yōu)先級最高

BDstart;執(zhí)行完該語句下面的一條語句后,跳轉(zhuǎn)到start處

STM#200,SP;設置堆棧大小為200個字nmi:RETE;NMI非屏蔽中斷返回,下面依次為VC5402的各個中斷

NOPNOPNOP;程序內(nèi)部的軟件中斷,每個中斷占4個字sint17.space4*16;.space開辟空間(單位:bit)sint18.space4*16sint19.space4*16程序中需要響應中斷處理時,應將中斷向量表文件加入到工程中去。這個文件的格式比較固定,下面給出一個中斷向量表文件的例程。sint20.space4*16Sint21.space4*16sint22.space4*16sint23.space4*16Sint24.space4*16Sint25.space4*16sint26.space4*16Sint27.space4*16sint28.space4*16sint29.space4*16Sint30.space4*16int0:Bint_program;外部中斷0入口點,響應中斷跳到標號int_program,在主程序中必須有這個標號

nopnopnopint1:RETE;外部中斷1nopnopnopint2:RETE;外部中斷2nopnopnoptint:RETE;定時器中斷

nopnopnoprint0:RETE;串口0接收中斷

nopnopnopxint0:RETE;串口0發(fā)送中斷

nopnopnoprint1:RETE;串口1接收中斷

nopnopnopxint1:RETE;串口1發(fā)送中斷

nopnopnopint3:RETE;外部中斷3nopnopnop.end

’C54x中斷系統(tǒng)設置兩個中斷管理寄存器,分別為中斷標志寄存器IFR和中斷屏蔽寄存器IMR。

3.中斷寄存器

1)

中斷標志寄存器IFR(0001H)中斷標志寄存器IFR是一個存儲器映射寄存器,包含所有可屏蔽中斷的標志位,對各硬件中斷請求進行標志,當一個中斷出現(xiàn)時,IFR中的相應的中斷標志位置1,直到CPU識別該中斷為止。對IFR來說,某位為1表示DSP收到了一個相應的中斷請求,用軟件將IFR某位置1,等效于DSP收到了一個中斷請求。

’C5402中斷標志寄存器IFR的結(jié)構(gòu):15

141312111098保留DMAC5DMAC4BXINT1BRINT1HPINTINT376543210TINT1DMAC0BXINT0BRINT0TINT0INT2INT1INT0

中斷標志寄存器IFR各位的功能。

名稱功能

名稱功能

15~14保留保留位,總是06DMAC0DMA通道0中斷標志13DMAC5DMA通道5中斷標志5BXINT0緩沖串口發(fā)送中斷0標志12DMAC4DMA通道4中斷標志4BRINT0緩沖串口接收中斷0標志11BXINT1緩沖串口發(fā)送中斷1標志3TINT0定時器中斷0標志10BRINT1緩沖串口接收中斷1標志2INT2外部中斷2標志9HPINTHPI中斷標志1INT1外部中斷1標志8INT3外部中斷3標志0INT0外部中斷0標志7TINT1定時器中斷1標志

在C54x系列芯片中,IFR中5~0位對應的中斷源完全相同,分別為外部中斷和通信中斷標志寄存位,而15~6位中斷源根據(jù)芯片的不同,定義的中斷源類型不同。有三種情況將清除中斷標志:

軟件和硬件復位,即C54x的復位引腳RS=0;

將1寫到IFR中的適當位(相應位變成0),相應的尚未處理完的中斷被清除;③

使用相應的中斷號響應該中斷,

即執(zhí)行INTR#K指令。

2)

中斷屏蔽寄存器IMR(0000H)

中斷屏蔽寄存器是一個存儲器映射寄存器,主要用于控制硬件中斷的屏蔽和開放。

當狀態(tài)寄存器ST1中的INTM位為0,IMR中的某位置1時,開放相應的中斷。復位時,IMR均設為0.

中斷屏蔽寄存器IMR的結(jié)構(gòu)與IFR完全一致:15

141312111098保留DMAC5DMAC4BXINT1BRINT1HPINTINT376543210TINT1DMAC0BXINT0BRINT0TINT0INT2INT1INT0用戶可以對IMR寄存器進行讀寫操作。通過讀IMR可以檢查某個中斷是否被屏蔽,通過寫IMR可以屏蔽或開放某個中斷,在IMR位置0,則屏蔽該中斷。中斷控制主要是屏蔽某些中斷,避免其他中斷對當前運行程序的干擾,以及防止同級中斷之間的響應競爭。4.中斷處理的步驟

1)接收中斷請求一個中斷可由硬件設備(引腳或片內(nèi)外設)或軟件指令提出請求。如果中斷源正在請求一個可屏蔽中斷,IFR寄存器中相應的中斷標志位都會被置1。當相應的中斷響應后,該標志位自動被清除。軟件中斷是由程序指令產(chǎn)生的中斷請求,當軟件中斷請求時,一般為下列情形之一:

INTR指令:允許執(zhí)行任何的可屏蔽中斷,包括用戶定義的中斷(從SINT0到SINT30);

TRAP指令:與INTR指令相同,但不影響狀態(tài)寄存器ST1的中斷方式(INTM)位;

RESET指令:可在程序的任何時候產(chǎn)生,使處理器返回一個預定狀態(tài)。復位指令影響ST0,ST1寄存器,但對PMST寄存器沒影響。

對于軟件中斷和非屏蔽硬件中斷,CPU將立即響應,進入相應中斷服務程序。對于可屏蔽中斷,只要滿足以下3種條件后CPU才能響應中斷。2)中斷響應

當前中斷優(yōu)先級最高。

’C54x按照中斷優(yōu)先級響應中斷請求。

INTM位清0。

當INTM=0,所有可屏蔽中斷被使能。當INTM=1,所有可屏蔽中斷被禁止。

IMR屏蔽位為1。

在IMR中,中斷的相應位為1,表明允許該中斷。

滿足上述條件后,CPU響應中斷,終止當前正進行的操作,指令計數(shù)器PC自動轉(zhuǎn)向相應的中斷向量地址,取出中斷服務程序地址,并發(fā)出硬件中斷響應信號IACK,而清除相應的中斷標志位。3)執(zhí)行中斷服務程序

保護現(xiàn)場,將程序計數(shù)器PC值壓入堆棧;

將中斷向量的地址加載到PC;③

從中斷向量所指定的地址開始取指;④

執(zhí)行分支轉(zhuǎn)移,進入中斷服務程序;⑤

執(zhí)行中斷服務程序直到出現(xiàn)返回指令;

從堆棧中彈出返回地址,加載到PC中;⑦

繼續(xù)執(zhí)行主程序。CPU響應中斷后,DSP執(zhí)行中斷向量地址所指向的分支轉(zhuǎn)移指令,并執(zhí)行中斷服務程序,具體步驟如下:

注意:在中斷響應時,程序擴展寄存器XPC不會自動壓入堆棧。(若ISR在程序空間的擴展頁上,程序須用軟件將XPC壓入堆棧,此時中斷返回必須使用FRET[D]遠程返回指令。一般建議中斷服務程序放在DSP片內(nèi)程序空間。建議進入中斷服務程序時,只執(zhí)行改變堆棧頂PC值的修改,返回到程序中即可,最后跳轉(zhuǎn)到中斷點。4)保存中斷上下文當執(zhí)行一個中斷服務程序時,有些寄存器必須保存在堆棧中。當程序從ISR返回時,用戶軟件代碼必須恢復這些寄存器的上下文。

使用堆棧操作指令可以將這些寄存器傳送到堆棧中,或者從堆棧中取出。

PSHM指令:將MMR寄存器中的內(nèi)容傳送到堆棧中;

POPM指令:從堆棧中讀出的數(shù)據(jù)傳送到MMR寄存器中;PSHD指令:將數(shù)據(jù)存儲器中的數(shù)據(jù)傳送到堆棧;

POPD指令:從堆棧中讀出的數(shù)據(jù)傳送到數(shù)據(jù)存儲器中.

當保存和恢復上下文時,應考慮如下幾點:

①當使用堆棧保存上下文時,必須按相反的方向執(zhí)行恢復;②寄存器BRC應在ST1的BRAF位之前恢復,否則,若在恢復BRC之前,中斷服務程序中的BRC=0,則先前恢復的BRAF位會被清0。

5.中斷操作流程

(1)可屏蔽中斷操作過程:

設置IFR寄存器的相應標志位;

測試中斷響應條件;

當中斷響應后,清除相應的標志位,屏蔽其他可屏蔽中斷;

PC值保存到堆棧中;

分支轉(zhuǎn)移執(zhí)行中斷服務程序;

中斷返回,將返回地址從堆棧中彈出給PC;

CPU繼續(xù)執(zhí)行主程序。

(2)非屏蔽中斷操作過程:

CPU立刻響應該中斷,產(chǎn)生中斷響應信號;

如果中斷是由RS、NMI或INTR指令請求的,則INTM位被置1;

若INTR指令已經(jīng)請求了一個可屏蔽中斷,則相應的標志位被清零;

PC值保存到堆棧中;

分支轉(zhuǎn)移執(zhí)行中斷服務程序;

中斷返回,將返回地址從堆棧中彈出給PC;

CPU繼續(xù)執(zhí)行主程序。

在工業(yè)應用中,計數(shù)器和定時器常用于檢測和控制中的時序協(xié)調(diào)及控制。

’C54x的片內(nèi)定時器是一個可編程的定時器,可用于周期地產(chǎn)生中斷。定時器的最高分辨率為處理器的CPU時鐘速度。通過帶4位預定標器的16位計數(shù)器,可以獲得較大范圍的定時頻率。

3.5.2定時器

’C54x的定時器是一個帶有4位預分頻器的16位可軟件編程減法計數(shù)器。

這個減法計數(shù)器每來1個時鐘周期自動減1,當計數(shù)器減到0時產(chǎn)生定時中斷。

通過編程設置特定的狀態(tài)可使定時器停止、恢復運行、復位或禁止。

定時器硬件上主要由3個16位存儲器映射寄存器【定時寄存器TIM、定時周期寄存器PRD、定時控制寄存器TCR】及相應的邏輯控制電路組成。

寄存器TIM、PRD和TCR映射到存儲器的地址分別為0024H、0025H和0026H。1.定時器結(jié)構(gòu)

(1).定時器的組成

主定時器模塊預定標器模塊周期寄存器PRD定時寄存器TIM借位13預定標計數(shù)器PSC借位預定標分頻系數(shù)TDDR12111&SRESETTRBCLKOUTTSSTINTTOUTTMS320C54xDSP片內(nèi)定時器結(jié)構(gòu)圖主定時器模塊:由PRD和TIM組成預定標器模塊:由TCR的TDDR和PSC位域組成定時器由CPU提供時鐘邏輯控制電路:由三個或門和一個與門組成。復位SRESET和TRB:①通過或門1、3控制TIM的加載計數(shù);②通過或門1、2控制PSC的加載計數(shù)。停止控制位TSS:通過與門屏蔽CLKOUT信號來控制定時器的啟動。TINT——外部定時中斷,定時時間到發(fā)中斷;TOUT——定時輸出,輸出定時波形。表3-1定時器的三個16位寄存器Timer0地址Timer1地址(僅C5402有)寄存器說明0024H0030HTIM定時器寄存器,減1計數(shù)器,每計數(shù)一次自動減10025H0031HPRD定時器周期寄存器,時間常數(shù)寄存器,用于重載TIM的值。當TIM減為0后,CPU自動將PRD的值裝入TIM0026H0032HTCR定時器控制寄存器,包含定時器的控制和狀態(tài)位*定時控制寄存器TCR

16位存儲器映射寄存器,包含定時器的控制位和狀態(tài)位。15~1211109~6543~0TCR0026h保留

Soft

Free

PSC

TRB

TSS

TDDR

保留位軟件調(diào)試控制位

預定標計數(shù)器

重新加載位停止狀態(tài)位分頻系數(shù)TCR位結(jié)構(gòu)圖表3-2定時器控制寄存器(TCR)的功能定時器可以通過啟動定時控制寄存器(TCR)完成以下操作:●設定定時器的工作方式(Soft、Free);●設定預定標計數(shù)器中的當前數(shù)值(PSC);●啟動或停止定時器(TSS);●重新裝載定時器(TRB);●設置定時器的分頻值(TDDR)。

定時器的工作過程:由邏輯控制電路控制定時器運行。①

定時分頻系數(shù)和周期數(shù)分別裝入TCR和PRD寄存器中;②

每來一個定時脈沖CLKOUT,計數(shù)器PSC減1;③

當PSC減至0時,PSC產(chǎn)生借位信號;④在PSC的借位信號作用下,TIM減1計數(shù),同時將分頻系數(shù)裝入PSC,重新計數(shù);⑤

當TIM減到0時,定時時間到,由借位產(chǎn)生定時中斷TINT和定時輸出TOUT,并將PRD中的時間常數(shù)重新裝入TIM。定時中斷的周期=

CLKOUT×(TDDR+1)×(PRD+1)其中:CLKOUT-CPU時鐘周期TDDR-定時器分頻系數(shù)PRD-定時器時間常數(shù)讀TIM和TCR寄存器,可以知道定時器中的當前值和預定標計數(shù)器中的當前值。由于讀這兩個寄存器要用兩條指令,就有可能在兩次讀之間發(fā)生讀數(shù)變化。若需要精確的定時測量,應在讀這兩值之前先關閉定時器。用定時器可以產(chǎn)生外圍電路(如模擬接口電路)所需的采樣時鐘信號。一種方法是直接利用引腳TOUT的輸出信號;另一種方法是利用中斷,周期地讀一個寄存器。2.定時時間3.定時器的用法關閉定時器:只要將TCR的TSS位置1,切斷時鐘輸入,定時器停止工作,減小功耗定時器初始化:(1)將TCR的TSS位置1(關閉定時器)(2)加載PRD(3)加載TCR(使TDDR初始化,令TSS位為0,TRB位置1),啟動定時器開放定時中斷:(1)將IFR中的TINT位置1,清除尚未處理完的定時器中斷(2)將IMR中的TINT位置1,開放定時中斷(3)將ST1中的INTM位清0,從整體上開放中斷復位時:TIM和PRD都置成FFFFH,定時器的分頻系數(shù)TDDR置0,定時器開始工作*【例】定時器自動裝載定時。TSS=0:啟動定時器;TRB=1:自動裝載;TDDR=Ah:分頻系數(shù)10

soft=1,free=0:計數(shù)器減至0時,停止工作;TCR=0AAAH。定時周期:0101H;清除尚未處理完的定時器中斷:IFR=0008H;

開放定時器中斷:IMR=0008H。

STM#0000H,SWWSR

;不插等待時間STM#0010H,TCR

;TSS=0關閉定時器

STM#0101H,PRD

;加載周期寄存器(PRD)

STM#0AAAH,TCR;裝入定時器控制字,啟動定時器

STM#0080H,IFR;消除尚未處理完的定時器中斷

STM#0080H,IMR

;開放定時器中斷

RSBXINTM;開放中斷返回本節(jié)3.5.3主機接口主機接口(HPI,HostPortInterface)是C54xDSP系列定點芯片內(nèi)部具有的一種并行接口部件,

通過它可以連接到標準的微處理器總線。主機接口通常在主機和DSP內(nèi)核之間共享一塊可以訪問的位于DSP器件上的存儲器。TMS320C54xDSP上配置的是一個8位HPI接口,其內(nèi)部簡化框圖如圖3-23所示。主機和DSP可獨立地對HPI接口操作,通過主機接口,可實現(xiàn)主機與DSP片內(nèi)存儲器之間信息的高速交換。主機是HPI的主控者,HPI作為一個外設與主機相連接,使主機的訪問操作很容易。主機接口包括一個8比特的雙向數(shù)據(jù)總線、各種控制信號及3個寄存器(HPIC、HPIA和HPID)。片外的主機通過修改HPI控制寄存器(HPIC)設置HPI的工作方式,通過設置HPI地址寄存器(HPIA)來指定要訪問的片內(nèi)RAM單元,通過讀/寫數(shù)據(jù)鎖存器(HPID)來對指定存儲器單元讀/寫。主機通過HCNTL0、HCNTLl管腳電平選擇3個寄存器中的一個。主機和C54xDSP都可以訪問HPIC。圖3-23TMS320C54xDSPHPI內(nèi)部簡化框圖地址寄存器

HPI的外部接口為8位的總線,通過兩個連續(xù)的8位字節(jié)組合在一起形成一個16位字,HPI就可為C54xDSP提供16位的數(shù)。當主機使用HPI寄存器執(zhí)行一個數(shù)據(jù)傳輸時,HPI控制邏輯自動執(zhí)行對一個專用2K字的C54xDSP內(nèi)部的雙尋址RAM的訪問,以完成數(shù)據(jù)處理。然后C54xDSP可以在它的存儲器空間讀寫數(shù)據(jù)。HPIRAM也可以用作通用目標雙尋址數(shù)據(jù)或程序RAM。圖3.24主機與TMS320C54xDSP主機接口的連接

主機的接口采用8條數(shù)據(jù)線、兩條地址線、一條讀/寫線和一條數(shù)據(jù)鎖存和選通線,還有一個中斷連接以使DSP能向主機提出新的數(shù)據(jù)申請,雖然沒有主機向DSP申請的中斷連接,但在主機寫新數(shù)據(jù)時會自動產(chǎn)生主機向DSP的中斷申請。HPI與主機的連接*表3-29HPI-8接口信號名稱及其功能返回本節(jié)3.5.4串行口

’C54x為用戶提供了豐富的同步串行口,可與雙向串口器件實現(xiàn)高效的串行通信。

’C54x的串行口有四種類型:

標準同步串口SP緩沖同步串口BSP多路緩沖串口McBSP時分多路同步串口TMD

功能是提供器件內(nèi)外數(shù)據(jù)的串行通信,串行通信是指發(fā)送器將并行數(shù)據(jù)逐位移出成為串行數(shù)據(jù)流

溫馨提示

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

評論

0/150

提交評論