DSP技術(shù)TMSCx系列DSP硬件結(jié)構(gòu)_第1頁
DSP技術(shù)TMSCx系列DSP硬件結(jié)構(gòu)_第2頁
DSP技術(shù)TMSCx系列DSP硬件結(jié)構(gòu)_第3頁
DSP技術(shù)TMSCx系列DSP硬件結(jié)構(gòu)_第4頁
DSP技術(shù)TMSCx系列DSP硬件結(jié)構(gòu)_第5頁
已閱讀5頁,還剩71頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

DSP技術(shù)TMSCx系列DSP硬件結(jié)構(gòu)演示文稿目前一頁\總數(shù)七十六頁\編于十二點3.1

TMS320C54xDSP的特點與基本結(jié)構(gòu)TMS320C54x(簡稱’C54x)是TI公司1996年推出的新一代DSP,是為了實現(xiàn)低功耗、高速實時信號處理而專門設(shè)計的數(shù)字信號處理器,采用改進的哈佛結(jié)構(gòu),具有高度的操作靈活性和運行速度,適應(yīng)于遠程通信等實時嵌入式應(yīng)用的需要,現(xiàn)已廣泛地應(yīng)用于無線電通信系統(tǒng)中。2023/5/172目前二頁\總數(shù)七十六頁\編于十二點

技術(shù)指標(biāo)

對于同一系列的DSP器件,各型號器件所采用的CPU是基本相同的。TMS320C54x系列芯片中各型號器件內(nèi)部CPU結(jié)構(gòu)完全相同,只是在時鐘頻率、工作電壓、片內(nèi)存儲器容量大小、外圍設(shè)備和接口電路的設(shè)計上有所不同。目前三頁\總數(shù)七十六頁\編于十二點表3.1TMS320C54x系列DSP芯片的技術(shù)特征目前四頁\總數(shù)七十六頁\編于十二點TMS320C54x的硬件結(jié)構(gòu)圖

PAGENDAGEN

系統(tǒng)控制程序地址生成器數(shù)據(jù)地址生成器

CPU乘法累加器算術(shù)/邏輯運算單元桶形移位器比較器外部存儲器接口外部設(shè)備接口程序存儲器數(shù)據(jù)存儲器串行口并行口定時器計數(shù)器中斷系統(tǒng)控制接口PABPBCABCBDABDBEABEB2023/5/175DSP原理及應(yīng)用目前五頁\總數(shù)七十六頁\編于十二點TMS320C54XDSP的主要特點1.CPU可實現(xiàn)高效的數(shù)據(jù)存儲能力和數(shù)據(jù)處理能力。

CPU是DSP芯片中的核心部分,是用來實現(xiàn)數(shù)據(jù)信號處理運算和高速控制功能的部件。CPU的內(nèi)部包括:(1)采用先進的多總線結(jié)構(gòu),通過1條程序總線、3條數(shù)據(jù)總線和4條地址總線來實現(xiàn)??赏瑫r訪問程序區(qū)和數(shù)據(jù)區(qū),還可進行雙操作數(shù)讀操作,32位的雙字讀和并行的單字數(shù)據(jù)讀/寫能力。(2)40位算術(shù)邏輯運算單元ALU,包括1個40位桶形移位寄存器和2個獨立的40位累加器A、B。2023/5/176目前六頁\總數(shù)七十六頁\編于十二點(3)17×17位并行乘法器,與40位專用加法器相連,可用于進行非流水線的單周期乘法-累加運算。(4)比較、選擇、存儲單元(CSSU),可用于Viterbi譯碼器的加法-比較-選擇運算。(5)指數(shù)編碼器,是一個支持單周期指令EXP的專用硬件??梢栽谝粋€周期內(nèi)計算40位累加器數(shù)值的指數(shù)。(6)集成Viterbi加速器,專門用于通信中Viterbi算法。(7)兩個地址生成器,包括8個輔助寄存器和2個輔助寄存器算術(shù)運算單元(ARAU)。2023/5/177目前七頁\總數(shù)七十六頁\編于十二點

2.存儲器的組成(1)192K*16位的可選擇空間(64K字程序存儲空間、64K的數(shù)據(jù)存儲空間和64K的I/O空間)。(2)片內(nèi)ROM,可配置為程序/數(shù)據(jù)存儲器(3)片內(nèi)雙尋址RAM(DARAM)(4)部分54x含片內(nèi)單尋址RAM(SARAM)2023/5/178目前八頁\總數(shù)七十六頁\編于十二點

