好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

第06课TigerSHARC数字信号处理概述外围DMADSP硬件设计参考PPT课件.ppt

58页
  • 卖家[上传人]:s9****2
  • 文档编号:567423355
  • 上传时间:2024-07-20
  • 文档格式:PPT
  • 文档大小:542.50KB
  • / 58 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 第六节 TigerSHARC外围DMA和TS101硬件设计参考1 上节回顾•TigerSHARC 外口总线–SDRAM协议–多片DSP接口;–Host接口;–EEPROM接口;•Link口;2 本节内容•TigerSHARC IOP的最后一部分:–DMA控制器;•TS101硬件设计参考3 PART 1Direct Memory Access (DMA)4 DMA 控制器主要内容•DMA介绍•DMA特点•DMA 通道优先级•DMA 传输类型•传输控制块 (TCB)•DMA控制和状态寄存器•链式DMA 和中断5 ADSP-TS101S Block DiagramJTAGPORTSDRAMCONTROLLER6LINKPORTSLINKPORTCONTROLLERCONTROL/STATUS/BUFFERSL138L283L338L083INPUT FIFOOUTPUTBUFFEROUTPUT FIFOHOSTINTERFACEMULTI-PROCESSORINTERFACECLUSTERBUSARBITORData64EXTERNALPORT32CNTRLDMA ControllerIABPCBTBIR QADDRFE TCHINTEGERKALUINTEGERJALU3232M0 ADDRM1 ADDRM2 ADDRM0 DataM2 DataM1 Data323232128128128IO ADDR32Program SequencerData Address GenerationMemoryBlockM0MemoryBlockM1MemoryBlockM2InternalMemoryCoreIO ProcessorADDR32 x 3232 x 32DABMultiplier ALU XRegisterFile Shifter 6464646464646412812812812864DAB128128Multiplier ALU YRegisterFile Shifter 646464646464Comp Block XComp Block Y6 DMA – 介绍•没有DMA的系统CPURAMDMAControllerROMRAMPeriphHOSTDMA用于IO传输:• 产生源地址;• 产生目的地址;• 控制总线数据操作;内部总线外部总线CPUROMRAMPeriphHOST•使用 DMA的系统7 SDRAMSRAMI/OHostInterfaceTiger SHARCLink Port connectionUregsMemUregsMemTiger SHARCBoot PROMDMA – 介绍•TS101 DMA操作的源和目的;8 DMA 特点•TS101的DMA 传输可以由本地DSP、总线上其他DSP或者Host启动; •每个TS101内部共用14 DMA通道;•DMA 操作可以被暂停和重新启动;•DMA 操作之前必须要配置TCB块,加载TCB块时启动DMA工作;•DMA 长度寄存器为16bit,当DMA传输时,计数值递减;当0时DMA结束;如果启动是长度设置为0,则本次DMA操作的长度为 0x10000 words.•DMA 传输和内核传输可能会同时争抢内部总线,在一定时间内会造成总线暂停;由于内部总线带宽相对外部总线带宽非常高,因此冲突被降低到最小化。

      9 DMA 优先级10 Channel 3Channel 2Channel 0Channel 1Channel 0Channel 3Channel 2Channel 0Channel 3Channel 2Channel 1Channel 1DMA 1 selectedDMA 0 selectedDMA 优先级•DMA 共有14个通道,优先级排列如下:–2 Auto DMA channels (13 - 12)–4 Receive Link 3-0 channels(11 - 8)–4 Transmit Link 3-0 channels(7 - 4)–4 External Port 3-0 channels(3 - 0)•目前情况下,外总线DMA通道的优先级为:3~0轮询:•The DMA priority bit separates rotation into two priority sets - high (with bit set) and low.11 DMA 传输类型•TS101允许的DMA传输类型:–内存 <=> 外存–内存<=> 其他 TigerSHARCs的内存和寄存器–内存<=> 主机–内存<=> Link Port –内存<=> Boot Prom/FLASH–外存<=> 外设(Flyby transfer)–外存<=> Link Port I/O–外部主设备 =>内存(via Auto DMA)–外部主设备 => Link Port I/O (via Auto DMA)–Link Port 输入=> Link Port 输出•外部设备可以通过4个边沿触发的DMAR信号申请DMA;12 DMA 传输类型DMA传输类型可以分成如下几种:•内存  外口 (Cluster Bus)–这类DMA可以进行双向传输,–需要设置两个DMA控制块 (TCB).–发送TCB、接收TCB;•Auto DMA 寄存器  内存.–只需要设置一个接收 TCB.–数据输入端是固定地址的两个寄存器;–外设只向一个地址连续写入数据,TS101内部根据TCB设置将寄存器数据写入对应的内存地址;•内存或者外存  Link ports.–只设置发送TCB;•Link ports 内存或者外存 .–只设置接收TCB;–每个Link口分配有两个DMA通道;•Link port  Link port.–只设置接收TCB;•Flyby 传输•2-D(2维)DMA传输;•DMA chaining(链式DMA传输)13 Host InterfaceSDRAMSRAMI/OTiger SHARCMemTiger SHARCTiger SHARCTiger SHARCDMA 传输类型- 外口•内存  外口 (Cluster Bus)MemMemMem14 SDRAMSRAMI/OHost InterfaceLink兼兼容设备容设备Link Port connectionsTiger SHARCTiger SHARCLink兼兼容设备容设备MemoryMemoryDMA 传输类型- Link Port•内存或者外存  Link ports15 SDRAMSRAMExternalbus masterHost InterfaceTiger SHARCTiger SHARCTiger SHARCTiger SHARCMemoryDMA 传输类型- Auto DMA•AutoDMA transfers – 从外总线到内存 16 •Flyby transfers – 从外存到外部IO设备;SDRAMSRAMI/OHost InterfaceTiger SHARCLink Port connectionsTiger SHARCTiger SHARCTiger SHARCDMADMA 传输类型- Fly-by17 链式DMA and 2-Dimensional•链式DMA操作使得一个DMA操作结束后,自动启动下一个DMA操作;•链式DMA操作由:链表组成,•相连的两个DMA链可以是同一个DMA通道也可以是不同的DMA通道。

      18 2维DMA•DMA控制器可以按照2维存储器的方式进行访问,而且每个DMA通道都可以配置成2维DMA;•2维DMA需要设置X方向的起始地址、长度和步进,以及Y方向的起始地址、长度和步进•2维DMA通用用于矩阵数据的访问,例如:–作矩阵转置处理;–对图象数据作处理;19 DMA控制块TCB•TCB:Transmit Control Block:是一个用来控制一个DMA通道工作的寄存器组;每个DMA通道对应1个或2个TCB•TCB的寄存器为带地址映射的寄存器;通过对这些寄存器的编程设置,完成对DMA的操作;–每个TCB是连续地址的4个寄存器;–访问方式必须是QuadWord访问;•外口DMA的TCB:2个–DCSx = 源地址TCB registers–DCDx = 目的地址TCB registersx = (e.g., 0, 1, 2 or 3)Example:DCS0 = xr3:0;; // external port 0 DMA sourceDCD0 = xr7:4;; // external port 0 DMA destination•Link Ports和AutoDMA 只有1个TCB–DCx = 源TCB registersx = 4~13;Example:DC9 = xr3:0;; // link 1 rx DMA20 •TCB –DI – DMA起始地址寄存器(可能是源地址,也可能是目的地址)–DX - X (1维)16bit地址步进量和16bit的传输长度(单位是Word);–DY - Y (2维) 16bit地址步进量和16bit的传输长度(单位是Word);–DP – 链指针和DMA控制寄存器•TCB内的每个寄存器都不能独立访问,必须4字访问;DMA控制块TCBTCB 寄存器组共寄存器组共128bit,共四个独立的寄存器;,共四个独立的寄存器;31 0DI RegisterDX RegisterDY RegisterDP Register127 9621 31 0ADDRESS POINTERDMA控制块TCB_DI•DI 寄存器: 32-bit 地址寄存器 ––可以是内存地址;–外存地址;–Link口缓冲寄存器地址22 DMA控制块TCB_DX•DX 寄存器a) 16-bit 步进 (低16bit) and 16-bit 长度 (高位)或者b) 16-bit 步进 (低16bit) and 16-bit 一次X维的传输长度countX Count X Modify31 16 15 0Y Count Y Modify31 16 15 0·DY 寄存器寄存器:只有在只有在2维维DMA的模式下才使用;是的模式下才使用;是Y方向的步进和长方向的步进和长度;度;·当计数器值递减至当计数器值递减至0时,时,DMA传输接收;传输接收;-Count 表示 32-bit words的数量;-16bit宽,最大支持64KWord的DMA长度;23 DMA Control Chaining Pointer31 22 21 0DMA - TCB•DP 寄存器: - 两个部分a) bits 23 – 31:专用于DMA控制;b) Bits 0 - 22 :专用于链式DMA控制,链表地址;24 DP寄存器1•Bits 0 - 14 :CHPT–下一个TCB的首地址的Bit16~2,Bit1、0为0(四字对齐)•Bits 15 - 16 :MS–链式TCB表的存储位置,–内部存储空间(block0、1、2)的片选,–只能在内存;•Bits 17 – 21:CHTG–该链的DMA通道;•Bits 22 :CHEN–链式DMA使能; 25 DP寄存器2•Bits 23:DRQ–DMA申请使能 (DMAR3:0)•Bits 24:INT–中断使能:0= 不使能, 1 = 使能•Bits 25 - 26 :LEN–DMA单位长度•01 = normal, 10 = double word•11 = quad word•Bits 27:2DDMA–二维DMA使能•Bits 28:PR–DMA申请总线优先级•0 = normal•1 = high•Bits 29 - 31 :TY–DMA设备类型000… DMA disabled001… I/O link ports010… Internal memory011… Reserved100… External memory101… External I/O device110… Boot EPROM111… Reserved26 DMA - TCB 寄存器的使用•TCB寄存器有三种加载方式:–DSP程序将4字对齐的内存或寄存器中的数据协议TCB寄存器组;–链式加载TCB:DMA控制器根据每一个TCB中DP寄存器中的Bit0~14的地址,自动加载下一个链的TCB。

      –外部设备直接写TCB寄存器–一旦向TCB加载正确的参数后,DMA自动开始运行–注意:•向TCB的TY域写入000时,会清除该通道的所有状态寄存器位;•向一个已经激活的TCB再次写入时,会造成硬件错误中断;27 DMA操作的寄存器设置要求•操作要求–外口接收、发送TCB中的长度、数量和DMAR使能设置必须匹配;–Boot EPROM DMA LEN = 1 (normal),Link口DMA LEN = 3 (quad)–Link发送 TY = 2 (int memory)或 4 (ext memory)–Link接收 TY = 1 (link)或 2 (int memory)或4 (ext memory)–Auto DMA TY = 2 (int memory)–Link和Auto DMA中必须设置DMA Request项;–地址、步进量、长度的设置一定要和LEN设置相对应;28 DMA 寄存器设置要求 2•要求:–外DMA的TY设置:29 状态和控制寄存器•DMA的状态和控制寄存器:–DSTAT–DCNT–DCNTST(DCNT的设置寄存器)–DCNTCL (DCNT的清除寄存器)30 状态寄存器•DSTAT - 64-bit寄存器,表示所有DMA通道的状态;•DSTAT:不能采用NormalWord访问,必须 Long 或者 Quad Word 访问;•DMA状态寄存器的bit定义:–Bits 0 - 2Name: CH0Description000 通道不使能;001正在传输010传输结束011Reserved100TCB初始化错误101非法的TCB设置110Reserved111DMA地址错误•其他13个DMA通道的定义相同:31 控制寄存器 1 •DMA 控制寄存器:–DCNT 32bit控制寄存器,每通道1bit;–DCNTST用于设置32bit的控制寄存器;–DCNTCL用于清零的32bit控制器;•在DCNTST中设置一位,可以暂停传输;•对DCNTCL中设置一位,可以清楚对暂停的限制;32 控制寄存器2 •控制寄存器ResPA13PA12ResResPA11PA10PA9PA8ResResPA7PA6PA5PA4PA3PA2PA1PA031-18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0Pause bit for channel #0 = Continue transferring data1 = Pause channel # data transfer after current word transfer (if started)33 链式DMA•链式DMA允许多个DMA联系进行传输;•每个DMA可以使用 不同属性底块;•TCB中采CNEN位来使能链式DMA;•TCB中DP寄存器的CHPT位,指向存放下一个DMA链的TCB参数的首地址;•DMA控制器从该地址,自动加载下一个DMA的参数到TCB。

      TCB 1Chain PointerTCB 2Chain Pointer34 链式DMA•Single TCB TransferSingle TCB Transfer•Dual TCB transferDual TCB Transfer•Dual TCB transferSingle TCB Transfer•*Single TCB transferDual TCB Transfer* Special setup via core required Only one block transfer of this type can occur without setting up DMA process again35 链式DMA插入•DMA插入:在正在进行链式DMA过程中,插入一个DMA链;基本过程如下:–通过 DCNT寄存器暂停当前DMA;–将当前TCB中的原来的CHPT设置到要插入的DMA链的TCB中;–DSP内核改写当前DMA的TCB,更新其中的CHPT(指向新的DMA链);–通过DCNT寄存器恢复当前DMA传输;–当前DMA继续传输,结束后启动新的DMA;36 原来的DMA链 (or loop)TCB1 A:新插入的DMA链;TCB 1Chain PointerTCB 2Chain PointerTCB 1Chain PointerTCB 2Chain PointerTCB 1AChain Pointer链式DMA插入•DMA链的插入过程示意图37 DMA 中断•每个DMA通道分配有独立的中断向量;•使能DMA中断,需要在DCTL寄存器和IMASK寄存器中设置;•中断使能后,DMA通道在Count=0,并且完成当前传输时,发送中断;–此时的Count=0必须是由于DMA通道实际传输造成Count值递减所制;–内核设置Count为0时(即刚启动了一个64K长的DMA传输),不产生中断;•TS101内核锁存DMA通道的中断于ILAT寄存器中;•TCB中设置了INT有效,就会在该次传输后产生中断;•可以设置链式DMA在中间链的TCB中INT无效,只有最后一个TCB中INT有效,则只在链式DMA结束后才产生一次中断;38 PART IITS101 的硬件设计参考39 TS101硬件设计参考主要内容•复位•时钟•电源•加载•JTAG调试•总线连接•Link口设计40 复位电路•TS101的复位输入信号:/Reset;•复位模式:–上电复位;•复位逻辑很特殊,一般参用CPLD编程输出;•自动加载程序;–普通复位;•外部输入普通复位模式的Reset信号;•自动加载程序;–内核复位;•设置SQCTL寄存器的SQRST位;•只复位内核部分,不复位IOP,不自动加载;41 42 时钟电路•TS101的时钟输入:SCLK、LCLK;•要求两个输入为同源同相时钟;•对时钟的Jitter有严格要求:100ps;•时钟驱动要注意:–一个驱动芯片不要输入两种时钟;–驱动与器件之间采用点对点连接;–所有设备的连线要尽量等长;43 44 电源电路的设计•电源输入:–IO电源:3.3V数字电源;–内核电源:1.2V数字电源;–锁相环电源:1.2V模拟电源;•电源上电顺序:–要求1.2V比3.3V先上电;•去耦电容:–两种电源都要有较多的去耦电容,0.1uf和10uf两种;45 模拟电源的滤波:• 用1.2V数字电源通过滤波电路产生;46 功耗分析•功耗分成两部分:–内核功耗:1.2V×Idd;–IO功耗:3.3V×Idd_io;•Idd最大值1.546A;Idd典型值:1.513A;•64bit总线时,典型电流:0.137A@3.3V;•典型功耗:1.513×1.2 + 0.137×3.3 =2.26W47 加载电路的设计•加载方式:(由BMS信号控制)–EPROM Boot(BMS=0);•复位后,DSP自动读取EPROM中数据,加载到DSP内存中;•DMA 通道0,默认启动256字的接收DMA;•加载有协议控制,256字是加载头,后面的是真正的程序数据,根据握手协议读入DSP内存的特点地址中;–Host Boot (BMS=1) ;•复位后,DSP的AutoDMA自动启动接收256字的DMA;•Host可以写AutoDMA加载DSP的程序;•Host也可以通过直接写DSP的内存地址将DSP的数据写入DSP的相应地址中;48 –Link Boot (BMS=1)•TS101可以通过Link被其他带有Link口的设备加载;•TS101的4个Link口都具有加载能力;•上电复位后,TS101的4个Link口都默认启动了256字的接收DMA;•可以构成Link网络加载;–No Boot (BMS=1,BM=1)•DSP上电复位后从外部存储器读取程序指令,并开始允许;49 JTAG调试接口•JTAG接口:–一种国际标准的芯片调试接口;–可以用于访问DSP的所有内部资源、控制DSP的程序运行等;–是调试DSP程序的一种基本手段;–ADI的开发系统通过JTAG口与DSP连接,可以在VDSP界面下调试DSP程序;–JTAG口可以采用菊花链的形式,通知调试多个DSP设备;50 51 52 总线连接•数据总线的连接–32bit和64bit的问题;–高低32bit分别对应了WRH和WRL信号;•地址总线的连接–32bit数据总线:地址总线使用A0;–64bit数据总线:地址总线不使用TS101的A0,将TS101的A1连接存储(或外设)的A0;–SDRAM空间使用A15~A0(或者A31~A16)的地址,•其中最高两位连接SDRAM的Bank0、1;•Bug:Page=1K时,A15不能用于Bank1;53 总线连接• 所有关键的控制信号线都加上拉电阻;•不使用的控制信号也要上拉;•多DSP总线连接的时候,必须有唯一一个ID号为0;其他所有DSP的ID号不能重复;•单DSP系统,DSP的ID=0;54 Link口设计•几个要点:–Link信号线要尽量等长;–阻抗匹配;–两个相连接的Link口的时钟信号要交叉连接;–Link驱动的方向控制;55 56 下课 57 个人观点供参考,欢迎讨论 。

      点击阅读更多内容
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.