




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、第5章 TMS320C6000系列DSP集成外設5.1 概述C6000系列DSP片內集成了許多外圍設備,支持多種工業(yè)標準的接口協(xié)議,能夠提供高帶寬的數(shù)據(jù)I/O能力。這些特點使C6000系列DSP獲得了很高的綜合性能,其高集成度也給設計人員帶來了很多方便。參見表5-1。表5-1 C6000系列DSP的集成外設(a) 片內存儲器型號 C6201 C6202B C6203B C6204 C6205 C6211B C6701 C6711 C6712 C6713 C6410 C6411 C6412 C6413 C6414 C6415 C6416 C6418 DM640 DM641 DM642 DM643
2、 C6455 C6722 C6726 C6727片內存儲器 128 kB 384 kB 896 kB 128 kB 128 kBL1: 8 kB; L2: 64 kB 128 kBL1: 8 kB; L2: 64 kB L1: 8 kB; L2: 64 kB L1: 8 kB; L2: 64 kB L1: 32 kB; L2: 128 kB L1: 32 kB; L2: 256 kB L1: 32 kB; L2: 256 kB L1: 32 kB; L2: 256 kB L1: 32 kB; L2: 1024 kB L1: 32 kB; L2: 1024 kB L1: 32 kB; L2: 1
3、024 kB L1: 32 kB; L2: 512 kB L1: 32 kB; L2: 128 kB L1: 32 kB; L2: 128 kB L1: 32 kB; L2: 256 kB L1: 32 kB; L2: 256 kB L1: 32 kB; L2: 2048 kBL1: 32 kB; RAM: 128 kB; ROM: 384 kB L1: 32 kB; RAM: 256 kB; ROM: 384 kB L1: 32 kB; RAM: 256 kB; ROM: 384 kB(b) 其它集成外設EMIF 1 32-bit 1 32-bit 1 32-bit 1 32-bit 1 3
4、2-bit 1 32-bit 1 32-bit 1 32-bit 1 32-bit 1 32-bit 1 32-bit 1 32-bit 1 64-bit 1 32-bit1 64-bit and 1 16-bit 1 64-bit and 1 16-bit 1 64-bit and 1 16-bit 1 32-bit 1 32-bit 1 32-bit 1 64-bit 1 64-bit1 64-bit and 1 32-bit DDR2 1 16-bit 1 16-bit 1 32-bit型號 C6201 C6202B C6203B C6204 C6205 C6211B C6701 C67
5、11 C6712 C6713 C6410 C6411 C6412 C6413 C6414 C6415 C6416 C6418 DM640 DM641 DM642 DM643 C6455 C6722 C6726 C6727 P O O OP O O OP O O OP O 1 32-bit O O16chP O O O O16ch16chO O16ch64chO 64ch 1 32-bit O 64ch 1 32-bit O O64chOO 64chO 64ch 1 32-bit O 64ch 1 32-bit 64chO O64ch64chO 64ch 1 32-bit 64chO 64ch
6、1 32-bitO O P OO O P OO O P OxBUSOOO1 16-bit 1 32-bit OOO 1 32-bit OOO 1 32-bit OOO 1 32-bit OOO1 16-bit OOO1 16-bit OOO1 16-bit OOO1 16-bit 1 32/16-bit OO1 32/16-bit OOOOO1 32/16-bit OOO1 32/16-bit OOO1 32/16-bit OOO1 32/16-bit O1 32/16-bit O O2 8-bit 10/1002 8-bit 10/100 1 16-bit3 20-bit10/100 1 3
7、2/16-bit O2 20-bit10/100 1 32/16-bit O10/100/10001 32/16-bit OOOO OOOO OOOO OVCPOO O OO O(c) 其它集成外設IC型號O OOOC6201 2 2C6202B 2 2 OOOC6203B O 3 22 C6204 22 O OOC6205 22 OOC6211B O 22 O OOC6701 22 O OOC6711 22 O OOC6712 2O OOC6713 2 2 2 C6410 33 O OOC6411 2C6412 2 1 3 O OC6413 3 C6414 3 3OOO3 3 OOO3 3O
8、 C6418 OO DM640O DM641O DM642O DM643O C6722C6726O C6727 OOOOOOOOO2 64-bitOTCP2O O O OVCP25.2 片內存儲器5.2.1 簡介C6000系列DSP片內集成了大容量存儲器,存儲器的容量和結構隨芯片不同而有所差別。 對于C620x/C670x,片內存儲器分為程序區(qū)間和數(shù)據(jù)區(qū)間兩部分,其中程序區(qū)間可以作為普通SRAM映射到存儲空間,也可以作為高速緩存。對于C621x/C671x/C64x,片內采用二級存儲器結構。第1級存儲器包括相互獨立的程序緩存(L1P)和數(shù)據(jù)緩存(L1D),只能作為高速緩存被CPU訪問。第2級存
9、儲器(L2)是一個統(tǒng)一的程序/數(shù)據(jù)空間,可以整體作為SRAM映射到存儲空間,也可以整體作為第2級緩存,或者按比例組合。5.2.2 C620x/C670x片內程序存儲器5.2.2.1 程序存儲器控制器C620x/C670x對片內程序存儲器的訪問需要通過程序存儲器控制器(Program Memory Controller, PMC)完成。PMC的任務包括:(1)對CPU或DMA提交的訪問片內程序存儲器的請求進行仲裁。 (2)對CPU提交的通過EMIF訪問外部存儲器的申請進行處理。 (3)當片內程序存儲器設置為高速緩存時對其進行維護。 5.2.2.2 程序存儲器的結構C6201/C6204/C620
10、5/C6701的片內程序存儲器容量為64kB,可容納2k個取指包(16k條指令)。CPU通過PMC和256位數(shù)據(jù)通路,可以對片內程序存儲器進行單周期訪問。C6202(B)/C6203(B)的片內程序存儲器除了在容量上進行了擴展,還將片內程序存儲器分為2個存儲塊(block),其中一塊可以作為映射存儲器或高速緩存,另一塊則只能作為映射存儲器。2個存儲塊可以獨立存取,允許對一個存儲塊進行取指的同時對另一個存儲塊進行DMA訪問。參見圖5-1和表5-2。表5-2 C620x/C670x的片內存儲器 Device Total MemoryC6201 128 kBC6202(B) 384 kBC6203(
11、B) 896 kBC6204C6205C6701 128 kB 128 kB 128 kB Program Memory64 kB (map/cache) 128 kB (map) 128 kB (map/cache)256 kB (map) 128 kB (map/cache)64 kB (map/cache) 64 kB (map/cache) 64 kB (map/cache) Data Memory 64 kB (map) 128 kB (map) 512 kB (map) 64 kB (map) 64 kB (map) 64 kB (map)(a) C6201/C6204/C6205
12、/C6701(b) C6202(B)/C6203(B)圖5-1 程序存儲器控制器(PMC)5.2.2.3 程序存儲器的模式片內程序存儲器有4種工作模式,通過CSR中的PCC字段來設置,見表5-3。表5-3 片內程序存儲器模式 Mode000 Mapped010 Cache enabled011 Cache freeze100 Cache bypassDescription Cache disabled (default state at reset) Reserved Cache accessed and updated on reads Cache accessed but not upda
13、ted on reads Cache not accessed or updated on readsReserved(1)存儲器映射(mapped):片內存儲器映射在DSP的地址空間中。在映射模式下,CPU訪問該范圍地址將返回相應地址中的取指包。CPU不能通過數(shù)據(jù)存儲器控制器(DMC)來訪問程序存儲器。用戶可以選擇不同的映射方式來決定片內程序存儲器不同的起始地址(map0、map1)。(2)緩存使能(cache enabled):作為高速緩存使用。在這一模式下,一開始對任何地址的程序取指都被視為緩存缺失。發(fā)生缺失時,首先通過EMIF讀入取指包,取指包在送入CPU的同時存入片內緩存。讀入取指包
14、的過程中,CPU掛起,其等待時間由外部存儲器的類型、外部存儲器的狀態(tài)、EMIF的狀態(tài)等決定。如果取指包已經在緩存中,訪問時緩存命中,取指包由緩存立即送入CPU。從存儲器映射模式轉為緩存使能模式時會清洗緩存,這也是清洗緩存的唯一方法。(3)緩存凍結(cache freeze):在這一模式下,將保持緩存當前狀態(tài)不變。發(fā)生緩存缺失時,從EMIF讀入的指令不會被同時寫入緩存。(4)緩存旁路(cache bypass):所有指令都從外部存儲器讀取,緩存保持當前狀態(tài)不變。 對C6201/C6204/C6205/C6701,整個片內程序存儲器都可以設置為上述4種模式;對C6202/C6203,Block 0
15、只能工作在存儲器映射模式下,Block 1可以工作在4種模式下。在存儲器映射模式下的地址見表5-4。表5-4 片內程序存儲器地址 Device BlockC6201 -Block 1Block 1C6204 -C6205 -C6701 - Map 0 0140 0000h 0140 FFFFh 0140 0000h 0141 FFFFh 0142 0000h 0143 FFFFh 0140 0000h 0143 FFFFh 0144 0000h 0145 FFFFh 0140 0000h 0140 FFFFh 0140 0000h 0140 FFFFh 0140 0000h 0140 FFFF
16、h Map 1 0000 0000h 0000 FFFFh 0000 0000h 0001 FFFFh 0002 0000h 0003 FFFFh 0000 0000h 0003 FFFFh 0004 0000h 0005 FFFFh 0000 0000h 0000 FFFFh 0000 0000h 0000 FFFFh 0000 0000h 0000 FFFFh在存儲器映射模式下,CPU和DMA可以訪問程序存儲器的任何地址,超出地址映射范圍的取指操作將轉發(fā)給EMIF。在其他模式下,CPU或DMA對該地址范圍的訪問將返回未定義的數(shù)據(jù)。注意:用戶在改變PCC值,對程序存儲器的工作模式進行切換時必
17、須禁止一切中斷。5.2.2.4 高速緩存的結構C620x/C670x的緩存為直接映射式(direct mapped)結構。緩存的行(line)容量為256 bit,可容納8條指令。緩存中的每一行對應一個取指包,直接映射為外部存儲器中某個地址的內容。5.2.2.5 對程序存儲器的存取C6000芯片復位后,程序存儲器默認設置為存儲器映射模式,以便通過DMA控制器向片內程序存儲器加載代碼。在存儲器映射模式下,允許DMA控制寄存器對其進行32 bit的讀寫。此時CPU的優(yōu)先級始終高于DMA控制器。每次DMA訪問之后,CPU會插入一個等待狀態(tài),以避免由于仲裁造成新的訪問申請被丟失。因此DMA的最高效率是
18、每2周期完成一次存取。在緩存狀態(tài)下,DMA的寫操作被PMC忽略,讀操作將返回一個無效的數(shù)。注意:對C6202(B)/C6203(B),DMA的一次數(shù)據(jù)傳輸不能跨越Block 0和Block 1的邊界。5.2.3 C620x/C670x的片內數(shù)據(jù)存儲器5.2.3.1 數(shù)據(jù)存儲器控制器(DMC)C620x/C670x的數(shù)據(jù)存儲器控制器(Data Memory Controller, DMC)負責處理CPU和DMA控制器對片內數(shù)據(jù)存儲器的訪問申請,其作用是:(1)對CPU或DMA控制器訪問片內數(shù)據(jù)存儲器的請求進行仲裁。(2)對CPU訪問EMIF的請求進行處理。(3)協(xié)助CPU通過外設總線控制器訪問片
19、內集成外設。CPU通過2條地址總線(DA1和DA2)向DMC提交數(shù)據(jù)訪問申請,數(shù)據(jù)寫通過存儲總線(ST1和ST2),數(shù)據(jù)讀取通過讀取總線(LD1和LD2),參見圖5-2。(a) C6201/C6204/C6205(b) C6701(c) C6202(B)(d) C6203(B)圖5-2 數(shù)據(jù)存儲器控制器(DMC)5.2.3.2 片內數(shù)據(jù)存儲器的組織結構1. C6201/C6204/C6205片內數(shù)據(jù)存儲器容量為64kB,分為2個32kB的塊(block 0/1),地址為8000 0000h 8000 7FFFh和8000 8000h 8000 FFFFh。每個塊又分為4個4k ´ 1
20、6 bit的存儲體(bank)。每個存儲體由獨立的數(shù)據(jù)總線與DMC相連。可以對不同存儲塊或者不同存儲體中的數(shù)據(jù)同時進行訪問而不會產生沖突。參見表5-5a和圖5-2a。2. C6701C6701片內數(shù)據(jù)存儲器的容量也是64kB,分為兩塊,地址為8000 0000h 8000 7FFFh和8000 8000h 8000 FFFFh。每一塊又分為8個2k ´ 16 bit的存儲體,數(shù)據(jù)吞吐率最高可以達到每周期同時完成2個64 bit的CPU訪問和1個32 bit的DMA訪問。參見表5-5b和圖5-2b。3. C6202(B)C6202(B)片內數(shù)據(jù)存儲器的容量增加到128kB,組織結構與C
21、6201/C6204/C6025相同,地址為8000 0000h 8000 FFFFh和8001 0000h 8001 FFFFh。4. C6203(B)C6203(B)片內數(shù)據(jù)存儲器的容量進一步增加到512kB,組織結構與C6201/C6204/C6025相同,地址為8000 0000h 8003 FFFFh和8004 0000h 8007 FFFFh。表5-5 片內數(shù)據(jù)存儲器組織 (a) C6201/C6204/C6205首地址 Block 0Bank 0 Bank 180000003 8000000B. . . 80007FF380007FFBBank 280000004 8000000
22、C. . . 80007FF480007FFC80000005 8000000D. . . 80007FF580007FFDBank 380000006 80000007 8000000E 8000000F. . . . . . 80007FF6 80007FF7尾地址 Block 080000000 80000001 80000002 80000008 80000009 8000000A. . . . . . . 80007FF0 80007FF1 80007FF2 80007FFA首地址 Block 1Bank 0 Bank 180008003 8000800B. . . 8000FFF3
23、8000FFFBBank 280008004 8000800C. . . 8000FFF48000FFFC80008005 8000800D. . . 8000FFF58000FFFDBank 380008006 80008007 8000800E 8000800F. . . . . . 8000FFF6 8000FFF7尾地址 Block 180008000 80008001 8000800280008009 8000800A80008008. . . . . . . . . 8000FFF0 8000FFF1 8000FFF2 8000FFFA(b) C6701首地址 Block 0 尾地
24、址 Block 0Bank 0 Bank 1 Bank 280007FF480007FF5Bank 380007FF3首地址 Block 0 尾地址 Block 0Bank 4 Bank 58000000B80007FFBBank 68000000C80007FFC8000000D80007FFDBank 78000000A80007FFABank 0 Bank 1Bank 2 Bank 3首地址Block 1尾地址Block 1 8000FFF38000FFF48000FFF5首地址Block 1尾地址Block 1 Bank 4 Bank 5 8000800B8000FFFBBank 6
25、8000800C8000FFFC8000800D8000FFFDBank 7 8000800A8000FFFA5.2.3.3 對片內數(shù)據(jù)存儲器的訪問1. 數(shù)據(jù)訪問的格式控制CPU和DMA可以對數(shù)據(jù)存儲器進行8/16/32 bit的數(shù)據(jù)訪問,C6000對不同字長數(shù)據(jù)的訪問有以下限制:l 雙字,雙字型數(shù)據(jù)必須位于偶數(shù)個8字節(jié)的邊界(即地址低3位為0)。l 字,字型數(shù)據(jù)占據(jù)2個相鄰的存儲體,位于偶數(shù)個4字節(jié)的邊界(地址低2位為0)。 l 半字,半字型數(shù)據(jù)占據(jù)1個存儲體,位于偶數(shù)個2字節(jié)的邊界(地址最低位為0)。 l 字節(jié),對字節(jié)數(shù)據(jù)的訪問沒有任何限制。在支持字節(jié)尋址的微處理器中,通常有兩種數(shù)據(jù)排列方
26、式:小端終結(little endian)和大端終結(big endian)。C6000的CPU和DMA支持這兩種終結模式,上述訪問限制對兩種終結模式同樣有效。2. CPU的雙存?。╠ual access)DMC以16 bit的存儲體為單位,對訪問片內數(shù)據(jù)存儲器的申請進行仲裁和控制。前面已經介紹過,對片內數(shù)據(jù)存儲器的多個訪問,只要他們要求存取的數(shù)據(jù)處在不同的存儲體或塊中,就可以同時進行。因此,只要數(shù)據(jù)滿足上述條件,CPU可以在1個周期內同時對片內存儲器進行2次存取而無需插入等待,稱為雙存?。╠ual access)。如果要求同時存取的2個數(shù)據(jù)處在片內數(shù)據(jù)存儲器的同一個存儲體中,那么會阻塞流水線
27、,此時需要2個周期才能完成。進行字節(jié)訪問時,包含該字節(jié)的整個16 bit都不允許同時被另一個存取訪問。在同一個執(zhí)行包中的load/store指令被同時提交給DMC。如果在同一個CPU周期的load/store指令要訪問同一個存儲體,DMC會將CPU阻塞1個周期。此時,load指令總是優(yōu)先于store指令執(zhí)行。如果兩條指令都是store,則DA1執(zhí)行的指令優(yōu)先于DA2執(zhí)行的指令。3. DMA訪問DMA控制器可以和CPU同時訪問片內數(shù)據(jù)存儲器。如果兩者訪問同一個存儲體,則會產生沖突,此時由設置的DMA/CPU優(yōu)先級決定訪問次序。5.2.4 C621x/C671x/C64x的片內二級存儲器C621x
28、/C671x/C64x片內存儲器采用二級高速緩存結構,程序和數(shù)據(jù)擁有各自的高速緩存。片內第1級程序緩存為L1P,第1級數(shù)據(jù)緩存為L1D,程序和數(shù)據(jù)共享的片內第2級緩存為L2。參見圖5-3。圖5-3 C621x/C671x/C64x片內2級緩存結構L2可以做為高速緩存;也可以映射為存儲器;或者部分用做緩存,部分用做存儲器。C6000復位后,L2映射為存儲器,起始地址為0。5.3 外部存儲器接口C6000訪問片外存儲器時必須通過外部存儲器接口(extern memory interface,EMIF)。EMIF不但具有很高的數(shù)據(jù)吞吐率(最高達1200 MB/s),而且可以與目前幾乎所有類型的存儲器
29、直接接口。C620x/C670x的EMIF處理的外總線請求包括:l 片內PMC發(fā)出的CPU程序取指請求l 片內DMC發(fā)出的CPU數(shù)據(jù)存取請求l 片內DMA控制器l 外部共享存儲空間的設備C621x/C671x的EMIF處理的外總線請求包括:l 片內EDMA控制器l 外部共享存儲器的設備C64x有2個獨立的EMIF:EMIFA、EMIFB。EMIFA提供64 bit寬度的外總線數(shù)據(jù)接口,EMIFB提供16 bit寬度的外總線數(shù)據(jù)接口。5.4 直接存儲器訪問(DMA)5.4.1 概述直接存儲器訪問(direct memory access,DMA)是一種重要的數(shù)據(jù)訪問方式,它可以在沒有CPU參與的
30、情況下,由DMA控制器完成存儲空間中的數(shù)據(jù)搬移。數(shù)據(jù)搬移可以在片內存儲器、片內外設或者是外部器件之間,并且在CPU后臺進行。C6000的DMA控制器有4個相互獨立的傳輸通道。另外,還有1個輔助通道專門用于主機口的數(shù)據(jù)傳輸。DMA控制器的主要特點包括:(1)后臺操作,DMA控制器可以獨立于CPU工作。(2)高吞吐率,可以按CPU時鐘的速度進行數(shù)據(jù)吞吐。(3)多通道,有4個獨立的通道和1個輔助通道(主機口通過輔助通道訪問CPU的內存空間,輔助通道與其他通道間的優(yōu)先級可以設置)。(4)單通道分割操作,利用單個通道可以與一個外設間同時進行數(shù)據(jù)讀出和寫入,就好象存在2個通道一樣。(5)多幀傳輸,傳送的數(shù)
31、據(jù)塊可以分為多個數(shù)據(jù)幀。(6)優(yōu)先級可編程,每一個通道對于CPU的優(yōu)先級可以編程設置。(7)地址產生方式可編程,每個通道的源地址寄存器和目的地址寄存器在每次讀寫操作時都可以調整。地址可以是常量、遞增、遞減或地址索引值。(8)32位地址,DMA控制器可以訪問任何一個地址映射區(qū),包括:片內數(shù)據(jù)存儲器、片內程序存儲器、片內集成外設、通過EMIF接口的外部存儲器、擴展總線上的擴展存儲器。(9)傳送數(shù)據(jù)的字長可編程,每個通道可獨立選擇寬度為字節(jié)、半字(16bit)或字(32bit)。(10)自動初始化,每傳送完一批數(shù)據(jù),DMA通道會自動為下一批數(shù)據(jù)的傳送做好準備。(11)事件同步,讀、寫和幀操作都可以由
32、指定的事件觸發(fā)。(12)中斷反饋,一幀或一塊數(shù)據(jù)傳送完畢,或出現(xiàn)錯誤時,每個通道都可以向CPU發(fā)出中斷。下面是有關C6000的DMA傳輸?shù)膸讉€概念:l 數(shù)據(jù)的讀傳輸(read transfer):DMA控制器從源地址中讀出數(shù)據(jù)。l 數(shù)據(jù)的寫傳輸(write transfer):DMA控制器將讀出的數(shù)據(jù)寫入目的地址。 l 數(shù)據(jù)單元傳輸(element transfer):數(shù)據(jù)的讀傳輸和寫傳輸?shù)慕Y合。l 幀傳輸(frame transfer):傳輸一定數(shù)量的數(shù)據(jù)單元構成一個傳輸幀,幀的大小可編程設置。l 塊傳輸(block transfer):若干幀的傳輸構成一個塊傳輸,每個通道獨立定義每塊中幀的
33、數(shù)量。l 發(fā)送數(shù)據(jù)單元的傳輸(transmit element transfer):在通道分割模式下,數(shù)據(jù)單元從源地址讀出并寫入分割目的地址。l 接收數(shù)據(jù)單元的傳輸(receive element transfer):在通道分割模式下,數(shù)據(jù)單元從分割源地址讀出并寫入目的地址。5.4.2 DMA的初始化和啟動5.4.2.1 控制寄存器每個DMA通道都有一套相關的寄存器完成傳輸控制,在啟動DMA之前,必須對他們進行初始化。DMA控制寄存器參見表5-6、表5-7及圖5-4到圖5-9。表5-6 DMA控制寄存器 寄存器名DMA輔助控制DMA通道0目的地址DMA通道0主控DMA通道0副控DMA通道0源地
34、址DMA通道0傳輸計數(shù)DMA通道1目的地址DMA通道1主控DMA通道1副控DMA通道1源地址DMA通道1傳輸計數(shù)DMA通道2目的地址 縮寫 地址 0070h 0018h 0000h 0008h 0010h 0020h 0058h 0040h 0048h 0050h 0060h 001ChDMA通道2主控DMA通道2副控DMA通道2源地址DMA通道2傳輸計數(shù)DMA通道3目的地址DMA通道3主控DMA通道3副控DMA通道3源地址DMA通道3傳輸計數(shù)DMA全局地址寄存器ADMA全局地址寄存器BDMA全局地址寄存器CDMA全局地址寄存器DDMA全局計數(shù)重裝載寄存器ADMA全局計數(shù)重裝載寄存器BDMA全
35、局索引寄存器ADMA全局索引寄存器B 0004h 000Ch 0014h 0024h 005Ch0044h 004Ch 0054h 0064h 0038h 003Ch 0068h 006Ch 0028h 002Ch 0030h 0034h圖5-4 DMA輔助控制寄存器圖5-5 DMA通道主控寄存器表5-7 DMA通道主控寄存器symvalDEFAULTNONEBCD Value 0 1h 2h 3h Description Destination address reload for autoinitialization bits. Do not reload during autoiniti
36、alization. Use DMA global address register B as reload. Use DMA global address register C as reload. Use DMA global address register D as reload.DEFAULTNONEBCDDEFAULTNOHALTHALTDEFAULTDISABLERSYNCDEFAULTDISABLEENABLEDEFAULTCPUDMA18-14 RSYNCDEFAULTABDEFAULTABDEFAULTDISABLEABCDEFAULT32BIT16BIT8BIT-0 1h
37、 2h 3h 0 1 0 1 0 1 0 1 0-1Fh0-1Fh 0 1 0 1 0 1h 2h 3h 0 1 2 3h Source address reload for autoinitialization bits. Do not reload during autoinitialization. Use DMA global address register B as reload. Use DMA global address register C as reload. Use DMA global address register D as reload. Emulation m
38、ode bit. DMA channel keeps running during an emulation halt. DMA channel pauses during an emulation halt. Frame synchronization bit. Disable RSYNC event used to synchronize entire frame. Transfer controller interrupt enable bit. Interrupt is disabled. Interrupt is enabled. Priority mode bit. CPU pri
39、ority DMA priority Write transfer synchronization bits. Read synchronization bits. Selects the DMA global data register to use as a programmable index. Uses DMA global index register A. Uses DMA global index register B. Transfer counter reload for autoinitialization and multiframe transfers. Reload
40、with DMA global count reload register A. Reload with DMA global count reload register B.Split-channel mode enable bits. Split-channel mode is disabled. Split-channel mode is enabled; use DMA global address register A as split address. Split-channel mode is enabled; use DMA global address register B
41、as split address. Split-channel mode is enabled; use DMA global address register C as split address. Element size bits. 32 bit 16 bit 8 bit Reserved Destination address modification after elementDEFAULTNONEINCDECIDXDEFAULTNONEINCDECIDXDEFAULTSTOPPEDRUNNINGPAUSEDAUTORUNNINGDEFAULTSTOPNORMALPAUSEAUTOI
42、NIT 0 1h 2h3h0 1h 2h 3h 0 1h 2h 3h 0 1h 2h 3h transfers.No modification.Increment by element size in bytes.Decrement by element size in bytes. Adjust using DMA global index register selected by INDEX bit. Source address modification after element transfers. No modification. Increment by element size
43、 in bytes. Decrement by element size in bytes. Adjust using DMA global index register selected by INDEX bit. DMA channel status bit. Stopped Running without autoinitialization Paused Running with autoinitialization DMA channel operation mode bit. Stop Start without autoinitialization Pause Start wit
44、h autoinitialization圖5-6 DMA通道副控寄存器圖5-7 DMA通道傳輸計數(shù)寄存器圖5-8 DMA全局計數(shù)重載寄存器圖5-9 DMA全局索引寄存器5.4.2.2 DMA的啟動啟動DMA通道必須按照以下步驟設置有關控制寄存器:(1)置DMA通道主控制寄存器(PRICTL)的START = 00b。(2)設置DMA通道副控制寄存器(SECCTL)。(3)設置DMA通道源地址寄存器、目的地址寄存器、傳輸計數(shù)寄存器。(3)向PRICTL的START字段寫入01b或11b,啟動傳輸。每個DMA通道都可以獨立啟動、暫停和停止。啟動可以在程序中由CPU完成,也可以自動初始化啟動。PRI
45、CTL的STATUS字段表示相應DMA通道的當前狀態(tài)。1. 手工啟動向PRICTL的START字段寫入01b將立即啟動該通道。啟動后,STATUS字段變成01b。2. 暫停操作DMA執(zhí)行期間,向START字段寫10b可以暫停DMA。如果某個數(shù)據(jù)單元傳輸?shù)淖x傳輸過程已經完成,此時DMA通道會繼續(xù)完成對應的寫傳輸。STATUS字段在暫停后變?yōu)?0b。3. 停止操作向START字段寫入00b,DMA被停止。停止操作和暫停操作類似。除非DMA工作在自動初始化模式下,否則DMA一完成數(shù)據(jù)傳輸,通道便進入停止狀態(tài)。STATUS字段在停止后變?yōu)?0b。4. 自動初始化向START寫入11b將以自動初始化方式
46、啟動DMA。完成一次塊傳送后,DMA控制器自動調用DMA全局數(shù)據(jù)寄存器的值重新設置有關傳輸參數(shù),為下一次塊傳送做準備。自動初始化可以使DMA進行連續(xù)操作和重復操作。l 連續(xù)操作,通常CPU需要在一次傳送完成后重新初始化DMA。利用重載寄存器,可以在傳送開始后的任何時間初始化下一次傳送所需的參數(shù)。l 重復操作,連續(xù)操作的一個特例。傳送完一塊后,DMA控制器重復前一次相同的塊傳輸。在這種情況下,CPU只需要在開始傳輸前設置一次重載寄存器的值。一般來說,使用自動初始化時相鄰兩次數(shù)據(jù)傳輸?shù)膮?shù)總是比較接近的。因此,只需要對被改變的寄存器進行重載(主要是傳輸計數(shù)寄存器和地址寄存器)。重載可以利用相應的重
47、載寄存器來完成。在自動初始化模式下,如果DMA傳輸?shù)刂饭潭ǎ梢栽O定不重載地址寄存器,從而節(jié)省一個DMA全局寄存器。5.4.3 DMA的傳輸控制5.4.3.1 DMA傳輸計數(shù)DMA的通道傳輸計數(shù)寄存器包含兩個控制字段FRMCNT和ELECNT,分別負責當前傳輸?shù)膸嫈?shù)和每幀的數(shù)據(jù)單元計數(shù),參見圖5-7。DMA全局計數(shù)重載寄存器結構與傳輸計數(shù)寄存器的結構相同,負責對計數(shù)寄存器進行重載,參見圖5-8。l FRMCNT,記錄當前傳輸數(shù)據(jù)塊的幀數(shù),每塊最多65535幀。當一幀的最后一個讀傳輸完成后,該值遞減。最后一幀傳輸完成后,整個計數(shù)器由DMA全局計數(shù)重載寄存器(由PRICTL的CNT RELOAD
48、字段指定)重載。FRAME COUNT的最小值為1,如果置0,將當做1處理。l ELECNT,記錄每幀傳輸?shù)臄?shù)據(jù)單元個數(shù),每幀最多65535個數(shù)據(jù)單元。每次數(shù)據(jù)單元的讀傳輸完成后,該值遞減。最后一個數(shù)據(jù)單元傳輸完成后,該字段被DMA全局計數(shù)重載寄存器(由PRICTL的CNT RELOAD字段指定)的低16位重載。如果值為0,操作無效。5.4.3.2 DMA傳輸?shù)耐娇刂仆ㄟ^同步機制,用戶可以利用某些事件來觸發(fā)DMA傳輸過程。每個通道有3種同步方式: l 讀同步,每次傳輸都等待選定的事件發(fā)生后再進行。l 寫同步,每次寫傳輸都等待選定的事件發(fā)生后再進行。l 幀同步,每幀的傳輸都等待選定的事件發(fā)生后
49、再進行。同步事件的選擇由PRICTL的RSYNC和WSYNC兩個字段控制。如果PRICTL的FS = 1,那么RSYNC選定的事件作為整個幀的同步事件,此時WSYNC必須為00000b。如果DMA通道設置為分割模式,那么RSYNC和WSYNC必須為非0值。DMA同步事件參見表5-8。SECCTL的STAT和CLR字段也與同步事件控制有關。同步事件觸發(fā)后,對應的STAT字段置位;觸發(fā)事件的相關操作完成后,STAT位自動清除。用戶可以分別向STAT和CLR寫1,手工設置或清除事件的發(fā)生狀態(tài)。表5-8 DMA同步事件 Event Number Event AcronymEvent Descripti
50、onsynchronization00001 TINT0 Timer 0 interruptTimer 1interrupt00011 SD_INT EMIF SDRAM timer interrupt00100 EXT_INT4 External interrupt pin 400101 EXT_INT5 External interrupt pin 500110 EXT_INT6 External interrupt pin 600111 EXT_INT7 External interrupt pin 701000 DMA_INT0 DMA channel 0 interrupt01001
51、 DMA_INT1 DMA channel 1 interrupt01010 DMA_INT2 DMA channel 2 interrupt01011 DMA_INT3 DMA channel 3 interrupt01100 XEVT0 McBSP 0 transmit event01101 REVT0 McBSP 0 receive event01110 XEVT1 McBSP 1 transmit event01111 REVT1 McBSP 1 receive event10000 DSPINT Host processer to DSP interrupt10001 XEVT2 M
52、cBSP 2 transmit event10010 REVT2 McBSP 2 receive event5.4.3.3 地址生成DMA控制器提供多種地址生成方式,可以支持多種數(shù)據(jù)結構的傳輸。DMA通道的源地址寄存器和目的地址寄存器分別存放下次讀傳輸和寫傳輸?shù)牟僮鞯刂贰T谟嬎銈鬏數(shù)刂窌r,有基本調整和索引值調整兩種調整方式?;菊{整通過PRICTL的控制字段SRCDIR和DSTDIR來設置傳輸?shù)刂钒磾?shù)據(jù)字長大小遞增、遞減或者保持不變;索引值調整用全局索引寄存器的值修改地址。PRICTL的INDEX字段選擇DMA通道使用的全局索引寄存器。在索引值調整模式下,根據(jù)傳輸?shù)臄?shù)據(jù)元素是否是當前幀的最后一
53、個來進行不同的地址調整。全局索引寄存器的低16位(ELEIDX)存放普通調整值,高16位(FRMIDX)存放幀尾調整值,這兩個值都是16位有符號數(shù),參見圖5-9?!纠?.4.4 通道的分割操作利用通道分割操作可以用一個DMA通道為一個具有固定地址的外設(片內或片外)同時提供輸入和輸出數(shù)據(jù)流。5.4.4.1 DMA分割操作分割通道操作分為發(fā)送數(shù)據(jù)單元傳輸和接收數(shù)據(jù)單元傳輸,每種傳輸都包括一次讀操作和一次寫操作,兩者依次執(zhí)行。為了完成數(shù)據(jù)流的雙向傳輸,需要利用全局地址寄存器提供第二套源/目的地址,稱為分割源地址/分割目的地址。1. 發(fā)送數(shù)據(jù)單元的傳輸l 發(fā)送讀傳輸,從源地址讀出數(shù)據(jù),然后按參數(shù)調
54、整源地址,傳輸計數(shù)加1。此事件沒有同步。l 發(fā)送寫傳輸,由發(fā)送讀傳輸?shù)玫降臄?shù)據(jù)寫入分割目的地址。此過程具有WSYNC字段指定的事件同步關系。2. 接收數(shù)據(jù)單元的傳輸l 接收讀傳輸,從分割源地址讀出數(shù)據(jù),此過程具有RSYNC字段指定的事件同步關系。 l 接收寫傳輸,由接收讀傳輸?shù)玫降臄?shù)據(jù)寫入目的地址,然后按參數(shù)調整目的地址。此事件沒有同步。由于每個通道只有一個傳輸計數(shù)器,因此收/發(fā)的幀數(shù)以及每幀的數(shù)據(jù)單元個數(shù)必須相同。為了讓分割通道正常操作,RSYNC和WSYNC必須設為非0值,同時禁止幀同步方式。注意,發(fā)送數(shù)據(jù)單元傳輸不一定必須等到前一次的接收數(shù)據(jù)單元傳輸完成之后才進行。5.4.4.2 分割地
55、址產生PRICTL的SPLIT字段選擇相應的DMA全局地址寄存器作為分割地址。l 分割源地址,C6000輸入數(shù)據(jù)流的地址,保存在選定的DMA全局地址寄存器里。 l 分割目的地址,C6000輸出數(shù)據(jù)流的地址,比分割源地址大1個字。分割地址寄存器的最低3位固定為0,以保證分割源地址始終在偶數(shù)個字的邊界上,分割目的地址在奇數(shù)個字的邊界上。對于外部設備,用戶在設計地址時必須符合這個規(guī)定。5.4.5 資源仲裁和優(yōu)先級設置DMA訪問可能會與CPU訪問產生沖突。用戶可以進行優(yōu)先級設置:l DMA與CPU之間的優(yōu)先級,PRICTL的PRI字段決定DMA通道和CPU之間的優(yōu)先級,AUXCTL的AUXPRI字段決
56、定輔助通道和CPU之間的優(yōu)先級。l DMA通道之間的優(yōu)先級,4個通道的優(yōu)先級是固定的,通道0最高,通道3最低。輔助通道的優(yōu)先級可以通過AUXCTL的CHPRI字段任意設置。分割通道模式下發(fā)送部分的優(yōu)先級高于接收部分。如果同時有多個通道以及CPU請求訪問同一資源,首先進行DMA通道間的仲裁,然后再比較優(yōu)先級最高的DMA通道和CPU之間的優(yōu)先級。優(yōu)先級高的通道一旦接收到必需的讀同步事件后,就會從優(yōu)先級較低的通道處取回DMA的控制權,這種情況稱為通道切換。進行通道切換時,當前通道已進行的所有讀操作將會繼續(xù)完成。DMA控制器決定由哪一個通道獲得控制權,這個通道開始讀傳輸。在新的通道開始它的傳輸前,必須先完成之前通道的寫傳輸。5.4.6 DMA通道的狀態(tài)可以通過SECCTL的若干CO
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 河北工業(yè)職業(yè)技術大學《數(shù)據(jù)結構實驗》2023-2024學年第二學期期末試卷
- Unit 7 Outdoor fun Pronunciation 教學設計-2024-2025學年譯林版英語七年級下冊
- 廣東水利電力職業(yè)技術學院《建筑力學與結構選型》2023-2024學年第二學期期末試卷
- 湖北財稅職業(yè)學院《智慧物流技術與裝備》2023-2024學年第二學期期末試卷
- 黔南民族幼兒師范高等專科學?!峨娐穼嶒灐?023-2024學年第二學期期末試卷
- 內蒙古民族幼兒師范高等??茖W?!端姽こ淌┕ぁ?023-2024學年第二學期期末試卷
- 濟南2025年山東濟南市歷城區(qū)所屬事業(yè)單位招聘初級綜合類崗位50人筆試歷年參考題庫附帶答案詳解-1
- 焦作工貿職業(yè)學院《無人機行業(yè)應用》2023-2024學年第二學期期末試卷
- 海南經貿職業(yè)技術學院《化學教學設計研究》2023-2024學年第二學期期末試卷
- 廣州城市職業(yè)學院《服裝紙樣設計基礎》2023-2024學年第二學期期末試卷
- 白城2025年吉林大安市事業(yè)單位面向上半年應征入伍高校畢業(yè)生招聘5人筆試歷年參考題庫附帶答案詳解
- 2025年市婦聯(lián)執(zhí)委會議上的工作報告
- 安全生產事故調查與案例分析(第3版)課件 呂淑然 第5、6章 事故案例評析、相關法律法規(guī)
- 2024-2025學年人教版數(shù)學六年級下冊第二單元百分數(shù)(二)(含答案)
- 2024年湖南鐵路科技職業(yè)技術學院高職單招語文歷年參考題庫含答案解析
- 祖沖之的平生與貢獻
- 2025年版護理法律法規(guī)
- 房屋市政工程生產安全重大事故隱患排查表(2024版)
- 統(tǒng)編版(2024新版)七年級下冊道德與法治期末復習背誦知識點提綱
- 口服降糖藥物分類詳解
- 健康體檢報告解讀頁課件
評論
0/150
提交評論