TMS320C55x DSP芯片结构和CPU外围电路

打印 上一主题 下一主题

主题 791|帖子 791|积分 2373

第2章 DSP芯片结构和CPU外围电路


  
TMS320C55x处置惩罚器的特点

特性优点一个 32 位 ×16 指令缓冲队列缓冲变长指令并完成有效的块重复操纵两个 17 位 ×17 位的乘法累加器在一个单周期执行双乘法累加操纵一个 40 位算术逻辑单元 (ALU)实现高精度算术和逻辑操纵一个 40 位桶形移位寄存器能够将一个 40 位的计算结果最高左移 31 位或向右移 32 位1 个 16 位算术逻辑单元 (ALU)对主 ALU 并行完成简单的算术操纵4 个 40 位的累加器保留计算结果,减少对存储单元的访问12 条独立总线,此中包罗: 3 条读数据总线 2 条写数据总线 5 条数据地址总线 1 条读步伐总线 1 条步伐地址总线为各种计算单元并行提供将要处置惩罚的指令和操纵数 —— 使用 C55x 的并行机制的优点用户可设置 IDLE 域改进了低功耗电源管理的机动性 TMS320c55x CPU单元

TMS320C55x DSP CPU Reference Guide (Rev. F) (ti.com.cn)
如图所示, C55x有1条32位的步伐数据总线(PB), 5条16位数据总线(BB、CB、 DB、 EB、 FB)和1条24位的步伐地址总线及5条23位的数据地址总线, 这些总线分别与CPU相连。
总线通过存储器接口单元(M)与外部步伐总线和数据总线相连, 实现CPU对外部存储器的访问。这种并行的多总线结构, 使CPU能在1个CPU周期内完成1次 32位步伐代码读、 3次 16位数据读和2次 16位数据写。
C55x根据功能的不同将CPU分为 4 个单元, 即指令缓冲单元 (I)、 步伐流程单元 §、 地址流程单元 (A) 和数据计算单元 (D)。
指令缓冲(Instruction Buffer Unit) I单元

如图所示, C55x的指令缓冲单元(I)由指令缓冲队列IBQ(Instruction Buffer Queue)和指令译码器构成。 在每个 CPU周期内, (I)单元将从步伐读数据总线接收的 4 B 步伐代码放入指令缓冲队列, 指令译码器从队列中取 6 B 步伐代码, 根据指令的长度可对8位、16位、24位、32位和48位的变长指令进行译码, 然后把译码数据送入 P单元、 A单元和D单元去执行。
步伐流程(Program Flow Unit) P单元

如图所示, 步伐流程单元( P)由步伐地址产生电路和寄存器组构成。主要功能产生所有(I)单元读取指令所需的24比特步伐地址、控制指令读取顺序。
一样寻常情况下,产生的都是(一连)顺序地址。在碰到指令要求读取非一连地址步伐代码时,也可以根据来自(I)单元的立即数和(D)单元的寄存器值产生所需的地址,并将产生地址送到PAB。

在步伐流程单元中,控制和影响步伐地址的寄存器有5类:
1)步伐流程寄存器,包罗C—步伐计数器,RETA—返回地址寄存器,CFCT—控制流程关系寄存器;
2)块重复寄存器,包罗:BRC0、BRC1—块重复寄存器0和1、RSA0、RSA1—块重复起始地址寄存器, REA0、REA1—块重复竣事地址寄存器0和1;
3)单重复寄存器,包罗:RPTC—单重复计数器,CSR—计算单重复寄存器;
4)停止寄存器,包罗:IFR0、IFR1(标志),IER0、IER1(使能),DBIER0、DBIER1(调试停止使能);
5)状态寄存器:ST0_55、 ST1_55、 ST2_55、 ST3_55。
地址数据(Address-data Flow Unit) A单元

如图所示, 地址流程单元(A)包罗数据地址产生电路(DAGEN)、算术逻辑电路ALU和一组寄存器组构成。