3.專業(yè)的指令集可幫助快速實現(xiàn)復(fù)雜算法和優(yōu)化編程(1)單指令重復(fù)和塊指令重復(fù)操作。(2)塊存儲移動指令,用于程序和數(shù)據(jù)管理。(3)32位長整數(shù)操作指令。(4)同時讀入2個或3個操作數(shù)的指令。(5)能并行存儲和加載的算術(shù)指令。(6)條件存儲指令。(7)快速中斷返回指令。2023/5/179目前九頁\總數(shù)七十六頁\編于十二點

4.執(zhí)行指令速度快TMS320C54xDSP執(zhí)行單周期定點指令時間可以為25/20/15/12.5/10ns,對應(yīng)每秒指令數(shù)分別為40/66/100MIPS(百萬條/秒)。2023/5/1710目前十頁\總數(shù)七十六頁\編于十二點5.電源可處于低功耗狀態(tài),可在3.3V和2.7V電壓下工作,三個低功耗方式(IDLE1、IDLE2、IDLE3)可節(jié)省功耗,以便DSP更適合無線移動設(shè)備。6.智能外設(shè)可以很方便地實現(xiàn)與外部處理器的數(shù)據(jù)通信和對芯片的仿真與測試。2023/5/1711目前十一頁\總數(shù)七十六頁\編于十二點

3.2TMS320C54xDSP的總線結(jié)構(gòu)TMS320C54x片內(nèi)有8條16位總線,即4條程序/數(shù)據(jù)總線和4條地址總線。PB是程序總線,CB、DB和EB是數(shù)據(jù)總線,地址總線分別是:PAB、CAB、DAB和EAB。程序總線PB3條數(shù)據(jù)總線CB、DB和EB4條地址總線PAB、CAB、DAB和EAB2023/5/1712目前十二頁\總數(shù)七十六頁\編于十二點表3.2讀/寫訪問時的總線占用說明目前十三頁\總數(shù)七十六頁\編于十二點3.3TMS320C54x的CPU結(jié)構(gòu)CPU決定了DSP的運算速度和程序效率,為了能在一個指令周期內(nèi)完成高速的算術(shù)運算,TMS320C54xCPU采用了流水線指令執(zhí)行結(jié)構(gòu)和相應(yīng)的并行結(jié)構(gòu)設(shè)計。TMS320C54xCPU的寄存器在存取數(shù)據(jù)時,可以使用寄存器尋址方式,以達到快速保存和恢復(fù)數(shù)據(jù)的目的。TMS320C54xCPU主要包括:一個40位的算術(shù)邏輯單元(ALU)、兩個40位的累加器、一個桶形移位乘累加器、16位的暫存器(TREG)、16位的狀態(tài)轉(zhuǎn)移寄存器(TRN)、比較/選擇/存儲單元(CSSU)和指數(shù)編碼器。目前十四頁\總數(shù)七十六頁\編于十二點一、算術(shù)邏輯運算單元目前十五頁\總數(shù)七十六頁\編于十二點一、算術(shù)邏輯運算單元ALU的兩個輸入操作數(shù)可以來自:

16位的立即數(shù)

數(shù)據(jù)存儲器中的16位字

暫存器T中的16位字

數(shù)據(jù)存儲器中讀出的2個16位字

累加器A或B中的40位數(shù)

