第二章TMS320F281xDSP控制器的总体结构_第1页
第二章TMS320F281xDSP控制器的总体结构_第2页
第二章TMS320F281xDSP控制器的总体结构_第3页
第二章TMS320F281xDSP控制器的总体结构_第4页
第二章TMS320F281xDSP控制器的总体结构_第5页
已阅读5页,还剩61页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第二章第二章 F281xDSP控制器的结构控制器的结构、性能、资源、性能、资源 本章主要内容:本章主要内容: 2.1 DSP的性能指标的性能指标 2.2 DSP芯片引脚及其功能芯片引脚及其功能 2.3 DSP片内硬件资源片内硬件资源 2.4 DSP片内片内FLASH和和OTP存储器存储器 2.5 时钟与系统控制时钟与系统控制 2.6 32位位CPU定时器定时器 2.7 通用输入通用输入/输出输出GPIO 2.8 外设中断扩展外设中断扩展PIE 2.9 中央处理器单元中央处理器单元2.1 TMS320F2812的性能指标的性能指标 F2812的主要特点:的主要特点: 采用高性能的静态采用高性能的

2、静态CMOS技术,时钟频率可达技术,时钟频率可达150MHz;核心电压:;核心电压:1.8V;I/O口电压和口电压和Flash编编程电压:程电压:3.3V 32位位CPU,可实现,可实现1616位和位和3232位乘法操作,位乘法操作,哈佛总线结构,寻址程序空间可达哈佛总线结构,寻址程序空间可达4MB,寻址数,寻址数据空间可达据空间可达4GB 可向下兼容可向下兼容TMS320F24X/LF240X代码代码 采用采用PLL来控制系统各模块所需频率来控制系统各模块所需频率 3个个32位的位的CPU定时器和适合电机控制的事件定时器和适合电机控制的事件管理模块管理模块EVA和和EVB 很强的外围通信功能

3、,包括同步串行口很强的外围通信功能,包括同步串行口SPI,通,通用异步串行口用异步串行口SCI,增强的,增强的eCAN和多通道缓存串和多通道缓存串行口行口MCBSP 16个通道、个通道、12位精度的位精度的A/D转换器转换器 56个多路通用输入个多路通用输入/输出输出(GPIO)引脚等等引脚等等2.1 TMS320F2812的性能指标特特 征征F2810F2812指令周期(指令周期(150MHz)6.67ns6.67nsSRAM(16位位/字)字)18K18K3.3V片内片内Flash(16位位/字)字)64K128K片内片内Flash/SRAM的密钥的密钥有有有有Boot ROM有有有有掩膜