DAGEN 可以根据(I)单元的立即数和本(A)单元的寄存器数据产生读写数据空间的所有地址。在间接寻址中,还需要有§单元来指示采用那种寻址模式。
ALU能接收(I)单元数据,又能够和存储器、I/O空间、(A)单元寄存器、(D)单元寄存器和§单元寄存器进行数据交换,完成算术、逻辑、位操纵、移位、测试、旋转等操纵。
(A)单元包罗的寄存器有下列4种类型:
1)数据页寄存器(Data Page Register)PH、DP、(接口数据页)PDP
2)指针寄存器(Pointers):CDPH、CDP—系数数据、SPH、SP、SSP—栈、XAR0~XAR7—辅助
3)循环缓冲寄存器(Circular Buffer Registers):BK03、 BK47、BKC—巨细,BSA01、BSA23、BSA45、BSA67、BSAC—起始地址
4)暂时寄存器(Temporary Registers):T0~T3
数据计算(Data Computation Unit) D单元

(D)单元包罗了CPU的主要计算部件,能够完成高效的计算功能。如图所示,数据计算(D)单元由移位器、40比特算术逻辑ALU电路、两个乘累加器(MAC) 和多少寄存器组构成。
移位器D)单元移位器能够接收 来自(I)单元的立即数,与存储器、 I/O空间、(A)单元寄存器、(D)单元寄存器和§单元寄存器进行双向通信。别的,还向(D)单元的ALU和(A)单元的ALU提供移位后的数据。
TMS320c55x CPU外围电路

TMS320VC5509 采用下图所示的结构, 由 CPU 和外围电路构成 。 CPU在上节已经介绍, 外围电路是指除 CPU 以外集成在 DSP 芯片内部的一些功能单元和外部接口, 包罗:时钟电路、定时器、多通道缓冲串口 McBSP 、主机接口 EHPI、外部存储器接口 EMIF、通用输入/ 输出口 GPIO 、片内存储器和DMA控制器等。
芯片内部框图来源:
TMS320VC5509A Fixed-Point Digital Signal Processor datasheet (Rev. K) (ti.com.cn)

时钟电路 Clock

TMS320C55x DSP Peripherals Overview Reference Guide (Rev. K) (ti.com.cn)
TMS320VC5509 DSP 内部有一个时钟电路。 该时钟电路由一个数字锁相环(DPLL)和一个时钟模式寄存器(CLKMD)构成, 如图 2-4 所示。在时钟模式寄存器的控制下, 数字锁相环能对外部输 入时钟进行分频、 倍频和锁相, 为 CPU 及其外围电路提供工作时钟。
DSP时钟发生器产生CPU时钟,并提供给CPU、外设和DSP内部的其他模块。如下图所示。CPU时钟也传递给一个时钟分频器,该分频器向CLKOUT引脚提供一个信号( CLKOUT )。CLKOUT的频率取决于系统寄存器SYSR的CLKDIV位。上图电路即下图中的DSP Clock Generator。
上下两图的CLKOUT的定名要区分开。
PLL控制寄存器

介绍PLL控制寄存器(PLLCSR),详见课本。
时钟模式寄存器

介绍时钟模式寄存器(CLKMD),详见课本。
工作模式

在时钟模式寄存器中 PLLENABLE字段的 控制下 ,DPLL有两种工作模式。


  • 若PLLENABLE =0, DPLL工作于旁路(BYPASS)模式。
  • 若PLLENABLE =1, DPLL工作于锁定(LOCK)模式。
旁路模式下只能分频,锁定模式即能分频又能倍频。
在旁路模式中,DPLL只对输入时钟CLKIN作简单的分频,分频次数由BYPASSDIV字段确定。


  • 若BYPASSDIV =00, 为一分频,即CLKOUT等千CLKIN。
  • 若BYPASSDIV =01, 为二分频, 即CLKOUT等于CLKIN的 一 半。
  • 若BYPASSDIV =1x, 为四分频,即CLKOUT等千CLKIN的 四分之一。
