CC2530中断源.docx

上传人:b****1 文档编号:23077044 上传时间:2023-04-30 格式:DOCX 页数:19 大小:216.33KB
下载 相关 举报
CC2530中断源.docx_第1页
第1页 / 共19页
CC2530中断源.docx_第2页
第2页 / 共19页
CC2530中断源.docx_第3页
第3页 / 共19页
CC2530中断源.docx_第4页
第4页 / 共19页
CC2530中断源.docx_第5页
第5页 / 共19页
点击查看更多>>
下载资源
资源描述

CC2530中断源.docx

《CC2530中断源.docx》由会员分享,可在线阅读,更多相关《CC2530中断源.docx(19页珍藏版)》请在冰豆网上搜索。

CC2530中断源.docx

CC2530中断源

1、中断源

CC2530的CPU有18个中断源,每个中断源都有它自己的位于一系列SFR寄存器中的中断请求标志。

每个中断请求都需要中断使能位来使能或禁止,具体定义如下表:

表1

InterruptNumber

中断号

Description

描述

InterruptName

中断名称

InterruptVector

中断向量

InterruptMask,CPU

中断屏蔽

InterruptFlag,CPU

中断标志

0

RFTXFIFOunderflowandRXFIFOoverflow

射频发送队列空和接收队列溢出

RFERR

03h

IEN0.RFERRIE

TCON.RFERRIF

(1)

1

ADCendofconversion

ADC转换完成

ADC

0Bh

IEN0.ADCIE

TCON.ADCIF

(1)

2

USART0RXcomplete

串口0接收完毕

URX0

13h

IEN0.URX0IE

TCON.URX0IF

(1)

3

USART1RXcomplete

串口1接收完毕

URX1

1Bh

IEN0.URX1IE

TCON.URX1IF

(1)

4

AESencryption/decryptioncomplete

AES加/解密完成

ENC

23h

IEN0.ENCIE

S0CON.ENCIF

5

SleepTimercompare

睡眠定时器比较

ST

2Bh

IEN0.STIE

IRCON.STIF

6

Port2inputs/USB

端口2输入/USB

P2INT

33h

IEN2.P2IE

IRCON2.P2IF

(2)

7

USART0TXcomplete

串口0发送完毕

UTX0

3Bh

IEN2.UTX0IE

IRCON2.UTX0IF

8

DMAtransfercomplete

DMA发送完成

DMA

43h

IEN1.DMAIE

IRCON.DMAIF

9

Timer1(16-bit)capture/compare/overflow

定时器1(16位)捕获/比较/溢出

T1

4Bh

IEN1.T1IE

IRCON.T1IF

(1)

(2)

10

Timer2

定时器2(MAC定时器)

T2

53h

IEN1.T2IE

IRCON.T2IF

(1)

(2)

11

Timer3(8-bit)compare/overflow

定时器3(8位)比较/溢出

T3

5Bh

IEN1.T3IE

IRCON.T3IF

(1)

(2)

12

Timer4(8-bit)compare/overflow

定时器4(8位)比较/溢出

T4

63h

IEN1.T4IE

IRCON.T4IF

(1)

(2)

13

Port0inputs

端口0输入

P0INT

6Bh

IEN1.P0IE

IRCON.P0IF

(2)

14

USART1TXcomplete

串口1发送完毕

UTX1

73h

IEN2.UTX1IE

IRCON2.UTX1IF

15

Port1inputs

端口1输入

P1INT

7Bh

IEN2.P1IE

IRCON2.P1IF

(2)

16

RFgeneralinterrupts

RF通用中断

RF

83h

IEN2.RFIE

S1CON.RFIF

(2)

17

Watchdogoverflowintimermode

看门狗计时溢出

WDT

8Bh

IEN2.WDTIE

IRCON2.WDTIF

(1)Hardware-clearedwheninterruptserviceroutineiscalled(当中断服务例程被调用后,硬件清除标志位)

(2)AdditioalIRQmaskandIRQflagbitsexist.(附加中断屏蔽和中断标志位存在)

 

2、中断屏蔽

每个中断通过IEN0、IEN1、IEN2里的相应中断使能位来禁止或启用,具体如下表。

中断使能寄存器(IEN0,IEN1,IEN2)(0:

中断禁止 1:

中断使能)

表2

端口

Bit位

名称

初始化

读/写

描述

IEN0

7

EA

0

R/W

禁止所有中断

0:

无中断被确认。

1:

通过设置对应的使能位,将每个中断源分别使能或禁止。

6

0

R0

不使用,读取为0值

5

STIE

0

R/W

睡眠定时器中断使能

4

ENCIE

0

R/W

AES加解密中断使能

3