4、掩膜ROM有有有有外部存储器接口外部存储器接口无无有有事件管理器事件管理器A和和B(EVA和和EVB)EVA、EVBEVA、EVB *通用定时器通用定时器44 *比较寄存器比较寄存器/脉宽调制脉宽调制1616 *捕获捕获/正交解码脉冲电路正交解码脉冲电路6/26/2看门狗定时器看门狗定时器有有有有12位的位的ADC有有有有 *通道数通道数1616F2810F2810和和F2812F2812的硬件特征(的硬件特征(1 1)F2810F2810和和F2812F2812的硬件特征(的硬件特征(2 2)特特 征征F2810F281232位的位的CPU定时器定时器33串行外围接口串行外围接口有有有有串行

5、通信接口(串行通信接口(SCI)A和和BSCIA、SCIBSCIA、SCIB控制器局域网络控制器局域网络有有有有多通道缓冲串行接口多通道缓冲串行接口有有有有数字输入数字输入/输出引脚(共享)输出引脚(共享)有有有有外部中断源外部中断源33供电电压供电电压核心电压核心电压1.8VI/O电压电压3.3V核心电压核心电压1.8VI/O电压电压3.3V封装封装128针针PBK179针针GHH,176针针PGF温度选择:温度选择:A:- -40 +85 S:- -40 +125PBK仅适用于仅适用于TMSPGF和和GHH仅适用于仅适用于TMS 2.2 TMS320F281x芯片引脚及其功能芯片引脚及其功

6、能了解引脚信号了解引脚信号名称、功能、名称、功能、特性、状态特性、状态图图1 TMS320F2812的顶视图的顶视图F2812-176引脚封装底视图引脚封装底视图 F281x的引脚:的引脚: GPIO(General Purpose Input/Output pin): 56个,既可作为一般的数字个,既可作为一般的数字I/O口,又可作为外设功口,又可作为外设功能引脚,如能引脚,如PWM、eCAN等等 外部存储器接口外部存储器接口XINTF:45个个 电源和地:电源和地:38个个 A/D转换相关:转换相关:23个个 JTAG接口有关:接口有关:7个个 所有所有数字输入数字输入引脚的电平均与引脚的

7、电平均与TTL兼容兼容,输出输出引引脚脚均为均为3.3V CMOS电平电平,输入不能承受输入不能承受5V电压电压 上拉电流上拉电流/下拉电流均为下拉电流均为100A(20A) 所有引脚的输出缓冲器驱动能力(有输出功能的)所有引脚的输出缓冲器驱动能力(有输出功能的)典型值是典型值是4mA2.3 DSP片内硬件资源片内硬件资源 TMS320F281x主要由主要由C28x核的核的CPU(C28x CPU)、系统时钟控制模块(系统控制部分)、事件和)、系统时钟控制模块(系统控制部分)、事件和外设管理模块(外设管理模块(EVA、EVB和外设中断控制等),片内和外设中断控制等),片内存储模块(存储模块(F

8、LASH、ROM、RAM等)、等)、CPU定时器模定时器模块块(CPU定时器定时器)、12位位A/D转换模块(转换模块(12bit ADC)、扩)、扩展接口模块(扩展接口)、以及内部总线等构成。展接口模块(扩展接口)、以及内部总线等构成。图图2 F281x2 F281x片内外设连接框图片内外设连接框图 外部扩展总线和内部总线外部扩展总线和内部总线 扩展接口:扩展接口:A18-A0和和D15-D0是表示是表示2812外部扩存储外部扩存储器的能力,器的能力,2812外扩的存储空间最大是外扩的存储空间最大是219*16 bit(512K)。)。 F281x的内部存储器空间被分成了的内部存储器空间被分

9、成了2块,一块是程序块,一块是程序空间,一块是数据空间,对它们的访问通过地址总空间,一块是数据空间,对它们的访问通过地址总线和数据总线进行。线和数据总线进行。281x的存储器接口具有的存储器接口具有3条地条地址总线和址总线和3条数据总线。条数据总线。PAB (Program Address Bus):):32位程序地址总位程序地址总线,用于传送程序空间的读写地址。线,用于传送程序空间的读写地址。 DRAB(Data-Read Address Bus):):32位数据读地位数据读地址总线,用于传送数据空间的读地址。址总线,用于传送数据空间的读地址。 DWAB(Data-Write Address

10、 Bus):):32位数据写地位数据写地址总线,用于传送数据空间写地址。址总线,用于传送数据空间写地址。 PRDW(Program-Read Data Bus):):32位程序读位程序读数据总线,用于传送读取程序空间时的指令或者数据。数据总线,用于传送读取程序空间时的指令或者数据。DRDB(Data-Read Data Bus):):32位数据读数据位数据读数据总线,用来读取数据空间的数据。总线,用来读取数据空间的数据。 DWDB(Data/Program-Write Data Bus):):32位数位数据据/程序写数据总线,向数据空间程序写数据总线,向数据空间/程序空间写相应的数程序空间写相

11、应的数据。据。TMS320F2812存储空间的映射存储空间的映射 SARAM均可映射均可映射到程序存储空间和数到程序存储空间和数据存储空间,据存储空间,L0和和L1受片上受片上FLASH中的密中的密码保护码保护 FLASH和一次可和一次可编程编程EPROM(OTP)也也受受FLASH的密码保护的密码保护l128K16位位FLASHl 18K16位位RAM:分成:分成 M0、M1、L0、L1 和和 H0 这这5个块个块l 4K16位位BootROMl 1K16位位OTP ROMl Boot ROM 出厂时固化了出厂时固化了Boot Loader软件,根据引导信号确软件,根据引导信号确定上电引导装