移位寄存器的輸出。ALU通過指令識別輸入數(shù)據(jù)。ALU的40位輸出結(jié)果送入累加器A或B。目前十六頁\總數(shù)七十六頁\編于十二點二、累加器累加器A和B可作為ALU和乘法器/加法器單元的目的寄存器,累加器也能輸出數(shù)據(jù)到ALU或乘法器/加法器中。累加器可分為三部分:保護位(或稱前導(dǎo)位)、高位字和低位字。累加器A和B的唯一區(qū)別是累加器A的32~16位能被用作乘/加單元中乘法器的輸入,而累加器B則不能。累加器A和累加器B的保護位用作算術(shù)運算時的空白頭,目的是防止迭代運算中的溢出。AG、AH、AL、BG、BH和BL都是存儲器映像寄存器(在存儲空間中占有地址),由特定的指令將其內(nèi)容放到16位數(shù)據(jù)存儲器中,并從數(shù)據(jù)存儲器中讀出或?qū)懭?2位累加器值。目前十七頁\總數(shù)七十六頁\編于十二點三、移位寄存器(桶形移位器)功能:把輸入的數(shù)據(jù)進行0~31位的左移和0~15位的右移。輸入數(shù)據(jù)來自數(shù)據(jù)總線DB的16位輸入數(shù)據(jù)、CB的16位輸入數(shù)據(jù)及任意一個40位累加器,并輸出到ALU,經(jīng)過MSW/LSW(最高有效字/最低有效字)寫選擇單元至EB總線。所移的位數(shù)就是指令中的移位數(shù)。移位數(shù)都是用二進制補碼表示,正值表示左移,負值表示右移。移位數(shù)可由立即數(shù)、狀態(tài)寄存器ST1中的累加器移位方式(ASM)字段和被指定為移位數(shù)值寄存器的暫存器T來決定。目前十八頁\總數(shù)七十六頁\編于十二點圖3.5桶形移位寄存器目前十九頁\總數(shù)七十六頁\編于十二點四、乘累加單元TMS320C54xCPU乘累加單元由17×17bit的硬件乘法器、40位專用加法器、符號位控制邏輯、小數(shù)控制邏輯、0檢測器、溢出/飽和邏輯和16位的暫存器(T)等部分組成,能夠在一個周期內(nèi)完成一次17*17bit的乘法和一次40位的加法。乘累加單元的一個輸入操作數(shù)來自T寄存器、數(shù)據(jù)存儲器或累加器A(31~16位);另一個則來自于程序存儲器、數(shù)據(jù)存儲器、累加器A(31~16位)或立即數(shù)。乘法器的輸出加到加法器的輸入端,累加器A或B則是加法器的另一個輸入端,最后結(jié)果送往目的累加器A或B。目前二十頁\總數(shù)七十六頁\編于十二點圖3.6乘累加單元結(jié)構(gòu)圖目前二十一頁\總數(shù)七十六頁\編于十二點五、比較選擇存儲單元(CSSU)CSSU單元(其結(jié)構(gòu)如圖3.7所示)支持各種Viterbi算法并利用優(yōu)化的片內(nèi)硬件加速Viterbi的蝶形運算。加法由ALU單元完成,只要將ST1中的C16置1,所有的雙字指令都會變成雙16位算術(shù)運算指令,這樣ALU就可以在一個機器周期內(nèi)完成兩個16位數(shù)的加/減法運算,其結(jié)果分別存放在累加器的高16位和低16位中。CSSU通過CMPS指令、一個比較器和16位的轉(zhuǎn)移寄存器完成比較和選擇操作。在比較選擇中,比較指定累加器的兩個16位部分并把比較結(jié)果移入TRN寄存器的第0位,比較結(jié)果也存入ST0寄存器的T0位。根據(jù)比較結(jié)果,選擇累加器中較大的字(AH或AL)存入數(shù)據(jù)存儲器。目前二十二頁\總數(shù)七十六頁\編于十二點圖3.7比較選擇存儲單元結(jié)構(gòu)圖目前二十三頁\總數(shù)七十六頁\編于十二點六、指數(shù)編碼器指數(shù)編碼器是一個專用硬件,如下圖所示,它專門用于單周期指令EXP。它可以求出累加器中的指數(shù)值,并以二進制補碼形式存放于T中。指數(shù)編碼器結(jié)構(gòu)圖目前二十四頁\總數(shù)七十六頁\編于十二點七、CPU狀態(tài)控制寄存器’C54X包括3個狀態(tài)控制寄存器,分別是:狀態(tài)寄存器ST0狀態(tài)寄存器ST1處理器工作方式狀態(tài)寄存器PMST。2023/5/1725目前二十五頁\總數(shù)七十六頁\編于十二點1.狀態(tài)寄存器0(ST0)

主要反映處理器的尋址要求和計算機的運行狀態(tài)。

ST0的結(jié)構(gòu):15—1312111098——0ST0:ARPTCCOVAOVBDPARPARP:輔助寄存器指針。用來選擇使用單操作數(shù)間接尋址時的輔助寄存器AR0~AR7。ARPTCTC:測試/控制標(biāo)志。

用來保存ALU測試操作的結(jié)果。TCCC:進位標(biāo)志位。

用來保存ALU加減運算時所產(chǎn)生的進/借位。COVBOVAOVA/B:累加器A/B的溢出標(biāo)志。

用來反映A/B是否產(chǎn)生溢出。OVBOVADPDP:數(shù)據(jù)存儲器頁指針。

用來與指令中提供的7位地址結(jié)合形成1個

16位數(shù)據(jù)存儲器的地址。DP2023/5/1726目前二十六頁\總數(shù)七十六頁\編于十二點2.狀態(tài)寄存器1(ST1)151413121110987654~0BRAFCPLXFHMINTM0OVMSXMC16FRCTCMPTASMBRAFCPLXFHMINTM0OVMSXMC16FRCTCMPTASMBRAF:塊重復(fù)操作標(biāo)志位。

用來指示當(dāng)前是否在執(zhí)行塊重復(fù)操作。

BRAF=0

表示當(dāng)前不進行重復(fù)塊操作;

BRAF=1

表示當(dāng)前正在進行塊重復(fù)操作。CPL:直接尋址編輯方式標(biāo)志位;

用來指示直接尋址選用何種指針。

CPL=0

選用數(shù)據(jù)頁指針DP的直接尋址;

CPL=1

