第3章系统配置和中断1.docx

上传人:b****3 文档编号:6599453 上传时间:2023-05-10 格式:DOCX 页数:28 大小:354.36KB
下载 相关 举报
第3章系统配置和中断1.docx_第1页
第1页 / 共28页
第3章系统配置和中断1.docx_第2页
第2页 / 共28页
第3章系统配置和中断1.docx_第3页
第3页 / 共28页
第3章系统配置和中断1.docx_第4页
第4页 / 共28页
第3章系统配置和中断1.docx_第5页
第5页 / 共28页
第3章系统配置和中断1.docx_第6页
第6页 / 共28页
第3章系统配置和中断1.docx_第7页
第7页 / 共28页
第3章系统配置和中断1.docx_第8页
第8页 / 共28页
第3章系统配置和中断1.docx_第9页
第9页 / 共28页
第3章系统配置和中断1.docx_第10页
第10页 / 共28页
第3章系统配置和中断1.docx_第11页
第11页 / 共28页
第3章系统配置和中断1.docx_第12页
第12页 / 共28页
第3章系统配置和中断1.docx_第13页
第13页 / 共28页
第3章系统配置和中断1.docx_第14页
第14页 / 共28页
第3章系统配置和中断1.docx_第15页
第15页 / 共28页
第3章系统配置和中断1.docx_第16页
第16页 / 共28页
第3章系统配置和中断1.docx_第17页
第17页 / 共28页
第3章系统配置和中断1.docx_第18页
第18页 / 共28页
第3章系统配置和中断1.docx_第19页
第19页 / 共28页
第3章系统配置和中断1.docx_第20页
第20页 / 共28页
亲,该文档总共28页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

第3章系统配置和中断1.docx

《第3章系统配置和中断1.docx》由会员分享,可在线阅读,更多相关《第3章系统配置和中断1.docx(28页珍藏版)》请在冰点文库上搜索。

第3章系统配置和中断1.docx

第3章系统配置和中断1

第3章系统配置和中断

介绍系统的配置寄存器和有关中断,并介绍用于增加中断请求容量的外设中断扩展(PIE)寄存器。

3.1系统配置概述

3.1.1系统配置概述

系统配置和中断操作的内容包括:

系统配置寄存器、中断优先级和中断向量表、外设中断扩展控制器(PIE)、中断向量、中断响应的流程、中断响应的时间、CPU中断寄存器、外设中断寄存器、复位、无效地址检测、外部中断控制寄存器。

LF2407大部分的I/O口是多路复用的,复位时会被上拉为数字输入的模式。

3.1.2系统配置寄存器

系统控制和状态寄存器,对功能模块进行配置。

(1)系统控制和状态寄存器-SCSR1:

映射到数据存储器空间7018h。

位15:

保留

位14:

CLKSRC,CLKOUT引脚输出源选择

0-CLKOUT引脚输出CPU时钟;

1-CLKOUT引脚输出WDCLK时钟

位13-12:

LPM低功耗模式选择,指明在执行IDLE指令后进入哪一种低功耗模式。

00-进入IDLE1(LPM0)模式;

01-进入IDLE2(LPM1)模式;

1x-进入HALT(LPM2)模式。

位11-9:

PLL时钟预定标选择,对输入时钟选择倍频系数。

000-4;001-2;

010-1.33;011-1;

100-0.8;101-0.66;

110-0.57;111-0.5

位8:

保留

位7:

ADCCLKEN,ADC模块时钟使能控制位

位6:

SCICLKEN,SCI模块时钟使能控制位

位5:

SPICLKEN,SPI模块时钟使能控制位

位4:

CANCLKEN,CAN模块时钟使能控制位

位3:

EVBCLKEN,EVB模块时钟使能控制位

位2:

EVACLKEN,EVA模块时钟使能控制位

0:

禁止模块时钟(节能);1:

使能模块时钟,且运行

位1:

保留

