《第06课_TigerSHARC数字信号处理概述外围_DMA_DSP硬件设计参考.ppt》由会员分享,可在线阅读,更多相关《第06课_TigerSHARC数字信号处理概述外围_DMA_DSP硬件设计参考.ppt(57页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第六节 TigerSHARC外围DMA和TS101硬件设计参考上节回顾TigerSHARC 外口总线SDRAM协议多片DSP接口;Host接口;EEPROM接口;Link口;本节内容TigerSHARC IOP的最后一部分:DMA控制器;TS101硬件设计参考PART 1Direct Memory Access (DMA)DMA 控制器主要内容DMA介绍DMA特点DMA 通道优先级DMA 传输类型传输控制块(TCB)DMA控制和状态寄存器链式DMA 和中断ADSP-TS101S Block DiagramJTAGPORTSDRAMCONTROLLER6LINKPORTSLINKPORTCONT
2、ROLLERCONTROL/STATUS/BUFFERSL138L283L338L083INPUT FIFOOUTPUTBUFFEROUTPUT FIFOHOSTINTERFACEMULTI-PROCESSORINTERFACECLUSTERBUSARBITORData64EXTERNALPORT32CNTRLDMA ControllerIABPCBTBIR QADDRFE TCHINTEGERKALUINTEGERJALU3232M0 ADDRM1 ADDRM2 ADDRM0 DataM2 DataM1 Data323232128128128IO ADDR32Program Sequence
3、rData Address GenerationMemoryBlockM0MemoryBlockM1MemoryBlockM2InternalMemoryCoreIO ProcessorADDR32 x 3232 x 32DABMultiplier ALU XRegisterFile Shifter 6464646464646412812812812864DAB128128Multiplier ALU YRegisterFile Shifter 646464646464Comp Block XComp Block YDMA 介绍没有DMA的系统CPURAMDMAControllerROMRAM
4、PeriphHOSTDMA用于IO传输:产生源地址;产生目的地址;控制总线数据操作;内部总线外部总线CPUROMRAMPeriphHOST使用 DMA的系统SDRAMSRAMI/OHostInterfaceTiger SHARCLink Port connectionUregsMemUregsMemTiger SHARCBoot PROMDMA 介绍TS101 DMA操作的源和目的;DMA 特点TS101的DMA 传输可以由本地DSP、总线上其他DSP或者Host启动;每个TS101内部共用14 DMA通道;DMA 操作可以被暂停和重新启动;DMA 操作之前必须要配置TCB块,加载TCB块时启
5、动DMA工作;DMA 长度寄存器为16bit,当DMA传输时,计数值递减;当0时DMA结束;如果启动是长度设置为0,则本次DMA操作的长度为 0 x10000 words.DMA 传输和内核传输可能会同时争抢内部总线,在一定时间内会造成总线暂停;由于内部总线带宽相对外部总线带宽非常高,因此冲突被降低到最小化。DMA 优先级Channel 3Channel 2Channel 0Channel 1Channel 0Channel 3Channel 2Channel 0Channel 3Channel 2Channel 1Channel 1DMA 1 selectedDMA 0 selectedDM
6、A 优先级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通道的优先级为:30轮询:The DMA priority bit separates rotation into two priority sets-high(with bit set)and low.DMA 传输类型TS101允许的DMA传输类型:内存 外存内存 其他 T
7、igerSHARCs的内存和寄存器内存 主机内存 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;DMA 传输类型DMA传输类型可以分成如下几种:内存 外口(Cluster Bus)这类DMA可以进行双向传输,需要设置两个DMA控制块(TCB).发送TCB、接收TCB;Auto DMA 寄存器 内存.只
8、需要设置一个接收 TCB.数据输入端是固定地址的两个寄存器;外设只向一个地址连续写入数据,TS101内部根据TCB设置将寄存器数据写入对应的内存地址;内存或者外存 Link ports.只设置发送TCB;Link ports 内存或者外存.只设置接收TCB;每个Link口分配有两个DMA通道;Link port Link port.只设置接收TCB;Flyby 传输2-D(2维)DMA传输;DMA chaining(链式DMA传输)Host InterfaceSDRAMSRAMI/OTiger SHARCMemTiger SHARCTiger SHARCTiger SHARCDMA 传输类型-
9、外口内存 外口(Cluster Bus)MemMemMemSDRAMSRAMI/OHost InterfaceLink兼兼容容设备设备Link Port connectionsTiger SHARCTiger SHARCLink兼兼容设备容设备MemoryMemoryDMA 传输类型-Link Port内存或者外存 Link portsSDRAMSRAMExternalbus masterHost InterfaceTiger SHARCTiger SHARCTiger SHARCTiger SHARCMemoryDMA 传输类型-Auto DMAAutoDMA transfers 从外总线到
10、内存 Flyby transfers 从外存到外部IO设备;SDRAMSRAMI/OHost InterfaceTiger SHARCLink Port connectionsTiger SHARCTiger SHARCTiger SHARCDMADMA 传输类型-Fly-by链式DMA and 2-Dimensional链式DMA操作使得一个DMA操作结束后,自动启动下一个DMA操作;链式DMA操作由:链表组成,相连的两个DMA链可以是同一个DMA通道也可以是不同的DMA通道。2维DMADMA控制器可以按照2维存储器的方式进行访问,而且每个DMA通道都可以配置成2维DMA;2维DMA需要设置
11、X方向的起始地址、长度和步进,以及Y方向的起始地址、长度和步进。2维DMA通用用于矩阵数据的访问,例如:作矩阵转置处理;对图象数据作处理;DMA控制块TCBTCB:Transmit Control Block:是一个用来控制一个DMA通道工作的寄存器组;每个DMA通道对应1个或2个TCB。TCB的寄存器为带地址映射的寄存器;通过对这些寄存器的编程设置,完成对DMA的操作;每个TCB是连续地址的4个寄存器;访问方式必须是QuadWord访问;外口DMA的TCB:2个DCSx=源地址TCB registersDCDx=目的地址TCB registersx=(e.g.,0,1,2 or 3)Exam
12、ple:DCS0=xr3:0;/external port 0 DMA sourceDCD0=xr7:4;/external port 0 DMA destinationLink Ports和AutoDMA 只有1个TCBDCx=源TCB registersx=413;Example:DC9=xr3:0;/link 1 rx DMATCB DI DMA起始地址寄存器(可能是源地址,也可能是目的地址)DX-X(1维)16bit地址步进量和16bit的传输长度(单位是Word);DY-Y(2维)16bit地址步进量和16bit的传输长度(单位是Word);DP 链指针和DMA控制寄存器TCB内的每
13、个寄存器都不能独立访问,必须4字访问;DMA控制块TCBTCB 寄存器寄存器组组共共128bit,共四个独立的寄存器;,共四个独立的寄存器;31 0DI RegisterDX RegisterDY RegisterDP Register127 9631 0ADDRESS POINTERDMA控制块TCB_DIDI 寄存器:32-bit 地址寄存器 可以是内存地址;外存地址;Link口缓冲寄存器地址DMA控制块TCB_DXDX 寄存器a)16-bit 步进(低16bit)and 16-bit 长度(高位)或者b)16-bit 步进(低16bit)and 16-bit 一次X维的传输长度count
14、X Count X Modify31 16 15 0Y Count Y Modify31 16 15 0DY 寄存器寄存器:只有在只有在2维维DMA的模式下才使用;是的模式下才使用;是Y方向的步方向的步进进和和长长度;度;当当计计数器数器值递值递减至减至0时时,DMA传输传输接收;接收;-Count 表示 32-bit words的数量;-16bit宽,最大支持64KWord的DMA长度;DMA Control Chaining Pointer31 22 21 0DMA-TCBDP 寄存器:-两个部分a)bits 23 31:专用于DMA控制;b)Bits 0-22:专用于链式DMA控制,链表
15、地址;DP寄存器1Bits 0-14:CHPT下一个TCB的首地址的Bit162,Bit1、0为0(四字对齐)Bits 15-16:MS链式TCB表的存储位置,内部存储空间(block0、1、2)的片选,只能在内存;Bits 17 21:CHTG该链的DMA通道;Bits 22:CHEN链式DMA使能;DP寄存器2Bits 23:DRQDMA申请使能(DMAR3:0)Bits 24:INT中断使能:0=不使能,1=使能Bits 25-26:LENDMA单位长度01=normal,10=double word11=quad wordBits 27:2DDMA二维DMA使能Bits 28:PRDM
16、A申请总线优先级0=normal1=highBits 29-31:TYDMA设备类型000 DMA disabled001 I/O link ports010 Internal memory011 Reserved100 External memory101 External I/O device110 Boot EPROM111 ReservedDMA-TCB 寄存器的使用TCB寄存器有三种加载方式:DSP程序将4字对齐的内存或寄存器中的数据协议TCB寄存器组;链式加载TCB:DMA控制器根据每一个TCB中DP寄存器中的Bit014的地址,自动加载下一个链的TCB。外部设备直接写TCB寄存器
17、。一旦向TCB加载正确的参数后,DMA自动开始运行。注意:向TCB的TY域写入000时,会清除该通道的所有状态寄存器位;向一个已经激活的TCB再次写入时,会造成硬件错误中断;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和Au
18、to DMA中必须设置DMA Request项;地址、步进量、长度的设置一定要和LEN设置相对应;DMA 寄存器设置要求 2要求:外DMA的TY设置:状态和控制寄存器DMA的状态和控制寄存器:DSTATDCNTDCNTST(DCNT的设置寄存器)DCNTCL(DCNT的清除寄存器)状态寄存器DSTAT-64-bit寄存器,表示所有DMA通道的状态;DSTAT:不能采用NormalWord访问,必须 Long 或者 Quad Word 访问;DMA状态寄存器的bit定义:Bits 0-2Name:CH0Description000 通道不使能;001正在传输010传输结束011Reserved1
19、00TCB初始化错误101非法的TCB设置110Reserved111DMA地址错误其他13个DMA通道的定义相同:控制寄存器 1 DMA 控制寄存器:DCNT 32bit控制寄存器,每通道1bit;DCNTST用于设置32bit的控制寄存器;DCNTCL用于清零的32bit控制器;在DCNTST中设置一位,可以暂停传输;对DCNTCL中设置一位,可以清楚对暂停的限制;控制寄存器2 控制寄存器ResPA13PA12ResResPA11PA10PA9PA8ResResPA7PA6PA5PA4PA3PA2PA1PA031-18 17 16 15 14 13 12 11 10 9 8 7 6 5 4
20、 3 2 1 0Pause bit for channel#0=Continue transferring data1=Pause channel#data transfer after current word transfer(if started)链式DMA链式DMA允许多个DMA联系进行传输;每个DMA可以使用 不同属性底块;TCB中采CNEN位来使能链式DMA;TCB中DP寄存器的CHPT位,指向存放下一个DMA链的TCB参数的首地址;DMA控制器从该地址,自动加载下一个DMA的参数到TCB。TCB 1Chain PointerTCB 2Chain Pointer链式DMASingl
21、e TCB TransferSingle TCB TransferDual TCB transferDual TCB TransferDual TCB transferSingle TCB Transfer*Single TCB transferDual TCB Transfer*Special setup via core required Only one block transfer of this type can occur without setting up DMA process again链式DMA插入DMA插入:在正在进行链式DMA过程中,插入一个DMA链;基本过程如下:通
22、过 DCNT寄存器暂停当前DMA;将当前TCB中的原来的CHPT设置到要插入的DMA链的TCB中;DSP内核改写当前DMA的TCB,更新其中的CHPT(指向新的DMA链);通过DCNT寄存器恢复当前DMA传输;当前DMA继续传输,结束后启动新的DMA;原来的DMA链(or loop)TCB1 A:新插入的DMA链;TCB 1Chain PointerTCB 2Chain PointerTCB 1Chain PointerTCB 2Chain PointerTCB 1AChain Pointer链式DMA插入DMA链的插入过程示意图DMA 中断每个DMA通道分配有独立的中断向量;使能DMA中断,
23、需要在DCTL寄存器和IMASK寄存器中设置;中断使能后,DMA通道在Count0,并且完成当前传输时,发送中断;此时的Count0必须是由于DMA通道实际传输造成Count值递减所制;内核设置Count为0时(即刚启动了一个64K长的DMA传输),不产生中断;TS101内核锁存DMA通道的中断于ILAT寄存器中;TCB中设置了INT有效,就会在该次传输后产生中断;可以设置链式DMA在中间链的TCB中INT无效,只有最后一个TCB中INT有效,则只在链式DMA结束后才产生一次中断;PART IITS101 的硬件设计参考TS101硬件设计参考主要内容复位时钟电源加载JTAG调试总线连接Link
24、口设计复位电路TS101的复位输入信号:/Reset;复位模式:上电复位;复位逻辑很特殊,一般参用CPLD编程输出;自动加载程序;普通复位;外部输入普通复位模式的Reset信号;自动加载程序;内核复位;设置SQCTL寄存器的SQRST位;只复位内核部分,不复位IOP,不自动加载;时钟电路TS101的时钟输入:SCLK、LCLK;要求两个输入为同源同相时钟;对时钟的Jitter有严格要求:100ps;时钟驱动要注意:一个驱动芯片不要输入两种时钟;驱动与器件之间采用点对点连接;所有设备的连线要尽量等长;电源电路的设计电源输入:IO电源:3.3V数字电源;内核电源:1.2V数字电源;锁相环电源:1.
25、2V模拟电源;电源上电顺序:要求1.2V比3.3V先上电;去耦电容:两种电源都要有较多的去耦电容,0.1uf和10uf两种;模拟电源的滤波:用1.2V数字电源通过滤波电路产生;功耗分析功耗分成两部分:内核功耗:1.2VIdd;IO功耗:3.3VIdd_io;Idd最大值1.546A;Idd典型值:1.513A;64bit总线时,典型电流:0.137A3.3V;典型功耗:1.5131.2 0.1373.3=2.26W加载电路的设计加载方式:(由BMS信号控制)EPROM Boot(BMS0);复位后,DSP自动读取EPROM中数据,加载到DSP内存中;DMA 通道0,默认启动256字的接收DMA
26、;加载有协议控制,256字是加载头,后面的是真正的程序数据,根据握手协议读入DSP内存的特点地址中;Host Boot(BMS1);复位后,DSP的AutoDMA自动启动接收256字的DMA;Host可以写AutoDMA加载DSP的程序;Host也可以通过直接写DSP的内存地址将DSP的数据写入DSP的相应地址中;Link Boot(BMS1)TS101可以通过Link被其他带有Link口的设备加载;TS101的4个Link口都具有加载能力;上电复位后,TS101的4个Link口都默认启动了256字的接收DMA;可以构成Link网络加载;No Boot(BMS1,BM1)DSP上电复位后从外部
27、存储器读取程序指令,并开始允许;JTAG调试接口JTAG接口:一种国际标准的芯片调试接口;可以用于访问DSP的所有内部资源、控制DSP的程序运行等;是调试DSP程序的一种基本手段;ADI的开发系统通过JTAG口与DSP连接,可以在VDSP界面下调试DSP程序;JTAG口可以采用菊花链的形式,通知调试多个DSP设备;总线连接数据总线的连接32bit和64bit的问题;高低32bit分别对应了WRH和WRL信号;地址总线的连接32bit数据总线:地址总线使用A0;64bit数据总线:地址总线不使用TS101的A0,将TS101的A1连接存储(或外设)的A0;SDRAM空间使用A15A0(或者A31A16)的地址,其中最高两位连接SDRAM的Bank0、1;Bug:Page1K时,A15不能用于Bank1;总线连接 所有关键的控制信号线都加上拉电阻;不使用的控制信号也要上拉;多DSP总线连接的时候,必须有唯一一个ID号为0;其他所有DSP的ID号不能重复;单DSP系统,DSP的ID0;Link口设计几个要点:Link信号线要尽量等长;阻抗匹配;两个相连接的Link口的时钟信号要交叉连接;Link驱动的方向控制;下课