嵌入式系统原理与实践-第04章 系统控制_2018

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
为了让用户能够实时检测系统时钟是否运行正常, Cortex-M4 系列的微控制器专门提供了引脚 MCO。用 户可以通过软件编程的方式,选择 SYSCLK、PLLCLK、 HSE 或者 HIS 中的一路在 MCO 上输出以供检测。
2019/6/7
17
4.1.2时钟控制
3.系统时钟分频得到的其他时钟
软件复位可以复位某个特定的外设或者复位整个微 控制器,包括内核在内的整个微控制器,均可以通过设 置中断和复位控制寄存器的相应位实现复位。
2019/6/7
8
4.1.1复位控制
3.电源复位
• 上电复位
2019/6/7
9
4.1.1复位控制
3.电源复位
• 掉电复位 如果嵌入式系统在运行过程中电源电压突然发生跌落,
下一步的去向,避免溢出时程序运行的不确定性,增 加程序的可靠性。
看门狗计数发生溢出时仅将程序计数器清零,而 不是像上电复位那样,将所有的寄存器都要清零。
2019/6/7
7
4.1.1复位控制
2.系统复位
• 软件复位 软件复位则是通过软件触发让 MCU 自己对自己进
行复位,软件复位是一种通过执行某个指令来触发 MC U 复位的系统复位。
2019/6/7
11
4.1.2时钟控制
硬件板上电路的时钟越快,功耗越大,且其抗电 磁干扰能力也会减弱,所以不可能一味地提高时钟频 率来满足各种设备的需求。因此较为复杂的MCU 一般 都采取多时钟源的方法来解决这个问题。
下图展现的是 Cortex-M4 系统的时钟树,从左至 右,相关时钟依次为:输入时钟、系统时钟和由系统 时钟分频得到的其它时钟。
2019/6/7
23
4.1.4 嵌套向量中断控制器
1.中断基本概念
当出现了某个特殊事件时, CPU 会终止当前 程序的执行,转而去执行该事件的处理程序(中 断服务程序),待中断服务程序执行完毕,在返 回断点继续执行原来的程序,这个过程称为中断 。
2019/6/7
24
4.1.4 嵌套向量中断控制器
2019/6/7
12
4.1.2 时钟控制
2019/6/7
13
4.1.2时钟控制
1.输入时钟
从时钟源频率来分,可以分为高速时钟和低速时钟, 如高速外部时钟和高速内部时钟都属于高速时钟,低速 外部时钟和低速内部时钟都属于低速时钟。
从芯片角度来分,可以分为片内时钟和片外时钟。 片内时钟和片外时钟特性大体相同,片内时钟由芯片内 部 RC 振荡器产生,具有起振较快的优点,因此在系统 刚刚启动的时候默认采用内部高速时钟。而片外时钟通 常由外部晶体振荡器输入,在精度和稳定性上都具有较 大的优势。因此,上电后通过软件配置的方式将系统时 钟转而采用高速外部时钟信号。
1.中断基本概念
• 中断源 能引发中断的事件称为中断源。通常一个微控制
器系统上,中断源可以是由微处理器异常引发的系统 异常中断,也可以由外设引发的外部中断。系统异常 中断因素包括非屏蔽中断、存储器管理、总线故障等, 外部中断因素包括定时器溢出、串口收到数据等。
2019/6/7
25
4.1.4 嵌套向量中断控制器
2019/6/7
5
4.1.1复位控制
2.系统复位
• 外部复位 如果应用程序仅使用内部上电复位(POR)电路,
那么 RESET 输入端必须通过一个可选的上拉电阻(1~ 100kΩ)连接到电源(VDD),如下图所示。
2019/6/7
6
4.1.1复位控制
2.系统复位
• 看门狗复位 在看门狗计数器发生溢出时,可以事先设定程序
35
4.1.4 嵌套向量中断控制器
3.中断配置
首先需要建立中断向量表,并在中断向量表中 为将要使用的中断源设置好中断向量;其次系统 需要分配栈空间并初始化;接下来需要在 NVIC 寄存器中设置该中断源的优先级;完成中断源的 优先级设置后需要使能该中断;最后编写中断服 务函数,并将相应的外部设备设置好,打开设备 的中断功能。
2019/6/7
37
4.1.4 嵌套向量中断控制器
3.中断配置
• 设置中断优先级
设置中断优先级是用户在应用程序中编写代码配 置 NVIC 实现的,首先设置中断优先级的分组位数, 然后设置中断的抢占优先级和子优先级。
2019/6/7
20
4.1.3 电源/功耗控制
2.停机模式
状态:内核和外设均停止工作 。 进入:电源控制寄存器中的相应位清零时,遇到 WFE 或WFI 指令,就会进入停机模式 。 退出:任意一个外部中断/事件控制(EXTI)信号唤醒 。
2019/6/7
21
4.1.3 电源/功耗控制
3.待机模式
2019/6/7
29
4.1.4 嵌套向量中断控制器
1.中断基本概念
• 中断处理过程 ③ 中断返回 CPU 执行中断服务程序完毕后,通过恢复现场, 即CPU 关键寄存器出栈实现中断返回,从断点处 继续执行源程序。
2019/6/7
30
4.1.4 嵌套向量中断控制器
1.中断基本概念
• 中断优先级 中断的优先级是根据中断实时性、重要性、软件
26
4.1.4 嵌套向量中断控制器
1.中断基本概念
• 中断处理过程 ① 中断响应
保护现场:保护现场是为了在中断处理完成后,可以 返回断点处继续执行下去而必须做的操作,微处理器 系统保护现场通常是通过将 CPU 寄存器的值进栈实 现的。
查找中断服务程序地址:中断发生后,CPU 根据中 断向量表准确地找到这个中断对应的处理程序。
状态:内核和外设都停止工作,而且内部的电压调压 器也被关闭。 进入:电源控制寄存器中的相应位置位时,遇到 WFE 或WFI 指令,就会进入待机模式 。
退出:/RESET 引脚上的外部复位信号或者 RTC 的闹
钟事件。
2019/6/7
22
4.1.4 嵌套向量中断控制器
嵌套向量中断控制器(Nested Vectored Interru-pt Controller, NVIC),控制着整个芯片中断相关 的功能,它跟内核紧密耦合 。
2019/6/7
18
4.1.3电源/功耗控制
微控制器依靠低功耗模式降低处理器功耗,常见的 低功耗模式包括: • 睡眠模式 • 停机模式 • 待机模式
2019/6/7
19
4.1.3 电源/功耗控制
1.睡眠模式
状态:Cortex 的内核停止工作,但外设还在继续工作。 进入:执行了 WFE 或WFI 指令 。 退出:某个外设产生事件或者中断请求,内核才会被 唤醒,从而退出睡眠模式 。
2019/6/7
15
4.1.2时钟控制
1.输入时钟
• 低速外部时钟
低速外部时钟通常以外部晶振作为时钟源,晶体一 般选择一个低速外部晶体或陶瓷谐振器,常见频率参数 有 32.768kHz,11.0592kHz 等,它为实时时钟或者其 他定时功能提供一个低功耗且精确的时钟源。
• 低速内部时钟 低速内部时钟由片内 RC 电阻、电容时钟振荡器产
处理的方便性预先设定的。当同时有多个中断请求产 生时,CPU 会优先响应优先级较高的中断请求。
2019/6/7
31
4.1.4 嵌套向量中断控制器
1.中断基本概念
• 中断嵌套
中断优先级不仅用于并发中断,还用于嵌套中断。 中断嵌套是指当系统正在执行一个中断服务时,又有 新的中断事件发生而产生了新的中断请求。当新发生 的中断的优先级高于正在处理的中断时,CPU 可以终 止执行优先级低的当前中断处理程序,转去执行新发 生的、优先级较高的中断,处理完毕后才返回原来的 中断处理程序继续执行。
2019/6/7
14
4.1.2时钟控制
1.输入时钟
• 高速外部时钟 高速外部时钟通常以外部晶体作为时钟源,常用的
晶体频率根据芯片的不同而发生变化。 • 高速内部时钟
高速内部时钟由芯片内 RC 电阻、电容时钟振荡器 产生,常见频率参数有 5MHz,8MHz 等,虽然不稳定, 但是它的启动时间比 HSE晶体振荡器短。然而,即使在 校准之后它的时钟频率精度仍较差,Cortex-M4 从上电 开始即采用 HIS 作为初始的系统时钟。
1.中断基本概念
• 中断屏蔽 在微控制器中,程序员可以通过设置相应的中
断屏蔽位,禁止 CPU 响应某个中断,从而实现中断 屏蔽。一个中断源能否被响应,一般由总“中断允 许控制位”和该中断自身的“中断允许控制位”共 同决定,这两个中断控制位中的任何一个被关闭, 该中断就无法被响应。
2019/6/7
2019/6/7
36
4.1.4 嵌套向量中断控制器
3.中断配置
• 建立中断向量表 中断向量表的建立必须在用户应用程序
执行前完成,用户可以根据应用需求,选择 在 Flash 或在 RAM 中建立中断向量表。 • 分配栈空间并初始化
栈的初始化工作通常是在微处理器上电 复位后执行复位程序完成的。栈空间的分配 通常位于启动代码的起始位置。
中断向量表:按中断号从小到大依次存放着所有中断 处理程序的入口地址
2019/6/7
27
4.1.4 嵌套向量中断控制器
1.中断基本概念
• 中断处理过程 ① 中断响应
2019/6wk.baidu.com7
28
4.1.4 嵌套向量中断控制器
1.中断基本概念
• 中断处理过程 ② 执行中断服务程序 每个中断都有自己的对应的中断服务程序, 用来处理中断,CPU 响应中断后转而执行对 应的中断服务程序,通常中断服务程序又称 为中断服务函数,由用户根据具体的应用使 用汇编语言或 C 语言编写,用来实现对中断 真正的处理操作。
生,LSI RC 担当一个低功耗时钟源的角色,常见频率 参数有 10kHz、32.768kHz、128kHz 等,可以提供给实 时时钟模块和看门狗模块。
2019/6/7
16
4.1.2时钟控制
2.系统时钟
系统时钟 SYSCLK 由多路选择器 SW 根据用户设置 来选择 PLLCLK、HSE 或者 HIS 中的一路作为输出而 得,SYSCLK 是片上大部分部件的时钟来源。
2019/6/7
3
4.1.1复位控制
1.复位源
不同的嵌入式系统有不同的复位源,按照复位源的 不同可以将复位分为系统复位、电源复位,常见的复位 源如下表所示。
2019/6/7
4
4.1.1复位控制
1.复位源
一般系统存在多个复位源:外部复位引脚、内部 看门狗复位、通过 NVIC(嵌套向量中断控制器)产生 的软件复位、上电/掉电复位、低电压检测电路产生的 复位信号,如图所示。
2019/6/7
32
4.1.4 嵌套向量中断控制器
2.中断原理
下表给出中断相关寄存器
2019/6/7
33
4.1.4 嵌套向量中断控制器
2.中断原理
下表给出中断相关寄存器
下图给出一个中断请求信号产生的全过程
2019/6/7
34
4.1.4 嵌套向量中断控制器
2.中断原理
2019/6/7
会导致程序运行的不确定,所以此时需要将硬件板复位, 使其处于一个确定的状态。当电压跌落到一定的阈值以 下时内部的掉电复位控制器中的条件检测位(BOR)就会 被置为 1,表示将执行掉电复位程序。
2019/6/7
10
4.1.1复位控制
3.电源复位
• 掉电复位 掉电复位微控制器执行如下过程: ① 当 VDD 降至低到一定的阈值以下,内部掉电复 位条件位 BOR 将被置为 1。 ② 如果 BOR 条件位被置位,内部复位有效。 ③ 内部复位有效后,复位开始,微控制器获取并加 载初始堆栈指针、初始程序计数器以及由程序计 数器指定的第 1 条指令后开始执行。
嵌入式系统
——第4章 系统控制
华东师范大学计算机系
2019/6/7
1
4.1功能组件
系统控制功能组件:
复位控制 时钟控制 电源/功耗控制 中断控制 DMA控制
*
*
4.1.1复位控制
当出现程序跑飞的情况或程序跳转时,可用手动或自 动的方法发信号给硬件特定接口,使软件恢复到特定的程 序段运行,这一操作就是复位(Reset),系统复位的流程 如下图所示。
• HCLK:HCLK 是高速总线 AHB 时钟,AHB 主要用于 高性能模块,如 CPU、DMA和 DSP 等之间的连接。
• FCLK:Cortex-M4 内核的“自由运行”时钟,同样由 系统时钟 SYSCLK 经过 AHB预分频器分频后直接得到, 并且与 HCLK 互相同步。
• PCLK1:外设时钟,由系统时钟 SYSCLK 经过 AHB 预 分频器,再经过 APB1 预分频器分频后得到。其主要 作用是为挂载在 APB1 总线上的时钟提供时钟信号。
相关文档
最新文档