位0:

ILLADR,无效地址检测位

当检测到一个无效地址时,该位被置1,该位需软件清除,写0即可。

初始化时该位写0。

注意:

任何无效的地址会导致NMI事件发生。

(2)系统控制和状态寄存器2-SCSR2:

映射到数据存储器空间7019h。

位15-7:

保留位

位6:

I/PQUAL,时钟输入限定,它限定输入到DSP的CAP1-6,XINT1-2,ADCSOC以及PDPINTA*/PDPINTB*引脚上的信号被正确锁存时,需要的最小脉冲宽度。

脉冲宽度只有达到这个宽度之后,内部的输入状态才会改变。

0-锁存脉冲至少需要5个时钟周期;

1-锁存脉冲至少需要11个时钟周期。

如果这些引脚作I/O,则不会使用输入时钟限定电路。

位5:

WD保护位,该位可用软件来禁止WD工作。

这位是—个只能清除的位,复位后默认1。

通过向这位写1对其清除。

0-保护WD,防止WD被软件禁止。

1-复位时的默认值

位4:

XMIFHI-Z。

控制外部存储器接口信号(XMIF)

0:

所有XMIF信号处于正常驱动模式(即非高阻态)

1:

所有XMIF信号处于高阻态

位3:

(使能位)。

这位反映了BOOTEN*引脚在复位时的状态。

0:

使能引导ROM。

地址空间0000h-00FFh被片内引导ROM块占用。

禁止用FLASH存储器。

1:

禁止引导ROM。

TMS320LF2407片内FALSH程序存储器映射地址范围为0000h一7FFFh。

位2:

(微处理器/微控制器选择)。

这位反映了器件复位时MP/

引脚的状态。

0:

器件设置为微控制器方式,程序地址范围从0000h一7FFFh被映射到片内

1:

器件设置为微处理器方式,程序地址范围从0000h一7FFFh被映射到片外(必须外扩外部存储器)

位1-0:

SRAM的程序/数据空间选择

00地址空间不被映射,该空间被分配到外部存储器

0lSARAM被映射到片内程序空间

10SARAM被映射到片内数据空间

11SARAM被映射到片内程序空间,又被映射到片内数据空间

3.2DSP2407中断组织和结构

3.2.1DSP2407中断概述——两层结构

DSP2407需要处理的外部和片内外设产生的中断事件有38个之多,DSP2407的CPU没有如此大的能力和容量在CPU内核这一层次上设置38个中断向量,并安排38个中断服务与之对应。

解决之一问题的方法是把38个可引发中断的的事件时间分成6个组,每个组使用1个CPU内核级中断。

这6个内核级中断有6个内核级中断向量,使6个组的中断转向6个内核级中断服务程序中去。

一旦进入内核级中断服务程序,在细分和判断是由组内那个外设事件引发的,进而转向专为此外设编写的服务程序。

由此可见,DSP2407中断系统的结构分为两个层次。

其中,6个内核级中断服务程序和38个外部和片内内外设中断事件对应。

分为内核级中断和外设中断。

3.2.2DSP2407内核级中断

1.DSP2407内核中总表

DSP2407顶层中断是CPU内核级中断。

CPU内核级中断除由有上述38个外设中断汇聚而成的6个可屏蔽中断外,还有硬件复位中断和为位数总多的软件中断。

全部内核级中断及其中断向量如表3-2所列。

表3-2DSP2407内核级中断总表

K值

中断向地址

中断名称

优先级

功能

0

0h

1

硬件上电复位中断(不可屏蔽中断)

1

2h

INT1

4

1号可屏蔽中断

2

4h

INT2

5

2号可屏蔽中断

3

6h

INT3

6

3号可屏蔽中断

4

8h

INT4

7

4号可屏蔽中断

5

Ah

INT5

8

5号可屏蔽中断

6

Ch

INT6

9

6号可屏蔽中断

7

Eh

保留

8

10h