12、载方式,可从定上电引导装载方式,可从Flash引导装载程序,也引导装载程序,也可从外部存储器引导程序可从外部存储器引导程序 包括一些标准的数学运算表包括一些标准的数学运算表2.4 DSP片内片内FLASH和和OTP存储器存储器l 片内片内Flash存储器的特点存储器的特点 可映射到程序空间或数据空间可映射到程序空间或数据空间 程序可分成多段,代码安全保护程序可分成多段,代码安全保护 低功耗模式低功耗模式 可根据可根据CPU频率调整等待周期频率调整等待周期 流水线模式可提高线性代码执行效率流水线模式可提高线性代码执行效率l Flash和和OTP存储器功耗模式存储器功耗模式 睡眠(睡眠(sleep

13、)模式或复位模式:功耗最低)模式或复位模式:功耗最低 备用(备用(standby)模式:在该状态或睡眠模式下进行)模式:在该状态或睡眠模式下进行CPU读或取操作,将自动使读或取操作,将自动使DSP工作模式变为活跃模工作模式变为活跃模式式 活跃(活跃(active)模式或读模式:功耗最高)模式或读模式:功耗最高l CPU对对Flash/OTP的操作,形式的操作,形式 32位取址位取址 16或或32位数据空间读取位数据空间读取 16位程序空间读位程序空间读l Flash处于活跃状态时,存储器的读处于活跃状态时,存储器的读/写处理有写处理有3中类型中类型 Flash存储器随机存取存储器随机存取 Fl

14、ash存储器页面存取存储器页面存取 OTP操作操作片内片内Flash和和OTP存储器的配置寄存器存储器的配置寄存器名称名称地址地址功能描述功能描述FOPT0 x0000 0A80 Flash 选择寄存器选择寄存器Reserved0 x0000 0A81 保留保留FPWR0 x0000 0A82 Flash电源方式寄存器电源方式寄存器FSTATUS0 x0000 0A83 状态寄存器状态寄存器FSTDBYWAIT0 x0000 0A84 Flash睡眠到待机等待寄存器睡眠到待机等待寄存器FACTIVEWAIT0 x0000 0A85 Flash待机到活动等待寄存器待机到活动等待寄存器FBANKW

15、AIT0 x0000 0A86 Flash读访问等待状态寄存器读访问等待状态寄存器FOTPWAIT0 x0000 0A87 OTP读访问等待状态寄存器读访问等待状态寄存器Flash和和OTP存储器的工作状态通过配置寄存器进行设置存储器的工作状态通过配置寄存器进行设置注意:注意: 执行执行Flash寄存器配置任务的代码不能放在寄存器配置任务的代码不能放在Flash或或OTP存储器中执行,而应放在其他的存储器中执行,而应放在其他的RAM存储器空间中。而且当存储器空间中。而且当Flash或或OTP存储器存储器中正在运行程序时,也不要对中正在运行程序时,也不要对Flash或或OTP寄存寄存器进行操作,

16、程序结束后才可以进行操作。在器进行操作,程序结束后才可以进行操作。在Flash/OTP中运行的代码可以读中运行的代码可以读Flash寄存器中寄存器中的内容,但不要将内容写进去,要避免时序上的的内容,但不要将内容写进去,要避免时序上的混乱。混乱。主要内容:主要内容:锁相环锁相环PLL 振荡器振荡器OSC 时钟时钟 1、 2、看门狗看门狗WD 给给DSP做做“身体检查身体检查” 维持其正常工作的。维持其正常工作的。 3、相关控制寄存器的设置相关控制寄存器的设置2.5 F281x的时钟及系统控制的时钟及系统控制1、振荡器、振荡器OSC和和PLL模块模块F2812内的振荡器和内的振荡器和PLL模块模块