在锁定模式中, DPLL 锁相环对输入时钟 CKLIN进行跟踪锁定,输出的时钟频率由公式确定。
使用方法

DSP时钟发生器的工作状态(A-F)。时钟模式寄存器(CLKMD)通过软件加载或通过DSP复位加载。假如写入CLKMD使PLL工作,则PLL开始其锁相序列(状态A)。假如写操纵使PLL失效,时钟发生器进入其旁路模式(状态D)。
状态描述A锁定相位。时钟发生器进入旁路模式,PLL(相位锁定环)将输出时钟信号的相位锁定到输入时钟信号的相位。一旦相位锁定并且输出信号到达由 CLKMD 的 PLL MULT 位和 PLL DIV 位界说的频率,时钟发生器进入其锁定模式(状态 B)。你可以通过写入 CLKMD 来重新设置时钟发生器。B锁定模式。在锁定模式下,PLL 正在天生具有选定频率的输出信号。输出信号与输入信号相位锁定。假如 PLL 失去锁定并且 CLKMD 的 IOB 位为 1,时钟发生器将返回到旁路模式并重新获取锁定(状态 A);假如 IOB 位为 0,时钟发生器不会重新获取锁定。空闲指令可以将时钟发生器置于其空闲模式(状态 C)。要更改为旁路模式或以其他方式重新设置时钟发生器,你可以写入 CLKMD。C空闲模式(从锁定模式进入)。空闲指令已将时钟发生器置于其空闲模式。假如精确退出空闲模式,时钟发生器将重新开始并重新获取相位锁定(状态 A)。重新获取锁定的方法取决于 CLKMD 的 lAl 位。D旁路模式。PLL 被禁用,时钟发生器处于旁路模式。时钟发生器内的分频器产生一个由 CLKMD 的 BYPASS DIV 位界说频率的输出时钟信号。空闲指令可以将时钟发生器置于其空闲模式(状态 E)。要更改为锁定模式或以其他方式重新设置时钟发生器,你可以写入 CLKMD。E空闲模式(从旁路模式进入)。空闲指令已将时钟发生器置于其空闲模式。假如精确退出空闲模式,时钟发生器将重新开始旁路模式。 省电状态、复位时和失所时需要注意的因素见课本总结,很简洁。
通用定时器 Timer

TMS320VC5503/5507/5509/5510 DSP Timers Reference Guide (Rev. C)
结构框图

MS320VC5509 DSP 片内有两个定时器, 即定时器 0 (Timer 0) 和定时器 1 (Timer 1), 可以用来定时或计数。 它的计数器会在每个时钟周期减1,当减到0时就产生一个输出信号。 该输出信号可用于停止 CPU 或触发 DMA 传输(称为定时器事件)。 由此可见, 定时器通常都要有时钟、 控制寄存器、 计数器和定时器事件等部分。
TMS320VC5509 的定时器结构如图所示。 首先是时钟部分, 可以采用内部的 CPU 时钟, 也可以采用来自输入/输出引脚 TIN/TOUT 的外部输入时钟, 因此增长了时钟选择电路。
其次, 为了能在定时器工作期间设定下一次定时的长度, 它将计数器分为两个, 一个用于定时器工作(递减方式), 一个用于 CPU 读/写(设置定时长度)。
再次, 在定时器事件部分, 可以产生三个输出信号, 一个是向 CPU 发出停止哀求, 一个是向 DMA 控制器发出同步事件, 一个是通过 TIN/TOUT 引脚输出信号。
时钟部分