INT8

用户自定义软件中断

9

12h

INT9

用户自定义软件中断

10

14h

INT10

用户自定义软件中断

11

16h

INT11

用户自定义软件中断

12

18h

INT12

用户自定义软件中断

13

1Ah

INT13

用户自定义软件中断

14

1Ch

INT14

用户自定义软件中断

15

1Eh

INT15

用户自定义软件中断

16

20h

INT16

用户自定义软件中断

17

22h

TRAP

3

TRAP软件中断

18

24h

NMI

2

NMI软件中断

19

26h

-

保留

20

28h

INT20

用户自定义软件中断

21

2Ah

INT21

用户自定义软件中断

22

2Ch

INT22

用户自定义软件中断

23

2Eh

INT23

用户自定义软件中断

24

30h

INT24

用户自定义软件中断

25

32h

INT25

用户自定义软件中断

26

34h

INT26

用户自定义软件中断

27

36h

INT27

用户自定义软件中断

28

38h

INT28

用户自定义软件中断

29

3Ah

INT29

用户自定义软件中断

30

3Ch

INT30

用户自定义软件中断

31

3Eh

INT31

用户自定义软件中断

软件中断可通过指令INTR、NMI或TRAP来请求CPU中断的。

其中INTR指令可以根据K值得不同,引发32种不同的中断。

2.可屏蔽中断和不可屏蔽中断

DSP2407的中断可分为软件中断和硬件中断;还可分为可屏蔽中断和不可屏蔽中断。

而不论其是否为软件或硬件中断。

可屏蔽中断是指通过软件设置中断控制寄存器来屏蔽中断或开放中断。

DSP2407的大多数硬件中断都属于可屏蔽中断,增加了硬件中设置的灵活性。

可屏蔽中断有6个:

INT1、INT2、INT3、INT4、INT5、和INT6,它们是38个硬件和外设中断组合或汇总起来的6个内核级中断。

在DSP2407应用软件开发中,全部中断管理工作都是围绕着6个内核级中断及其下属的低层外设级中展开的。

不可屏蔽中断是指中断在任何情况下都不能被封锁。

由表3-2可以看出,不可屏蔽中断有DSP硬件上电复位中断、TRAP软件中断、NMI软件中断和21个用户自定义软件中断。

3.2.3DSP2407外设级中断扩展控制器(PIE)

1.外设中断扩展控制器

LF2407采用一个外设中断扩展(PIE)控制器来专门管理来自各种外设或外部引脚的中断请求。

下图为外设中断扩展模块图。

表示出了38个硬件和外设中断与6个内核级中断的对应关系。

LF240xDSP的内核支持一个非可屏蔽中断(NMI)和6个具有优先级请求的可屏蔽中断(INT1~INT6)。

LF240xDSP具有很多外设模块,每个外设模块均可以产生一个或多个终端,以在外设级别响应许多事件。

因为LF240xDSP的CPU在内核级没有足够的容量来处理所有的外设中断请求,所以用一个外设中断扩展(PIE)控制器用来专门管理来自各种外设或外部引脚的中断请求。

外设中断扩展PIE模块内包括有Level1IRQGEN小模块,成为中断请求发生器IRQENG(InterruptRequestGenerator),与内核级中断INT1对应。

同样的模块Level2IRQGEN~Level62IRQGEN共有6个。

PIE模块内还有如下的寄存器:

1.PIRQR(PeripheralInterruptRegisrers):

外设中断请求寄存器

2.PIACKR(PeripheralInterruptAcknoledgeRegisrers):

外设中断应答寄存器

3.PIVR(PeripheralInterruptVectorRegisrers):

外设中断向量寄存器

其中,外设中断请求寄存器和外设中断应答寄存器用于芯片生产测试,而非用户应用,在编程时不用。

外设中断向量寄存器是重要的低层外设计级中断控制寄存器。