選用堆棧指針SP的直接尋址。XF:外部XF引腳狀態(tài)控制位。

用來控制XF通用外部輸出引腳的狀態(tài)。

執(zhí)行SSBX

XF=1

XF通用輸出引腳為1;執(zhí)行RSBX

XF=0

XF通用輸出引腳為0。HM:保持方式位;響應(yīng)HOLD信號時,指示

CPU是否繼續(xù)執(zhí)行內(nèi)部操作。

HM=0

CPU從內(nèi)部程序存儲器取指,

繼續(xù)執(zhí)行內(nèi)部操作。

HM=1

CPU停止內(nèi)部操作。

INTM:中斷方式控制位;

用于屏蔽或開放所有可屏蔽中斷。

INTN=0

開放全部可屏蔽中斷;

INTN=1

禁止所有可屏蔽中斷。0:保留位,未被使用,總是讀為0。OVM:溢出方式控制位;

用來確定累加器溢出時,對累加器的加載方式。

OVM=0

將運算的溢出結(jié)果直接加載到累加器中;

OVM=1

當(dāng)正溢出時,將007FFFFFFFH加載累加器;

當(dāng)負溢出時,將FF80000000H加載累加器。SXM:符號位擴展方式控制位;用來確定數(shù)據(jù)在運算之前是否需要符號位擴展。

SXM=0

數(shù)據(jù)進入ALU之前禁止符號位擴展;

SXM=1

數(shù)據(jù)進入ALU之前進行符號位擴展。C16:雙16位/雙精度算術(shù)運算方式控制位;

用來決定ALU的算術(shù)運算方式。

C16=0

ALU工作在雙精度算術(shù)運算方式;

C16=1

ALU工作在雙16位算術(shù)運算方式。FRCT:小數(shù)方式控制位;用來確定乘法器的運算方式。

FRCT=1

乘法器的輸出左移一位,消除多余的符號位。CMPT:間接尋址輔助寄存器修正方式控制位;

用來決定ARP是否進行修正。

CMPT=0

在進行間接尋址單操作數(shù)時,不修正ARP;

CMPT=1

在進行間接尋址單操作數(shù)時,修正ARP。ASM:累加器移位方式控制位。

為某些具有移位操作的指令設(shè)定一個從-16~15范圍內(nèi)的移位值。BRAFCPLXFHMINTM0OVMSXMC16FRCTCMPTASM

主要反映處理器的尋址要求、計算初始狀態(tài)的設(shè)置、I/O及中斷的控制等。2023/5/1727目前二十七頁\總數(shù)七十六頁\編于十二點在操作中,可以使用置位指令SSBX和復(fù)位指令RSBX對ST0和ST1的各個位進行單獨置位(置1)或清零(置0)。例如:SSBXSXM ;SXM=1,允許符號擴展RSBXSXM ;SXM=0,禁止符號擴展APR、DP和ASM字段可以通過LD指令裝載一個短立即數(shù),ASM和DP也可以通過使用LD指令用數(shù)據(jù)存儲器的值來裝載。2023/5/1728目前二十八頁\總數(shù)七十六頁\編于十二點3.處理器工作方式狀態(tài)寄存器PMSTSSTSMULCLKOFFDROMAVISOVLYMP/MCIPTR012345615~7

主要設(shè)定和控制處理器的工作方式和存儲器的配置,反映處理器的工作狀態(tài)。PMST寄存器內(nèi)容可由存儲器映射寄存器指令裝載,如STM指令。中斷向量指針CPU工作方式選擇位RAM重復(fù)占位標(biāo)志地址可見控制位數(shù)據(jù)ROM映射選擇位時鐘輸出選擇位乘法飽和方式位存儲飽和位2023/5/1729目前二十九頁\總數(shù)七十六頁\編于十二點八、尋址單元TMS320C54xDSP有兩個地址發(fā)生器:程序地址生成單元PAGEN(ProgramAddressGenerationLogic)和數(shù)據(jù)地址生成單元DAGEN(DataAddressGenerationLogic)。1.程序地址生成單元(PAGEN)PAGEN包括5個寄存器:程序計數(shù)器PC、重復(fù)計數(shù)器RC、塊重復(fù)計數(shù)器BRC、塊重復(fù)起始地址RSA和結(jié)束地址REA(后四個寄存器合起來也叫重復(fù)寄存器),這些寄存器可支持程序存儲器尋址。目前三十頁\總數(shù)七十六頁\編于十二點PAGEN、邏輯寄存器和流水線硬件進行地址生成和程序排隊操作,形成了指令的流水線。流水線共有6級:(1)程序預(yù)取:將一條指令的地址(PC的內(nèi)容)加載到程序地址總線(PAB)上。(2)程序取指:用取指得到的指令字加載PB。(3)解碼:用PB的內(nèi)容加載IR,解碼IR的內(nèi)容。(4)訪問:將指令的讀操作數(shù)地址送到數(shù)據(jù)地址總線(DAB/CAB)上。(5)讀操作數(shù):從數(shù)據(jù)總線(DB和CB)讀數(shù)據(jù)操作數(shù)。(6)執(zhí)行:執(zhí)行指令,用寫數(shù)據(jù)加載EB。2023/5/1731目前三十一頁\總數(shù)七十六頁\編于十二點2.?dāng)?shù)據(jù)地址生成單元(DAGEN)