如上图所示, 定时器的工作时钟可以来自 DSP 内部的 CPU 时钟, 也可以来自从 TIN/ TOUT 引脚输入的外部时钟。 具体时钟源的选择和 TIN/TOUT 引脚的功能由控制寄存器 TCR 中的 FUNC 字段确定。
TMS320VC5509 的定时器有 4 种工作模式。


  • 当 FUNC =00 时, TIN/TOUT 为高阻态, 时钟源为 CPU 时钟。 该模式为复位后的缺省模式
  • 当 FUNC = 01 时, TIN/TOUT 为定时器输出, 时钟源为 CPU 时钟。 此时, TIN/TOUT 作 为三个定时器事件中的一个, 可以输出时钟信号或脉冲信号
  • 当 FUNC = 10 时, TIN/TOUT 为通用输出, 时钟源为 CPU 时钟。 此时, TIN/TOUT 作为通用输出, 其电平由控制寄存器 TCR 中的 DATOUT 字段确定
  • 当 FUNC = 11 时, TIN/TOUT 为外部时钟源输入, 定时计数器将在其上升沿递减。
计数器部分

该定时器有两个计数器:一个4位预分频器计数器和一个16位主计数器。两个计数器每个都有一个计数寄存器和一个周期寄存器。在定时器操纵期间,计数寄存器被减量。定时器可以通过复制关联周期寄存器的内容,主动重新加载每个计数寄存器。
计数器寄存器描述预分频计数器PSC预分频计数寄存器。定时器预分频寄存器(PRSC)的位9-6。预分频计数器TDDR定时器分频寄存器(预分频周期寄存器)。PRSC的位3-0。主计数器TIM主计数寄存器主计数器PRD主周期寄存器
通用定时器的控制

介绍定时控制寄存器TCR,详见课本概括的很具体全面。


  •   重点·搞定例题和作业题
       

    • 设置定时器

外部存储接口 EMIF

TMS320VC5503/5507/5509 DSP External Memory Interface (EMIF) Reference Guide (Rev . A) (ti.com)
概述

EMIF 结构框图如图所示, TMS320VC5509 DSP 的外部存储器接口 EMIF 有 16 位的数据总线, 4 个片选输出信号, 2 个字节使能信号和多种控制信号, 能够提供多种存储器接口。
EMIF 提供的地址总线根据器件的不同封装形式有所不同,如下表所示。
外部存储器映射(见图1 - 2)被划分为四个地区,称为芯片使能( Chip Enable,CE )空间。CE0空间位于最低地址,CE3空间位于最高地址。每个CE空间最多可以包罗4M字节。
CE3空间中的一些地址可以用来访问DSP内部的ROM。如下图1 - 2所示,通过改变CPU状态寄存器ST3 _ 55中的MPNMC位,可以在CE3空间和ROM之间切换这些地址。MPNMC和ST3 _ 55在TMS320C55x DSP CPU参考指南( SPRU371 )中描述。对于每个CE空间和ROM中的字节数,见设备专用数据手册。
详见下图,课本中的存储空间映射图更加具体直观。二者可以相互验证着记忆。
与外部存储器的接口方式

EMIF为两种类型的存储设备提供了无缝接口:


  • 异步器件,包罗ROM、Flash、异步SRAM存储器等。
  • 同步DRAM ( SDRAM )存储器。
EMIF支持以下几种数据访问类型:


  • 32位步伐指令访问为CPU取指令;
  • 32位数据访问用于CPU或DMA控制器;
  • 16位数据访问用于CPU或DMA控制器;
  • 8位数据访问用于CPU或DMA控制器。
异步接口


  • 接口方法(见spru670a 2-2)
支持16位和8位数据的异步访问,毗连方法如下图所示。
此中, 各个引脚信号的功能如下。


  • D[15:0]:16 位的数据总线;
  • A[13:0] :14 位的地址总线;
  • BE[1: 0]: 低电平有效的字节选择信号, 用于指定要访问的字节位置;
  • CE: 低电平有效的外部存储空间片选信号, 用于指定要访问的外部空间;
  • ARDY: 外部存储器件停当指示, 使 EMIF 可以和较慢的器件相连;
  • AOE: 低电平有效的外部存储器件输出使能信号;
  • AWE: 低电平有效的外部存储器件写使能信号;
  • ARE: 低电平有效的外部存储器件读使能信号。

  • 异步接口时序