实际上,在DSP2407中断中,外设中断源才是真正的中断源,它们必须通过PIE传递到内核级中断再向CPU发出中断请求。

也就是说,通过6个CPU内核级中断来扩展38个外设中断,因此形成两个级别。

2.中断层次

通过中断请求系统中的一个两级中断来扩展中断个数,2407可响应的中断个数数量很多,DSP的中断请求/应答逻辑和中断服务程序软件都有两级层次的中断。

3.中断请求的结构

在低层次中断,从几个外设来的外设中断请求(PIRQ)在中断控制器处进行或运算,产生一个INTn中断;在高层次中断,从INTn中断请求产生一个到CPU的中断。

4.中断应答

外设产生中断请求后,经PIE控制器译码,决定谁被响应,CPU通过赋予程序地址总线一个值——中断向量,决定哪个中断请求被应答。

3.2.4中断优先级和中断向量表

1.中断向量

为使CPU能够区别不同外设引起中断,在每个外设中断请求有效时,都会产生一个唯一的外设中断向量,这个外设中断向量被装载到外设中断向量寄存器(PIVR)。

CPU响应外设中断时,从PIVR中读取相应的中断向量,转到相关的中断服务程序入口。

LF2407有两个向量表。

(1)CPU向量表用来获取响应CPU中断请求的一级通用中断服务子程序(GISR)。

(2)外设向量表用来获取响应某一特定外设事件的特定中断服务子程序(SISR)。

GISR中的程序可读出PIVR中的值,在保存必要的上下文之后,用PIVR中的值来产生一个转到SISR的向量。

LF2407DSP具有3个不可屏蔽中断和6个可屏蔽中断(INT1-INT6),可采用中断扩展设计来满足大量外设中断需求。

每个可屏蔽中断有多个中断源,每个中断源具有唯一的中断入口地址向量。

中断源如下所示:

不可屏蔽中断(3个)

中断优先级中断名称外设中断向量描述

1Reset0000h复位引脚和WD溢出

2保留0026h仿真陷阱

3NMI0004h软件中断

INT1(级别1)

中断优先级中断名称外设中断向量描述

4PDPINTA0020h功率驱动保护中断

5PDPINTB0019h功率驱动保护中断

6ADCINT0004h高优先级ADC中断

7XINT10001h高优先级外中断

8XINT20001h高优先级外中断

9SPINT0005h高优先级SPI中断

10RXINT0006h高优先级SCI接收中断

11TXINT0007h高优先级SCI发送中断

12CANMBINT0040h高优先级CAN邮箱中断

13CANERINT0041h高优先级CAN错误中断

INT2(级别2)

中断优先级中断名称外设中断向量描述

14CMP1INT0021h比较器1中断

15CMP2INT0022h比较器2中断

16CMP3INT0023h比较器3中断

17T1PINT0027h定时器1周期中断

18T1CINT0028h定时器1比较中断

19T1UFINT0029h定时器1下溢中断

20T1OFINT0029h定时器1上溢中断

21CMP4INT0024h比较器4中断

22CMP5INT0025h比较器5中断

23CMP6INT0026h比较器6中断

24T3PINT002Fh定时器3周期中断

25T3CINT0030h定时器3比较中断

26T3UFINT0031h定时器3下溢中断

27T1OFINT0032h定时器3上溢中断

INT3(级别3)

中断优先级中断名称外设中断向量描述

28T2PINT002Bh定时器2周期中断

29T2CINT002Ch定时器2比较中断

30T2UFINT002Dh定时器2下溢中断

31T2OFINT002Eh定时器2上溢中断

32T4PINT0039h定时器4周期中断

33T4CINT003Ah定时器4比较中断

34T4UFINT003Bh定时器4下溢中断

35T4OFINT003Ch定时器4上溢中断

INT4(级别4)

中断优先级中断名称外设中断向量描述

36CAP1INT0033h比较器1中断

37CAP2INT0034h比较器2中断