包括輔助寄存器指針ARP、循環(huán)緩沖區(qū)大小寄存器BK、DP、堆棧指針寄存器SP、8個輔助寄存器(AR0~AR7)和2個輔助寄存器算術(shù)單元(ARAU0和ARAU1)。8個輔助寄存器和2個輔助寄存器算術(shù)單元一起可進行16位無符號數(shù)算術(shù)運算,支持間接尋址,AR0~AR7由ST0中的ARP來指定。目前三十二頁\總數(shù)七十六頁\編于十二點

3.4TMS320C54xDSP的存儲器結(jié)構(gòu)TMS320C54x的存儲空間為192K字,分成3個可選擇的存儲空間:64K的程序存儲空間、64K的數(shù)據(jù)存儲空間和64K的I/O空間。這個系列的芯片都有隨機存儲器(RAM)和只讀存儲器(ROM)。其中RAM有兩種:單尋址RAM(SARAM)和雙尋址RAM(DARAM)。DARAM:能夠在一個機器周期內(nèi)執(zhí)行4次存儲器操作:1次取址、讀2個操作數(shù)和寫1個操作數(shù)。

使用片內(nèi)存儲器優(yōu)點:因為無須等待周期故性能更高;比外部存儲器成本低、功耗小。

當(dāng)片內(nèi)存儲器不能滿足系統(tǒng)設(shè)計的存儲要求時,就需要擴展片外存儲器。

2023/5/1733目前三十三頁\總數(shù)七十六頁\編于十二點表3.3常用的TMS320C54xDSP器件的片內(nèi)存儲器配置

2023/5/1734目前三十四頁\總數(shù)七十六頁\編于十二點

TMS320C54x通過3個狀態(tài)位控制(PMST中)程序存儲器和數(shù)據(jù)存儲區(qū)的“使能”和“禁止”:MP/MC位:若MP/MC=0,則片內(nèi)ROM安排到程序空間;若MP/MC=1,則片內(nèi)ROM不安排到程序空間。OVLY位:若OVLY=1,則片內(nèi)RAM安排到程序和數(shù)據(jù)空間;若OVLY=0,則片內(nèi)RAM只安排在數(shù)據(jù)存儲空間。DROM位:若DROM=1,則部分片內(nèi)ROM安排到數(shù)據(jù)空間;若DROM=0,則片內(nèi)ROM不安排到數(shù)據(jù)空間。DROM的用法與MP/MC的用法無關(guān)。2023/5/1735目前三十五頁\總數(shù)七十六頁\編于十二點’C5402數(shù)據(jù)存儲空間結(jié)構(gòu)

0000H~0050H

存儲器映像寄存器

0060H~007FH

暫存器SPRAM0080H~3FFFH內(nèi)部DARAM4000H~EFFFH外部存儲器DROM=1

使用內(nèi)部ROM

F000H~FEFFH內(nèi)部ROMFF00H~FFFFH保留DROM=0

不使用內(nèi)部ROM

F000H~FEFFH外部存儲器DROM=1保留

DROM=0外部存儲器FF00HFFFFHDROM=1內(nèi)部ROMDROM=0外部存儲器F000HFEFFH外部存儲器4000HEFFFH內(nèi)部DARAM(16K字)0080H3FFFH暫存器SPRAM0060H007FH存儲器映像寄存器0000H005FH數(shù)據(jù)存儲空間地址存儲器映像寄存器暫存器SPRAM內(nèi)部DARAM(16K字)外部存儲器DROM=1內(nèi)部ROM

DROM=1保留存儲器映像寄存器暫存器SPRAM內(nèi)部DARAM(16K字)外部存儲器DROM=1內(nèi)部ROM

DROM=1保留DROM=1保留

DROM=0外部存儲器DROM=1內(nèi)部ROMDROM=0外部存儲器外部存儲器內(nèi)部DARAM(16K字)暫存器SPRAM存儲器映像寄存器2023/5/1736目前三十六頁\總數(shù)七十六頁\編于十二點內(nèi)部RAM前1K的配置:0380H~03FFH0300H~037FH0280H~02FFH0200H~027FH0180H~01FFH0100H~017FH0080H~00FFH0060H~007FH0200H~005FH0000H~001FH存儲器映像的CPU寄存器存儲器映像的CPU寄存器,特殊功能寄存器0000~001FH:特殊功能寄存器存儲器映像的外設(shè)寄存器存儲器映像的外設(shè)寄存器0020~005FH:外設(shè)寄存器暫存器SPRAM(DP=0)暫存寄存器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ù)塊。2023/5/1737目前三十七頁\總數(shù)七十六頁\編于十二點