17、PLL模式模式说明说明SYSCLKOUTPLL禁止禁止复位时如果复位时如果XPLLDIS引脚是低电平,引脚是低电平,则则PLL完全被禁止。处理器直接使用完全被禁止。处理器直接使用引脚引脚X1/XCLKIN输入的时钟信号。输入的时钟信号。XCLKINPLL旁路旁路上电时的默认配置,如果上电时的默认配置,如果PLL没有被没有被禁止,则禁止,则PLL将变成旁路,在将变成旁路,在X1/XCLKIN引脚输入的时钟经过引脚输入的时钟经过2分分频后提供给频后提供给CPU。XCLKIN/2PLL使能使能使能使能PLL,在,在PLLCR寄存器中写入一寄存器中写入一个非零值个非零值n(XCLKINn)/2PLL配

18、置模式配置模式F2812内部各种信号产生情况内部各种信号产生情况SYSOUTCLKSYSOUTCLK组:组:CPUCPU定时器和定时器和eCANeCAN总线总线OSCCLKOSCCLK:看门狗电路:看门狗电路低速组:低速组:SCISCI、SPISPI、McBSPMcBSP高速组:高速组:EVAEVA、EVBEVB、ADCADC片上外设按输入时钟划分片上外设按输入时钟划分SYSCR:系统控制寄存器:系统控制寄存器PLLCR:PLL控制寄存器控制寄存器HISPCP:高速片上外设分频器:高速片上外设分频器LOSPCP:低速片上外设分频器:低速片上外设分频器与与PLL、时钟配置相关的寄存器、时钟配置相

19、关的寄存器DIV=000:旁路方式:旁路方式DIV=0001B1010B,对应表中,对应表中n=110DIV=1011B1111B,保留,保留154 30ReservedDIVR-0R/W-0PLL控制寄存器(控制寄存器(PLLCR)高速外设时钟寄存器(高速外设时钟寄存器(HISPCP)153 20ReservedHSPVALR-0R/W-001如果如果HISPCP不等于不等于0, HSPCLK=SYSCLKOUT/(HISPCPx2)如果如果HISPCP等于等于0,HSPCLK=SYSCLKOUT低速外设时钟寄存器(低速外设时钟寄存器(LOSPCP)153 20ReservedLSPVALR

20、-0R/W-001如果如果LOSPCP不等于不等于0,LSPCLK=SYSCLKOUT/(LOSPCPx2)如果如果LOSPCP等于等于0,LSPCLK=SYSCLKOUT2、看门狗模块、看门狗模块 看门狗加法计数寄存器看门狗加法计数寄存器WDCNTR:当计数到最:当计数到最大值时,产生一个输出脉冲。大值时,产生一个输出脉冲。 看门狗看门狗复位控制寄存器复位控制寄存器WDKEY:写入:写入0 x55+0 xAA,会使,会使WDCNTR清零,其它值使看门清零,其它值使看门狗复位。狗复位。 防止防止WDCNTR溢出溢出: (1)禁止看门狗禁止看门狗;(2)向复位向复位控制寄存器周期性写入控制寄存器

21、周期性写入0 x55+0 xAA,使,使WDCNTR清零。清零。2.6 CPU定时器定时器1、什么是定时器?(计时工具)、什么是定时器?(计时工具) F2812内部有内部有3个个32位的位的CPU定时器:定时器:Time0、 Time1、Time2(系统保留)(系统保留)2、CPU定时器内部结构定时器内部结构定时器的工作示意图定时器的工作示意图TIMCLK值如何确定?值如何确定?1)给给PRDH:PRD赋值赋值2)装载装载TIMH:TIM3)每隔一个每隔一个TIMCLK计数计数 器的值减少器的值减少1,一直减到,一直减到0 完成一个周期的计数。完成一个周期的计数。1)给给TDDRH:TDDR赋