38CAP3INT0035h比较器3中断

39CAP4INT0036h比较器1中断

40CAP5INT0037h比较器2中断

41CAP6INT0038h比较器3中断

INT5(级别5)

中断优先级中断名称外设中断向量描述

42SPINT0005h低优先级SPI中断

43RXINT0006h低优先级SCI接收中断

44TXINT0007h低优先级SCI发送中断

45CANMBINT0040h低优先级CAN邮箱中断

46CANERINT0040h低优先级CAN错误中断

INT6(级别6)

中断优先级中断名称外设中断向量描述

47ADCINT0004h低优先级ADC中断

48XINT10001h低优先级外中断

49XINT20011h低优先级外中断

N/ATRAP0022h陷阱中断

N/A假中断向量0000h假中断向量

3.2.5假中断向量

假中断向量特性可以保证系统一直可靠安全地运行,而不会进入无法预料的中断死循环中。

以下两种情况会产生假中断:

(1)CPU执行一个软件中断指令,并且指令具有一个与外设中断(通常为INT1一INT6)相关的变量。

(2)当外设发出中断请求,但是其INTn标志位却在CPU应答请求之前已经被清0。

在上述两种情况下,没有外设中断请求送到中断控制器,因此控制器不知道哪个外设中断向量装入到PIVR,此时向PIVR中装入假中断向量。

3.2.6软件层次

中断服务子程序的层次有两级:

通用中断服务子程序(GISR)和特定中断服务子程序(SISR)

对于每个向CPU发送的可屏蔽高优先级中断请求(INTl一INT6),从PIVR获取外设中断向量之前,必须在GISR中保存必要的上下文。

从外设中断向量寄存器(PIVR)中获取外设中断向量。

转移到SISR的地址入口。

在SISR中执行对该外设事件的响应。

当程序进入中断服务程序后,所有的可屏蔽中断都被屏蔽。

GISR必须在中断被重新使能之前读取PIVR中的值,否则在另一个中断请求发生之后,PIVR中将装入另一个中断请求的偏移量,这将导致原外设中断向量参数的永久丢失。

3.2.7全局中断使能

INTM为全局中断使能位,在初始化程序和主程序中,常常需要使用该位对DSP中断进行打开和关闭操作。

特别是初始化过程中,需要关中断,而在主程序开始执行时,需要开中断。

SETCINTM;关中断

CLRCINTM;开中断

进入中断服务程序时,系统自动关闭中断,不允许在中断服务程序中响应其他中断。

从中断服务程序返回时需要重新打开中断。

3.2.8中断响应的流程

3.2.8中断等待时间

中断响应的等待时间包括:

外设同步接口时间、CPU响应时间、ISR等待时间。

分别介绍如下:

(1)外设同步接口时间是指为了响应一个PlE控制器可以识别的中断事件,而产生一个中断请求所花的时间和转换后将请求发送至CPU的时间。

(2)CPU的响应时间指的是CPU识别出已经被使能的中断请求、响应中断、清除流水线、并且开始捕获来自CPU中断向量的第一条指令所花最小的CPU的响应时间是4个CPU指令周期。

如果一个更高优先级的可屏蔽中断在最小的等待周期被请求,该中断将被屏蔽,直到正在工作的ISR重新使能该中断。

当中断请求发生在一个不可中断的操作期间,那么等待时间更长。

例如:

一个循环程序环、一条多周期指令的执行,或处于一个等待状态的访问期间。

(3)ISR等待时间是指为了响应产生应答的中断事件,而到达特定中断服务程序(SlSR)所花费的时间。

该时间长短根据用户响应中断后保存上下文的不同而有所变化。

3.3CPU中断寄存器

CPU中断寄存器包括:

(1)中断标志寄存器(IFR);

(2)中断屏蔽寄存器(IMR)。

3.3.1CPU中断标志寄存器(IFRIntarruptFlagRegister)

