您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 公司方案 > DSP芯片集成外设的开发
第9章DSP芯片集成外设的开发1.引言2.中断3.DMA4.时序模块5.接口模块6.基于CSL的外设开发7.小结8.习题与思考题一、引言•开发者可以利用这些片内外设接口方便与各种芯片相连,共同实现特定功能的电路系统。•片内CPU的运行结果只有通过接口和其他器件完成输入输出才有实际意义。•一个完善的系统必须要能够对DSP的集成外设进行正确合理的使用。DSP芯片和外设以及不同的存储空间进行信息传送时,有几种不同的传送方式(1)查询(polling)传送方式(2)中断(interrupt)传送方式(3)DMA传送方式一、引言二、中断利用中断可以实现CPU和外设的同步操作、信号的实时响应和运行故障的快速处理等功能。中断源:引起中断的原因,以及发出中断申请的来源.根据中断源的性质不同,DSP芯片的中断可以分为硬中断和软中断两类.中断分为三种类型1.复位(RESET)中断2.不可屏蔽中断3.可屏蔽中断C54x根据芯片型号不同,有24~27个软件和硬件中断,共分为14个中断优先级,可以实现多任务嵌套。二、中断•检测到有效的中断源信号后,CPU会自动停止当前指令的执行,转而去处理中断服务程序(ISR),这个过程称为中断响应。•CPU根据控制寄存器判断是否执行中断服务程序二、中断中断控制寄存器:•中断标志寄存器(IFR,InterruptFlagRegister)•中断屏蔽寄存器(IMR,InterruptMaskRegister)二、中断中断矢量:•采用中断矢量来确定CPU响应每个中断时程序指针(PC)的跳转地址。•C5000,C6000等系列DSPs芯片都采用了软件可重定位中断矢量形式。•C54x系列的DSP为每个中断提供了一个中断矢量号,并在中断矢量表中提供了4个字的空间用于服务程序的存放。二、中断二、中断编写中断服务程序时应该注意如下几点:1)必须把在中断服务程序中使用到的寄存器值保存到堆栈中(保护现场),返回时以相反的次序恢复这些值(恢复现场)。2)先保护BRC寄存器,后保护ST1;恢复时相反。3)与C语言混合编程,保存AR1、AR6和AR7。4)利用C语言实现中断服务程序,在函数名前使用关键字interrupt。此时中断服务程序将自动保护状态寄存器和辅助寄存器。二、中断三、DMA•为降低CPU的负荷,通常都在DSP片内设计多通道的直接存储器访问(DMA)控制器。•DMA控制器是独立于CPU的设备,一旦正确初始化后,就能独立于CPU工作,在CPU操作的同时实现片内存储器、片内外设以及外围器件间的数据传输。DMA控制器提供了三种传输方式:•1)元素传输只对一个数据进行读/写操作;•2)帧传输将搬移一帧内的所有数据;•3)块传输搬移块内所有帧的数据。三、DMA控制寄存器:•DMSA:DMA子地址寻址寄存器(SubbankAddressRegister)•DMSDI:子地址自增1的DMA子地址数据访问寄存器(SubbankAccessRegisterwithAutoincrement)•DMSDN:不自增1的DMA子地址数据访问寄存器(SubbankAccessRegisterwithoutAutoincrement)三、DMA三、DMADMSADMSDNDMSDIMMR寄存器DMSRCnDMSFCnDMCTRnDMDSTnDMMCRn子地址寄存器•为了访问一个特定的子地址寄存器,首先要向DMSA写入子地址,然后,才可以在物理空间中真正选定所要访问的寄存器DMSDI和DMSDN。此时,对子地址数据寄存器的操作就是对选定的寄存器内容的操作。•由于DMA传输不需要CPU处理,因此在传输前需要提前确定好源地址、目的地址以及各自的修改方式、数据传输的宽度、数量以及传输时机等很多因素,这些因素都有对应的寄存器和控制比特。三、DMA•DMA需占用数据总线。•DSP提供了两个引脚HOLD和HOLDA实现对DMA控制器、CPU的总线仲裁:•外界将DSP芯片的HOLD引脚置为低,DSP芯片响应外部DMA请求,当HOLDA变低时,DSP芯片将外部总线置为高阻状态,将总线控制权交出。•外界将HOLD线变高,总线控制权重新交给DSP芯片。三、DMA四、时序模块1、PLL模块C5000系列的DSP芯片还采用了更加灵活的可编程PLL方式。时钟输入:TMS320DSPX1X220P20PN.CGND输出Vcc晶体振荡器2134•PLL配置:四、时序模块15-121110-3210PLLMULPLLDIVPLLCOUNTPLLON/OFFPLLNDIVPLLSTATUS比特位置比特域作用15-12PLLMULPLL倍频器11PLLDIVPLL分频器10-3PLLCOUNTPLL计数值,用于设置PLL电路状态变化时的过渡时间长度2PLLON/OFFPLL使用/禁止控制位,和PLLNDIV共同控制PLL工作状态1PLLNDIVPLL时钟产生选择控制位,=0时DIV模式,=1时PLL模式0PLLSTATUSPLL状态指示位,=0时DIV模式,=1时PLL模式2、定时模块定时寄存器(TIM):位于数据空间的0024h单元。其中数据进行自减操作。定时周期寄存器(PRD):位于数据空间的0025h单元。每次复位或TINT中断时将内容装入TIM寄存器。定时控制寄存器(TCR):位于数据空间的0026h单元,包含了定时器的控制位和状态位。四、时序模块四、时序模块比特位置比特域说明15-12-保留11Soft与Free位一起确定定时器状态。在HLL调试中若遇到断点,在Free=0时,Soft选择定时器模式。Soft=0,定时器立即停止;Soft=1,计数器减到0后定时器停止。10Free与Soft位一起确定定时器状态。Free=0,选择Soft所确定的定时器模式;Free=1,Soft制定模式无效,定时器运行。9-6PSC定时器预定标计数器。定义片内定时器的数目。当PSC减到0或复位时,PSC内装入TDDR值。5TRB定时器重置。复位片内定时器。4TSS定时器停止状态。停止或者启动片内定时器。复位时,TSS=0启动定时器,TSS=1停止定时器。3-0TDDR定时器降周期因子。用于调整片内定时器自减到0的周期间隔。当PSC自减到0后,PSC内载入TDDR值。四、时序模块11TINTrate(TDDR1)(PRD1)cctuvtTIMER_ini:STM#10h,TCR;停止定时器NOPSTM#2499,PRD;对PRD赋值ORM#23h,TCR;对TDDR赋值,重置定时器NOPNOPANDM#0ffefh,TCR;启动定时器3、等待状态发生器•DSP的指令周期较快,在访问慢速存储器或外设时,为了保证芯片之间时序配合,通常需要插入等待状态。•等待分硬件等待和软件等待两种方式•硬件等待方式较麻烦。现在的DSP芯片一般在内部设有软件设置等待机制。四、时序模块四、时序模块•软件等待状态控制寄存器(SWCR)•软件等待状态寄存器(SWWSR)比特位置比特域复位值功能15XPA0扩展程序地址控制位。XPA与程序空间域(比特5~0)一起决定等待状态的程序空间。14-12I/O1I/O空间。域值0~7对应于0~7个等待状态,作用范围是0000~FFFFh的I/O空间。11-9Data1高端数据空间。域值0~7对应于0~7个等待状态,作用范围是8000~FFFFh的外部数据空间。8-6Data1低端数据空间。域值0~7对应于0~7个等待状态,作用范围是0000~7FFFh的外部数据空间。5-3Program1高端程序空间。域值0~7对应于0~7个等待状态。XPA=0时为x8000~xFFFFh的外部程序空间,XPA=1时不起作用。2-0Program1程序空间。域值0~7对应于0~7个等待状态。XPA=0时为x0000~x7FFFH的外部程序空间,XPA=1时为00000~FFFFFh的外部程序空间。外设接口主要实现如下功能:–数据缓冲–接收和执行CPU命令–中断管理接口的设计是硬件和软件相结合的实现过程。五、接口模块1、多通道缓冲串行口•可以完成标准串口的全双工串行通信,同时还能够支持多种协议下的直接接口。•具有双缓冲数据寄存器,允许连续的数据流,可以实现全双工通信;•支持多种方式的传输接口(包括T1/E1帧协议、AC97兼容设备、SPI设备等),可与工业标准的编/解码器、AICs(模拟接口芯片)以及其他串行A/D、D/A接口;五、接口模块•数据传输时钟可是外部时钟或片内可编程时钟;•帧同步信号和时钟信号收发独立、极性可设,可编程程度高;•帧长度可以在1~128个字间选择,支持传输的数据字长可以是8bit、12bit、16bit、20bit、24bit或32bit;•支持多通道传输,可与多达128个通道进行收发;•内置μ律和A律硬件压扩;•当利用DMA为McBSP服务时,串行口数据读写具有自动缓冲能力。五、接口模块五、接口模块五、接口模块SPSDx复接器SPCR1xSPCR2xRCR1xPCRx0x00000x00010x00020x000E寄存器子地址SPSAx为访问某个指定的子地址寄存器,要将相应的子地址写入SPSAx。五、接口模块10CLKSMCLKSCLKSPCPU时钟CLKSRG÷÷帧脉冲CLKGDVFPERFWIDFSG帧脉冲检测与时钟同步CLKGGSYNCFSRMcBSP时钟产生器示意图a、简单串行接口(SPI):•是一种主从配置的、支持一个主方、一个或多个从方的串行通信协议•一般使用4条信号线:串行移位时钟线(SCK)、主机输入/从机输出线(MISO)、主机输出/从机输入线(MOSI)、低电平有效的使能信号线(SS)。•由主设备时钟信号的出现与否来确定主/从设备间的通信。•McBSP具有时钟停止工作模式(由CLKSTP比特域控制),可以与SPI协议兼容。五、接口模块b、通用I/O口•在两种情况下,串口的引脚(CLKX、FSX、DX、CLKR、FSR、DR以及CLKS)可以作为通用I/O口使用:•McBSP的某部分处于复位状态:此时SPCR寄存器中的(R/X)RST=0;•串口设置为通用I/O口:此时PCR中的(R/X)IOEN=1。五、接口模块2、主机接口(HPI)•主机(也称为上位机)控制着该接口的主控权,通过它直接访问DSP的存储空间和外围设备。DSP作为从机(也称为下位机),向主机开放总线的控制权。五、接口模块(1)HPI存储器(DARAM):用于TMS320C54x与主机间传送数据;(2)HPI地址寄存器(HPIA):由主机对其直接访问,存放当前寻址HPI存储单元的地址;(3)HPI数据锁存器(HPID):由主机对其直接访问,存放当前进行读/写的数据;(4)HPI控制寄存器(HPIC):TMS320C54x和主机都能对其直接访问,用于主处理器与DSP相互握手,实现相互中断请求;(5)HPI控制逻辑:用于处理HPI与主机之间的接口信号。五、接口模块五、接口模块HPI-8方框图五、接口模块HPI-8连线关系示意图复用模式下HPI-16的接口示意图五、接口模块非复用模式下HPI-16的接口示意图五、接口模块3、外部存储器接口(EMIF)•是外部存储器和DSP芯片内部其他单元间的接口。五、接口模块4、通用I/O口•除了XF和BIO两个通用I/O引脚外,一些C54xDSP芯片的多通道缓冲串口(McBSP)和主机接口(HPI)的一些引脚也可以作为通用I/O引脚。五、接口模块•为免除用户编写配置和控制片上外设所必需的定义和代码,DSP芯片开发商通常会为用户提供一组标准的方法用于访问和控制片上外设。•TI公司在CCS中嵌入了芯片支持库(ChipSupportLibrary,CSL)。•主要用于配置、控制和管理DSP片上外设。•分别为C6000和C5000系列DSP设计。六、基于CSL的外设开发已实现的模块:–CSL:顶层模块;–DAT:和器件无关的数据拷贝/填充模块;–CHIP:和器件相关的定义模块;–DMA:直接存储器访问模块;–EBUS:外部存储器总线接口模块;
本文标题:DSP芯片集成外设的开发
链接地址:https://www.777doc.com/doc-3785704 .html