chapter5_LPC2000系列ARM硬件结构(58)

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

• 中断类型
中断输入请求可以在VIC中被设置为以下三类: ▪FIQ中断:具有最高优先级;
▪向量IRQ中断:具有中等优先级; ▪非向量IRQ中断:具有最低优先级;
中断源0 中断源1
…… 中断源18
19个 中断输入
13个未使用
VIC 将32个 中断输入 进行分配
FIQ中断 向量IRQ中断 非向量IRQ中断
5.7 引脚连接模块
• 概述
LPC2000系列微控制器的大部分管脚都具有 多种功能,即管脚复用,但是同一引脚在同一时 刻只能使用其中一个功能,通过配置相关寄存器 控制多路开关来连接引脚与片内外设。
GPIO
P0.0
TXD0
PWM1输出
通过引脚连接模块控制引脚功能
• 外部存储器寄存器描述——PINSEL0
中断选择寄存器(VICIntSelect):

31 …
18
17

2
1
0
功能 保留
A/D转换器 外部中断3
ARM内核 — WDT
寄存器中每一位控制着一个中断源,各中断源的位置与中断源列 表所示相同。向某位写入1时,对应中断源产生的中断为FIQ中断,否 则为IRQ中断。
5.8 向量中断控制器(VIC)

31 …
18
17

