单片机原理与应用系统设计 第08章 arm系列单片机原理与应用_第1页
单片机原理与应用系统设计 第08章 arm系列单片机原理与应用_第2页
单片机原理与应用系统设计 第08章 arm系列单片机原理与应用_第3页
单片机原理与应用系统设计 第08章 arm系列单片机原理与应用_第4页
单片机原理与应用系统设计 第08章 arm系列单片机原理与应用_第5页
已阅读5页,还剩311页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

8.1 ARM系列单片机概述 8.2 ARM处理器的编程模型 8.3 ARM系列单片机的硬件结构 8.4 ARM系列单片机指令系统及编程 8.5 ARM系列单片机集成开发环境,第8章 ARM系列单片机原理与应用,8.1 ARM系列单片机概述,ARM系列单片机实际上是对基于ARM处理器核而设计的一类单片机的泛称,也常被称为ARM系列微控制器。ARM是Advanced RISC Machines 的缩写,是英国一家知名微处理器设计公司的名称。ARM公司既不生产芯片也不销售芯片,它只从事处理器技术研发和技术授权转让,将其自主研发的技术出售给合作伙伴公司,由他们去生产基于ARM核的单片机芯片。至今,全世界包括Intel、Philips、Atmel、IBM、TI、AD、Motorola、Altera、NetSilicon、OKI、SONY、NEC等许多著名半导体公司在内的100多家公司,都与ARM公司建立了合作伙伴关系,采用了其ARM核技术来生产微处理器或微控制器芯片。国内多家大公司也已经购买ARM公司的芯核技术,用于通信专用芯片的设计。,8.1 ARM系列单片机概述,ARM处理器核的显著特点是速度高、功耗低、功能强、价格廉,具有业界公认的世界领先、最受欢迎的32位嵌入式 RISC ( Reduced Instruction Set Computer)处理器结构(通常称之为ARM体系结构)。因此,ARM核单片机在移动通信、可视电话、信息家电、掌上电脑、TV机顶盒、数码照相机、摄像机等控制及算法相对复杂、数据存储及处理量较大、事务调度能力和实时性要求较高的场合,获得了极为广泛的应用,而且必将用得越来越广泛。目前在32位单片机市场上,ARM实际上已扮演着类似于8位单片机市场上8051的角色。,8.1 ARM系列单片机概述,按照ARM结构设计的ARM处理器核,经过多年的发展和优胜劣汰,当前应用较多的主要有6个系列:ARM7、ARM9、ARM9E、ARM10E、SecurCore和最新的ARM11。其中在中国市场上比较流行的主要是ARM7和ARM9两个系列,两者功能、性能上虽然互有差异,但基本结构大同小异,且都是32位嵌入式处理器,都同时支持32位的ARM指令集和16位的Thumb指令集,因此在应用编程上也大同小异。鉴于ARM7比ARM9应用更广,基于ARM7处理器核设计生产芯片的公司更多,同时其性能价格比也更高,加之结合它进行教学既简单又典型,所以本章将主要以ARM7处理器核为例,介绍ARM的编程结构和以它为核心构成的单片机的应用系统设计和调试方法。,8.1.1 ARM核的结构特性,ARM 处理器核是基于精简指令集计算机(RISC)原理而设计的,因此它在体系结构上具有极典型的RISC特性,如: 具有统一和固定长度的指令域,使指令集和指令译码大大简化; 具有一个大而统一的寄存器文件,大多数数据操作都在寄存器中完成,使指令执行速度更快; 采用加载/存储结构,使数据处理时只对寄存器操作,而不直接对存储器操作; 寻址方式简单而灵活,所有加载/存储的地址都只由寄存器的内容和指令域决定,执行效率高;,8.1.1 ARM核的结构特性, 每一条数据处理指令都对算术逻辑单元(ALU)和移位寄存器进行控制,以最大限度地提高ALU和移存器的利用率; 采用自动增/减地址的寻址方式,有利于优化循环程序的执行; 引入多寄存器加载/存储指令,有利于实现数据吞吐量的最大化; 所有指令的条件执行有利于实现最快速的代码执行; 。,8.1.1 ARM核的结构特性,这些RISC结构特性带来的结果,是使ARM核在高性能、低代码规模、低功耗和高集成度等方面获得了良好的平衡,实现了综合优化,从而使指令吞吐量和吞吐率明显增大,实时中断响应性能显著增强,总的性能价格比大大提高。 ARM的体系结构从提出至今,一直在不断改进、完善和发展,根据其所用指令集的不同,先后推出了5种版本v1v5。版本v1、v2均只有26位的寻址空间,现在基本上已废弃不用。版本v3v5,将寻址空间扩展到了32位。,8.1.2 ARM7系列处理器核简介,ARM7系列处理器核包括ARM7TDMI、ARM7TDMI-S、ARM720T和ARM7EJ-S。 ARM7TDMI是从ARM6核发展而来的第一款ARM7核,它的后缀“TDMI”反映了它在ARM6基础上所增加的功能: T表示扩展了高密度16位的Thumb指令集;D表示支持在片调试,允许处理器响应调试请求暂停; M表示具有增强型64位乘法指令,支持两个32位数相乘而直接产生64位结果;I表示内含EmberdedICE观察点硬件,可提供对设置片上断点和调试点的支持。,8.1.2 ARM7系列处理器核简介,ARM7TDMI-S是ARM7TDMI的可综合(Synthesizable)版本(软核),逻辑上与ARM7TDMI基本相同,编程模型与ARM7TDMI完全一样,差别仅在于它的逻辑功能可由芯片生产厂商进行裁剪。所以,以后如无特殊说明,对这两者不予区分,统称为ARM7TDMI。,8.1.2 ARM7系列处理器核简介,ARM720T是带有高速缓存处理宏单元的高性能ARM7核,宏单元中提供了8KB缓存、读缓冲和内存管理等功能,可支持Linux、Symbiam OS和Windows CE等操作系统。 ARM7EJ-S是扩充了Jazelle功能的可综合版本处理器核。该系列处理器核都提供了ARM32位指令集和Thumb16位压缩指令集,提供了对EmbeddedICE JTAG软件调试方式的支持,很适合用于大规模、超大规模集成的SoC设计中,并能很好地兼容8位/16位器件,目前在PDA、移动电话等智能化多媒体无线设备领域和调制解调器、网卡等广域网、局域网接入设备中已获得广泛应用。,8.1.3 常用ARM系列单片机选型指南,如前所述,世界上基于ARM处理器核开发生产ARM单片机(包括微处理器和微控制器芯片)的公司很多,因此各ARM系列单片机的型号种类都很多,如Atmel公司基于ARM7TDMI核的芯片型号AT91F40416,AT91FR40481,AT91F40807,AT91F42800,AT91F43300,AT91F55800,AT91F40807,AT91M40400,AT91M40800,AT91M63200,AT75C220,AT75C310;NetSilicon公司基于ARM720TDMI核的NET+15,NET+40,NET+50;Linkup公司基于ARM720T核的L7200,L7205,L7210;Altera公司基于ARM922T核的EPXA1,EPXA4,EPXA10;Samsung公司基于ARM720TDMI核的S3C3400A,S3C3410A,S3C44A0A,S3C34B0A,S3C34510;Motorola公司基于ARM9207核的DragonBallMXI;Sharp公司基于ARM720TDMI核的LH75400,基于ARM720T核的LH79520,基于ARM922T核的LH7A400;等等。,8.1.3 常用ARM系列单片机选型指南,不同公司、不同型号的产品,功能性能各有千秋。这里仅以市场上较常见、应用也较广的,Philips公司基于ARM7TDMIS核生产的LPC2100和LPC2200两个系列的32位ARM微控制器为例,给出它们中主要型号的功能配置,如表8.1所示。读者可以此作为选型指南,参照其中的配置来决定自己的芯片选型。,8.1.3 常用ARM系列单片机选型指南,8.1 Philips LPC系列32位ARM微控制器选型指南,8.1.3 常用ARM系列单片机选型指南,8.1 Philips LPC系列32位ARM微控制器选型指南,8.2 ARM处理器的编程模式,本节简介ARM处理器编程模型的一些基本概念,包括处理器工作状态与运行模式、数据类型与存储格式、寄存器组织、处理器异常等。通过对本节的学习,旨在使读者对ARM微处理器的基本工作原理和一些与程序设计相关的基本技术细节有个初步了解,为应用编程打下必要基础。,8.2.1 ARM的工作状态和运行模式,1. 工作状态 从编程的角度看,ARM处理器的工作状态一般有两种: ARM状态。此时处理器执行32位的字对齐的ARM指令。 Thumb状态。此时处理器执行16位的、半字对齐的Thumb指令。 当ARM处理器执行32位ARM指令集中的指令时,工作在ARM状态;执行16位Thumb指令集中的指令时,工作在Thumb状态。通常在刚加电开始执行代码时,ARM处理器处于ARM状态;然后,在程序的执行过程中,只要满足一定条件(状态切换指令或异常处理),随时可在两种工作状态之间切换,并且这种切换并不影响处理器的工作模式和相应寄存器中的内容。,8.2.1 ARM的工作状态和运行模式,2. 运行模式 ARM处理器支持7种运行模式,分别为: 用户模式(usr) ARM处理器正常的程序执行模式。 快速中断模式(fiq) 用于高速数据传输或通道处理。 外部中断模式(irq) 用于通用的中断处理。 管理模式(svc) 操作系统使用的保护模式。 数据访问中止模式(abt) 当数据或指令预取终止时进入该模式,可用于虚拟存储及存储保护。 系统模式(sys) 运行具有特权的操作系统任务。 未定义指令模式(und)当未定义的指令执行时进入该模式,可用于支持硬件协处理器的软件仿真。,8.2.1 ARM的工作状态和运行模式,ARM处理器的运行模式可以通过软件改变,也可以通过外部中断或异常处理改变。 大多数的应用程序运行在用户模式下,这时,对某些被保护的系统资源是不能访问的。 7种运行模式中,除用户模式以外,其余6种模式统称为非用户模式,也叫特权模式(Privileged Modes);特权模式中,除去系统模式以外的5种又称为异常模式(Exception Modes),常用于处理中断或异常,以及需要访问受保护的系统资源等情况。,8.2.2 ARM的数据类型和存储器格式,1.数据类型 ARM处理器支持三种长度的数据类型: 字(Word):长度为32位的数据。 半字(Half-Word):长度为16位的数据。 字节(Byte):长度为8位的数据。 在ARM体系结构中,半字数据必须对准于偶数地址,字数据必须对准于4的整数倍地址,字节数据则可对准于任一地址。,8.2.2 ARM的数据类型和存储器格式,2.存储器格式 ARM处理器将存储器看作是一个从0开始的线性递增的字节集合:字节0到3 保存第1个字数据,字节4 到7 保存第2个字数据,依此类推,每4个字节保存一个字数据。 字的存储格式有两种:一种是小端(Little-endian)格式,即字的最低字节(字节0)保存在最低地址单元,最高字节(字节3)保存在最高地址单元。另一种是大端(Big-endian)格式,即字的最低字节保存在最高地址单元,最高字节保存在最低地址单元。从硬件连接上看,前者将存储器系统的字节0、字节1、字节2和字节3分别连接到32位数据线的D7D0、D15D8、D23D16和D31D24;后者则相反,将存储器系统的字节0、字节1、字节2和字节3分别连接到数据线的D31D24、D23D16、D15D8和D7D0。,8.2.2 ARM的数据类型和存储器格式,一个具体的基于ARM核的芯片,可能对这两种存储格式都支持,也可能只支持其中一种。如果芯片只支持其中一种(如大端格式),而实际连接的存储器系统却配置为相反的格式(如小端格式),则只有以字为单位的存储器访问能正确实现,其他长度的存储器访问都将出现不可预知的结果。,ARM处理器核中共有37个32位寄存器,其中31个为通用寄存器,6个为程序状态寄存器。这些寄存器被安排成部分重叠的组,工作状态和运行模式不同,使用的寄存器组便不同。图8.1所示的是ARM处理器核的内部寄存器及其组织结构。,8.2.3 内部寄存器组织,图8.1 ARM状态的寄存器结构,8.2.3 内部寄存器组织,1. ARM 状态寄存器组 在ARM 状态下,通用寄存器r0r14,程序计数器PC(r15),以及一个或两个状态寄存器CPSR是任何时候均可访问的。不过要注意,在某种特权模式中,只有与之相关的分组寄存器才可以被访问。图8.1实际上反映的是各种模式下所能访问的寄存器情况。 (1)通用寄存器r0r14 通用寄存器r0r14实际上又分为两类:未分组寄存器r0r7和分组寄存器r8r14。 每个未分组寄存器,在任何运行模式下都指向同一32位物理寄存器,可用于任何使用通用寄存器的指令。正因为此,在中断或异常处理进行模式切换时,容易造成对寄存器中数据的破坏,这点在程序设计时要特别小心。,8.2.3 内部寄存器组织,对分组寄存器则不同,处理器每次访问它们所对应的物理寄存器,与当前的运行模式直接相关。其中r8r12,每个对应两个物理寄存器,一个用于FIQ模式,叫r8_fiqr12_fiq,另一个用于其他6种模式,叫r8r12;r13和r14分别对应6个物理寄存器,一个用于用户和系统两种模式,叫r13和r14,另外5个分别用于其他5种运行模式之一,叫r13_mod和r14_mod(其中mod为fiq、irq、svc、abt和und之一)。详如图8.1中所示。 r13在ARM指令中通常用作堆栈指针SP。在用户应用程序的初始化部分,一般都要将r13的物理寄存器指向其运行模式的栈空间。,8.2.3 内部寄存器组织,r14为子程序链接寄存器(Subroutine Link Register),简称链接寄存器(LR)。 当执行子程序调用指令(BL)时,r14 用于存放子程序返回地址,即将程序计数器PC(r15 )的当前值拷贝给r14。子程序返回时再通过将r14的内容送回给PC来实现。实现这种子程序调用通常有两种典型方法: 执行下列两条指令之一: MOV PC, LR BX LR 在子程序入口处使用以下指令将r14存入堆栈: STMFD SP!, LR 对应地,可用以下指令实现子程序返回: LDMFD SP!, PC,8.2.3 内部寄存器组织,与此类似,当出现异常时,相应异常模式的r14也可被设置为异常返回地址,且异常返回用与子程序返回相似的方法实现,只是使用的指令稍有不同。 除了子程序调用和异常处理的情形外,其他时候均可将r14 当成一个通用寄存器使用。,8.2.3 内部寄存器组织,(2)程序计数器 r15 寄存器r15 通常用作程序计数器PC。在ARM 状态下,r15的位1:0为00,位31:2保存PC 值;在Thumb 状态下,r15的位0为0 ,位31:1保存PC 值。 当读程序计数器r15时,由于ARM状态下的程序计数器PC总是指向当前指令的下两条指令的地址,所以读出的值总是读指令的地址加上8字节。而因ARM指令始终是字对准的,故读出结果值的位1:0总为00(对Thumb指令,总是半字对准的,故位0总为0)。读程序计数器主要是为了对附近的指令和数据快速地进行与位置无关的寻址。,8.2.3 内部寄存器组织,当写程序计数器r15时,指令中的写入值取决于ARM结构的版本:对v3及以下版本,位1:0值无所谓;对v4及以上版本(ARM7TDMI(-S)基于v4版),位1:0值必须为00。由于ARM指令始终是字对准的,指令的实际目标地址的位1:0总应为00,可见对v3及以下版本,指令的实际目标地址将由写入的r15值和0xFFFFFFFCH相“与”得到,而对v4及以上版本,指令实际目标地址的位1:0就是写入的r15值。,8.2.3 内部寄存器组织,(3)程序状态寄存器PSR ARM体系结构包含一个当前程序状态寄存器CPSR和5个保存程序状态寄存器SPSR,供异常处理程序使用。CPSR为六种处理器模式所共享,SPSR除用户和系统模式外其他5种模式(统称为模式)各对应一个。程序状态寄存器的格式如图8.2所示。其中4位存放条件代码标志,3位控制中断的使能和禁止,5位设置处理器操作模式,其余20位未用,留待将来使用。,8.2.3 内部寄存器组织,图8.2程序状态寄存器格式,8.2.3 内部寄存器组织,2. Thumb 状态寄存器组 Thumb状态寄存器组是ARM 状态寄存器组的子集,两者的映射关系如图8.3所示。其中Thumb状态下的r0r7、CPSR、SPSR分别与ARM状态下的同名寄存器相同;Thumb状态下的SP、LR、PC分别映射到ARM 状态的r13、r14、r15(PC)。这些Thumb状态寄存器都是程序员可直接访问的;各寄存器与可访问的处理器模式间的对应关系,和ARM状态下的同名或映射寄存器相同。,8.2.3 内部寄存器组织,图8.3 Thumb寄存器在ARM状态寄存器上的映射,8.2.3 内部寄存器组织,在Thumb状态下,r0r7 为低寄存器,r8r15为高寄存器,高寄存器不是标准寄存器集的一部分,所以程序员对它们的访问受到限制,但可以将它们用于快速暂存,如:用MOV指令的特殊变量可以在低寄存器r0r7和高寄存器r8r15之间交换数据;用CMP 指令可以比较高寄存器和低寄存器的值;用ADD 指令可以将高寄存器的值与低寄存器的值相加。,8.2.4 异常中断及响应机理,1.异常中断及分类 只要正常的程序流被暂时中止,例如响应一个来自外设的中断,处理器就进入异常中断模式。在处理异常之前,ARM7TDMI-S 内核保存当前的处理器状态,这样当异常处理程序结束时可以恢复执行原来的程序。 ARM体系结构支持的异常有6类。ARM采用向量方式进入异常处理程序,即系统中建有一个异常向量表,表中每类异常对应一个特定的异常向量(即异常处理程序入口地址),当异常出现时,ARM强制将程序计数器(PC)值置成该异常所对应的向量,从而转去执行异常处理程序。当同时发生两个或更多异常时,系统将按照固定的优先级顺序来处理异常。表8.2给出的是6类异常及其对应的进入模式、向量、优先级等信息。,8.2.4 异常中断及响应机理,表8.2 ARM异常一览表,8.2.4 异常中断及响应机理,2.ARM处理器对异常的响应机理 ARM处理器对异常的响应包括进入和退出异常处理程序两方面。 异常进入(入口) 当异常出现时,ARM处理器进入异常处理的过程如下: 在相应的链接寄存器LR中保存下一条指令的地址,以便程序能从异常处理程序正确返回被中断程序。下一条指令的地址,对ARM状态和Thumb状态有所不同:在ARM状态下,是当前PC值加4或8(具体取决于异常类型);在Thumb状态下,是当前PC值加偏移值后再加4或8(具体取决于异常类型)。 将CPSR状态复制到相应的SPSR中。,8.2.4 异常中断及响应机理, 根据异常类型,强制设置CPSR的运行模式位。 强制将相应的异常向量作为下一条指令地址装入PC。 置位中断禁止标志,以防止不受控制的异常嵌套。 由于异常总是在ARM 状态下进行处理,所以若处理器处于Thumb 状态时发生了异常,在将异常向量装入PC 时会自动切换到ARM 状态。,8.2.4 异常中断及响应机理, 异常退出(出口) 当异常处理结束时,退出异常、返回被中断程序的过程如下: 将LR中的值移入PC。 将SPSR的值复制回CPSR。注意,该动作会将T、I和F位自动恢复为异常发生前的值。 清除中断禁止标志,以开放异常中断。 可以认为,应用程序总是从复位异常处理程序开始执行的,因此复位异常处理程序不需要退出和返回。,8.3 ARM系列单片机的硬件结构,各种ARM系列单片机的基本特性和硬件结构大同小异。本节以Philips公司的LPC2212/2214芯片和Samsung 公司的S3C44BOX芯片为例,简单介绍ARM系列单片机的硬件结构。,8.3.1 LPC2212/2214单片机简介,LPC2212/2214是两款基于ARM7TDMI-STM处理器核、支持实时仿真和跟踪的32 位微控制器。其128 位宽度的存储器接口和独特的加速结构使32位/16位代码均能在最大时钟速率下运行。其144 引脚封装、极低的功耗、丰富的内部逻辑部件及其强大的功能,使它特别适合于汽车控制、网关网桥、软件Modem、工控设备、医疗系统、音频视频系统、协议转换和POS机等小型应用场合。对代码规模有严格控制的应用可使用16 位Thumb 模式将代码规模降低30%以上,而性能的损失却很小。,8.3.1 LPC2212/2214单片机简介,1.基本结构及性能 LPC2212/2214内部除ARM7TDMI-STM处理器核外,还集成有16 kB 片内SRAM ,128Kb /256 kB 片内Flash 程序存储器, 4个通用并行I/O口,2 个16C550 工业标准UART串口,1个高速I2C 串口(400 kbit/s),2 个SPI 串口,2个32 位定时器,以及PWM 单元、实时时钟、看门狗、外部中断控制逻辑、向量中断控制器和A/D转换器等功能部件,具体如图8.4的内部结构框图所示。,1.,8.3.1 LPC2212/2214单片机简介,图8.4 LPC2212/2214内部结构框图,8.3.1 LPC2212/2214单片机简介,LPC2212/2214的主要性能如下: 128 位宽度的接口/加速器和片内锁相环(PLL)的引入,可实现高达60MHz 的CPU工作频率。 通过片内boot 装载程序可实现在系统编程(ISP)和在应用编程(IAP)。单个Flash扇区或整片的擦除时间为400ms,512 字节编程时间为1ms。 EmbeddedICE-RT 和嵌入式跟踪接口通过片内软件RealMonitor,可提供对任务进行实时调试和对执行代码进行高速实时跟踪的支持。,8.3.1 LPC2212/2214单片机简介, 每个32 位定时器带有4 路捕获和4 路比较通道,PWM 单元有6 路输出。 内部向量中断控制器可通过编程设置中断优先级和向量地址。 具有9个边沿或电平触发的外部中断输入引脚。 片内集成振荡器可使用外部晶体的频率范围为130 MHz。 通过外部存储器接口可将存储器配置成4 组,每组的 容量高达16Mb,数据宽度为8/16/32 位。,8.3.1 LPC2212/2214单片机简介, 具有空闲和掉电两种低功耗模式。可通过单独允许/禁止外围功能和外围时钟分频进一步实现功耗优化。可通过外部中断将处理器从掉电模式中唤醒。 双电源供电,其中: CPU 操作电压范围为 1.651.95 V(1.8 V 0.15 V); I/O 操作电压范围为 3.03.6 V(3.3 V 10%),最大可承受5V 电压。 具有上电复位(POR)和掉电检测(BOD)电路。 LPC2212/2214的外部引脚描述如表8.3所示。,8.3.1 LPC2212/2214单片机简介,表8.3 LPC2212/2214的引脚描述,8.3.1 LPC2212/2214单片机简介,表8.3 LPC2212/2214的引脚描述,8.3.1 LPC2212/2214单片机简介,表8.3 LPC2212/2214的引脚描述,8.3.1 LPC2212/2214单片机简介,2. 片内存储器系统 LPC2212/2214 内部集成了由128kB /256 kB FLASH 和 16 Kb SRAM 组成的存储器系统,它们均可用作代码和数据的存储。 对FLASH 存储器,既可通过串口进行在系统编程,也可在应用程序运行时进行在应用编程。这样为数据存储和现场固件的升级都带来了极大的灵活性。当使用片内bootloader 时,有120/248 kB Flash 存储器可作用户代码使用。Flash 存储器的擦除/编写周期至少为100,000次,数据至少可保存20 年。SRAM 支持按8 位、16 位或32 位的方式进行访问。,8.3.1 LPC2212/2214单片机简介,片内的引导状态程序(1.60 版)提供对片内Flash的代码读保护(CRP)功能。当CRP 使能时,禁止JTAG 调试端口和ISP 命令对片内存储器的访问,但ISP Flash 擦除命令并不受CRP 状态的控制,任何时候均可执行。通过擦除整个片内用户Flash 区可取消CRP,从而恢复JTAG 和/或ISP 对芯片的完全访问。 LPC2212/2214的存储器映射包含几个不同的区域,如图8.5所示。此外,CPU 的中断向量可以重新映射,这样允许它们位于片内Flash(默认)或者SRAM中。,8.3.1 LPC2212/2214单片机简介,图8.5 LPC2212/2214 存储器映射,8.3.1 LPC2212/2214单片机简介,3. 向量中断控制器 LPC2194通过其向量中断控制器(VIC)接收所有的中断请求输入,并将它们编程分配为3 类:快速中断请求FIQ、向量IRQ 和非向量IRQ。可编程分配机制意味着不同外设的中断优先级可以动态分配和调整。 FIQ具有最高优先级。当分配为FIQ的请求源只有一个时,可实现最短的请求等待时间,因为FIQ 服务程序可以直接启动相应外设的处理;但当分配给FIQ 的请求源多于1 个时,VIC 将多个中断请求“相或”后向ARM 处理器产生FIQ 信号,FIQ 服务程序先要从VIC 中读出一个中断状态字以识别该响应的是哪一个FIQ 中断源,然后才能启动相应外设的处理。,8.3.1 LPC2212/2214单片机简介,向量IRQ 具有中等优先级。该级别可分配16 个中断请求源,其中任意一个都可分配到16 个向量IRQ slot 中的任意一个,其中又以slot0优先级最高,slot15优先级最低。 非向量IRQ 的优先级最低。若分配给该级别的中断源多于1个,默认中断服务程序要从VIC中读出IRQ状态寄存器来识别该为哪个中断源服务。 VIC 将所有向量和非向量IRQ 组合后向ARM 处理器产生IRQ 信号。IRQ 服务程序可通过读取VIC 的一个寄存器立即启动并跳转到相应地址。如果有任意一个向量IRQ 发出请求,VIC 则提供最高优先级请求IRQ 服务程序的地址,否则提供默认程序的地址,该默认程序由所有非向量IRQ 共用。默认程序可读取另一个VIC 寄存器以确定哪个IRQ 被激活。,8.3.1 LPC2212/2214单片机简介,表8.4所列为每个外围功能的中断源。每个外设都有一条中断线连接到向量中断控制器,但可能有几个内部中断标志。单个中断标志也可能代表不同的中断源。,表8.4 每个外围功能的中断源,8.3.1 LPC2212/2214单片机简介,4. 引脚连接模块 LPC2212/2214 通过其片内引脚连接模块,允许将其引脚配置为不同的功能。配置寄存器控制连接引脚和片内外设的多路开关。应当在激活外设以及允许任何相关的中断之前,将外设连接到相应的引脚。任何一个被允许的外设,如果其功能没有映射到相关的引脚,对它的激活将被认为是未定义的。,8.3.1 LPC2212/2214单片机简介,引脚连接模块包含3 个可编程引脚功能选择寄存器: PINSEL0、 PINSEL1和PINSEL2。它们的地址分别为0xE002C000、0xE002C004和0xE002C014。当需要配置引脚功能时,只需向某个引脚功能选择寄存器写入相应值即可。 芯片复位后,2个通用并行I/O口P0和P1的所有引脚都被配置为输入。若允许调试(Debug),则JTAG引脚被配置为JTAG功能;若允许跟踪(Trace),则Trace引脚被配置为Trace功能。与I2C相关的引脚均被配置为开路。,8.3.1 LPC2212/2214单片机简介,5. 通用并行I/O 接口 LPC2212/2214 中有4个32位通用并行I/O口(GPIO口):P0、P1、P2和P3。P0口使用了30根端口线(P0.0P0.25,P0.27P0.30),P1口使用了18根端口线(P1.1,P1.2和P1.16P1.31),P2和P3各使用了32根端口线。每位的方向均可单独控制,各端口的功能取决于引脚连接模块的引脚功能选择。 GPIO口没有连接到特定外设功能的引脚由GPIO 寄存器进行控制。引脚可以动态配置为输入或输出。寄存器可以同时对任意输出口进行置位或清零。输出寄存器的值以及引脚的当前状态都可以读出。,8.3.1 LPC2212/2214单片机简介,GPIO的主要特性如下: GPIO寄存器被转移到ARM局部总线,以实现高速I/O时序; 屏蔽寄存器允许将端口位集作为一组,而其他位不变; 所有GPIO寄存器均为字节寻址; 可用一条指令写入整个端口值; 具有单个位的方向控制功能; 具有对输出端口置位或清零的单独控制功能; 具有用一条指令将一个端口的任何位置1或清0的功能; 所有I/O 在复位后的默认状态都为输入。,8.3.1 LPC2212/2214单片机简介,6. 串行I/O 接口 【UART】 LPC2212/2214包含2 个UART。一个UART 提供一个完全的调制解调器控制握手接口;另一个UART 只有发送和接收数据线。 UART的特性如下: 16 字节接收和发送FIFO; 寄存器位置遵循550 工业标准; 接收器FIFO 触发点为1、4、8 和14 个字节; 内置波特率发生器; UART1 包含标准调制解调器接口信号。,8.3.1 LPC2212/2214单片机简介,【I2C 接口】 I2C 是一个双向总线,它使用串行时钟线(SCL) 和串行数据线(SDA) 两条线实现互连芯片的控制。每个器件都通过一个唯一的地址来识别,这些器件可以是只接收器件(例如LCD 驱动器),也可以是既发送又接收信息的收发器(例如存储器)。发送器和/或接收器可以操作为主或从模式,这取决于芯片是启动数据的发送还是只被寻址。I 2C 是一个多主机总线,它可以由一个以上的总线主控器进行控制。 LPC2212/2214 所包含的I2C 功能支持400kbit/s(快速I2C)。,8.3.1 LPC2212/2214单片机简介,I2C的特性如下: 标准的I2C 总线接口; 可配置为主机、从机或主/从机; 可编程时钟可实现通用速率控制; 主机从机之间双向数据传输; 多主机总线(无中央主机); 同时发送的主机之间进行仲裁,避免了总线数据的冲突; 串行时钟同步使器件在一条串行总线上实现不同位速率的通信; 串行时钟同步可作为握手机制使串行传输挂起和恢复; I2C 总线可用于测试和诊断。,8.3.1 LPC2212/2214单片机简介,【SPI 接口】 LPC2212/2214 包含2 个SPI 接口。SPI 是一个全双工的串行接口,它设计成可以处理在一个给定总线上多个互连的主机和从机。在一定数据传输过程中,接口上只能有一个主机和一个从机通信。在一次数据传输中,主机总是向从机发送一个字节数据,而从机也总是向主机发送一个字节数据。 SPI的特性如下: 遵循串行外设接口(SPI)规范; 支持同步全双工串行通信; 组合的SPI 主机和从机; 最大数据位速率为输入时钟速率的1/8。,8.3.1 LPC2212/2214单片机简介,7定时器/计数器 【通用定时器】 定时器对外设时钟周期(PCLK)进行计数,可选择产生中断或基于4 个匹配寄存器,在到达指定的定时值时执行其它动作。它还包括4 个捕获输入,用于在输入信号发生跳变时捕获定时器值,并可选择产生中断。多个引脚通过“或”、“与”,可以实现捕获、匹配或广播功能。 通用定时器的特性如下: 带可编程32 位预分频器的32 位定时器/计数器; 每个定时器的4 个32 位捕获通道可在输入信号跳变时捕获定时器的瞬时值。捕获事件可选择产生中断;,8.3.1 LPC2212/2214单片机简介, 4 个32 位匹配寄存器: 连续操作,可选择在匹配时产生中断 匹配时停止定时器,可选择产生中断 匹配时复位定时器,可选择产生中断 每个定时器有4 个对应于匹配寄存器的外部输出,具有下列特性: 匹配时置低电平 匹配时置高电平 匹配时翻转 匹配时不变,8.3.1 LPC2212/2214单片机简介,【看门狗定时器】 看门狗定时器的用途是使微控制器在进入错误状态经过一段时间后复位。当看门狗使能时,如果没有在预先确定的时间内“喂”(重装)看门狗,它将会产生一次系统复位。 其特性如下: 如果没有周期性重装,则产生片内复位; 调试模式; 由软件使能,但要求禁止硬件复位或看门狗复位/中断; 错误/不完整的喂狗时序会导致复位/中断(如果使能); 指示看门狗复位的标志; 带内部预分频器的可编程32 位定时器; 可选择时间周期:(tpclk2564) (tpclk2324)。可选值为tpclk4 的整数倍。,8.3.1 LPC2212/2214单片机简介,【实时时钟】 当选择正常或空闲模式时,实时时钟(RTC)提供一套用于测量时间的计数器。RTC 消耗的功率非常低,这使其适合于由电池供电的、CPU 不连续工作(空闲模式)的系统。 其特性如下: 通过对时间段进行测量,可实现一个包括秒、分、小时、日、月、年和星期等的日历或时钟; 超低功耗设计,支持电池供电系统; 可编程基准时钟分频器允许调节RTC 以适应不同的晶振频率。,8.3.1 LPC2212/2214单片机简介,【脉宽调制器(PWM)】 PWM 基于标准的定时器模块并具有其所有特性。不过LPC2212/2214 只将其PWM 功能输出到引脚。定时器对外设时钟(pclk)进行计数,可选择产生中断或者根据7 个匹配寄存器在到达指定的定时值时执行其它动作。它还包括4 个捕获输入,用于在输入信号发生跳变时捕获定时器值,并可选择在事件发生时产生中断。PWM 功能也建立在匹配寄存器事件基础之上。 独立控制上升和下降沿位置的能力使PWM 可以应用于更多的领域。例如,多相位电机控制通常需要3个非重叠的PWM 输出,而这3 个输出的脉宽和位置需要独立进行控制。,8.3.1 LPC2212/2214单片机简介,两个匹配寄存器可用于提供单边沿控制的PWM 输出。匹配寄存器MR0 通过匹配时重新设置计数值来控制PWM 周期率。其它的匹配寄存器控制PWM 边沿的位置。每个额外的单边沿控制PWM 输出只需要一个匹配寄存器,因为所有PWM 输出的重复速率是相同的。多个单边沿控制的PWM 输出在每个PWM 周期的开始并且当MR0 发生匹配时,都有一个上沿。,8.3.1 LPC2212/2214单片机简介,3个匹配寄存器可用于提供一个双边沿控制PWM 输出。也就是说,MR0 匹配寄存器控制PWM 周期速率,其它匹配寄存器控制两个PWM 边沿位置。每个额外的双边沿控制PWM 输出只需要两个匹配寄存器,因为所有PWM 输出的重复速率是相同的。使用双边沿控制PWM 输出时,指定的匹配寄存器控制输出的上升和下降沿。这样就产生了正脉冲(当上升沿先于下降沿时)和负脉冲(当下降沿先于上升沿时)。,8.3.1 LPC2212/2214单片机简介,PWM的特性如下: 7个匹配寄存器,可实现6 个单边沿控制或3 个双边沿控制PWM 输出,或这两种类型的混合输出。; 匹配寄存器允许执行以下操作: 连续操作,可选择在匹配时产生中断 匹配时停止定时器,可选择产生中断 匹配时复位定时器,可选择产生中断 支持单边沿控制和/或双边沿控制的PWM 输出。单边沿控制PWM 输出在每个周期开始时总是为高电平,除非输出保持恒定低电平。双边沿控制PWM 输出可在一个周期内的任何位置产生边沿。这样可同时产生正和负脉冲;,8.3.1 LPC2212/2214单片机简介, 脉冲周期和宽度可以是任何的定时器计数值。这样可在分辨率和重复速率上获得平衡。所有PWM输出都以相同的重复率发生; 双边沿控制的PWM 输出可编程为正脉冲或负脉冲; 匹配寄存器更新与脉冲输出同步,防止产生错误的脉冲。软件必须在新的匹配值生效之前将它们释放。 如果不允许PWM 模式,可作为一个标准定时器使用; 带可编程32 位预分频器的32 位定时器/计数器。,8.3.1 LPC2212/2214单片机简介,8. A/D 转换器 LPC2212/2214 分别包含一个具有8 路输入的10 位逐次逼近式A/D转换器。 A/D转换器特性如下: 模拟输入电压范围:03V; 转换频率为4.5MHz; 每秒可执行400,000 次10 位采样; 可工作于单路或多路输入的突发转换模式; 根据输入脚的跳变或定时器匹配信号执行转换。,8.3.1 LPC2212/2214单片机简介,9系统控制模块 【晶振】 振荡器支持晶振范围为1MHz30MHz。晶振输出频率称为FOSC,而ARM 处理器时钟频率称为cclk。除非连接并运行PLL,否则在该文档中FOSC 和cclk 的值是相同的。,8.3.1 LPC2212/2214单片机简介,【PLL】 PLL 可以接受范围为10MHz25MHz 的输入时钟频率。输入频率通过一个电流控制振荡器(CCO)可以倍增为10MHz60MHz。倍增器可以是从1 到32 的整数(实际上在该系列微控制器当中,由于CPU频率的限制,倍增器的值不可能高于6)。CCO 操作的范围为156MHz320MHz,因此在环当中增加了一个分频器,这样PLL 在提供所需要的输出频率时,使CCO 保持在其频率范围内。输出分频器可设置为2、4、8 或者16 以产生输出时钟。由于最小输出分频值为2,这样就确保了PLL 输出具有50%的占空比。PLL在芯片复位后关闭并且被旁路,可通过软件使能。程序必须配置并且激活PLL,等待PLL 锁定之后再将PLL作为时钟源。PLL 的设置时间为100s。,8.3.1 LPC2212/2214单片机简介,【复位和唤醒定时器】 LPC2212/2214 有2 个复位源: RESET 管脚和看门狗复位。任何复位源所导致的芯片复位都会启动唤醒定时器(见下面的唤醒定时器),复位状态将一直保持到外部复位撤除,振荡器开始运行。振荡器运行经过固定数目的时钟后Flash 控制器完成其初始化。 当内部复位撤除后,处理器从复位向量地址0 开始执行。此时所有的处理器和外设寄存器都被初始化为预设的值。,8.3.1 LPC2212/2214单片机简介,唤醒定时器的用途是确保振荡器和其它芯片操作所需要的模拟功能在处理器能够执行指令之前完全正常工作。这在上电、各种类型的复位以及任何原因所导致上述功能被关闭的情况下非常重要。由于振荡器和其它功能在掉电模式下关闭,因此将处理器从掉电模式中唤醒就要利用唤醒定时器。 唤醒定时器监视晶体振荡器是否可以安全地开始执行代码。当芯片上电时,或某些事件导致芯片退出掉电模式时,振荡器需要一定的时间以产生足够振幅的信号驱动时钟逻辑。,8.3.1 LPC2212/2214单片机简介,【外部中断输入】 根据可选管脚功能的设定,LPC2212/2214 最多可包含9 个边沿或电平触发的外部中断输入。外部事件可作为4 个独立的中断信号来处理。外部中断输入可用于将处理器从掉电状态唤醒。 【存储器映射控制】 存储器映射控制改变了从地址0x00000000 开始的中断向量的映射。向量可以映射到片内Flash 存储器的底部,也可以映射到片内静态RAM。这使得在不同存储器空间中运行的代码都能够对中断进行控制。,8.3.1 LPC2212/2214单片机简介,【功率控制】 LPC2212/2214 支持两种低功耗模式:空闲模式和掉电模式。在空闲模式中,指令的执行被暂停,直到产生复位或中断为止。外围功能在空闲模式下继续工作并可产生中断唤醒处理器。空闲模式使处理器自身、存储器系统和相关的控制器以及内部总线不再消耗功率。,8.3.1 LPC2212/2214单片机简介,在掉电模式中,振荡器被关闭,芯片没有任何的内部时钟。处理器状态和寄存器、外设寄存器和内部SRAM 的值在掉电模式下保持不变。芯片管脚的逻辑电平保

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论