為了便于CPU的并行操作,提高芯片的高速處理能力,從0080H開始,按每80H(128)個存儲單元為一個塊,將DARAM分成若干個數(shù)據(jù)塊。

分塊以后,用戶可以在同一個周期內(nèi)從同一塊DARAM中取出兩個操作數(shù),并將數(shù)據(jù)寫入到另一塊DARAM中。2023/5/1738目前三十八頁\總數(shù)七十六頁\編于十二點存儲器映像寄存器

在’C54x的數(shù)據(jù)存儲空間中,前80H個單元(數(shù)據(jù)頁0)包含有CPU寄存器、片內(nèi)外設(shè)寄存器和暫存器。這些寄存器全部映射到數(shù)據(jù)存儲空間,稱作存儲器映像寄存器MMR。存儲器映像寄存器MMR:

CPU寄存器——特殊功能寄存器;

片內(nèi)外設(shè)寄存器;

暫存器SPRAM。

2023/5/1739目前三十九頁\總數(shù)七十六頁\編于十二點

特殊功能寄存器

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

擇和設(shè)定。地址范圍:0000H~001FH。

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

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

地址范圍:0020H~005FH。

包括串行口通信控制寄存器組、定時器定時控制寄存器組、時鐘周期設(shè)定寄存器組等。暫存器SPRAM

功能:用來暫存變量。地址范圍:0060H~007FH。2023/5/1740目前四十頁\總數(shù)七十六頁\編于十二點第2章TMS320C54x的硬件結(jié)構(gòu)

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

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

IFR中斷標(biāo)志寄存器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塊重復(fù)計數(shù)器0BH

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

RSA塊重復(fù)起始地址寄存器0CH

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

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

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

TRN狀態(tài)轉(zhuǎn)移寄存器1FH保留TMS320C54x存儲器映像CPU寄存器(特殊功能寄存器)2023/5/1741DSP原理及應(yīng)用目前四十一頁\總數(shù)七十六頁\編于十二點2.存儲器映像寄存器

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

不同型號的芯片具有不同的片內(nèi)外設(shè)寄存器?!疌5402DSP外設(shè)的存儲器及相應(yīng)的地址地址符號寄存器名稱地址符號寄存器名稱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定時設(shè)定寄存器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多路開關(guān)控制寄存器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ā)送寄存器

2023/5/1742DSP原理及應(yīng)用目前四十二頁\總數(shù)七十六頁\編于十二點I/O存儲器

’C54x除了程序和數(shù)據(jù)存儲空間外,還提供了一個具有64K字的I/O空間。

主要用于對片外設(shè)備的訪問??梢允褂幂斎胫噶頟ORTR和輸出指令PORTW對I/O空間尋址。

在對I/O空間訪問時,除了使用數(shù)據(jù)總線和地址總線外,還要用到IOTRB、IS和I/W控制線。

IOTRB和IS:用于選通I/O空間;

I/W:用于控制訪問方向。

2023/5/1743目前四十三頁\總數(shù)七十六頁\編于十二點

3.5TMS320C54xDSP的片內(nèi)外設(shè)

’C54x器件除了提供哈佛結(jié)構(gòu)的總線、功能強大的CPU以及大容量的存儲空間外,還提供了必要的片內(nèi)外部設(shè)備。

不同型號的’C54x芯片,所配置的片內(nèi)外設(shè)有所不同,這些片內(nèi)外設(shè)主要包括:

①通用I/O②中斷系統(tǒng)③定時器④時鐘發(fā)生器⑤軟件可編程等待狀態(tài)發(fā)生器(SWWSR)⑥可編程的組合切換邏輯⑦串行口⑧直接存儲器訪問(DMA)控制器⑨主機接口HPI⑩外部總線接口2023/5/1744目前四十四頁\總數(shù)七十六頁\編于十二點1.通用I/O引腳

’C54x芯片為用戶提供了兩個軟件控制的通用I/O引腳。

分支轉(zhuǎn)移控制輸入引腳BIO

外部標(biāo)志輸出引腳XF

BIO:分支轉(zhuǎn)移控制輸入引腳

用來監(jiān)控外部設(shè)備的運行狀態(tài)。

在實時控制系統(tǒng)中,通過查詢此引腳控制程

序流向,以避免中斷引起的失控現(xiàn)象。