2
1
0
功能 保留
A/D转换器 外部中断3
ARM内核 — WDT
与中断使能寄存器的功能相反,向某位写入1时,禁止对应的中断 源产生中断。
5.8 向量中断控制器(VIC)
• 选择产生中断的类型
ARM7TDMI内核具有FIQ和IRQ两个中断输入, 所有中断源产生的中断都可以选择产生其中一种中 断。这通过中断选择寄存器完成。
00
GPIO P0.6 MOSI0 捕获0.2 保留
00
GPIO P0.7 SSEL0 PWM2 EINT2
00
GPIO P0.8 TxD1 PWM4 保留
00
GPIO P0.9 RxD1 PWM6 EINT3
00
GPIO P0.10 RTS 捕获1.0 保留
00
GPIO P0.11如:CPTINS SEL[1捕9:获181].1设置为保0留1时, 00
00
P0.11 GPIO P0.11 CTS 捕获1.1 保留
00
P0.12 GPIO P0.12 DSR 匹配1.0 保留
00
P0.13 GPIO P0.13 DTR 匹配1.1 保留
00
P0.14 GPIO P0.14 CD
EINT1 保留
00
P0.15 GPIO P0.15 RI
EINT2 保留
匹配0.1 匹配0.2 匹配0.3 捕获0.0
复位值 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
5.7 引脚连接模块
• 使用示例——将P0.8、P0.9设置为TxD1、RxD1
通过查阅PINSE0寄存器设置表,得到P0.9和P0.8的控制位 为PINSEL0[19:16],当该域设置为[0101](0x05)时选择 RxD1和 TxD1 ; C代码:
00
01
10
11
复位值
GPIO P0.0 TxD0 PWM1 保留
00
GPIO P0.1 RxD0 PWM3 EINT0
00
GPIO P0.2 SCL 捕获0.0 保留
00
GPIO P0.3 SDA 匹配0.0 EINT1
00
GPIO P0.4 SCK0 捕获0.1 保留
00
GPIO P0.5 MISO0 匹配0.1 保留
5.8 向量中断控制器(VIC)
• 向量IRQ中断
VIC最多支持16个向量IRQ中断,这些中断被 分为16个优先级,并且为每个优先级指定一个服 务程序入口地址。在发生向量IRQ中断后,相应优 先级的服务程序入口地址被装入向量地址寄存器 VICVectAddr中,通过一条ARM指令即可跳转到 相应的服务程序入口处,所以向量IRQ中断具有较 快的中断响应。
PINSEL0 = 0x05 << 16;
为了不影响别的管脚连接设置,通常选择下面的设置方法。 C代码:
PINSEL0 = (PINSEL0 & 0xFFF0FFFF) | (0x05 << 16);
第5章 目录
1.简介 2.引脚配置 3.存储器寻址 4.系统控制模块 5.存储器加速模块 6.外部存储器控制器 7.引脚连接模块 8. 向量中断控制器 9.GPIO
第5章 目录
1.简介 2.引脚配置 3.存储器寻址 4.系统控制模块 5.存储器加速模块 6.外部存储器控制器 7.引脚连接模块 8. 向量中断控制器 9.GPIO
10.UART0 11.UART1 12.I2C接口 13.SPI接口 14.定时器0/1 15.脉宽调制器(PWM) 16.A/D转换器 17.实时时钟 18.看门狗
00
• 外部存储器寄存器描述——PINSEL0
PINSEL0 1:0 3:2 5:4 7:6 9:8 11:10
13:12 15:14 17:16 19:18 21:20 23:22 25:24 27:26 29:28 31:30
引脚名称 P0.0 P0.1 P0.2 P0.3 P0.4 P0.5 P0.6 P0.7 P0.8 P0.9 P0.10 P0.11 P0.12 P0.13 P0.14 P0.15
00
P0.6 GPIO P0.6 MOSI0 捕获0.2 保留
00
P0.7 GPIO P0.7 SSEL0 PWM2 EINT2
00
P0.8 GPIO P0.8 TxD1 PWM4 保留
00
P0.9 GPIO P0.9 RxD1 PWM6 EINT3
00
P0.10 GPIO P0.10 RTS 捕获1.0 保留
6
5.8 向量中断控制器(VIC)
• 中断源列表
模块
UART1
PWM0 I2C SPI0 SPI1 PLL RTC
可产生中断的标志
VIC通道号
Rx线状态(RLS),发送保持寄存器空(THRE)
Rx数据可用(RDA),字符超时指示(CTI)
7
匹配0~6(MR0,MR1,MR2,MR3,MR4,MR5,MR6)
8
SI(状态改变)
9
SPI中断标志(SPIF),模式错误(MODF)
10
SPI中断标志(SPIF),模式错误(MODF)
11
PLL锁定(PLOCK)
12
计数器增加(RTCCIF),报警(RTCALF)
13
5.8 向量中断控制器(VIC)
• 中断源列表
模块 系统控制 系统控制 系统控制 系统控制
A/D 保留
5.8 向量中断控制器(VIC)
• 向量IRQ中断相关寄存器
VICVectCntl0~15和VICVectAddr0~15两类 寄存器与向量IRQ中断设置有关,前者为中断源分 配向量IRQ中断的优先级,后者为该中断优先级设 置服务程序入口地址。寄存器名称最后的数字同 时也代表该寄存器控制的向量IRQ中断的优先级, 数值越小优先级越高。
2
EmbeddedICE,DbgCommTx
3
匹配0~3(MR0,MR1,MR2,MR3)
捕获0~3(CR0,CR1,CR2,CR3)
4
匹配0~3(MR0,MR1,MR2,MR3)
捕获0~3(CR0,CR1,CR2,CR3)
5
Rx线状态(RLS),发送保持寄存器空(THRE)
Rx数据可用(RDA),字符超时指示(CTI)
00 GPIO P0.16 GPIO P0.17 GPIO P0.18 GPIO P0.19 GPIO P0.20 GPIO P0.21 GPIO P0.22 GPIO P0.23 GPIO P0.24 GPIO P0.25
GPIO P0.27 GPIO P0.28 GPIO P0.29 GPIO P0.30
13:12 15:14 17:16 19:18 21:20 23:22 25:24 27:26 29:28 31:30
引脚名称 P0.16 P0.17 P0.18 P0.19 P0.20 P0.21 P0.22 P0.23 P0.24 P0.25 P0.26 P0.27 P0.28 P0.29 P0.30 P0.31
可产生中断的标志 外部中断0(EINT0) 外部中断1(EINT1) 外部中断2(EINT2) 外部中断3(EINT3) A/D转换器 保留
VIC通道号 14 15 16 17 18
19~31
5.8 向量中断控制器(VIC)
• 允许中断源产生中断
芯片内部许多部件都可以作为中断源,但并不 是每个中断源都需要在中断情况下进行操作,也可 以通过其它方法来处理各种状态。
GPIO P0.12 引D脚SRP0.9的匹功配1能.0为RX保D留1
00
GPIO P0.13 DTR 匹配1.1 保留
00
GPIO P0.14 CD
EINT1 保留
00
GPIO P0.15 RI
EINT2 保留
00
• 外部存储器寄存器描述——PINSEL1
PINSEL1 1:0 3:2 5:4 7:6 9:8 11:10
01
10
EINT1 匹配0.2
捕获1.2 SCK1
捕获1.3 MISO1
匹配1.2 MOSI1
匹配1.3 SSEL1
PWM5 保留
保留 捕获0.0
保留
保留
保留
保留
保留
保留
பைடு நூலகம்
保留
AIN0 捕获0.1
AIN1 捕获0.2
AIN2 捕获0.3
AIN3 EINT3
保留
11 保留 匹配1.2 匹配1.3 匹配1.3 EINT3 捕获1.3 匹配0.0 保留 保留 保留
注意:如果将同一个中断源分配给多个使能的向 量IRQ中断,那么该中断源发生中断时,会使用最 高优先级(最低编号)的寄存器设置。
5.8 向量中断控制器(VIC)
5.8 向量中断控制器(VIC)
• 非向量IRQ中断
任何中断源都可以设置为非向量IRQ中断。它 与向量IRQ中断的区别在于前者不能为每个非向量 IRQ中断源设置服务程序地址,而是所有的非向量 IRQ中断都共用一个相同的服务程序入口地址。
当有多个中断源被设置为非向量IRQ中断时, 需要在用户程序中识别中断源,并分别作出处理。 所以非向量IRQ中断响应延时相对较长。
PINSEL0 1:0 3:2 5:4 7:6 9:8 11:10
13:12 15:14 17:16 19:18 21:20 23:22 25:24 27:26 29:28 31:30
引脚名称
00
01
10
11
复位值
P0.0 GPIO P0.0 TxD0 PWM1 保留
00
P0.1 GPIO 表P0.示1 寄存Rx器D0中某P两W位M3的设E定IN值T0
• 允许中断源产生中断
中断使能寄存器(VICIntEnable):

