1、第2章 Kinetis微控制器概述与K60硬件最小系统,2012.01,主要知识点,学习一个新MCU芯片的基本要素,2.1,ARM背景知识简介,2.2,Kinetis系列微控制器概述及型号标识,2.3,K60系列微控制器的存储器映像与编程结构,2.4,K60的引脚功能与硬件最小系统,2.5,2.6,ARM Cortex-M4的寄存器及指令简介,2.1 学习一个新MCU芯片的基本要素,一般来说学习一个新的MCU芯片的过程: 了解性能及内部主要功能模块与存储空间的地址分配 了解基本的编程结构、编程模式及寻址方式 了解中断结构 了解芯片的引脚的总体布局情况、硬件最小系统电路 理解第一个工程的结构、工
2、程中各个文件的基本功能 编译、链接,理解列表文件、机器码文件 借助硬件评估环境,重复练习 充分理解第一个工程的执行过程 决定是否采用嵌入式(实时)操作系统,2.2 ARM背景知识简介,2.2.1 ARM简介 1ARM发展史ARM公司于1990年11月成立于英国,原名为Advanced RISC Machine有限公司,是苹果电脑、Acorn电脑集团和VLSI Technology的合资企业。 ARM成功地研制了首个低成本RISC架构 1991年ARM公司推出了首个嵌入式RISC核心ARM6TM系列处理器 现在,ARM芯片的出货量每年的增量均在20亿片以上。与其他不像大多数的半导体公司不同,AR
3、M公司从不制造和销售具体的处理器芯片,而是把处理器的设计授权给相关的商务合作伙伴,让他们根据自己的强项设计具体的芯片。,2.2 ARM背景知识简介,2.2.2 ARM架构的演进 1985年,开发出ARM1 Sample版 1986年, ARM2量产-具有32位的数据总线、26位的寻址空间,并提供64MB的寻址范围和16个32位的寄存器 1991年,ARM技术首次发布,然后苹果电脑使用ARM6架构的ARM610当作其Apple Newton PDA的核心。 1994年,Acorn使用ARM610作为其RISC PC电脑内的CPU。,2.2 ARM背景知识简介,随着技术的不断发展,ARM公司不断推
4、陈出新,研发出较高性能的ARMv7架构。ARMv7架构采用Thumb-2技术。在该版本中,内核架构首次从单一序列变成三种序列。 系列A(ARMv7-A):设计用于高性能的“开发应用平台”越来越接近电脑。 系列R(ARMv7-R):用于高端的嵌入式系统,尤其是那些带有实时要求的既要快又要实时。 系列M(ARMv7-M):用于深度嵌入的、单片机风格的系统中本书的主角。,2.2 ARM背景知识简介,2.2.3 ARM处理器命名方法的演变以前,ARM使用一种基于数字的命名法。在二十世纪九十年代,还曾在数字后面添加字母后缀,用来进一步明细该处理器的特性。到了ARMv7架构时代,ARM改革了这一冗长的、需
5、要“解码”的数字命名法,转而启用了另一种看起来比较整齐的命名法。比如,ARMv7架构的A、R、M三个系列都以Cortex作为主名,分别命名为ARM Cortex-A、ARM Cortex-R、ARM Cortex-M。,2.2 ARM背景知识简介,2.2.4 ARM的专有技术 1)Thumb、Thumb-2 及ThumbEE Thumb是ARM处理器的一种16位指令模式。 Thumb-2是16位Thumb指令集的扩充,以额外的32位指令让Thumb指令集指令集的使用更加广泛。 ThumbEE也就是所谓的Thumb-2EE,在基础上Thumb-2进行一些扩充,使得指令集能特别适用于执行阶段(Ru
6、ntime)的代码生成(例如即时编译),2.2 ARM背景知识简介,2)JazelleJazelle是与ARM体系结构的一种相关技术,用于在处理器指令层次对Java加速。 3)高级SIMD(NEON)高级单指令多重数据SIMD(Single Instruction Multiple Data)延伸集,业界称为NEON技术,它是一个结合64位和128位的SIMD指令集,其针对多媒体和信号处理程序具备标准化加速的能力。,2.2 ARM背景知识简介,4)VFPVFP(Vector Floating-point,向量浮点)是在协处理器中针对ARM架构的衍生技术。它提供低成本的单精度和双精度浮点运算能力
7、,并完全相容于ANSI/IEEE Std 754-1985二进制浮点运算标准。 5)安全性扩充(TrustZone)TrustZoneTM技术出现在ARMv6KZ以及后续的应用核心架构中。它提供了一种低成本的方案,针对片上系统SoC(System on Chip)内加入专属的安全核心,由硬件建构的存取控制方式支持两个虚拟的处理器。,2.2 ARM背景知识简介,2.2.5 Cortex-M4 处理器特性简介ARM Cortex-M4 处理器是由 ARM 专门开发的最新嵌入式处理器,在M3的基础上强化了运算能力,新加了浮点、DSP、并行计算等,用以满足需要有效且易于使用的控制和信号处理功能混合的数
8、字信号控制市场。 其高效的信号处理功能与 Cortex-M 处理器系列的低功耗、低成本和易于使用的优点的组合,旨在满足专门面向电动机控制、汽车、电源管理、嵌入式音频和工业自动化市场的新兴类别的灵活解决方案。,2.2 ARM背景知识简介,1高能效数字信号控制 RISC 处理器内核:高性能 32 位 CPU、具有确定性的运算、低延迟 3 阶段管道,可达1.25DMIPS/MHz Thumb-2指令集:16/32 位指令的最佳混合、小于 8 位设备 3 倍的代码大小、对性能没有负面影响。提供最佳的代码密度 低功耗模式:集成的睡眠状态支持、多电源域、基于架构的软件控制 嵌套矢量中断控制器 (NVIC)
9、:低延迟、低抖动中断响应、不需要汇编编程、以纯 C 语言编写的中断服务例程。能完成出色的中断处理 工具和 RTOS 支持:广泛的第三方工具支持、Cortex 微控制器软件接口标准 (CMSIS)、最大限度地增加软件成果重用 CoreSight 调试和跟踪:JTAG 或 2 针串行线调试 (SWD) 连接、支持多处理器、支持实时跟踪,2.2 ARM背景知识简介,2易于使用的技术 Cortex-M4 通过一系列出色的软件工具和Cortex 微控制器软件接口标准 (CMSIS) 使信号处理算法开发变得十分容易。CMSIS是 Cortex-M 处理器系列的与供应商无关的硬件抽象层。使用 CMSIS,可
10、以为接口外设、实时操作系统和中间件实现一致且简单的处理器软件接口,从而简化软件的重用。 ARM目前正在对CMSIS进行扩展,将加入支持Cortex-M4扩展指令集的C编译器;同时,ARM也在开发一个优化库,方便MCU用户开发信号处理程序。,2.3 Kinetis系列微控制器概述及型号标识,2.3.1 Kinetis系列微控制器概述 Kinetis系列微控制器是飞思卡尔公司于2010年下半年推出的,是业内首款基于ARM Cortex-M4内核的微控制器。 目前,Kinetis系列的微控制器有K10、K20、K30、K40、K50、K60和K70等几个子系列。其中K50子系列是专用于医疗器械方面的
11、专用系列,具有独特的应用特性。,2.3 Kinetis系列微控制器概述及型号标识,Kinetis系列微控制器的第一阶段产品,2.3 Kinetis系列微控制器概述及型号标识,Kinetis系列微控制器特性,Kinetis系列芯片命名格式为:Q K# A M FFF R T PP CC NKinetis系列芯片命令字段说明,2.3 Kinetis系列微控制器概述及型号标识,2.4 K60系列微控制器的存储器映像与编程结构,2.4.1 K60系列MCU性能概述与内部结构简图K60系列微控制器具有IEEE 1588以太网,全速和高速USB 2.0 On-The-Go带设备充电探测,硬件加密和防窜改探
12、测能力,具有丰富的模拟、通信、定时和控制外设,从100 LQFP封装256 KB闪存开始可扩展到256 MAPBGA 1MB闪存。大闪存的K60系列微控制器还提供可选的单精度浮点单元、NAND闪存控制器和DRAM控制器。,2.4 K60系列微控制器的存储器映像与编程结构,K60系列的模块结构框图,2.4 K60系列微控制器的存储器映像与编程结构,K60可选择的芯片类型,2.4 K60系列微控制器的存储器映像与编程结构,2.4.2 K60系列存储器映像ARM Cortex-M4为32位处理器内核。内部的数据是32位的,寄存器是32位的,存储器接口也是32位的。,K60系列的存储器空间地址映像(一
13、),K60系列的存储器空间地址映像(二),2.4 K60系列微控制器的存储器映像与编程结构,1中断向量表、程序代码及常量的存放地址中断向量表、程序代码及常量的存放于Flash中。K60的中断向量表、程序代码及常量的存放区域是:0x0000_00000x0FFF_FFFF。K60的程序代码编译链接后,中断向量表将从0x0000_0000地址开始存放,程序代码从0x0000_0410地址开始存放。存放完代码空间后,常量随其后。 2全局变量、局部变量的存放地址全局变量及局部变量存放于RAM中。从表2-5中可以看出K60系列微控制器的RAM地址空间分为两个部分,第一部分被称为SRAM_L,地址范围是:
14、0x1800_00000x1FFF_FFFF,共128MB;第二部分被称为SRAM_U,地址范围是:0x2000_00000x200F_FFFF,共1MB。MK60N512VMD100芯片的实际RAM存储器大小是128KB,其地址范围是0x1FFF_00000x2000_FFFF。,2.5 K60的引脚功能与硬件最小系统,2.5.1 K60的引脚功能 1)硬件最小系统引脚硬件最小系统引脚包括电源类引脚、复位引脚、晶振引脚等。K60芯片电源类引脚,BGA封装22个,LQFP封装27个,其中MAPBGA封装的芯片有五个引脚未使用(A10、B10、C10、M5和L5)。芯片使用多组电源引脚分别为内部
15、电压调节器、I/O引脚驱动、A/D转换电路等电路供电,内部电压调节器为内核和振荡器等供电。为了提供稳定的电源,MCU内部包含多组电源电路,同时给出多处电源引出脚,便于外接滤波电容。为了电源平衡,MCU提供了内部相连的地的多处引出脚,供电路设计使用。复位引脚 是一个专用引脚,内部含有上拉电阻。空闲状态为高电平,低电平迫使芯片复位。在写入器电路中,该引脚被连接到标准的10芯JTAG接口,以便写入器可以使MCU复位。,2.5 K60的引脚功能与硬件最小系统,K60硬件最小系统引脚表,2.5 K60的引脚功能与硬件最小系统,2)I/O端口资源类引脚除去需要服务的引脚外,其他引脚可以为实际系统提供I/O
16、服务。芯片提供服务的引脚也可称为I/O端口资源类引脚。K60(144引脚MAPBGA和LQFP封装)具有多达100个I/O引脚。其中A口26个,B口20个,C口20个,D口16个,E口18个,每个引脚均具有多个功能。这些引脚在复位后,立即被配置为高阻状态,且为通用输入引脚,没有内部上拉电阻。需要注意的是,为了避免来自浮空输入引脚额外的漏电流,应用程序中的复位初始化例程需尽快使能上拉或下拉,也可改变不常用引脚的方向为输出,以使该引脚不再浮空。,2.5 K60的引脚功能与硬件最小系统,K60 I/O端口资源类引脚表,2.5 K60的引脚功能与硬件最小系统,ADC、DAC和USB引脚,2.5 K60
17、的引脚功能与硬件最小系统,MCU的硬件最小系统是指可以使内部程序运行所必须的最低规模的外围电路,也可以包括写入器接口电路。 一般情况下,MCU的硬件最小系统由电源、晶振及复位等电路组成。 芯片要能工作,必须有电源与工作时钟 复位电路则提供不掉电情况下MCU重新启动的手段,2.5.2 K60的硬件最小系统原理图,2.5 K60的引脚功能与硬件最小系统,1)电源及其滤波电路所有的电源引脚必须外接适当的滤波电容抑制高频噪音 电源滤波电路,用于改善系统的电磁兼容性,降低电源波动对系统的影响,增强电路工作的稳定性,2.5 K60的引脚功能与硬件最小系统,2)复位电路电路原理如下:正常工作时复位输入引脚通
18、过一个10K的电阻接到电源正极,所以应为高电平。若按下复位按钮,则脚接地为低电平,导致芯片复位。,2.5 K60的引脚功能与硬件最小系统,3)晶振电路注意:在硬件布线时需要注意晶振附近不要走高频信号;晶振应该尽量靠近芯片的晶振输入引脚。,(a)芯片的主晶振使用有源晶振,(b)RTC模块使用无源晶振,2.5 K60的引脚功能与硬件最小系统,4)JTAG电路Kinetis系列芯片使用的是ARM Cortex-M4内核,该内核内部集成了JTAG(联合测试行为组织,Joint Test Action Group)接口,通过JTAG接口可以实现程序下载和调试功能。,2.5 K60的引脚功能与硬件最小系统
19、,2.5.3 Kinetis器写入器与K60核心板 1)Kinetis微控制器写入器,(a)写入器电路板,(b)写入器实物图,开发人员可以通过10芯标准JTAG接口对K60目标板中的Flash进行擦除、写入等操作。通过写入器将机器码下载到Flash后,可以执行程序并调试。使用该写入器时,一端连接PC的USB接口,一端连接目标板的JTAG接口。,2.5 K60的引脚功能与硬件最小系统,2)K60硬件核心板,该核心板上搭载的K60芯片使用144引脚的MAPBGA封装,电源可通过USB mini口、JTAG接口或扩展板引入。,2.5 K60的引脚功能与硬件最小系统,最小系统的测试步骤如下: 在确保电
20、源和地未短路的情况下接通电源,测量电压是否正常,检查按下复位按钮是否能够复位(观察复位指示灯) 将写入器与电路板连接,启动开发环境对目标MCU进行擦除,如果成功则说明最小系统工作正常 将第一个样例程序下载到Flash中,观察小灯闪烁情况 若自己学习之用,硬件最小系统测试通过以后就可以进行其他模块的焊接,2.6 ARM Cortex-M4的寄存器及指令简介,ARM Cortex-M4处理器的寄存器组,1通用寄存器R0R12,2堆栈指针R13,3连接寄存器R14(LR),4程序计数寄存器R15,5特殊功能寄存器,2.6 ARM Cortex-M4的寄存器及指令简介,ARM Cortex-M4中的特
21、殊功能寄存器,1)程序状态字寄存器(PSRs或xPSR),2)中断寄存器(PRIMASK、FAULTMASK和BASEPRI),3)控制寄存器(CONTROL),2.6.1 特殊功能寄存器,2.6 ARM Cortex-M4的寄存器及指令简介,2.6.2 ARM Cortex-M4的指令系统简介ARM处理器一直支持两种形式上相对独立的指令集,即32位的ARM指令集(对应处理器的ARM状态)和16位的Thumb指令集(对应处理器的Thumb状态)。通常将ARM Cortex-M4指令集分为数据传送指令、数据处理指令、子程序调用及转移指令等。,第二章 练习题,1简要说明K60系列存储器映像。 2144引脚MAPBGA封装的K60的引脚主要分为哪几类?简要说明主要引脚的功能。 3K60的硬件最小系统由哪几部分组成? 4ARM Cortex-M4的指令分为哪几类? 5简要阐述ARM Cortex-M4的寄存器。 6从存储器映像给出MK60N512VMD100芯片的程序应该放在何处?全局变量从何地址开始存放?堆栈指针应该为多少?简要说明理由。,