EMIF可编程参数如下:
参数控制位界说建立时间(Setup periods)RDSETUP WRSETUP设置周期是在CPU时钟周期内,为设置地址、芯片使能(CE)和字节使能(BE)信号,在读取选通信号(ARE)或写入选通信号(AWE)下降之前所给的时间。对于异步读取操纵,这也是在ARE下降之前输出使能信号(AOE)的设置周期。选通时间(Strobe periods)RDSTROBE WRSTROBE选通周期是CPU时钟周期内,读取或写入选通信号下降(激活)和上升(去激活)之间的时间。保持时间(Hold periods)RDHOLD WRHOLD保持周期是在CPU时钟周期内,读取或写入选通信号上升后,地址和字节使能线保持激活的时间。对于异步读取操纵,这也是ARE上升后输出使能信号的保持周期。延长保持时间(Extended hold periods)RDEXHLD WREXHLD扩展保持周期是在以下情况下插入的额外CPU周期数:(a) EMIF必须在执行下一次访问之前切换到不同的CE空间,或(b) 下一次访问需要改变数据方向(例如,EMIF已完成读取访问,现在必须执行写入访问)。在此期间,所有芯片使能信号都好坏激活状态。EMIF会主动在你编程的任何周期上增长1个周期。例如,假如WREXHLD = 0,扩展保持周期为1个周期。超时值(Time-out value)TIMOUT单一的超时值适用于读取操纵和写入操纵。在操纵期间,内部计数器计算ARDY信号被采样为低(体现内存未准备好进行访问)的CPU时钟周期数。假如计数器到达超时值,EMIF会在总线错误状态寄存器中记录一个错误(参见第4-7页的4.4节)。假如CPU总线哀求了内存访问,EMIF会向CPU发送一个总线错误停止哀求。假如DMA控制器哀求了内存访问,EMIF会向DMA控制器发送一个超时信号。DMA控制器可以忽略该信号或向CPU发送一个总线错误停止哀求。总线错误停止是可屏蔽的;CPU根据停止是否精确启用来忽略它或处置惩罚它。注意:在TMS320VC5503/5507/5509A设备中,假如EMIF全局控制寄存器中的ARDYOFF = 1,则不采样ARDY,因此不会发生超时情况。 在异步读操纵过程中, 写使能信号 (AWE) 置为高电平;在异步写操纵过程中, 输出使能信号 (AOE) 和读使能信号 (ARE) 置为高电平。 异步读/写操纵第一次访问存储器的建立时间不少于两个CPU周期, 随后访问存储器的建立时间不少于一个CPU周期。
Figure2 - 5、Figure2 - 6分别展示了在读/写操纵期间使用ARDY延长选通周期的情况。

  • 寄存器设置
介绍了全局控制寄存器(EGCR),全局复位寄存器(EMIRST),总线错误状态寄存器(EMIBE),片选控制寄存器CEx_1,2,3,详见课本。
同步动态RAM


  • SDRAM接口方式(见spru670a 3-8)
SDRAM 是一种高密度、 高速率的同步动态 RAM。 它按行和列的方式来组织存储阵列, 并 通过行列地址对数据进行读/写。 TMS320VC5509 DSP 的 EMIF 能支持容量为 64 Mb 或 128 Mb 的、 宽度为16 位的 SDRAM。
以 EMIF 与一片 64 Mb 的 SDRAM 接口为例, 它们之间的毗连方法如下图所示。
由于 EMIF 的每个片选的最大空间为 32 Mb, 所以一片 64 Mb 的 SDRAM 就要占用两个片选空间。 但是只能使用开始两个或是最后两个, 即只能为CE0和CE1或CE2和CE3。 图中选择了 CE0和CE1, 但 SDRAM 只有一个片选CS, 所以用CE0与之相连,CE1悬空。

  • 寄存器设置