XF:外部標(biāo)志輸出引腳

用于程序向外設(shè)傳輸標(biāo)志信息。

通過此引腳的置位或復(fù)位,可以控制外設(shè)

的工作。是狀態(tài)寄存器ST1中的位。2023/5/1745目前四十五頁\總數(shù)七十六頁\編于十二點2.中斷系統(tǒng)中斷是指DSP暫時停止原程序執(zhí)行轉(zhuǎn)而為外部設(shè)備服務(wù)(執(zhí)行中斷服務(wù)程序),并在服務(wù)完成后自動返回原程序執(zhí)行的過程。CPU在和外設(shè)交換信息時通過中斷就可以避免不必要的等待和查詢,從而提高CPU的工作效率,所以中斷系統(tǒng)是衡量CPU性能好壞的一項重要指標(biāo)。目前四十六頁\總數(shù)七十六頁\編于十二點(1)中斷類型可屏蔽中斷

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

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

指通過軟件改變IMR和ST1中的位已不能影響中斷是否被屏蔽,TMS320C54x對這類中斷總是立即響應(yīng)的。TMS320C54x的非屏蔽中斷包括:所有的軟件中斷、由芯片的復(fù)位引腳引起的中斷和由芯片的外中斷引腳引起的中斷。目前四十七頁\總數(shù)七十六頁\編于十二點(2)中斷向量TMS320C54xDSP給每個中斷源都分配一個確定的偏移地址,叫中斷向量,中斷向量中存放中斷子程序的入口地址,所有的中斷向量放在一起就是中斷向量表。在TMS320C54x中,中斷向量地址的產(chǎn)生是由PMST寄存器中9位的中斷向量指針(IPTR)形成中斷向量地址的高9位,中斷向量序號乘以4(左移2位),形成中斷向量地址的低7位,二者連接并組成16位的中斷向量地址。TMS320C54xDSP內(nèi)部有兩個中斷管理寄存器:中斷標(biāo)志寄存器和中斷屏蔽寄存器。目前四十八頁\總數(shù)七十六頁\編于十二點表3.4TMS320C54xDSP中斷向量表目前四十九頁\總數(shù)七十六頁\編于十二點(3)中斷處理流程TMS320C54x中斷處理分為三個階段:接受中斷請求、響應(yīng)中斷和執(zhí)行中斷服務(wù)程序。中斷處理流程如下目前五十頁\總數(shù)七十六頁\編于十二點目前五十一頁\總數(shù)七十六頁\編于十二點2定時器

用于事件計數(shù)和產(chǎn)生相應(yīng)中斷。在工業(yè)應(yīng)用中,計數(shù)器和定時器常用于檢測和控制中的時序協(xié)調(diào)及控制。

’C54x的片內(nèi)定時器是一個可編程的定時器,可用于周期地產(chǎn)生中斷。定時器的最高分辨率為處理器的CPU時鐘速度。通過帶4位預(yù)定標(biāo)器的16位計數(shù)器,可以獲得較大范圍的定時頻率。2023/5/1752目前五十二頁\總數(shù)七十六頁\編于十二點

定時器主要由定時寄存器TIM、定時周期寄存器PRD、定時控制寄存器TCR及相應(yīng)的邏輯控制電路組成。

寄存器TIM、PRD和TCR是存儲器映像寄存器,地址分別為0024H、0025H和0026H。(1).定時器的組成

2023/5/1753目前五十三頁\總數(shù)七十六頁\編于十二點圖3.21TMS320C54xDSP片內(nèi)定時器結(jié)構(gòu)

目前五十四頁\總數(shù)七十六頁\編于十二點定時寄存器TIM邏輯控制電路定時周期寄存器PRD定時控制寄存器TCR16位減1計數(shù)器。地址:0024H

用來存放定時時間。地址:0025H存放定時器的控制位和狀態(tài)位。地址:0026H。TCR能決定定時器的工作模式,即是連續(xù)工作,僅計數(shù)一次,還是停止計數(shù)。

用來控制定時器協(xié)調(diào)工作。2023/5/1755目前五十五頁\總數(shù)七十六頁\編于十二點

16位存儲器映像寄存器,包含定時器的控制位和狀態(tài)位。定時控制寄存器TCR

15~1211109~6543~0TCR0026h保留

Soft

Free

PSC

TRB

TSS

TDDR

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

預(yù)定標(biāo)計數(shù)器

重新加載位停止?fàn)顟B(tài)位分頻系數(shù)2023/5/1756目前五十六頁\總數(shù)七十六頁\編于十二點