22、值赋值2)装载装载PSCH:PSC3)每隔一个每隔一个SYSCLKOUT PSCH:PSC值减少值减少1,直,直 到为到为0,就会输出一个,就会输出一个 TIMCLK。n 计数器每走一步所需要的时间:n CPU一个周期所计量的时间为:其中:X为系统时钟SYSCLKOUT的值(MHz)。3、定时器寄存器(书本)、定时器寄存器(书本)2.7 通用输入通用输入/输出输出I/O口(口(GPIO)u GPIO:通用输入输出(:通用输入输出(56个);个);u GPIO引脚是多功能复用的,即可作为数字引脚是多功能复用的,即可作为数字I/O口,也可作为特殊功能接口(如口,也可作为特殊功能接口(如SCI、SP

23、I)。)。u GPIO分分A、B、D、E、F、G六组,通过六组,通过GPxMux、 GPxDIR、 GPxQUAL寄存器进行寄存器进行控制。控制。u 如果如果GPIO配置为数字配置为数字I/O,则可通过,则可通过GPxDAT 、 GPxSET 、GPxCLEAR、GPxTOGGLE寄寄存器对其引脚进行操作。存器对其引脚进行操作。GPxDAT:GPIOx数据寄存器数据寄存器GPxSET: GPIO x置位寄存器置位寄存器GPxCLEAR: GPIOx清楚寄存器清楚寄存器GPxTOGGLE: GPIOx取反寄存器取反寄存器GPxMux:GPIOx功能控制选择寄存器功能控制选择寄存器GPxDIR:G

24、PIOx方向控制寄存器方向控制寄存器GPxQUAL:GPIOx输入限定寄存器输入限定寄存器控控制制数数字字x: ABDEFGu GPxMux:GPIOx功能选择控制寄存器功能选择控制寄存器 每各每各I/O口都有一个对应的功能选择寄存器位,控制口都有一个对应的功能选择寄存器位,控制该口位特殊功能口或通用数字该口位特殊功能口或通用数字I/O口;口; 如:如: GpioMuxRegs.GPAMUX.bit.PWM1_GPIOA0=0; /设置设置GPIO A0口为数字口为数字I/O口口 GpioMuxRegs.GPAMUX.bit.PWM1_GPIOA0=1; /设置设置GPIO A0口为特殊功能口

25、(口为特殊功能口(PWM1输出口)输出口)u GPxDIR:GPIOx方向控制寄存器方向控制寄存器 每各每各I/O口都有一个对应的方向控制寄存器位,控制口都有一个对应的方向控制寄存器位,控制该口输入输出方向;该口输入输出方向; 如:如: GpioMuxRegs.GPADIR.bit.GPIOA0=0; /设置设置GPIO A0口为数字输入口口为数字输入口 GpioMuxRegs.GPADIR.bit.GPIOA0=1; /设置设置GPIO A0口为数字输出口口为数字输出口u GPxQUAL:GPIOx输入限制寄存器输入限制寄存器 控制控制GPIO引脚输入信号的采样周期,目的是消除输引脚输入信号

26、的采样周期,目的是消除输入信号的噪声。入信号的噪声。 如:如: GpioMuxRegs.GPAQUAL.BIT.QUALPRD=5; /设置设置GPIO A组全部引脚输入信号采用周期为组全部引脚输入信号采用周期为5u GPxDAT:GPIOx数据寄存器数据寄存器 每各每各I/O口都有一个对应的数据寄存器位,控制该口口都有一个对应的数据寄存器位,控制该口状态;状态; 如:如: GpioDataRegs.GPADAT.bit.GPIOA0=0;/设置设置GPIO A0口为低电平口为低电平 GpioDataRegs.GPADAT.bit.GPIOA0=1;/设置设置GPIO A0口为高电平口为高电平

27、u GPxSET:GPIOx置位寄存器置位寄存器 每各每各I/O口都有一个对应的置位寄存器位,控制该口口都有一个对应的置位寄存器位,控制该口状态;状态; GpioDataRegs.GPASET.bit.GPIOA0=0;/没影响没影响 GpioDataRegs.GPASET.bit.GPIOA0=1;/将将A0引脚引脚置位高电平置位高电平u GPxCLEAR: GPIOx清除寄存器清除寄存器 每各每各I/O口都有一个对应的清除寄存器位,将该口清口都有一个对应的清除寄存器位,将该口清楚位低电平;楚位低电平; GpioDataRegs.GPACLEAR.bit.GPIOA0=0;/没影响没影响 G

28、pioDataRegs.GPACLEAR.bit.GPIOA0=1;/将将A0引脚置位低电平引脚置位低电平u GPxTOGGLE: GPIOx取反寄存器取反寄存器 每各每各I/O口都有一个对应的取反口都有一个对应的取反寄存器位,将该口电寄存器位,将该口电平取反;平取反; GpioDataRegs.GPATOGGLE.bit.GPIOA0=0;/没影没影响响 GpioDataRegs.GPATOGGLE.bit.GPIOA0=1;/将将A0引脚置电平取反引脚置电平取反2.8 F281x外设中断扩展模块外设中断扩展模块1、什么是中断?、什么是中断? 中断(中断(Interrupt)是硬件和软件驱动

29、事件,它使得)是硬件和软件驱动事件,它使得 CPU 暂停当前的主程序,并转而去执行一个中断服务程序。暂停当前的主程序,并转而去执行一个中断服务程序。写代码写代码电话铃电话铃声响声响接电话接电话接完电话接完电话继续写代码继续写代码执执行行主主程程序序有有一一个个中中断断请请求求暂暂停停主主程程序序,执执行行中中断断服服务务子子程程序序返返回回主主程程序序继继续续执执行行u PIE 可以支持 96 个不同的中断,这些中断分成了 12 个组,每个组有 8 个中断,而且每个组都被反馈到 CPU 内核的 12 条中断线中的某一条上(INT1-INT12),我们平时用到的所有的外设中断都被归入了这 96

30、个中断中,被分布在不同的组里,使用多路复用的原理。PIE 目前只使用 了 96 个中断中的 45 个,其他的等待将来的功能扩展。 F2812 的中断是的中断是 3 级中断机制,分别是外设级,级中断机制,分别是外设级,PIE 级以及级以及 CPU 级,对于某一个具体的外级,对于某一个具体的外 设中断请求,任意一级的不许可设中断请求,任意一级的不许可,CPU 最终都不会执行该外设中断。就像一个文件需要三级领最终都不会执行该外设中断。就像一个文件需要三级领导批示一样,导批示一样, 任意一级领导的不同意,都不能被送至上一级领任意一级领导的不同意,都不能被送至上一级领导,更不可能得到最终的批准,中断机制

31、的原理也是如此。导,更不可能得到最终的批准,中断机制的原理也是如此。F2812 的中断工作过程的中断工作过程(1)外设级中断)外设级中断 假如在程序的执行过程中,某一个外设产生了一个中断事件,那么在这个外设的某个寄存器中与该中断事件相关的中断标志位(IF=Interrupt Flag)被置为 1。此时,如果该中断相应的中断使能位(IE=Interrupt Flag)已经被置位,也就是为 1,外设就会向 PIE 控制器发出一个中断请求。相反的,如果虽然中断事件产生了,相应的中断标志位也被置 1 了,但是该中断没有被使能(相应的使能位为 0),那 么外设就不会向 PIE 发出中断请求,但是相应的中

