1.3 应用平台
1.3.1 概述
接下来介绍本书中使用的硬件平台,将从处理器开始逐步展开。
处理器的功能是执行指令。本书基于Arm Cortex-M0+处理器进行全面论述。
处理器是MCU中的组件之一。MCU中的电路为处理器提供时钟,内存用于保存程序和数据,外围设备用来简化程序和提高性能。本书选用的MCU是NXP的KL25Z128VLK4。
MCU安装在FRDM-KL25Z开发板上,如图1.14所示。该PCB板上增加了调试接口、电源以及各种输入和输出设备。
图1.14 NXP半导体公司的FRDM-KL25Z开发板
1.3.2 处理器
Cortex-M0+处理器(如图1.15所示)负责执行程序指令,其核心是处理器内核。内核与内存通信为处理器提供需要执行的指令和需要处理的数据。在MCU中,内存位于处理器的外部,通过AHB-Lite接口与处理器相连接。总线矩阵在多个可能的读取器和写入器之间共享存储器总线。系统通过内存保护单元限定执行任务时可以使用的内存范围,以限制错误带来的影响。
图1.15 Arm Cortex-M0+处理器及其相关组件
中断由嵌套向量中断控制器(Nested Vectored Interrupt Controller,NVIC)传入处理器内核,NVIC会根据中断的优先次序,筛选出所需的中断。
唤醒中断控制器在没有中断请求时会让NVIC和处理器的其他部分进入低功耗睡眠模式,只在需要时才唤醒它们以减少耗能。部分组件提供调试支持,包括:下载代码到MCU的内存中,设置中断点控制程序的执行,追踪真正执行的一系列指令。
1.3.3 MCU
MCU(如图1.16所示)添加内存、辅助电路和外围设备等以增强Arm Cortex-M0+处理器的性能。通常有两种类型的内存:闪存,在断电的情况下不会丢失数据,用来保存程序和固定的数据;SRAM,在断电的情况下无法保留数据,用于存储临时数据。
图1.16 NXP Kinetis KL25Z系列MCU
本书所使用的MCU(KL25Z128VLK4)基于Cortex-M0+处理器,其运行频率可达48MHz,包含128KB闪存ROM、16KB RAM以及多种外围设备[1],[2]。
辅助电路对处理器来说必不可少。处理器需要时钟信号才能正常工作,MCU中添加了多个时钟发生器。这些时钟具有不同的精度、频率、功耗和可配置性。
外围设备将原本在处理器上执行的程序转移到硬件上执行。例如,定时器外设能够为事件或输入信号提供精确的时间测量,还可以在没有软件开销的情况下生成重复信号。通信接口实现了数字化数据在处理器格式和外部设备格式之间的灵活转换。模拟接口则执行处理器中的数据在数字格式和模拟格式之间的转换。与数字电路中的二进制0、1不同,模拟格式的数据是可以在指定范围内连续变化的信号。最后还有一些其他的外设用于执行其他任务,例如:重置失控程序(看门狗)、加速和直接内存访问(DMA)。
1.3.4 开发板
如图1.14和图1.17所示,MCU安装在FRDM-KL25Z开发板上[3]。开发板上配有电源、调试接口以及各种输入和输出设备。一个8MHz时钟源为其提供稳定、准确的时序参考。
图1.17 NXP FRDM-KL25Z开发板
开发板通常使用USB提供的5V电源,电压调节器则负责将电压降至3.3V以供板上其他组件使用。开发板设有安装小型3V纽扣电池及支架的空间,使开发板在不连接USB电源的情况下也可以运行。
调试MCU(标有OpenSDA的框中)负责PC开发端(通过USB连接)和KL25Z MCU(目标MCU)之间命令和数据的转换。
开发板还提供了两个输入设备:三轴惯性传感器(加速度计)用于检测运动,此元件可以感应重力,以确定电路板的倾斜度;触摸板可以通过电容式传感器测量指尖的位置。
开发板中还配有一个可调色LED,包括三个高亮度LED通道(红色、绿色和蓝色),通过设定不同的亮度等级可以产生多种多样的颜色。