URX1IE

0

R/W

串口1接收中断使能

2

URX0IE

0

R/W

串口0接收中断使能

1

ADCIE

0

R/W

ADC中断使能

0

RFERRIE

0

R/W

RF接收/发送队列中断使能

IEN1

7:

6

00

R0

不使用,读取为0值

5

P0IE

0

R/W

端口0中断使能

4

T4IE

0

R/W

定时器4中断使能

3

T3IE

0

R/W

定时器3中断使能

2

T2IE

0

R/W

定时器2中断使能

1

T1IE

0

R/W

定时器1中断使能

0

DMAIE

0

R/W

DMA传输中断使能

IEN2

7:

6

00

R0

不使用,读取为0值

5

WDTIE

0

R/W

看门狗中断使能

4

P1IE

0

R/W

端口1中断使能

3

UTX1IE

0

R/W

串口1中断使能

2

UTX0IE

0

R/W

串口0中断使能

1

P2IE

0

R/W

端口2中断使能

0

RFIE

0

R/W

RF通用中断使能

 

注意某些外部设备会因为若干事件产生中断请求。

这些中断请求可以作用在端口0、端口1、端口2、定时器1、定时器2、定时器3、定时器4或者无线上。

这些外部设备在相应的寄存器里都有一个内部中断源的中断屏蔽位。

为了启用中断,需要以下步骤:

(1)清除中断标志位(Clearinterruptflags);

(2)如果有,则设置SFR寄存器中对应的各中断使能位;

(3)设置寄存器IEN0、IEN1和IEN2中对应的中断使能位为1;

(4)设置全局中断位IEN0.EA为1;

(5)在该中断对应的向量地址上,运行该中断的服务程序。

 

      下图给出了所有中断源及其相关的控制和状态寄存器的概述图;当中断服务程序被执行后,阴影框的中断标志位将被硬件自动清除;

 

 3、中断处理

      当中断发生时,CPU就指向表1所描述的中断向量地址。

一旦中断服务开始,就只能够被更高优先级的中断打断。

中断服务程序由指令RETI终止,当执行RETI后,CPU将返回到中断发生时的下一条指令。

      当中断发生时,不管该中断使能或禁止,CPU都会在中断标志寄存器中设置中断标志位。

当中断使能时,首先设置中断标志,然后在下一个指令周期,由硬件强行产生一个LCALL到对应的向量地址,运行中断服务程序。

      新中断的响应,取决于该中断发生时CPU的状态。

当CPU正在运行的中断服务程序,其优先级大于或等于新的中断时,新的中断暂不运行,直至新的中断的优先级高于正在运行的中断服务程序。

中断响应的时间取决于当前的指令,最快的为7个机器指令周期,其中1个机器指令周期用于检测中断,其余6个用来执行LCALL。

中断标志

寄存器

Bit位

名称

初始化

读/写

描述

TCON

7

URX1IF

0

R/W

H0

USART1RX中断标志。

当中断发生时设1,当CPU向量指向中断服务例程时清0。

0:

无中断未决

1:

中断未决

6

0

R/W

不使用

5

ADCIF

0

R/W

H0

ADC中断标志。

当中断发生时设1,当CPU向量指向中断服务例程时清0。

0:

无中断未决

1:

中断未决

4

0

R/W

不使用

3

URX0IF

0

R/W

H0

USART0RX中断标志。

当中断发生时设1,当CPU向量指向中断服务例程时清0。

0:

无中断未决

1:

中断未决

2

IT1

1

R/W

保留。

必须一直设1。

1

RFERRIF

0

R/W

H0

RFTX/RXFIFO中断标志。

当中断发生时设1,当CPU向量指向中断服务例程时清0。

0:

无中断未决

1:

中断未决

0

IT0

1

R/W

保留。

必须一直设1。

S0CON

7:

2

000000

R/W

不使用

1

ENCIF_1

0

R/W

AES中断。

ENC有两个中断标志位,ENCIF_1和ENCIF_0。

设置其中一个标志就好请求中断服务。

当AES协处理器请求中断时,两个标志都有设置。

0:

无中断未决

1:

中断未决

0

ENCIF_0

0

R/W

AES中断。

ENC有两个中断标志位,ENCIF_1和ENCIF_0。

设置其中一个标志就好请求中断服务。

当AES协处理器请求中断时,两个标志都有设置。

0:

无中断未决

1:

中断未决

S1CON

7:

2

000000

R/W

不使用

1

RFIF_1

0

R/W

RF一般中断。

RF有两个中断标志,RFIF_1和RFIF_0,设置其中一个标志就会请求中断服务。

当无线电请求中断时两个标志都有设置。

0:

无中断未决