与 SDRAM 接口有关的寄存器有 EGCR 、 EMIRST 、 EMIBE 、 CEx_l 、 SDC1、 SDPER 、 SDCNT 、 INIT、 SDC2。
此中,全局控制寄存器 (EGCR) 用于设置同步时钟频率 (MEMFREQ和 MEMCEN 字段);片选空间控制寄存器 1 也只有 MTYPE 字段与 SDRAM 有关, 即当 MTYPE = Ollb 时, 选择 SDRAM 为外部存储器件。 这里只介绍 SDRAM 接口专用的寄存器。
介绍了SDRAM控制寄存器(SDC1、SDC2),SDRAM 周期寄存器(SDPER)和计数寄存器(SDCNT), SDRAM初始化寄存器(INIT),详见课本。
例题



  • 画出硬件毗连接口
  • 编写代码
主机接口 EHPI

TMS320VC5503/5507/5509 DSP Host Port Interface (HPI)
EHPI 根本结构

TMS320VC5509 DSP有一个16位数据宽度的主机接口EHPI, 主机通过EHPI可以直接访问DSP内部的DARAM存储器。
介绍EHPI的外部引脚地址/数据、选通、控制和模式选择
介绍EHPI的内部寄存器地址寄存器(HPIA)、数据寄存器(HPID)和控制寄存器(HPIC)
复位对EHPI寄存器的影响

HPIC恢复默认值,HPIA和HPID没有被DSP初始化。
接口时序

非复用模式和复用模式。
非复用模式下。HPID用于暂时存放要通过EHPI传送的数据。假如是读操纵,则HPID中装有在DSP存储区中读到的数据;假如是写操纵则HPID中装有要写入DSP存储区的数据。通过设置控制寄存器HPIC可以向DSP发停止,并且可以控制DSP的复位。要访问HPIC必须使HCNTL0信号为低。
复用模式,较为复杂略。
应用举例

DSP1 为主机,采用非复用模式于DSP2 通信,并由GPIO来选择要访问的 对象(HPIC或数据空间)。详见课本。
多通道缓冲串口 McBSP

