嵌入式系统设计第十一讲课件

上传人:沈*** 文档编号:241281264 上传时间:2024-06-15 格式:PPT 页数:231 大小:3.66MB
返回 下载 相关 举报
嵌入式系统设计第十一讲课件_第1页
第1页 / 共231页
嵌入式系统设计第十一讲课件_第2页
第2页 / 共231页
嵌入式系统设计第十一讲课件_第3页
第3页 / 共231页
点击查看更多>>
资源描述
E-mail:西南科技大学信息工程学院嵌入式应用技术嵌入式应用技术E-mail:1E-mail:西南科技大学信息工程学院第五讲第五讲 LPC2000系列系列ARM硬件结构硬件结构E-mail:西南科技大学信息工程学院第第5讲目录讲目录q1.简介q2.引脚配置q3.存储器寻址q4.系统控制模块q5.存储器加速模块q6.外部存储器控制器q7.引脚连接模块q8.向量中断控制器q9.GPIOq10.UART0q11.UART1q12.I2C接口q13.SPI接口q14.定时器0/1q15.脉宽调制器(PWM)q16.A/D转换器q17.实时时钟q18.看门狗E-mail:西南科技大学信息工程学院第第5讲目录讲目录q1.1.简介简介简介简介q2.引脚配置q3.存储器寻址q4.系统控制模块q5.存储器加速模块q6.外部存储器控制器q7.引脚连接模块q8.向量中断控制器q9.GPIOq10.UART0q11.UART1q12.I2C接口q13.SPI接口q14.定时器0/1q15.脉宽调制器(PWM)q16.A/D转换器q17.实时时钟q18.看门狗E-mail:西南科技大学信息工程学院5.1 简介简介LPC2000系列微控制器概述 LPC2000系列微控制器基于ARM7TDMI-S CPU内核。支持ARM和Thumb指令集,芯片内集成丰富外设,而且具有非常低的功率消耗。使该系列微控制器特别适用于工业控制、医疗系统、访问控制和POS机等场合。E-mail:西南科技大学信息工程学院器件型号引脚数片内RAM片内Flash10位AD通道数CAN控制器备注LPC21146416KB128KB4LPC21246416KB256KB4LPC221014416KB8带外部存储器接口LPC221214416KB128KB8LPC221414416KB256KB8LPC21196416KB128KB42LPC21296416KB256KB42LPC21946416KB256KB44LPC229014416KB82带外部存储器接口LPC229214416KB256KB82LPC229414416KB256KB84LPC2131648KB32KB8LPC21326416KB64KB8带1路DACLPC21346416KB128KB双8路LPC21366416KB256KB双8路LPC21386432KB512KB双8路LPC2000系列器件信息E-mail:西南科技大学信息工程学院芯片内部框图LPC2000系列微控制器包含四大部分:ARM7TDMI-SCPUAHB To VPB桥EMCVICI2C串行接口SPI串行接口UART0&1CAN看门狗定时器系统控制外部中断TIMER0/1ADC通用I/OPWM0实时时钟SRAMFlashAHB总线ARM7 局部总线系统功能ARM7TDMI-S CPUARM7局部总线及相关部件 AHBAHBAHBAHB高性能总线及相关部件VLSI外设总线及相关部件E-mail:西南科技大学信息工程学院芯片内部框图ARM7TDMI-SCPUAHB To VPB桥EMCVICI2C串行接口SPI串行接口UART0&1CAN看门狗定时器系统控制外部中断TIMER0/1ADC通用I/OPWM0实时时钟SRAMFlashAHB总线ARM7 局部总线系统功能LPC2000系 列 微 控 制 器 将ARM7TDMI-S配 置 为 小 端 模 式(Little-endian)。ARM7TDMI-SCPUAHB外设分配了2M字节的地址范围,它位于4G字节ARM寻址空间的最顶端。每个AHB外设都分配了16KB的地址空间。EMCVICLPC2000系列微控制器的外设功能(除中断控制器)都连接到VPB总线。AHB到VPB的桥将VPB总线与AHB总线相连。VPB外设也分配了2M字节的地址范围,从3.5GB地址点开始。每个VPB外设都分配了16KB的地址空间。I2C串行接口SPI串行接口UART0&1CAN看门狗定时器系统控制外部中断TIMER0/1ADC通用I/OPWM0实时时钟AHB To VPB桥E-mail:西南科技大学信息工程学院芯片内部各单元简介ARM7TDMI-SCPUAHB To VPB桥EMCVICI2C串行接口SPI串行接口UART0&1CAN看门狗定时器系统控制外部中断TIMER0/1ADC通用I/OPWM0实时时钟SRAMFlashAHB总线ARM7 局部总线系统功能SRAMFlash内部存储器包括无等待SRAM和Flash;外部存储器控制器(EMC)支持4个BANK的外部SRAM或Flash,每个BANK最多16MB;系统功能包括维持芯片工作的一些基本功能,如系统时钟、复位等;向量中断控制器(VIC)可以减少中断的响应时间,最多可以管理32各中断请求;I I I I2 2 2 2C C C C串行接口为标准的I2C总线接口,支持最高速度400kb;EMC系统功能VICI2C串行接口E-mail:西南科技大学信息工程学院芯片内部各单元简介ARM7TDMI-SCPUAHB To VPB桥EMCVICI2C串行接口SPI串行接口UART0&1CAN看门狗定时器系统控制外部中断TIMER0/1ADC通用I/OPWM0实时时钟SRAMFlashAHB总线ARM7 局部总线系统功能具有两个完全独立的SPISPISPISPI控制器,遵循SPI规范,可配置为SPI主机或从机;具有两个UARTUARTUARTUART接口,均包含16字节的接收/发送FIFO,内置波特率发生器。其中UART1具有调制解调器接口功能;在LPC2119/2129/2290/2292等芯片中包含CANCANCANCAN总线接口;看门狗定时器带有内部分频器,可以方便设置溢出时间,在软件使能看门狗后只有复位可以禁止(具有调试模式);SPI串行接口UART0&1CAN看门狗定时器E-mail:西南科技大学信息工程学院芯片内部各单元简介ARM7TDMI-SCPUAHB To VPB桥EMCVICI2C串行接口SPI串行接口UART0&1CAN看门狗定时器系统控制外部中断TIMER0/1ADC通用I/OPWM0实时时钟SRAMFlashAHB总线ARM7 局部总线系统功能系统控制模块包括一些与其它外设无关的功能,如功率控制等;外部中断有4路多引脚输入,可用于CPU掉电唤醒;定时器0/1为两个独立的带可编程32位预分频器的32位定时器/计数器,具有捕获和匹配输出功能;具有4/8路10位ADC,可以设置为多路循环采样模式。10位转换时间最短为2.44us;系统控制外部中断TIMER0/1ADCE-mail:西南科技大学信息工程学院芯片内部各单元简介ARM7TDMI-SCPUAHB To VPB桥EMCVICI2C串行接口SPI串行接口UART0&1CAN看门狗定时器系统控制外部中断TIMER0/1ADC通用I/OPWM0实时时钟SRAMFlashAHB总线ARM7 局部总线系统功能不同封装的芯片具有数目不等的IO口,它们可以承受5V电压。每个IO口可以独立设置为输入/输出模式,在作为输出模式时可以分别置位或清零;脉宽调制器可以灵活设置,以适应不同的场合。可以设置为单边沿或双边缘输出方式,可以灵活的设置频率和占空比;实时时钟具有可编程的积存时钟分频器,以适应不同的晶振频率。带日历和时钟功能,提供秒、分、时、日、月、年和星期,同时具有非常小的功耗。通用I/OPWM0实时时钟E-mail:西南科技大学信息工程学院第第5讲目录讲目录q1.1.简介简介简介简介q2.引脚配置q3.存储器寻址q4.系统控制模块q5.存储器加速模块q6.外部存储器控制器q7.引脚连接模块q8.向量中断控制器q9.GPIOq10.UART0q11.UART1q12.I2C接口q13.SPI接口q14.定时器0/1q15.脉宽调制器(PWM)q16.A/D转换器q17.实时时钟q18.看门狗E-mail:西南科技大学信息工程学院第第5讲目录讲目录q1.简介q2.2.引脚配置引脚配置引脚配置引脚配置q3.存储器寻址q4.系统控制模块q5.存储器加速模块q6.外部存储器控制器q7.引脚连接模块q8.向量中断控制器q9.GPIOq10.UART0q11.UART1q12.I2C接口q13.SPI接口q14.定时器0/1q15.脉宽调制器(PWM)q16.A/D转换器q17.实时时钟q18.看门狗E-mail:西南科技大学信息工程学院5.2 引脚配置引脚配置LPC2000系列芯片外形LPC2210/2212/2214LPC2114/2124E-mail:西南科技大学信息工程学院16E-mail:西南科技大学信息工程学院GPIOTXD0PWM1输出P0.0P0.05.2 引脚配置引脚配置引脚功能选择使用示例 LPC2000系列微控制器的引脚一般是多个功能复用,但是同一引脚在同一时刻只能使用其中一个功能,这可以通过设置PINSELxPINSELxPINSELxPINSELx寄存器来选择,详细介绍见“引脚连接模块”小节。通过PINSEL0控制引脚功能E-mail:西南科技大学信息工程学院第第5讲目录讲目录q1.简介q2.2.引脚配置引脚配置引脚配置引脚配置q3.存储器寻址q4.系统控制模块q5.存储器加速模块q6.外部存储器控制器q7.引脚连接模块q8.向量中断控制器q9.GPIOq10.UART0q11.UART1q12.I2C接口q13.SPI接口q14.定时器0/1q15.脉宽调制器(PWM)q16.A/D转换器q17.实时时钟q18.看门狗E-mail:西南科技大学信息工程学院第第5讲目录讲目录q1.简介q2.引脚配置q3.3.存储器寻址存储器寻址存储器寻址存储器寻址q4.系统控制模块q5.存储器加速模块q6.外部存储器控制器q7.引脚连接模块q8.向量中断控制器q9.GPIOq10.UART0q11.UART1q12.I2C接口q13.SPI接口q14.定时器0/1q15.脉宽调制器(PWM)q16.A/D转换器q17.实时时钟q18.看门狗E-mail:西南科技大学信息工程学院5.3 存储器寻址存储器寻址20E-mail:西南科技大学信息工程学院5.3.1存储器分布存储器分布地址空间0 xFFFFFFFF0 x00000000内部Flash0 x40000000内部SRAM0 x80000000外部存储器0 x7FFFE000Boot BlockBoot BlockBoot BlockBoot Block片外存储器片内存储器一个具体应用可能存在的物理存储器E-mail:西南科技大学信息工程学院256K16K5.3.1存储器分布存储器分布不同芯片内部存储器分布16K128K16KLPC2210LPC2114/2212LPC2124/2214片内Flash片内RAM 0 x000000000 x0001FFFF0 x0003FFFF0 x400000000 x40001FFFE-mail:西南科技大学信息工程学院5.3.2各存储器操作方法各存储器操作方法片内Flash编程方法:JTAG串口1.通过内置JTAGJTAGJTAGJTAG接口;2.通过在系统编程(ISPISPISPISP),使用UART0通信;3.通过在应用编程(IAPIAPIAPIAP);E-mail:西南科技大学信息工程学院5.3.2各存储器操作方法各存储器操作方法片外Flash编程方法(LPC2200):在CPU上运行一个装载程序(LoaderLoaderLoaderLoader,一般由用户编写),该程序通过串口接收要烧写的数据,然后擦除编程Flash。串口Loder程序外部FlashE-mail:西南科技大学信息工程学院5.3.2各存储器操作方法各存储器操作方法片内SRAM的写操作 SRAM控制器包含一个回写缓冲区,它总是保存着软件发送到SRAM的最后一个字数据。该数据只有在软件请求下一次写操作时才写入SRAM。如果发生芯片复位,实际的SRAM内容将不会反映最近一次的写操作。?回写缓冲区内部SRAM写入地址写入A写入BAA写入ABE-mail:西南科技大学信息工程学院5.3.3存储器映射存储器映射存储器映射基本概念 ARM处理器产生的地址叫虚拟地址,把这个虚拟地址按照某种规则转换到另一个物理地址去的方法称为地址映射。这个物理地址表示了被访问的存储器的位置。它是一个地址范围,该范围内可以写入程序代码。通过地址映射的方法将各存储器分配到特定的地址范围后,这时用户所看见的存储器分布为存储器映射。E-mail:西南科技大学信息工程学院5.3.3存储器映射存储器映射芯片复位后用户看见的地址空间128KB Flash(LPC2114/2212)256KB Flash(LPC2124/2214)16KB SRAM8KB BootBlock2MB VPB 外设2MB AHB 外设0 x000000000 xFFFFFFFF保留给片内存储器使用保留给片内存储器使用保留给外部储器使用0 x400000000 xE00000000 x800000000 xF00000000 x00020000地址空间E-mail:西南科技大学信息工程学院5.3.3存储器映射存储器映射AHB和VPB AHB(高性能总线)和VPB(VLSI外设总线)外设区域都为2M字节,可各分配128个外设。每个外设空间的规格都为16K字节,这样就简化了每个外设的地址译码。注意:AHB和VPB外设区域中不管是字还是半字,都是一次性访问。例如不可能对一个字寄存器的最高字节执行单独的读或写操作E-mail:西南科技大学信息工程学院5.3.3存储器映射存储器映射外设存储器映射VPB 外设AHB 外设保留3.5GB3.5GB+2MB4.0GB-2MB地址空间4.0GB0 xE000 00000 xE010 00000 xFFE0 00000 xFFFF FFFFVPB 外设AHB 外设均为12816KB(2MB)范围E-mail:西南科技大学信息工程学院5.3.3存储器映射存储器映射AHB外设映射AHB 外设126地址空间0 xFFE0 00000 xFFE0 40000 xFFFF 40000 xFFFF 8000AHB 外设125AHB 外设0AHB 外设10 xFFFF F0000 xFFFF C000向量中断控制器AHB 外设127E-mail:西南科技大学信息工程学院5.3.3存储器映射存储器映射VPB外设映射VPB 外设3地址空间0 xE000 00000 xE000 40000 xE000 80000 xE000 C000VPB 外设2VPB 外设0VPB 外设10 xE01F C000VPB外设127看门狗定时器定时器0系统控制模块定时器1UART 0E-mail:西南科技大学信息工程学院5.3.3存储器映射存储器映射Boot lock的映射地址安排 为了兼容将来的器件,整个Boot Block被映射到片内存储器空间的顶端。所以将来的芯片内置不同的RAM和FALSH都不会影响Boot Block的位置。地址空间FlashSRAMBoot BlockAHB&VPB映射位置固定在内部存储器顶端RAM和Flash的变化不会影响BootBlock的位置SRAMFlash0 x80000000E-mail:西南科技大学信息工程学院5.3.3存储器映射存储器映射存储器重新映射 存储器重新映射是将复位后用户所见的存储器中部分区域,再次映射到其它的地址上。对于Philips的LPC系列ARM微控制器,存储器重新映射区域一共为64字节,分别为异常向量区(32字节)和紧随其后的32字节。存储器重新映射的方法允许在不同模式下处理中断,重新映射的存储器区域在地址0 x000000000 x0000003F处。存储器重新映射的控制见“存储器映射控制”小节。E-mail:西南科技大学信息工程学院5.3.3存储器映射存储器映射使用存储器重新映射的原因使Flash存储器中的FIQ处理程序不必考虑因为重新映射所导致的存储器边界问题用来处理代码空间中段边界仲裁的SRAM和Boot Block向量的使用大大减少为超过单字转移指令范围的跳转提供空间来保存常量E-mail:西南科技大学信息工程学院5.3.4预取指中止和数据中止预取指中止和数据中止预取指中止和数据中止异常 如果试图访问一个保留地址或未分配区域的地址,ARM处理器将产生预取指中止或数据中止异常。E-mail:西南科技大学信息工程学院5.3.4预取指中止和数据中止预取指中止和数据中止预取指中止和数据中止异常这些区域分别为:FlashSRAMBoot BlockVPB地址空间AHB1.特定的ARM器件所没有的存储器映射区域;2.AHB外设空间中未分配的区域;3.VPB外设空间中未分配的区域。E-mail:西南科技大学信息工程学院5.3.4预取指中止和数据中止预取指中止和数据中止预取指中止和数据中止异常注意:只有在试图执行从非法地址取指的指令时,ARM才会将预取指中止标志与相关的指令(没有意义的指令)一起保存到流水线并对中止进行处理。当代码在非常靠近存储器边界执行时,防止了由预取指所导致的意外中止。E-mail:西南科技大学信息工程学院5.3.4预取指中止和数据中止预取指中止和数据中止预取指中止和数据中止异常举例指令流水线指令C指令B指令A存储器无效区域取指译码执行指令C指令B指令A取指译码执行存储器程序 存储器第N次取指E-mail:西南科技大学信息工程学院第N+1次取指5.3存储器寻址存储器寻址预取指中止和数据中止异常举例指令流水线指令C指令B指令A存储器无效区域取指译码执行指令C指令B指令A无效指令指令C指令B取指译码执行存储器程序 存储器E-mail:西南科技大学信息工程学院第N+2次取指5.3存储器寻址存储器寻址预取指中止和数据中止异常举例指令流水线指令C指令B指令A存储器无效区域取指译码执行指令C指令B指令A无效指令指令C指令B取指译码执行无效指令无效指令指令C存储器程序 存储器E-mail:西南科技大学信息工程学院5.3存储器寻址存储器寻址预取指中止和数据中止异常举例指令流水线指令C指令B指令A存储器无效区域取指译码执行指令C指令B指令A无效指令指令C指令B取指译码执行无效指令无效指令指令C无效指令无效指令无效指令存储器程序 存储器 第N+3次取指,此时流水线的执行级执行了无效指令,发生预取指中止。如果指令C为跳转指令则可以避免预取指中止的发生。E-mail:西南科技大学信息工程学院5.3.5异常向量表异常向量表异常向量表 对于每一个异常事件,都有一个与之相对应的处理程序,它们是关联在一起的,并以一张一维表的格式存储在存储器的固定单元中。这张指定了各异常中断及其处理程序的对应关系的表,称为异常向量表。E-mail:西南科技大学信息工程学院5.3.5异常向量表异常向量表异常向量表地址异常0 x0000 0000复位0 x0000 0004未定义指令0 x0000 0008软件中断0 x0000 000C预取指中止(从存储器取指出错)0 x0000 0010数据中止(访问存储器数据出错)0 x0000 0014保留*0 x0000 0018IRQ0 x0000 001CFIQ各异常向量的固定位置该位置被Boot装载程序用作有效用户程序的检测标志。通过定义此保留值,使向量表所有数据32位累加和为0,芯片复位后才能脱机运行用户程序。E-mail:西南科技大学信息工程学院5.3.5异常向量表异常向量表位于启动代码中的异常向量表什么是启动代码?一般在32位ARM应用系统中,大多数采用C语言进行软件编程。但是在运行应用代码前需要进行系统初始化。常用一个汇编文件作启动代码,它可以实现异常向量表定义、堆栈初始化、系统变量初始化、中断系统初始化、I/O初始化、外围部件初始化、地址重映射等操作。E-mail:西南科技大学信息工程学院位于启动代码中的异常向量表 CODE32 AREA vectors,CODE,READONLY ENTRYReset LDR PC,ResetAddr LDR PC,UndefinedAddr .DCD 0 xb9205f80 LDR PC,PC,#-0 xff0 LDR PC,FIQ_AddrResetAddr DCD ResetInitUndefinedAddr DCD Undefined.Nouse DCD 0IRQ_Addr DCD 0FIQ_Addr DCD FIQ_Handler 前32字节为异常入口 后32字节为跳转地址 异常向量表E-mail:西南科技大学信息工程学院位于启动代码中的异常向量表 CODE32 AREA vectors,CODE,READONLY ENTRYReset LDR PC,ResetAddr LDR PC,UndefinedAddr .DCD 0 xb9205f80 LDR PC,PC,#-0 xff0 LDR PC,FIQ_AddrResetAddr DCD ResetInitUndefinedAddr DCD Undefined.Nouse DCD 0IRQ_Addr DCD 0FIQ_Addr DCD FIQ_Handler异常向量表例如:发生未定义异常时1.程序计数器(PC)指向0 x00000004;2.执行当前的指令,将Undefined地址值装入PC,实现至未定义异常处理程序的跳转。装入E-mail:西南科技大学信息工程学院位于启动代码中的异常向量表 CODE32 AREA vectors,CODE,READONLY ENTRYReset LDR PC,ResetAddr LDR PC,UndefinedAddr .DCD 0 xb9205f80 LDR PC,PC,#-0 xff0 LDR PC,FIQ_AddrResetAddr DCD ResetInitUndefinedAddr DCD Undefined.Nouse DCD 0IRQ_Addr DCD 0FIQ_Addr DCD FIQ_Handler异常向量表注意:异常向量表中程序跳转使用LDR指令,而没有使用B指令。原因:1.LDR指令可以全地址范围跳转,而 B指 令 只 能 在 前 后32MB范围内跳转;2.芯片具有Remap功能。当向量表位于内部RAM或外部存储器中,用B指令不能跳转到正确的位置。B ResetAddrE-mail:西南科技大学信息工程学院第第5讲目录讲目录q1.简介q2.引脚配置q3.3.存储器寻址存储器寻址存储器寻址存储器寻址q4.系统控制模块q5.存储器加速模块q6.外部存储器控制器q7.引脚连接模块q8.向量中断控制器q9.GPIOq10.UART0q11.UART1q12.I2C接口q13.SPI接口q14.定时器0/1q15.脉宽调制器(PWM)q16.A/D转换器q17.实时时钟q18.看门狗E-mail:西南科技大学信息工程学院第第5讲目录讲目录q1.简介q2.引脚配置q3.存储器寻址q4.4.系统控制模块系统控制模块系统控制模块系统控制模块q5.存储器加速模块q6.外部存储器控制器q7.引脚连接模块q8.向量中断控制器q9.GPIOq10.UART0q11.UART1q12.I2C接口q13.SPI接口q14.定时器0/1q15.脉宽调制器(PWM)q16.A/D转换器q17.实时时钟q18.看门狗E-mail:西南科技大学信息工程学院5.4 系统控制模块系统控制模块系统控制模块概述系统时钟复位外部中断存储器映射控制功率控制唤醒定时器E-mail:西南科技大学信息工程学院5.4.1系统控制模块概述系统控制模块概述系统控制模块概述 系统控制模块包括一些系统构件和控制寄存器,它们具有众多与芯片内其它外设无关的功能。系统控制模块包括:系统时钟单元、复位、外部中断输入、存储器映射控制、功率控制和唤醒定时器。E-mail:西南科技大学信息工程学院5.4.2系统时钟系统时钟系统时钟概述 CPU正常工作需要有合适的时钟信号,包括ARM7内核使用的CCLK时钟,和芯片外设使用的PCLK时钟。通过LPC2000系列微控制器的时钟产生单元产生ARM7内核和芯片外设正常工作所需要的时钟节拍。E-mail:西南科技大学信息工程学院5.4.2系统时钟系统时钟系统时钟概述ARM7核桥外设时钟产生FCCLKFPCLKFOSCCPU时钟结构E-mail:西南科技大学信息工程学院5.4.2系统时钟系统时钟时钟产生单元 时钟产生单元包括晶体振荡器、锁相环振荡器(PLL)和VPB分频器。PLL晶体振荡器VPB分频器FCCLKFPCLKFOSCE-mail:西南科技大学信息工程学院5.4.2系统时钟系统时钟晶体振荡器 LPC2000微控制器可以使用内部的晶体振荡器产生时钟信号,也可以从外部引入时钟信号。LPC2000LPC2000X1X2X1X2ClockCX1CX2CCXTAL从属模式振荡模式E-mail:西南科技大学信息工程学院5.4.2系统时钟系统时钟晶体振荡器 使用从属模式时,时钟信号通过X1引脚从外部输入,输入频率范围:150(MHz),其幅度不小于200mVrms。LPC2000X1X2ClockCC从属模式E-mail:西南科技大学信息工程学院5.4.2系统时钟系统时钟晶体振荡器 使用振荡模式时,时钟信号由内部晶体振荡器和外部连接的晶体振荡产生,振荡频率范围:130(MHz)。LPC2000X1X2CX1CX2XTAL振荡模式E-mail:西南科技大学信息工程学院5.4.2系统时钟系统时钟晶体振荡器注意:如果使用了ISPISP下载功能或者连接PLL提高频率,则输入的时钟频率范围必须在1025(MHz)之间。LPC2000LPC2000X1X2X1X2ClockCX1CX2CCXTAL从属模式振荡模式E-mail:西南科技大学信息工程学院5.4.2系统时钟系统时钟锁相环(PLL)由晶体振荡器输出的时钟信号,通过PLL升频,可以获得更高的系统时钟(CCLK)。PLL接受的输入时钟频率范围为1025MHz,通过一个电流控制振荡器(CCO)倍增到1060MHz。PLL晶体振荡器VPB分频器FCCLKFPCLKFOSC10MHz25MHz10MHz60MHzPLLE-mail:西南科技大学信息工程学院PLL内部结构相位频率检测CCO102P分频M分频0101FOSCFCCOFCLK晶体振荡器输入时钟对输入的两路时钟信号进行相位频率检测,将两者差值以电流形式输出电流控制振荡器,根据输入电流控制振荡频率对输入时钟分频输入时钟 2选1开关E-mail:西南科技大学信息工程学院PLL内部结构相位频率检测CCO102P分频M分频0101FOSCFCCOFCLKFCCO/2PFCCO/(2P*M)CCO自由振荡,输出频率FCCO 根据两个输入时钟的相位偏差,控制CCO。当两个时钟相位同步时,回路锁定。E-mail:西南科技大学信息工程学院PLL相关寄存器相位频率检测CCO102P分频M分频0101FOSCFCCOFCLKPLL控制寄存器(PLLCON):位76543210功能PLLCPLLEPLLE:PLL使能,该位为1时将激活PLL并允许其锁定到指定的频率;PLLC:PLL连接,当PLLE为1,并且在PLL锁定后,该位为1,将把PLL作为时钟源连接到CPU,否则直接使用振荡器时钟。PLLCPLLEE-mail:西南科技大学信息工程学院相位频率检测CCO102P分频M分频0101FOSCFCCOFCLK位76543210功能PLLCPLLE注:其中“”表示该位保留,用户不要向该位写入1,读取的值将不确定PLLCPLLEPLL相关寄存器PLL控制寄存器(PLLCON):E-mail:西南科技大学信息工程学院相位频率检测CCO102P分频M分频0101FOSCFCCOFCLKPLLCPLLEPLL功能00PLL被关闭,并断开连接。01PLL被激活但是尚未连接。可以在PLOCK置位后连接。10与00组合相同。避免PLL已连接,当还没有使能的情况。11PLL已经使能,并连接到处理器作为系统时钟源。PLLCPLLEPLL相关寄存器PLL控制寄存器(PLLCON):E-mail:西南科技大学信息工程学院相位频率检测CCO102P分频M分频0101FOSCFCCOFCLKPLL配置寄存器(PLLCFG):位76543210功能PSEL1:0MSEL4:0MSEL4:0:PLL倍频器值,在PLL频率计算中其值为(M-1);PSEL1:0:PLL分频器值,在PLL频率计算中其值为P。PLL相关寄存器E-mail:西南科技大学信息工程学院相位频率检测CCO102P分频M分频0101FOSCFCCOFCLKPLL状态寄存器(PLLSETA):位15:11109876:54:0功能PLOCKPLLCPLLEPSEL1:0MSEL4:0MSEL4:0、PSEL1:0、PLLE、PLLC:读出反映这几个参数的设置值,写入无效;PLOCK:反映PLL的锁定状态。为0时,PLL未锁定;为1时,PLL锁定到指定频率。PLL相关寄存器E-mail:西南科技大学信息工程学院相位频率检测CCO102P分频M分频0101FOSCFCCOFCLKPLL馈送寄存器(PLLFEED):PLLFEDD7:0:PLL馈送序列必须写入该寄存器才能使PLL配置和控制寄存器的更改生效;位76543210功能PLLFEED7:0PLL相关寄存器E-mail:西南科技大学信息工程学院相位频率检测CCO102P分频M分频0101FOSCFCCOFCLK馈送序列为:1.将值0 xAA写入PLLFEED;2.将值0 x55写入PLLFEED。位76543210功能PLLFEED7:0PLL相关寄存器PLL馈送寄存器(PLLFEED):E-mail:西南科技大学信息工程学院PLL频率计算回路锁定后:FOSC=FCCO/(2P M)FCLK=FOSC M相位频率检测CCO102P分频M分频0101FOSCFCCOFCLKFCCO/2PFCCO/(2P*M)FOSC:晶振频率;FCCO:CCO振荡器输出频率FCCLK:处理器时钟频率;M:PLL倍频值 P:PLL分频值必须满足的条件:FOSC范围:10MHz25MHz;FCCLK范围:10MHz60MHz;FCCO范围:156MHz320MHz;E-mail:西南科技大学信息工程学院5.4.2系统时钟系统时钟锁相环(PLL)计算流程1.选择处理器的工作频率(CCLK)2.选择振荡器频率(FOSC)3.计算M值配置MSEL位4.计算P值配置PSEL位 根据处理器的整体要求、UART波特率的支持等因素来决定。外围器件的时钟频率可以低于处理器频率 CCLK 必须为FOSC的整数倍。M=CCLK/FOSC,取值范围132。写入MSEL的值为(M-1)。选择合适的P值,使FCCO在限制范围内。P只能取1、2、4或8。写入PSEL的值为P。E-mail:西南科技大学信息工程学院5.4.2系统时钟系统时钟锁相环(PLL)计算实例系统要求:FOSC10MHz、CCLK 60MHz1.计算M值:M CCLK /FOSC 6;2.设置MSEL位:写入值为(M1)5;3.设置PSEL位:PFCCO/(CCLK2)(156320)/1201.32.67 所以P取整数2,PSEL写入值为2。E-mail:西南科技大学信息工程学院5.4.2系统时钟系统时钟锁相环(PLL)注意要点PLL在芯片复位或进入掉电模式时被关闭并旁路,在掉电唤醒后不会自动恢复PLL的设定;PLL只能通过软件使能;PLL在激活后必须等待其锁定,然后才能连接;PLL如果设置不当将会导致芯片的错误操作。E-mail:西南科技大学信息工程学院5.4.2系统时钟系统时钟VPB分频器 VPB分频器将PLL输出的时钟信号分频后作为芯片外设的时钟。PLL晶体振荡器VPB分频器FCCLKFPCLKFOSCVPB分频器E-mail:西南科技大学信息工程学院5.4.2系统时钟系统时钟VPB分频器 VPB分频器决定处理器时钟(CCLK)与外设器件所使用的时钟(PCLK)之间的关系。VPB用途1:通过VPB总线为外设提供所需的PCLK时钟,以便外设在合适的速度下工作;VPB用途2:在应用不需要任何外设全速运行时使功耗降低。E-mail:西南科技大学信息工程学院5.4.2系统时钟系统时钟VPB分频器相关寄存器位76543210功能XCLKDIV1:0VPBDIV1:0VPB分频寄存器(VPBDIVVPBDIV):VPBDIV1:0:设置分频值,可以设定3个值;XCLKDIV1:0:这些位用于控制LPC2200系列微控制器A23/XCLK引脚上的时钟驱动,取值编码方式与VPBDIV相同;E-mail:西南科技大学信息工程学院5.4.2系统时钟系统时钟VPB分频器相关寄存器位76543210功能XCLKDIV1:0VPBDIV1:0VPB分频寄存器(VPBDIV):VPBDIV1:0说明00VPB总线时钟为处理器时钟的1/4。01VPB总线时钟与处理器时钟相同。10VPB总线时钟为处理器时钟的1/2。11保留。写入该值将不改变分频值。E-mail:西南科技大学信息工程学院系统时钟初始化流程使能PLL设置VPB 分频值PLL馈送序列等待PLL锁定设置PLL 分频值连接PLLPLL馈送序列E-mail:西南科技大学信息工程学院系统时钟初始化启动代码实例/应当与实际一至晶振频率,10MHz25MHz,应当与实际一至#define Fosc 11059200/系统频率,必须为Fosc的整数倍(132),且=60MHZ#define Fcclk(Fosc*4)/CCO频率,必须为Fcclk的2、4、8、16倍,范围为156MHz320MHz#define Fcco(Fcclk*4)/VPB时钟频率,只能为(Fcclk/4)的1、2、4倍#define Fpclk(Fcclk/4)*1 将系统内各时钟的频率定义为宏,方便用户操作。设置晶振频率设置内核工作频率设置CCO输出频率设置外设工作频率E-mail:西南科技大学信息工程学院系统时钟初始化启动代码实例使能PLL设置VPB 分频值PLL馈送序列等待PLL锁定设置PLL 分频值连接PLLPLL馈送序列使能PLL设置VPB 分频值C代码分析:PLLCON=1;#if(Fpclk/(Fcclk/4)=1 VPBDIV=0;#endif#if(Fpclk/(Fcclk/4)=2 VPBDIV=2;#endif#if(Fpclk/(Fcclk/4)=4 VPBDIV=4;#endif.注意:在启动代码中很多地方使用了条件编译的方法,根据用户定义的宏来决定要设置的值,可以方便用户使用。E-mail:西南科技大学信息工程学院系统时钟初始化启动代码实例使能PLL设置VPB 分频值PLL馈送序列等待PLL锁定设置PLL 分频值连接PLLPLL馈送序列设置PLL 分频值C代码分析:.#if(Fcco/Fcclk)=2 PLLCFG=(Fcclk/Fosc)-1)|(05);#endif#if(Fcco/Fcclk)=4 PLLCFG=(Fcclk/Fosc)-1)|(15);#endif#if(Fcco/Fcclk)=8 PLLCFG=(Fcclk/Fosc)-1)|(25);#endif#if(Fcco/Fcclk)=16 PLLCFG=(Fcclk/Fosc)-1)|(35);.E-mail:西南科技大学信息工程学院系统时钟初始化启动代码实例使能PLL设置VPB 分频值PLL馈送序列等待PLL锁定设置PLL 分频值连接PLLPLL馈送序列PLL馈送序列等待PLL锁定连接PLLPLL馈送序列C代码分析:.PLLFEED=0 xaa;PLLFEED=0 x55;while(PLLSTAT&(1=10msE-mail:西南科技大学信息工程学院=300ns5.4.3复位复位UX1t此时振荡器稳定工作外部复位LPC2xxxnRESET电源输入X1X23.在晶体振荡器保持稳定振荡,或者使用有源钟振时,外部复位信号可以缩短到不小于300ns;E-mail:西南科技大学信息工程学院5.4.3复位复位 任何复位源引起的芯片复位都会启动唤醒定时器,当计数到一个固定个数的时钟时,处理器开始执行指令。这确保振荡器和芯片所需要的其它模拟电路在处理器开始执行指令之前能够正确工作。外部复位与内部看门狗复位的共同点E-mail:西南科技大学信息工程学院5.4.3复位复位外部复位与内部看门狗复位的区别 外部复位将把某几个特定引脚的值锁存,来决定系统复位后的状态,而看门狗(WDT)复位则无此功能。检测引脚锁存状态对应功能P1.20/TRACESYNCP1.20/TRACESYNC0P1.25P1.16作为跟踪端口P1.26/RTCKP1.26/RTCK0P1.31P1.26作为调试端口P0.14P0.140进入ISPISP状态BOOT1BOOT1、BOOT2BOOT2全1内部Flash启动,否则外部启动E-mail:西南科技大学信息工程学院5.4.3复位复位复位后的系统状态 芯片被复位后,处理器和外设寄存器都恢复为默认状态。程序计数器(PC)值为0,即CPU复位后运行的第一条代码位于0 x00000000处。此时位于该地址的程序并不位于片内Flash,而是来自Boot Boot BlockBlock的异常向量表的重新映射。通过异常向量表的复位异常入口,程序跳转至Boot Block中执行Boot程序。E-mail:西南科技大学信息工程学院5.4.3复位复位复位后的系统状态FlashSRAMBoot BlockAHB&VPB0 x000000000 xFFFFFFFF0 x400000000 x80000000地址空间1.复位后用户见到的存储器分布E-mail:西南科技大学信息工程学院2.BootBlock中的异常向量表重新映射5.4.3复位复位复位后的系统状态FlashSRAMBoot BlockAHB&VPB0 x000000000 xFFFFFFFF0 x400000000 x80000000地址空间复位异常入口未定义异常入口软件中断入口.0 x000000000 x000000040 x000000080 x00000040E-mail:西南科技大学信息工程学院PC指向3.PC指向0 x0000地址处,CPU执行复位后的第一条指令5.4.3复位复位复位后的系统状态FlashSRAMBoot BlockAHB&VPB0 x000000000 xFFFFFFFF0 x400000000 x80000000地址空间复位异常入口未定义异常入口软件中断入口.0 x000000040 x000000080 x00000040E-mail:西南科技大学信息工程学院4.通过跳转指令,程序跳入Boot Block,执行Boot程序。5.4.3复位复位复位后的系统状态PC指向FlashSRAMBoot BlockAHB&VPB0 x000000000 xFFFFFFFF0 x400000000 x80000000地址空间复位异常入口未定义异常入口软件中断入口.0 x000000040 x000000080 x00000040E-mail:西南科技大学信息工程学院5.4.3复位复位Boot程序 Boot程序是芯片生产厂家固化在芯片中的一段代码,它完成芯片复位后的初始化操作,并提供实现Flash编程的方法。Boot装载程序可启动对空片的编程、已编程器件的擦除和再编程,以及在运行的系统中由应用程序对Flash存储器进行编程。E-mail:西南科技大学信息工程学院Boot程序工作流程LPC2114/2124复位运行ISP服务程序看门狗复位根据硬件(P1.20、P1.26)配置进入ISP状态吗?(P0.14为低)初始化用户代码是否有效执行用户代码(片内Flash:0 x00000000)NYYYNN在此检测特定引脚检测用户代码是否有效E-mail:西南科技大学信息工程学院Boot程序工作流程LPC2210/2212/2214复位看门狗复位进入ISP模式?(P0.14为低)初始化用户代码是否有效芯片加密允许调试外部引导芯片加密运行ISP服务程序执行外部用户代码(0 x80000000)执行内部用户代码(0 x00000000)NNYYNNNNYYYY在此检测特定引脚检测用户代码是否有效E-mail:西南科技大学信息工程学院5.4.3复位复位有效用户代码的判别 LPC2000系列微控制器规定“内部Flash中向量表所有数据的32位累加为零”时,判定内部Flash中的代码为有效可执行代码。即只有当向量表所有数据32位累加和为零时,用户的程序才能脱机运行。E-mail:西南科技大学信息工程学院有效用户代码的判别 CODE32 AREA vectors,CODE,READONLY ENTRYReset LDR PC,ResetAddr LDR PC,UndefinedAddr .DCD 0 xb9205f80 LDR PC,PC,#-0 xff0 LDR PC,FIQ_AddrResetAddr DCD ResetInitUndefinedAddr DCD Undefined.Nouse DCD 0IRQ_Addr DCD 0FIQ_Addr DCD FIQ_Handler异常向量表 前32字节为异常入口 后32字节为跳转地址 E-mail:西南科技大学信息工程学院有效用户代码的判别Reset0 xe59ff018 ldr pc,ResetAddr0 xe59ff018 ldr pc,UndefinedAddr.0 xb9205f80 dcd 0 xb9205f800 xe51ffff0 ldr pc,0 x7ffff0300 xe59ff018 ldr pc,FIQ_AddrResetAddr0 x8000008c dcd 0 x8000008cUndefinedAddr0 x80000040 dcd 0 x80000040.Nouse0 x00000000 dcd 0 x00000000IRQ_Addr0 x00000000 dcd 0 x00000000FIQ_Addr0 x8000004c dcd 0 x8000004c异常向量表反汇编代码 前32字节为异常入口 后32字节为跳转地址 E-mail:西南科技大学信息工程学院有效用户代码的判别Reset0 xe59ff018 ldr pc,ResetAddr0 xe59ff018 ldr pc,UndefinedAddr.0 xb9205f80 dcd 0 xb9205f800 xe51ffff0 ldr pc,0 x7ffff0300 xe59ff018 ldr pc,FIQ_AddrResetAddr0 x8000008c dcd 0 x8000008cUndefinedAddr0 x80000040 dcd 0 x80000040.Nouse0 x00000000 dcd 0 x00000000IRQ_Addr0 x00000000 dcd 0 x00000000FIQ_Addr0 x8000004c dcd 0 x8000004c异常向量表反汇编代码指令的机器码指令E-mail:西南科技大学信息工程学院有效用户代码的判别Reset0 xe59ff018 ldr pc,ResetAddr0 xe59ff018 ldr pc,UndefinedAddr.0 xb9205f80 dcd 0 xb9205f800 xe51ffff0 ldr pc,0 x7ffff0300 xe59ff018 ldr pc,FIQ_AddrResetAddr0 x8000008c dcd 0 x8000008cUndefinedAddr0 x80000040 dcd 0 x80000040.Nouse0 x00000000 dcd 0 x00000000IRQ_Addr0 x00000000 dcd 0 x00000000FIQ_Addr0 x8000004c dcd 0 x8000004c异常向量表反汇编代码8条指令的机器码累加和为0,表示用户代码有效E-mail:西南科技大学信息工程学院Reset0 xe59ff018 ldr pc,ResetAddr0 xe59ff018 ldr pc,UndefinedAddr.0 xb9205f80 dcd 0 xb9205f800 xe51ffff0 ldr pc,0 x7ffff0300 xe59ff018 ldr pc,FIQ_AddrResetAddr0 x8000008c dcd 0 x8000008cUndefinedAddr0 x80000040 dcd 0 x80000040.Nouse0 x00000000 dcd 0 x00000000IRQ_Addr0 x00000000 dcd 0 x00000000FIQ_Addr0 x8000004c dcd 0 x8000004c异常向量表反汇编代码8条指令的机器码累加和为0,表示用户代码有效有效用户代码的判别0 x000000000 xe59ff0180 xe59ff018.0 xb9205f800 xe51ffff00 xe59ff018跳转地址数据不在累加范围内 通过调整该保留字,使累加和为0E-mail:西南科技大学信息工程学院5.4.4外部中断外部中断外部中断 外部中断是通过引脚输入符合要求的信号而触发的中断。LPC2114/2124/2212/2214含有4个外 部 中 断 输 入(作 为 可 选 引 脚 功 能,通 过PINSEL0/1寄存器设置相应管脚为外部中断功能)。外部中断输入可用于将处理器从掉电模式唤醒。E-mail:西南科技大学信息工程学院管脚连接控制外部中断极性控制外部中断方式控制掉电唤醒控制中断标志CPU其它部件PINSELxEXTPOLAREXTMODEEXTINTEXTWAKE5.4.4外部中断外部中断外部中断内部示意图2.控制某几个引脚作为外部中断输入;管脚连接控制1.可作为外部中断输入的引脚;外部中断极性控制外部中断方式控制掉电唤醒控制中断标志3.控制触发外部中断的信号波形;4.控制外部中断产生后是否唤醒CPU;5.外部中断产生后设置的标志位;(2)(1)(3)(3)(4)(5)E-mail:西南科技大学信息工程学院外部中断相关寄存器外部中断极性控制寄存器(EXTPOLAREXTPOLAREXTPOLAREXTPOLAR):位7:43210功能EXTPOLAR3EXTPOLAR2EXTPOLAR1EXTPOLAR0 该寄存器控制着外部中断输入信号的极性,其中低四位(EXTPOLAR3:0)分别对应外部中断30。管脚连接控制外部中断极性控制外部中断方式控制掉电唤醒控制中断标志CPU其它部件PINSELxEXTPOLAREXTMODEEXTINTEXTWAKE外部中断极性控制E-mail:西南科技大学信息工程学院外部中断相关寄存器外部中断3 外部中断2 外部中断1 外部中断0(EINT3)(EINT2)(EINT1)(EINT0)分别控制着外部中断极性控制寄存器(EXTPOLAR):位7:43210功能EXTPOLAR3EXTPOLAR2EXTPOLAR1EXTPOLAR0管脚连接控制外部中断极性控制外部中断方式控制掉电唤醒控制中断标志CPU其它部件PINSELxEXTPOLAREXTMODEEXTINTEXTWAKEE-mail:西南科技大学信息工程学院当EXTPOLARx设置为1时EINTx引脚输入信号高电平或上升沿有效。当EXTPOLARx设置为0时EINTx引脚输入信号低电平或下降沿有效。外部中断相关寄存器外部中断极性控制寄存器(EXTPOLAR):位7:43210功能EXTPOLAR3EXTPOLAR2EXTPOLAR1EXTPOLAR0管脚连接控制外部中断极性控制外部中断方式控制掉电唤醒控制中断标志CPU其它部件PINSELxEXTPOL
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 管理文书 > 施工组织


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!