32、断标志位会一直保持置位状态,直到用 程序清楚它为止。当然,在中断标志位保持在 1 的时候,一旦该中断被使能了,那么外设立马会向 PIE 发 出中断申请。以 T1PINT为例:当定时器 T1 的计寄存器 T1CNT 计数到和 T1 周期寄存器 T1PINT 的值匹配时(相等时),就产生了一个 T1PINT 事件,即 T1 的周期中断。这时候,事件管理器 EVA 的中断标志寄存器 A(EVAIFRA)中的第 7 位 T1PINT FLAG 被置为 1,这时候如果 EVA 的中断屏蔽寄存 器 A(EVAIMRA)中的第 7 位 T1PINT 的使能位是 1,则 EVA 就会向 PIE 发出中断请求,

33、当然,如果该位的 值是 0,也就是该中断未被使能(被屏蔽),则 EVA 不会向 PIE 发出中断请求,而且 EVAIFRA 中 T1PINT FLAG位将一直保持为 1,除非通过程序将其清除。需要注意的是,不管在什么情况下,外设寄存器中的中断标志位都必须手工清除。清除 T1PINT 标志位的语句 EvaRegs.EVAIFRA.bit.T1PINT=1;(1)外设级中断举例:)外设级中断举例:(2)PIE 级级 中断中断当外设把中断请求提交给 PIE 模块。PIE 控制器中的每组都有一个中断标志寄存器 PIEIFRx 和中断使能寄存器 PIEIERx。每个寄存器的低 8 位对应于 8 个外设中