中断标志寄存器(IFR)是CPU内核级控制寄存器。

它是16位的映射寄存器,位于数据存储器空间的0006h处。

中断标志寄存器是与DSP2407内核级可屏蔽中断INT1~UINT6相对应的控制寄存器。

它包含了这6个中断的标志位,用于指示这些中断是否已经产生或挂起。

IFR包含所有可屏蔽中断的标志位,用于识别和清除挂起的中断。

当一个可屏蔽中断被请求时,中断标志寄存器的相应标志位被置1。

如果对应中断屏蔽寄存器中的中断使能位也为1,则该中断请求被送到CPU,并设置IFR的相应位,此时该中断正被挂起或等待响应。

读取IFR可以识别挂起的中断,向相应的IFR位写1将清除已挂起的中断。

位15-6:

保留位。

位5:

INT6flag:

中断6标志位。

该位是第6级中断INT6的中断标志。

0:

无INT6中断挂起;

1:

至少一个INT6级里的外设中断挂起,向该位写1可将该位清0,即清除了中断请求。

位4:

INT5flag:

中断5标志位。

该位是第6级中断INT5的中断标志。

0:

无INT5中断挂起;

1:

至少一个INT5级里的外设中断挂起,向该位写1可将该位清0,即清除了中断请求。

位3:

INT4flag:

中断5标志位。

该位是第4级中断INT5的中断标志。

0:

无INT4中断挂起;

1:

至少一个INT4级里的外设中断挂起,向该位写1可将该位清0,即清除了中断请求。

位2:

INT3flag:

中断3标志位。

该位是第6级中断INT3的中断标志。

0:

无INT3中断挂起;

1:

至少一个INT3级里的外设中断挂起,向该位写1可将该位清0,即清除了中断请求。

位1:

INT2flag:

中断2标志位。

该位是第6级中断INT2的中断标志。

0:

无INT2中断挂起;

1:

至少一个INT2级里的外设中断挂起,向该位写1可将该位清0,即清除了中断请求。

位0:

INT1flag:

中断1标志位。

该位是第6级中断INT1的中断标志。

0:

无INT1中断挂起;

1:

至少一个INT1级里的外设中断挂起,向该位写1可将该位清0,即清除了中断请求。

3.3.2CPU中断屏蔽寄存器(IMR)

中断屏蔽寄存器-IMR(IntarruptMaskRegister,映射到数据存储器空间0004h的16位寄存器。

IMR中包含所有内核级中断(INT1-INT6)的屏蔽位,但不包括NMI和RS屏蔽位,因此,IMR对这两个中断无影响。

读IMR可以识别出(INT1-INT6)已屏蔽或使能的中断级,当向IMR中某位写1时,将使该位对应的可屏蔽中断使能;当向IMR中的该位写0时,则使其对应的中断屏蔽。

位15-6:

保留位。

位5:

INT6mask;中断6屏蔽位。

该位是第6级中断INT6的中断屏蔽位。

0:

中断INT6被屏蔽。

1:

中断INT6被使能。

位5:

INT5mask;中断5屏蔽位。

该位是第5级中断INT5的中断屏蔽位。

0:

中断INT5被屏蔽。

1:

中断INT5被使能。

位4:

INT4mask;中断4屏蔽位。

该位是第4级中断INT6的中断屏蔽位。

0:

中断INT4被屏蔽。

1:

中断INT4被使能。

位2:

INT3mask;中断3屏蔽位。

该位是第3级中断INT3的中断屏蔽位。

0:

中断INT6被屏蔽。

1:

中断INT6被使能。

位1:

INT2mask;中断2屏蔽位。

该位是第2级中断INT2的中断屏蔽位。

0:

中断INT2被屏蔽。

1:

中断INT2被使能。

位0:

INT1mask;中断6屏蔽位。

该位是第1级中断INT1的中断屏蔽位。

0:

中断INT1被屏蔽。

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 农林牧渔 > 林学

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2