1:

中断未决

0

RFIF_0

0

R/W

RF一般中断。

RF有两个中断标志,RFIF_1和RFIF_0,设置其中一个标志就会请求中断服务。

当无线电请求中断时两个标志都有设置。

0:

无中断未决

1:

中断未决

IRCON

7

STIF

0

R/W

睡眠定时器中断标志位

0:

无中断未决

1:

中断未决

6

--

0

R/W

必须一直设0。

5

P0IF

0

R/W

端口0中断标志

0:

无中断未决

1:

中断未决

4

T4IF

0

R/W

H0

定时器4中断标志。

当中断发生时设1,当CPU向量指向中断服务例程时清0。

0:

无中断未决

1:

中断未决

3

T3IF

0

R/W

H0

定时器3中断标志。

当中断发生时设1,当CPU向量指向中断服务例程时清0。

0:

无中断未决

1:

中断未决

2

T2IF

0

R/W

H0

定时器2中断标志。

当中断发生时设1,当CPU向量指向中断服务例程时清0。

0:

无中断未决

1:

中断未决

1

T1IF

0

R/W

H0

定时器1中断标志。

当中断发生时设1,当CPU向量指向中断服务例程时清0。

0:

无中断未决

1:

中断未决

0

DMAIF

0

R/W

DMA完成中断标志

0:

无中断未决

1:

中断未决

IRCON2

7:

5

000

R/W

不使用

4

WDTIF

0

R/W

看门狗定时器中断标志

0:

无中断未决

1:

中断未决

3

P1IF

0

R/W

端口1中断标志

0:

无中断未决

1:

中断未决

2

UTX1IF

0

R/W

USART1TX中断标志

0:

无中断未决

1:

中断未决

1

UTX0IF

0

R/W

USART0TX中断标志

0:

无中断未决

1:

中断未决

0

P2IF

0

R/W

端口2中断标志

0:

无中断未决

1:

中断未决

 

4、中断优先级

      中断可划分为6个中断优先组,每组的优先级通过设置寄存器IP0和IP1来实现。

为了给中断(也就是它所在的中断优先组)赋值优先级,需要设置IP0和IP1的对应位。

表4-1

端口

Bit位

名称

初始化

读/写

描述

IP1

7:

6

--

00

R/W

没使用

5

IP1_IPG5

0

R/W

中断第5组,优先级控制位1,参考表4-3

4

IP1_IPG4

0

R/W

中断第4组,优先级控制位1,参考表4-3

3

IP1_IPG3

0

R/W

中断第3组,优先级控制位1,参考表4-3

2

IP1_IPG2

0

R/W

中断第2组,优先级控制位1,参考表4-3

1

IP1_IPG1

0

R/W

中断第1组,优先级控制位1,参考表4-3

0

IP1_IPG0

0

R/W

中断第0组,优先级控制位1,参考表4-3

IP0

7:

6

--

00

R/W

没使用

5

IP0_IPG5

0

R/W

中断第5组,优先级控制位0,参考表4-3

4

IP0_IPG4

0

R/W

中断第4组,优先级控制位0,参考表4-3

3

IP0_IPG3

0

R/W

中断第3组,优先级控制位0,参考表4-3

2

IP0_IPG2

0

R/W

中断第2组,优先级控制位0,参考表4-3

1

IP0_IPG1

0

R/W

中断第1组,优先级控制位0,参考表4-3

0

IP0_IPG0

0

R/W

中断第0组,优先级控制位0,参考表4-3

 

表4-2优先级设置

IP1_X

IP0_X

优先级

0

0

0–最低级别

0

1

1

1

0

2

1

1

3–最高级别

 

      中断优先级及其赋值的中断源显示在表4-3中,每组赋值为4个中断优先级之一。

当进行中断服务请求时,不允许被同级或较低级别的中断打断。

表4-3中断优先组

中断

IPG0

PEERR

RF

DMA

IPG1

ADC

T1

P2INT

IPG2

URX0

T2

UTX0

IPG3

URX1

T3

UTX1

IPG4

ENC

T4

P1INT

IPG5

ST

P0INT

WDT

 

      当同时收到几个相同优先级的中断请求时,采用表4-4所列的轮流检测顺序来判定哪个中断优先响应。

表4-4中断轮流检测顺序

中断向量编号

中断名称

 

0

RFERR

轮流检测顺序

16

RF

8

DMA

1

ADC

9

T1

2

URX0

10

T2

3

URX1

11

T3

4

ENC

12

T4

5

ST

13

P0INT

6

P2INT

7

UTX0

14

UTX1

15

P1INT

17

WDT

 

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

当前位置:首页 > PPT模板 > 可爱清新

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1