34、断,高 8 位保留。例如 T1PINT对应于PIEIFR2 的第 4 位和 PIEIER2 的第 4 位。因为 PIE 模块是多路复用的,那么每一组同一时间应该只能是一个中断被响应,PIE 是怎么做到的呢?PIE 除了每组具有 刚才的 PIEIERx,PIEIFRx 寄存器之外,还有一个 PIEACK 寄存器,它的低 12 位分别对应着 12 个组,即 INT1-INT12,高位保留。假如 T1 的周期中断被响应了,则 PIEACK 寄存器的第 2 位(对应于 INT2)就会被置位,并且一直保持直到手动清除这个标志位。当 CPU 在响应 T1PNT 的时候,PIEACK 的第 2 位一直是 1

35、, 这时候如果 PIE2 组内发生其他的外设中断,则暂时不会被 PIE 响应送给 CPU,必须等到 PIEACK 的第 2 位被复位之后,如果该中断请求还存在,那么立马由 PIE 控制块将中断请求送至 CPU。所以,每个外设中断被响应之后,一定要对 PIEACK 的相关位进行手动服务,否则同组内的其他中断都不会被响应。 清除 PIE 中与 T1PINT 相关的应答位的语句 PieCtrl.PIEACK.bit.ACK2=1;PIE中断需注意的问题中断需注意的问题 将 PIE 级的中断和外设级的中断相比较之后发现,外设中断的中断标志位是需要手工清除的,而 PIE 级的中断标志位都是自动置位或者清

36、除的。但是 PIE 多了一个 PIEACK 寄存器,相当于一个同行的关卡, 同一时间只能放一个中断过去,只有等到这个中断被响应,给关卡一个放行命令之后,才能让同组的下一 个中断过去,被 CPU 响应。(3)CPU 级级CPU 也有中断标志寄存器 IFR 和使能寄存器 IER。当某一个外设中断请求通过 PIE 发送到 CPU 时,与 INTx 相关的中断标志位就会被置位。例如,T1 的周期中断 T1PINT 的请求到达CPU 这边时,与其相关的 INT2 的标志位就会被置位,该标志位就会被锁存在 IFR 中,这时候,如果 IER 中的相关位被置位了,并且 INTM 的值为 0,则中断就会被 CP

37、U 响应。在 T1PINT 的例子里,当 IER 的第 2 位即 INT2 被置位,INTM 为 0,则 CPU 就会响应定时器 T1 的周期中断。CPU 接到了中断的请求,就得暂停正在执行的程序,转而去响应中断程序,但是此时,它必须得做一 些准备工作,以便于执行完中断程序之后回过头来还能找到原来的地方和原来的状态。CPU 会将相应的 IER 和 IFR 位进行清除,EALLOW 也被清除,INTM 被置位,就是不能响应其他中断了,CPU 向其他中断发出了通 知,正在忙,没空来处理你们的请求了,得等到处理完手上的中断之后才能再来处理其他请求。然后, CPU 会存储返回地址并自动保存相关的信息,例如将正在处理的数据放入堆栈等等,做好这些准备工作之 后,CPU 会从 PIE 块中取出对应的中断向量 ISR,从而转去执行中断子程序。TI 例程中与中断相关的几个文件例程中与中断相关的几个文件 DSP28_PieCtrl.h,这个文件定义了和 PIE 相关的寄存器的数据结构,我们对应于相关寄存器的定义会发现,两者是一样的。 DSP28_PieVect.h,这个头文件定义了 PIE 的中断向量。DSP28_PieCtrl.c 文件里只有 1 个函数,InitPieCtrl(),其作用是对 PIE 模块进行

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论