会计学1DSP控制器总体结构控制器总体结构第一页,编辑于星期六:六点 四十一分22.6 时钟与低功耗模式 2.7 看门狗定时器2.8 32位 CPU定时器2.9 通用输入/输出 2.10 片内外设寄存器2.11 外设中断扩展第1页/共87页第二页,编辑于星期六:六点 四十一分3 下图分别为TMS320F2812的176引脚PGF LQFP(Low-Profile Quad Flatpack)封装图和TMS320F2810的128引脚PBK LQFP封装图 第2页/共87页第三页,编辑于星期六:六点 四十一分4F2812 DSP的引脚第3页/共87页第四页,编辑于星期六:六点 四十一分5F2810 DSP的引脚第4页/共87页第五页,编辑于星期六:六点 四十一分6引脚说明 (见教材表格)XINTF (External Interface) 信号: 地址(19位)/数据(16位)及存储器控制信号引脚JTAG仿真测试及其他(振荡器、复位)引脚A/D转换器引脚电源引脚GPIOA、GPIOD或( EVA)引脚, GPIO 56个引脚GPIOB 、GPIOD或( EVB事件管理器B)引脚通信模块(SPI/SCI/CAN/McBSP)或GPIOF、GPIOG引脚。
外部中断或GPIOE 引脚通用数字I/O GPIOF或XF输出引脚第5页/共87页第六页,编辑于星期六:六点 四十一分7XINTF 信号: 地址/数据及存储器控制信号引脚 XA18XA0: 19根外部地址线 XD15XD0: 16根外部数据线 :微处理器/微计算机模式选择 :外部保持请求 :外部保持应答 :XINTF 的Zone0和 Zone1选择 :XINTF 的Zone2选择 :XINTF 的Zone6和 Zone7选择 :写使能 :读使能 :读/写选通 XREADY :准备好信号 MCXMP/XHOLDXHOLDAXZCS0AND1XZCS2XZCS6AND7XWEXRDWXR/第6页/共87页第七页,编辑于星期六:六点 四十一分8 TI还推出了F2808、F2806、F2801等型号,其内部结构与F2812类似,但引脚数、时钟频率、内部资源有所降低,以降低成本 F28x DSP的硬件资源第7页/共87页第八页,编辑于星期六:六点 四十一分9F281x DSP的功能框图第8页/共87页第九页,编辑于星期六:六点 四十一分102812 DSP控制器的结构CPU片内存储器片内外设 (片内接口电路)第9页/共87页第十页,编辑于星期六:六点 四十一分。
11Fast program execution out of both RAM and Flash memoryl100-120 MIPS with Flash Acceleration Technologyl150 MIPS out of RAM for time-critical code Control PeripheralsMemory Sub-SystemEvent ManagersUltra-Fast 12-bit ADCl12.5 MSPS throughputlDual sample&holds enable simultaneous samplinglAuto Sequencer, up to 16 conversions w/o CPUControl PortsMultiple standard communication ports provide simple interfaces to other componentsCommunications Portsl150MIPS performancelSingle cycle 32 x32-bit MAC (or dual 16 x16 MAC)lVery Fast Interrupt ResponselSingle cycle read-modified-writelF24x/LF240 x Source Code Compatible High-Performance CPU (C28xTM DSP Core) Memory Bus 128Kw Flash+ 2Kw OTP4Kw Boot ROM18Kw RAMCode securityXINTF32-bitRegister FileReal-TimeJTAG32-bitTimers (3)150 MIPs C28xTM 32-bit DSP32x32-bitMultiplierRMWAtomicALU Interrupt ManagementEvent Mgr AEvent Mgr B12-Bit ADCWatchdogGPIOMcBSPCAN 2.0BSCI-UART ASCI-UART BSPIPeripheral BusTMS320F2812 / TMS320F2810Most Powerful - Most Integrated Dual Function Digital Signal Controller第10页/共87页第十一页,编辑于星期六:六点 四十一分。
12F281x DSP的功能框图第11页/共87页第十二页,编辑于星期六:六点 四十一分13Quarter of a Megabyte of on-chip Flash Memory128-bit security protects software investmentFast program execution out of bothRAM and Flash memoryl100-120 MIPS with Flash Acceleration Technologyl150 MIPS out of RAM for time-critical codeExternal memory interface (XINTF) supports systems with larger memory models (up to 1MW address reach)Memory Sub-SystemUp to 128K x 16 Flashl (8 x 4K and 6 x 16K Sectors)Memory Bus 128Kw Flash+ 2Kw OTP4Kw Boot ROM18Kw RAMCode securityXINTF32-bitRegister FileReal-TimeJTAG32-bitTimers (3)C28xTM 32-bit DSP32x32-bitMultiplierRMWAtomicALU Interrupt ManagementEvent Mgr AEvent Mgr B12-Bit ADCWatchdogGPIOMcBSPCAN 2.0BSCI-UART ASCI-UART BSPIPeripheral BusOn-Chip Flash Memory第12页/共87页第十三页,编辑于星期六:六点 四十一分。
14 2812 DSP的存储器映射第13页/共87页第十四页,编辑于星期六:六点 四十一分15 2810 DSP的存储器映射第14页/共87页第十五页,编辑于星期六:六点 四十一分16存储器地址空间281xDSP 具有1M存储空间:包括数据, 程序, I/O空间片内存储器:SARAM: M0 (00 0000-00 03FFH) ,1KWSARAM: M1(00 0400-00 07FFH), 1KW片内外设:PF0, ( 00 0800-00 0CFFH) , 2KW中断矢量PIE Vector-RAM: D00-DFFH ,256W 片内外设:PF1/2, ( 00 6000-00 7FFFH) ,8KW SARAM: L0 (00 8000-00 8FFFH), 4KW, 安全SARAM: L1 (00 9000-00 9FFFH) ,4KW, 安全OTP: (3D 7800-3D 7BFFH) 1KW, 安全 Flash : (3D 8000-3F 7FFFH), 128KW, 安全SARAM: H0(3F 8000-3F BFFFH) ,8KWBoot ROM: (3F F000-3F FFFFH), 4KW第15页/共87页第十六页,编辑于星期六:六点 四十一分。
17外部存储器及I/O扩展 XINTF Zone0/1, Zone2, Zone6/7, 1M+32K通过数据线 XD0-XD15、地址线 XA0-XA18及控制信号线 扩展 不论是2812还是2810,“低64K”的存储器地址范围映射到24x的数据空间;“高64K”的存储器地址范围映射到24x的程序空间24x兼容的代码只能在“高64K”存储器中执行,因此只有最顶部的32K(0 x3F 00000 x3F 7FFF)的Flash/ROM和H0 SARAM可以用来运行24x兼容的代码第16页/共87页第十七页,编辑于星期六:六点 四十一分18 典型的DSP应用系统多采用最小系统,即系统由一个F2810 DSP芯片加上相应的电源、时钟、复位、JTAG电路及应用电路构成,这种系统也称为单片系统方案(Single Chip Solution)在程序调试过程中,可以先将程序放入到H0 SARAM、L0 SRAM和L1 SARAM中运行仿真调试,对于程序长度小于16K时比较方便调试完成后,再将程序放入Flash存储器中运行 对于较复杂的DSP应用系统,程序可能较长或需要扩展一些外部存储器或外部接口如D/A转换芯片、LCD驱动等,这时需要采用外部接口(XINTF)。
外部存储器或接口访问速度等可能差别较大,XINTF提供了时序延长或加等待机制来确保通过软件配置实现对这些存储器或外设的正确接口 第17页/共87页第十八页,编辑于星期六:六点 四十一分19 2812 DSP外部接口分区 XINTF第18页/共87页第十九页,编辑于星期六:六点 四十一分20 时钟XTIMCLK和SYSCLKOUT的关系示意图第19页/共87页第二十页,编辑于星期六:六点 四十一分21 XINTF对外访问时序被分成三个阶段,即起始(Lead)阶段、激活(Active)阶段和收尾(Trail)阶段XINTF对不同的地址区域进行访问时,可以通过对应各区的XTIMING寄存器对访问时序加等待状态进行延时,等待状态可配置为若干个XTIMCLK的周期数 对访问时序进行配置依赖于F2812的工作频率SYSCLKOUT和XINTF的定时时钟XTIMCLK 第20页/共87页第二十一页,编辑于星期六:六点 四十一分22XINTF 时序寄存器XTIMINGx (x=0,1,2,6,7):XINTF 时序寄存器XTIMINGx用来配置建立/保持和等待时间Bit31-232221-1817-161514 10名称名称ReservedX2TIMINGReservedXSIZEREADYMODEXWRTAILXINTF 配置寄存器XINTCNF2。
XINTF 的Bank寄存器XBANKXINTF 寄存器初始化程序第21页/共87页第二十二页,编辑于星期六:六点 四十一分23 XINTF的寄存器 第22页/共87页第二十三页,编辑于星期六:六点 四十一分24Flash存储器的特点Flash和OTP的功耗模式Flash和OTP的性能Flash流水线模式Flash和OTP寄存器第23页/共87页第二十四页,编辑于星期六:六点 四十一分25多个分区有代码安全保护有低功耗模式可根据CPU频率调整的等待状态可提高性能的流水线模式Flash存储器的特点第24页/共87页第二十五页,编辑于星期六:六点 四十一分26Flash和OTP的功耗模式Sleep Mode.Standby Mode.Active Mode.第25页/共87页第二十六页,编辑于星期六:六点 四十一分27Flash和OTP的性能32位取指令16位或32位数据空间读操作16位程序空间读操作Flash存储器随机存取Flash存储器页面存取OTP操作第26页/共87页第二十七页,编辑于星期六:六点 四十一分28Flash和OTP配置寄存器 第27页/共87页第二十八页,编辑于星期六:六点 四十一分。
29 代码安全模块CSM (Code Security Module) 可以防止未被授权的人看到片内存储器的内容,防止对受保护的代码进行复制和反向工程代码安全模块的功能CSM对其他片内资源的影响代码安全功能的使用第28页/共87页第二十九页,编辑于星期六:六点 四十一分30受CSM影响的片内资源地址地址块块0 x80000 x8FFFL0 SARAM (4KW)0 x90000 x9FFFL1 SARAM (4KW)0 x3D 78000 x3D 7BFFOTP (1KW)0 x3D 80000 x3F 7FFFFlash (128/64KW)第29页/共87页第三十页,编辑于星期六:六点 四十一分31CSM的状态和控制寄存器CSMCRBit1514-76-10名称名称FORCESECReservedReservedSECURE复位值复位值W-1R-0R-10111R-1D15, FORCESEC位, 写1可以清除KEY寄存器,并使DSP安全D0, SECURE,只读位,反映了DSP目前的状态 1 DSP安全,CSM锁定 0 DSP不安全,CSM被解锁第30页/共87页第三十一页,编辑于星期六:六点 四十一分。
32密码匹配流程PMF第31页/共87页第三十二页,编辑于星期六:六点 四十一分33解除DSP对L0和L1的安全保护的C语言程序int i5, i;volatile int *PWL;/ PWL指针PWL=&CsmPwl.PSWD0;/指向PSWD0处,即0 x3F 7FF8处for (i5=0; i58; i5+) i=*PWL+;/进行8次虚读/如果PWL=全1,以下代码对未保护的CSM是不必要的/向关键字寄存器写密码/asm (“ EALLOW”); /密码寄存器受EALLOW保护/CsmReg.KEY0= PASSWORD0; /CsmReg.KEY7= PASSWORD7; / asm (“ EDIS”); 第32页/共87页第三十三页,编辑于星期六:六点 四十一分34重新保护的C代码 volatile int *PWL=0 x0AE0;/CSM寄存器文件, 设置FORCESEC位asm(“ EALLOW”);/CSMSCR寄存器受EALLOW保护*PWL=0 x8000;asm(“ EDIS”);第33页/共87页第三十四页,编辑于星期六:六点 四十一分35 不同外设的时钟和复位电路 系统时钟SYSCLKOUT即输入时钟CLKIN1. 时钟第34页/共87页第三十五页,编辑于星期六:六点 四十一分。
36外设时钟控制寄存器PCLKCRD15,D13, D9, D7-4 Reserved位D14 ECANENCLK , 若设为1,则使能CAN外设中的系统时钟SYSCLKOUT 否则禁止D12 MCBSPENCLK , 若设为1,则使能McBSP外设中的低速时钟LSPCLK D11 SCIBENCLK , 若设为1,则使能SCI-B外设中的低速时钟LSPCLK D10 SCIAENCLK , 若设为1,则使能SCI-A外设中的低速时钟LSPCLK D8 SPIBENCLK , 若设为1,则使能SPI外设中的低速时钟LSPCLK D3 ADCENCLK , 若设为1,则使能ADC外设中的高速时钟HSPCLK D2 Reserved位D1 EVBENCLK , 若设为1,则使能EVB外设中的高速时钟HSPCLK D0 EVAENCLK , 若设为1,则使能EVA外设中的高速时钟HSPCLK 第35页/共87页第三十六页,编辑于星期六:六点 四十一分37系统控制与外设状态寄存器 SCSRD15-3: ReservedD2: WDINTS , 看门狗WD中断状态位D1: WDENINT,看门狗WD中断使能位。
如果设为1,则WD复位WDRST输出信号禁止,看门狗WD中断使能D0:WD OVERRIDE, WD保护位该位是个只能清除的位,复位后=1通过向该位写1对其清0为0保护WD,防止WD被软件禁止第36页/共87页第三十七页,编辑于星期六:六点 四十一分38低速外设时钟定标寄存器LOSPCP若HSPCP不为0,则HSPCLK=SYSCLKOUT/(2* HISPCP20 ) 复位时,默认值001, HSPCLK=SYSCLKOUT/2若HSPCP=0,则HSPCLK=SYSCLKOUT15-32-0ReservedHSPCLK高速外设时钟定标寄存器HISPCP若LOSPCP不为0,则LSPCLK=SYSCLKOUT/(2* LOSPCP20 ) 复位时,默认值010, LSPCLK=SYSCLKOUT/4若HSPCP=0,则LSPCLK=SYSCLKOUT15-32-0ReservedLSPCLK第37页/共87页第三十八页,编辑于星期六:六点 四十一分39时钟电路振荡器OSC和锁相环PLL模块2.振荡器和锁相环第38页/共87页第三十九页,编辑于星期六:六点 四十一分40若DIV=0(复位值),则CLKIN=OSCCLK/2。
若DIV=00011010,则CLKIN=OSCCLK*DIV/215-43-0ReservedDIV锁相环倍频寄存器PLLCR第39页/共87页第四十页,编辑于星期六:六点 四十一分41void InitSysCtrl(void) / 系统初始化子程序 EALLOW; /#define EALLOW asm (“ EALLOW”) 宏定义 SysCtrlRegs.PLLCR=0 x000A;/初始化锁相环, OSCCLK=30MHz/ DIV=0 x0A, CLKIN=30MHz*10/2=150 MHzasm(“ NOP”);asm(“ NOP”);for (i=0; i3000; i+) ; /延时,等待锁相环稳定 使能EVA使能EVB使能SCI_A不用的外设不使能,/以降低功耗使能ADCEDIS; /#define EDIS asm (“ EDIS”) 宏定义 时钟模块和锁相环初始化C语言编程第40页/共87页第四十一页,编辑于星期六:六点 四十一分42除正常(Normal)工作模式外,F281x有3种低功耗模式: IDLE(空闲)模式HALT(停止)模式STANDBY(备用)模式低功耗模式控制寄存器0: LPMCR0低功耗模式控制寄存器1: LPMCR1第41页/共87页第四十二页,编辑于星期六:六点 四十一分。
43F281x 低功耗模式第42页/共87页第四十三页,编辑于星期六:六点 四十一分44281x DSP内置了一个看门狗定时器(WDT), 用来监视DSP的运行状况当系统进入不可预知的状态而造成“死机”时,WD将产生一个复位操作,从而使DSP进入一个已知的起始位置重新运转8位WD计数寄存器: WDCNTR WD复位钥匙寄存器: WDKEYWD定时器控制寄存器: WDCR第43页/共87页第四十四页,编辑于星期六:六点 四十一分45看门狗(Watchdog)模块(OSCCLK=XCLKIN)第44页/共87页第四十五页,编辑于星期六:六点 四十一分468位WD计数寄存器: WDCNTR WD复位钥匙寄存器: WDKEYWDKEY: 如果先写入0 x55,在写入0 xAA就会使WDCNTR清零写入任何其他数值则马上使DSP复位读操作返回的是WDCR寄存器的值 第45页/共87页第四十六页,编辑于星期六:六点 四十一分47WD定时器控制寄存器: WDCR位7 WDFLAG: 看门狗复位状态标志位如果为1,表示看门狗复位;为0,表示是外部复位或上电复位该位写1清除,否则状态一直保持位6 WDDIS: 向该位写1,禁止看门狗模块; 写0,使能看门狗模块。
复位值为0,看门狗模块使能只有在SCSR寄存器中的WDOVERRIDE位设为1后才能修改该位位53 WDCHK:任何时候写该寄存器,用户都必须向这些位写入101写入任何其他数值都会引起复位(如果看门狗使能)位20 WDPS:这些位用来配置看门狗时钟WDCLK第46页/共87页第四十七页,编辑于星期六:六点 四十一分48位20 WDPS:这些位用来配置看门狗时钟WDCLK000WDCLK=OSCCLK/512/1001WDCLK=OSCCLK/512/1010WDCLK=OSCCLK/512/2011WDCLK=OSCCLK/512/4100WDCLK=OSCCLK/512/8101WDCLK=OSCCLK/512/16110WDCLK=OSCCLK/512/32111WDCLK=OSCCLK/512/64,OSCCLK为振荡器频率第47页/共87页第四十八页,编辑于星期六:六点 四十一分49禁止看门狗定时器C语言程序EALLOW; /#define EALLOW asm (“ EALLOW”) 宏定义SysCtrlRegs.WDCR=0 x0068; /屏蔽看门狗EDIS; /#define EDIS asm (“EDIS”) 宏定义InitSysCtrl( ) / 系统初始化子程序使用看门狗定时器的C语言程序段。
EALLOW; /宏定义#define EALLOW asm (“ EALLOW”),解除保护SysCtrlRegs.WDKEY=0 x55;SysCtrlRegs.WDKEY=0 xAA; /周期性写入0 x55,0 xAA,使WDCNTR清零EDIS; /宏定义#define EDIS asm (“EDIS”),设置保护第48页/共87页第四十九页,编辑于星期六:六点 四十一分50CPU定时器 F281x 与240 x相比,增加了三个32位CPU定时器0/1/2 CPU定时器1和2保留给实时操作系统(RTOS), 只有CPU定时器0留给用户使用第49页/共87页第五十页,编辑于星期六:六点 四十一分51CPU定时器中断信号和输出信号第50页/共87页第五十一页,编辑于星期六:六点 四十一分521. 数字并行I/O端口概述 2812 DSP有56个通用双向的数字I/O(GPIO, General Purpose I/O)引脚,其中大多数都是基本功能和通用I/O复用引脚 通用I/O复用寄存器可以设置281x的部分引脚功能这些因脚可以通过GPxMUX寄存器分别设置成外设I/O端口或通用数字I/O端口,其中x代表不同的端口(A、B、D、E、F和G)。
第51页/共87页第五十二页,编辑于星期六:六点 四十一分532. 通用I/O的多路选择引脚的功能可以通过如下的16位控制寄存器设置:I/O复用控制寄存器也称为多路选择寄存器(GPxMUX, x=A,B,D,E,F,G): 用来选择I/O端口作为基本片内外设功能或通用I/O功能1:基本片内外设功能0:通用I/O功能方向控制寄存器(GPxDIR):用来选择通用I/O的数据方向1:输出方式;0:输入方式输入限制(即输入尖脉冲滤波)控制寄存器GPyQUAL, y=A,B,D,EI/O复用控制寄存器第52页/共87页第五十三页,编辑于星期六:六点 四十一分54 如果配置为通用数字I/O端口模式,则寄存器GPxSET可以设置各个I/O信号(置1),寄存器GPxCLEAR可以清除各个I/O信号(清0),寄存器GPxTOGGLE可以翻转各个I/O信号,数据寄存器GPxDAT可以读写各个I/O信号 第53页/共87页第五十四页,编辑于星期六:六点 四十一分55GPIO工作模式框图第54页/共87页第五十五页,编辑于星期六:六点 四十一分56通过输入限定的方法消除噪声输入尖脉冲滤波时钟周期数第55页/共87页第五十六页,编辑于星期六:六点 四十一分。
573. 数字I/O端口寄存器 每个通用I/O引脚受复用控制(MUX)、方向、数据、设置、清除和翻转寄存器的控制I/O复用控制寄存器(GPxMUX, x=A,B,D,E,F,G): 用来选择I/O端口作为基本片内外设功能或通用I/O功能即多路选择1:基本片内外设功能方向控制寄存器(GPxDIR):用来选择一般I/O的数据方向 1:输出方式;0:输入方式数据寄存器GPxDAT 用来读写数据输入限制控制寄存器GPyQUAL, y=A,B,D,E第56页/共87页第五十七页,编辑于星期六:六点 四十一分58GPxSET寄存器 每个I/O口有一个设置寄存器,只能写如果引脚配置成输出,则向寄存器中写1可以使输出为1,写0没有影响 GPxCLEAR寄存器 每个I/O口有一个清0寄存器,只能写如果引脚配置成输出,则向寄存器中写1可以使输出清0,写0没有影响 GPxTOGGLE寄存器 每个I/O口有一个翻转寄存器,只能写如果引脚配置成输出,则向寄存器中写1,可以使输出发生翻转,即原来为1则变为0,原来为0则变为1,写0没有影响 第57页/共87页第五十八页,编辑于星期六:六点 四十一分59GPIO初始化C语言程序实例。
include “DSP281x_Device.h” /包含片内外设寄存器头文件 void InitGPIO(void) / GPIO初始化子程序asm (“ EALLOW”) ;/解除写保护 方向, GPIOA12,11,7为输出 asm (“ EDIS”) ; /恢复写保护 第58页/共87页第五十九页,编辑于星期六:六点 四十一分601.外设寄存器空间DSP控制器片内外设的功能是通过片内外设寄存器实现的这些寄存器被安排在3个数据存储器地址空间,分别是:(1) 外设帧0(Peripheral Frame 0, PF0)这些外设寄存器直接映射到CPU存储器总线,支持16位和32位访问2) 外设帧1(PF1)这些外设寄存器映射到32位外设总线,支持16位和32位访问,所有32位操作对齐到偶数地址边界3) 外设帧2(PF2)这些外设寄存器映射到16位外设总线,只允许16位访问,32位操作被忽略 第59页/共87页第六十页,编辑于星期六:六点 四十一分61外设帧0寄存器第60页/共87页第六十一页,编辑于星期六:六点 四十一分62外设帧1寄存器第61页/共87页第六十二页,编辑于星期六:六点 四十一分。
63外设帧2寄存器第62页/共87页第六十三页,编辑于星期六:六点 四十一分642. 受EALLOW保护的寄存器 281x中有许多外设控制寄存器受EALLOW保护,即CPU不能写CPU状态寄存器ST1的EALLOW位(ST1.6)指明了寄存器的保护状态 受EALLOW保护的寄存器有:DSP仿真寄存器、Flash寄存器、CSM寄存器、PIE向量表、系统控制寄存器、GPIO MUX寄存器、特定的eCAN寄存器 第63页/共87页第六十四页,编辑于星期六:六点 四十一分65 外设中断扩展模块PIE (Peripheral Interrupt Expansion)将高达96个中断源每8个一组,共12个中断信号送入CPU(INT1INT12)1. PIE控制器 F281x CPU支持一个不可屏蔽中断和16个可屏蔽中断 (INT1INT14,CPU实时操作系统中断RTOSINT, CPU数据进出中断DLOGINT) 281x有许多外设,每个外设都可以产生一个或多个中断请求,需要一种集中外设所有中断的控制器PIE来裁定从不同中断源来的中断请求 第64页/共87页第六十五页,编辑于星期六:六点 四十一分。
66Multiplexing of Interrupts Using the PIE Block采用PIE模块的外设中断信号多路传送第65页/共87页第六十六页,编辑于星期六:六点 四十一分67(1)外设级 一旦外设产生中断事件,对应中断标志寄存器中的中断标志位就置1如果对应的中断使能位设为1,则外设的中断请求信号INTx.y(x=112, y=18),可以送到PIE控制器2)PIE级 PIE部分的每一个中断都有一个中断标志位PIEIFRx.y和一个中断使能位PIEIERx.y对每个CPU中断组INT1INT12都有一个应答位PIEACKx3)CPU级 一旦中断请求送入CPU后,CPU级的中断标志寄存器IFR中的中断标志位就置1如果此时CPU中断使能寄存器IER或仿真中断使能寄存器DBGIER中的相应位为1,且全局中断屏蔽位INTM (ST1.0)为0,则CPU就进入中断服务程序,响应中断中断响应可以分成下面三个层次:第66页/共87页第六十七页,编辑于星期六:六点 四十一分68典型的PIE/CPU中断响应过程第67页/共87页第六十八页,编辑于星期六:六点 四十一分69DSP内核中断: INT1-INT12。
每个外设中断连接到内核中断支持软件中断与硬件中断 软件中断是由指令INTR 、TRAP 、NMI请求的中断硬件中断由硬件引起外部中断(由外部中断引脚引起)与内部中断(由片内外设动作事件引起)可屏蔽中断(都是硬件中断,可以用指令屏蔽或允许)与不可屏蔽中断(包括所有软件中断和硬件复位中断RS)第68页/共87页第六十九页,编辑于星期六:六点 四十一分702. 中断矢量表映射 在C28X系列DSP中,中断矢量表可以映射到5个不同的区间:M1 SARAM, M0 SARAM, BROM, XINTF Zone 7块,PIE矢量块但在F2812/F2810中,只有PIE矢量表可以使用 复位后PIE矢量表是空的,初始化程序应将矢量表从Flash中复制到PIE矢量表中来,然后使能PIE矢量表,即令ENPIE=1, 此后中断矢量从PIE矢量表中取地址 PIE中断矢量表见教材第69页/共87页第七十页,编辑于星期六:六点 四十一分71 PIE中断矢量表映射第70页/共87页第七十一页,编辑于星期六:六点 四十一分723. 中断源中断源第71页/共87页第七十二页,编辑于星期六:六点 四十一分73 片内外设中断与外部引脚中断XINT1和XINT2全部连接到了PIE中,共组成了12个中断组 。
第72页/共87页第七十三页,编辑于星期六:六点 四十一分744. PIE配置和控制寄存器PIECRL PIE控制寄存器PIEACKPIE应答寄存器PIEIERx (x=112) INTx组使能寄存器PIEIFRx (x=112) INTx组标志寄存器第73页/共87页第七十四页,编辑于星期六:六点 四十一分75PIE控制寄存器PIECRLD15-1 ,PIEVECT, 表示从矢量表中取出的矢量地址D0,ENPIE,使能矢量获取为1时,使能PIE应答寄存器PIEACKD11-0 ,PIEACK, 写入1到对应的中断位可以清除该位,清除后当该组的中断申请到来时,允许PIE向CPU申请中断第74页/共87页第七十五页,编辑于星期六:六点 四十一分76PIE中断标志寄存器PIEIFRx, x=112D70 ,INTx.8 INTx.1 , 表示中断是否激活类似CPU中断标志位当一个中断激活时,相应位置1第75页/共87页第七十六页,编辑于星期六:六点 四十一分77D70 ,INTx.8 INTx.1 , 表示中断使能类似CPU中断使能位为1时,使能PIE中断使能寄存器PIEIERx, x=112第76页/共87页第七十七页,编辑于星期六:六点 四十一分。
78 D15: RTOSINT D14: DLOGINT flag, D14=1 有中断申请向该位写1,可清除中断请求 D13-D0: 为INT14-INT1中断申请标志CPU中断标志寄存器IFR (Interrupt Flag Register) 地址0006H第77页/共87页第七十八页,编辑于星期六:六点 四十一分79CPU中断使能寄存器IER ( Interrupt Enable Register) 地址0004H D15: RTOSINT D14: DLOGINT mask, D14=1 , 使能中断D14=0,屏蔽 中断请求 D13-D0: 为INT14-INT1中断屏蔽位即使能位第78页/共87页第七十九页,编辑于星期六:六点 四十一分80CPU中断仿真使能寄存器DBGIER ( Debug ER) 地址0004H, DBGIER的16个位代表的中断与IER一样 仿真中断使能寄存器DBGIER只有在CPU处于实时仿真模式中暂停时才有效 第79页/共87页第八十页,编辑于星期六:六点 四十一分815. 外部中断控制寄存器 F2812支持3个外部可屏蔽中断XINT1、XINT2和XINT13。
XINT13与不可屏蔽中断XNMI公用一个引脚外部中断1控制寄存器XINT1CR外部中断2控制寄存器XINT2CR外部不可屏蔽中断控制寄存器 XNMICR外部中断1计数寄存器XINT1CTR外部中断2计数寄存器XINT2CTR外部不可屏蔽中断计数寄存器NMICTR第80页/共87页第八十一页,编辑于星期六:六点 四十一分82外部中断1控制寄存器XINT1CRD2, Polarity, 极性,为1时,表示引脚输入信号的下降沿产生中断为0时,信号的上升沿产生中断D0, Enable, 使能,为1时,表示允许INT1中断第81页/共87页第八十二页,编辑于星期六:六点 四十一分83外部不可屏蔽中断控制寄存器 XNMICRD2, Polarity, 极性,为1时,表示引脚输入信号的下降沿产生中断D1,Select, 选择,为0时,表示CPU定时器连接到INT13,否则,NMI连接到INT13D0, Enable, 使能,为1时,表示允许INT1中断第82页/共87页第八十三页,编辑于星期六:六点 四十一分84外部中断1计数寄存器XINT1CTRD150, INTCTR, 16位自由计数的增计数器,时钟频率为SYSCLKOUT。
对于每一个外部中断,有一个16位计数器,每当检测到中断沿时,就复位到0,可以用于精确记录中断发生的时刻第83页/共87页第八十四页,编辑于星期六:六点 四十一分85PIE控制寄存器初始化C语言程序实例include “DSP281x_Device.h”void InitPieCtrl(void) / 系统PIE子程序禁止PIE清除PIEIER寄存器清除PIEIFR寄存器允许PIE中断写1清0 第84页/共87页第八十五页,编辑于星期六:六点 四十一分86MCXMP/XRSXRD1. 简述2812 DSP引脚可以分为哪几类引脚中的 、 、 有什么作用?2. 简述2812 DSP的内部结构主要部分的功能3. 简述2812 DSP 的片内存储器组成(包括地址与用途)4. 存储器扩展外部接口XINTF的作用是什么?5. 如何使用DSP片内Flash和OTP存储器?6. 代码安全模块CSM的作用是什么?7. 如何由外部晶振或外部时钟频率确定CPU时钟频率?思考题与习题第85页/共87页第八十六页,编辑于星期六:六点 四十一分878.什么是DSP的低功耗模式?9.如何使用看门狗定时器?10. 281x DSP有哪些32位CPU定时器?如何使用?11. 281x DSP的通用I/O接口有哪些引脚?有哪些功能?如何使用?12. 片内外设寄存器的地址是如何安排的?如何访问?13. 281x DSP的中断是如何组织的?有哪些中断源?14. 响应中断后,如何找到中断入口地址?15. DSP复位后从哪里开始执行程序?第86页/共87页第八十七页,编辑于星期六:六点 四十一分。