TDDR:定時器分頻系數(shù),用來對CLKOUT進行分頻,以改變定時周期。當(dāng)PSC減到0后,以TDDR中的數(shù)加載PSC。TSS:定時器停止?fàn)顟B(tài)位,用于停止或啟動定時器復(fù)位時,TSS位清0,定時器立即定時。TSS=0,定時器啟動工作;TSS=1,定時器停止工作。2023/5/1757目前五十七頁\總數(shù)七十六頁\編于十二點

TRB:定時器重新加載位,用來復(fù)位片內(nèi)定時器。當(dāng)TRB置1時,以PRD中的數(shù)加載TIM,以及以TDDR中的值加載PSC。PSC:定時器預(yù)定標(biāo)計數(shù)器,其標(biāo)定范圍為1~16。當(dāng)PSC減到0后,TDDR位域中的數(shù)加載到PSC,TIM減1。2023/5/1758目前五十八頁\總數(shù)七十六頁\編于十二點

Free、Soft:軟件調(diào)試控制位。Free和Soft位結(jié)合使用,用來控制調(diào)試程序斷點操作情況下的定時器工作狀態(tài)。Soft

Free

定時器狀態(tài)

0

0

定時器立即停止工作

1

0

當(dāng)計數(shù)器減至0時停止工作

X

1

定時器繼續(xù)工作

保留:讀成0。2023/5/1759目前五十九頁\總數(shù)七十六頁\編于十二點

注:用定時器可以產(chǎn)生系統(tǒng)所需要的定時時鐘信號。有兩種方法產(chǎn)生定時時鐘信號:其一,直接利用TOUT信號作為外圍電路的時鐘源;其二,利用定時器中斷產(chǎn)生系統(tǒng)定時。在C5402內(nèi)部有兩個完全相同的定時器:定時器0和定時器1。定時器1的輸出信號TOUT1只有在禁止HPI-8片上外設(shè)時才能使用。2023/5/1760目前六十頁\總數(shù)七十六頁\編于十二點

(2).定時器的定時時間公式為:

Tt=CLKOUT×(TDDR+1)×(PRD+1)其中:Tt為定時周期,單位是s(秒);CLKOUT為時鐘周期,即主頻的倒數(shù)。

定時器的最大定時周期為:Tt=CLKOUT×(65535+1)×(15+1)=220×CLKOUT=1048576×CLKOUT當(dāng)主頻為100MHz時,則CLKOUT=1/100MHz=10-8s=10-5ms時,因此Tt=10.48576ms。2023/5/1761目前六十一頁\總數(shù)七十六頁\編于十二點

(3).舉例:用定時器中斷在主頻為4MHz的應(yīng)用系統(tǒng)中,產(chǎn)生脈沖周期為8ms的輸出信號。解:因為輸出的周期為8ms,所以定時中斷周期為4ms,每中斷一次,輸出端電平取反一次。

先計算CLKOUT:CLKOUT=1/(4MHz)=0.25×10-6s

再計算TDDR和PRD:Tt=CLKOUT×(TDDR+1)×(PRD+1)即:(TDDR+1)×(PRD+1)=Tt÷CLKOUT

=4×10-3÷0.25×10-6=16000=1600×10∴TDDR=9,PRD=15992023/5/1762目前六十二頁\總數(shù)七十六頁\編于十二點

(4).定時器初始化步驟如下:①

TCR的TSS位置1,關(guān)閉定時器,停止定時;②裝載PRD值;③裝入TCR中的TDDR值。

④設(shè)置TSS=0(啟動定時器)和TRB=1(裝載PRD到TIM,裝載TDDR到PSC)。2023/5/1763目前六十三頁\總數(shù)七十六頁\編于十二點

voidset_t0(){……*(unsignedint*)TCR=?;//停止T0定時器記數(shù)*(unsignedint*)PRD=?;//設(shè)置T0的周期寄存器*(unsignedint*)TCR=?;//允許T0定時器計數(shù)……}2023/5/1764目前六十四頁\總數(shù)七十六頁\編于十二點例題:定時器C5402內(nèi)部有兩個完全相同的定時器:定時器0(Timer0)和定時器1(Timer1),現(xiàn)在需要用定時器1產(chǎn)生5ms定時,計算TDDR1和PRD1。并用C語言語句寫出初始化步驟。(設(shè)系統(tǒng)時鐘頻率為100MHZ)2023/5/1765目前六十五頁\總數(shù)七十六頁\編于十二點Tt=CLKOUT×(TDDR1+1)×(PRD1+1)

(TDDR1+1)×(PRD1+1)=Tt/CLKOUT=5×10(-3)×100×10(6)=500000=(49999+1)×(9+1) 所以PRD1=49999,TDDR1=92023/5/1766目前六十六頁\總數(shù)七十六頁\編于十二點初始化步驟:(1)TSS1=1或TCR1|=0X0010;(2)PRD1=49999;(3)TDDR1=9或T

溫馨提示

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

評論

0/150

提交評論