TMS320VC5501/5502/5503/5507/5509/5510 DSP (McBSP (ti.com)
概述

详见课本。
根本结构

收发通道

时钟与帧同步


  • 采样速率发生器SRG的输入参考时钟
  • 采样速率发生器的输出时钟和帧同步
  • 时钟信号的方向和极性
  • 帧同步信号的方向和极性
  • 同步
多通道选择

串口事件

工作模式

多通道缓冲模式、SPI模式、A_bis模式、数字回环模式、GPIO模式、省电模式
收发格式与参数设置

详见课本。
非常处置惩罚


  • 接收过速
  • 接收帧同步错误
  • 发送数据重写
  • 发送寄存器空
  • 发送帧同步错误
McBSP寄存器说明


  • 收发通道寄存器
  • 时钟和帧同步部分的寄存器——串口控制寄存器(SPCR1|2)、引脚控制寄存器(PCR)、采样速率发生寄存器(SRGR1|2)、收发控制寄存器(R(X)CR1|2)
  • 多通道选择部分的寄存器——多通道控制寄存器(MCR1|2)、多通道使能寄存器
应用举例

使用 McBSPO 来发送一段数据, 要求如下:
(1)采用多通道缓冲模式。
(2) 发送时钟和帧同步由内部采样速率发生器驱动, 接收时钟和帧同步由外部信号源驱动。
(3) 发送时钟速率为 CPU 时钟速率的 114, 帧同步周期为 18 个 CLKG, 脉冲宽度为 2 个 CLKG 。
(4) 收发数据帧格式都是每帧 1 个阶段, 每阶段 l 个字, 字长 16 位, 不压扩, 1 位延迟。
(5) 采用查询发送标志 XRDY 和接收标志 RRDY 的方式进行收发。
通用输入输出口 GPIO

概述

由8 个相互独立的可编程引脚 (l00~107) 构成。GPIO 各个引脚的方向由寄存器 IODIR设定, 各个引脚上的输入/输出电平由寄存器 IODATA 设定。
上电模式设定



  • 自举模式(Boot Mode)是一种在微处置惩罚器或数字信号处置惩罚器(DSP)启动时加载步伐代码的方式。对于 TMS320VC5509 如许的 DSP,自举模式决定了芯片从何处获取初始化代码以及如何开始执行步伐。它就像是一个引导过程,告诉处置惩罚器在开机或复位后应该去哪里探求启动所需的软件指令。
  • 例如,想象一个计算机系统在开机时,BIOS(根本输入输出系统)就是一种自举步伐,它负责初始化硬件设备,并从硬盘、U 盘或网络等存储介质中加载操纵系统的引导步伐,然后将控制权交给操纵系统。在 DSP 中,自举模式起到类似的作用,不外加载的是 DSP 特定的启动代码。
其他GPIO

在 DSP 中, 另有每个 7 个McBSP 的引脚、 2 个定时器引脚 TIN/TOUT 和外部标志引脚 XF 都能用作 GPIO 。
直接存储访问控制器 DMA

TMS320VC5503/5507/5509/5510 Direct Memory Access(DMA (ti.com)
根本结构

它通过4个端口和6个通道与 D S P的1/0资源相连。 其内部通过32位宽的 DMA 总线互连。 能 够独立于CPU工作, 完成1/0资源间的数据传输, 而不影响CPU执行其他的事变, 类似于PC 机的背景处置惩罚。


  • 以视频播放为例,在 PC 机中,当从硬盘读取视频数据并传输到显卡的显存中进行播放时,DMA 控制器可以在背景负责数据传输。CPU 可以同时处置惩罚其他使命,如相应用户的鼠标点击操纵、更新播放界面的进度条表现等。在 TMS320VC5509 DSP 中也是类似的原理,CPU 可以专注于复杂的数字信号处置惩罚算法,而 DMA 控制器在背景默默地完成数据在不同 I/O 资源之间的传输,从而进步了整个系统的效率和并行处置惩罚能力。
别的它有一个EHPI辅助端口和EHPI辅助通道, 可以直接和主机相连, DMA 控制器的各个传输通道采用时分复用(TDM )的方式分享 DMA 总线。


  • 在一个复杂的多设备系统中,EHPI 接口增强了系统的集成性。它允许主机作为一个中央控制单元,对多个基于 DMA 的设备进行同一管理。例如,在一个分布式的数据收罗和处置惩罚系统中,主机可以通过 EHPI 接口同时控制多个带有 DMA 控制器的 DSP,协调它们的数据收罗和传输使命。
  • 在 DMA 控制器内部,有多个传输通道需要访问 DMA 总线来传输数据。采用时分复用的方式可以在不增长总线数量的情况下,让多个通道都能有效地使用总线资源。例如,假如有 6 个传输通道,通过合理分配时间片,每个通道都有机会在一定时间间隔内使用 DMA 总线进行数据传输,如许就制止了通道之间为了夺取总线资源而产生冲突。
EHPI 通道

由DMA的全局控制寄存器DMA_GCR中的EHPI PRIO字段控制优先级;
由DMA全局控制寄存器DMA_GCR中的EHPI EXCL字段确定共享模式和独占模式。
DMA通道传输设置

DMA传输过程如下图所示,先从数据源读入数据,并将其放到通道的FIFO缓冲区,然后再从FIFO缓冲区取出写到目标端口。
DMA控制器有两套寄存器:
设置寄存器:主要功能是对 DMA 通道传输进行预先设定和参数设置。
工作寄存器:主要用于反映和记录 DMA 通道在数据传输过程中的及时工作状态。
数据块、帧和单元

通道参数寄存器(DMA_CSDP)、数据帧数寄存器(DMA_CFN)、数据单元数量寄存器(DMA_CEN)。
传输类型与数据打包

DMA通道支持的数据传输类型如下表:
端口名称传输类型DMA总线宽度SRAM8、16或32位32位DRAM8、16或32位32位EMIF8、16、32位或4×32位的突发方式32位外设16位16位EHPI16位16位 DMA 总线宽度为 32 位, 最多能支待两个 16 位的或一个 32 位的数据传输, 当所传输的数据单元长度小于总线宽度时, DMA 传输效率低沉。比如8位长数据单元的传输, 4 次才传 32 位。 数据打包:将 4 个8位数据单元打包成一个 32 位的数据包, 则只需传递一次, 如许就能够进步数据传输效率。使用通道参数寄存器(DMA_CSDP)中的DST(SRC)PACK字段设定数据打包功能。
数据源和目标地址

DMA通道源起始地址寄存器(DMA_CSSA_L/U)低16bit+高16bit,DMA通道目标起始地址寄存器(DMA_CDSA_L/U)低16bit+高16bit。
DMA通道进行数据传输时地址的修改方式由DMA通道控制寄存器(DMA_CCR),中的DST(SRC)AMODE字段控制。
单次传输与多次传输

由DMA通道控制寄存器(DMA_CCR)中的AUTOINIT、ENDPROG和REPEAT字段控制。
DMA通道数据传输的启动



  • DMA_CCR 的通道使能字段(EN)置为1立即启动传输
  • 20个DMA同步事件(6个外部停止、2个定时器停止、12个McBSP事件(每个串口4个)),由DMA_CCR 的同步字段SYNC来控制。
别的还可以通过DMA_CCR中的FS字段,指定这些同步事件时与数据帧传输同步照旧与数据单元传输同步。
通道停止与状态

DMA 通道在传输过程中产生的各种状态都会把通道状态寄存器(DMA_CSR)中相应的标志位置 1。同时,在通道停止控制寄存器 DMA_CICR的控制下, 这些状态都能触发 DMA 通道停止, 使 CPU 能及时得到 DMA 传输的状态。
寄存器说明

详见课本。
应用举例

假定需要将位于SARAM中从字节地址2 0000h开始的32个16位的数据搬到DARAM中从字节地址00C0h开始的数据缓冲区, 要求使用DMA通道1,并由CPU直接启动, 在传完以后给CPU一个停止。
详见课本。
片内存储器与DSP自举

DA(Dual-Access)RAM

双存取 RAM (DARAM) 的字节地址范围是 00 0000h~00 FFFFh, 分为 8 块, 每块 8 KB。每个周期内可以对同一块 DARAM 访间两次, 支持8 、16或 32 位的访问, 可以用作步伐空间, 也可以用作数据空间。
注意: 8 块 DARAM 中, 字节地址 00 0000h 到 00 00BFh 被 CPU 的存储映射寄存器 MMR占 用, 位于 DARAM0 的开始部分。 编程时要注意不能使用这段地址。
SA(Single-Access)RAM

单存取 RAM (SARAM) 的字节地址范围是 01 0000h~04 FFFFh, 分为 32 块, 每块 8KB。 每个周期只能对同一块 SARAM 访问一次, 支待 8、16 或 32 位的访问, 可用作步伐空间, 也可以用作数据空间。
ROM与DSP自举

TMS320VC5509 DSP片内 ROM的字节地址范围是FF 8000h~FF FFFFh, 只有 1 块, 32 KB。 这一地区是否用作片内 ROM 由 ST3_55 寄存器的 MP/MC 字段决定。 它的值在复位时由 GPIO[3: 1] 的值决定。
应用举例

详见课本。
   参考资料:
TMS320C55X DSP 原理及应用/代少升等编著.–2版.–北京:高等教育出书社,2013.7
TMS320VC5509A 数据表、产物信息和支持 | 德州仪器 TI.com.cn
TMS320C55X DSP 原理及应用/汪春梅,孙洪波编著. — 4版. —北京:电子工业出书社,2014.5
转载请标明出处。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

前进之路

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表