31 …
18
17

2
1
0
功能 保留
A/D转换器 外部中断3
ARM内核 — WDT
寄存器中每一位控制着一个中断源,各中断源的位置与中断源列 表所示相同。向某位写入1时,允许对应的中断源产生中断。
中断使能清零寄存器(VICIntEnClr):
中断请求输入0 ...
中断请求输入31
IRQ
VIC
ARM7TDMI-S
FIQ
5.8 向量中断控制器(VIC)
• 中断源列表
模块 WDT
— ARM内核 ARM内核 定时器0
定时器1
UART0
可产生中断的标志
VIC通道号
看门狗中断(WDINT)
0
保留给软件中断
1
EmbeddedICE,DbgCommRx
比如通过串口发送一段数据,可以选择在一批 发送结束后产生中断,然后在中断服务程序中发送 下一批数据。也可以通过查询发送标志位来决定什 么时候发送下一批数据。
允许中断源产生中断由寄存器VICIntEnable和 VICIntEnClr控制,前者使能中断,后者禁止中断。
5.8 向量中断控制器(VIC)
00
P0.2 GP如IO PP0I.N2 SELS0C[1L:0]=0捕1时获0,.0 连接保T留XD0 00
P0.3 GPIO P0.3 SDA 匹配0.0 EINT1
00
P0.4 G表PI示O P寄0.4存器S中CK的0 控制捕位获0.1 保留
00
P如0.5[9:8]表GP示IOPPI0N.5SELM0I寄SO存0 器的匹配第09.1和8位保留
10.UART0 11.UART1 12.I2C接口 13.SPI接口 14.定时器0/1 15.脉宽调制器(PWM) 16.A/D转换器 17.实时时钟 18.看门狗
5.8 向量中断控制器(VIC)
• 向量中断控制器概述
ARM7TDMI内核具有两个中断输入,分别为 IRQ中断和FIQ中断。但是芯片内部有许多中断源, 最多可以有32个中断输入请求。向量中断控制器的 作用就是允许哪些中断源可以产生中断、可以产生 哪类中断、产生中断后执行哪段服务程序。
相关文档
最新文档