第5部分LPC2000系列ARM硬件结构教程文件

上传人:yuzo****123 文档编号:137402986 上传时间:2020-07-08 格式:PPT 页数:163 大小:1.86MB
返回 下载 相关 举报
第5部分LPC2000系列ARM硬件结构教程文件_第1页
第1页 / 共163页
第5部分LPC2000系列ARM硬件结构教程文件_第2页
第2页 / 共163页
第5部分LPC2000系列ARM硬件结构教程文件_第3页
第3页 / 共163页
第5部分LPC2000系列ARM硬件结构教程文件_第4页
第4页 / 共163页
第5部分LPC2000系列ARM硬件结构教程文件_第5页
第5页 / 共163页
点击查看更多>>
资源描述

《第5部分LPC2000系列ARM硬件结构教程文件》由会员分享,可在线阅读,更多相关《第5部分LPC2000系列ARM硬件结构教程文件(163页珍藏版)》请在金锄头文库上搜索。

1、第5章 LPC2000系列ARM 硬件结构,第5章 目录,1.简介 2.引脚配置 3.存储器寻址 4.系统控制模块 5.存储器加速模块 6.外部存储器控制器 7.引脚连接模块 8. 向量中断控制器 9.GPIO,10.UART0 11.UART1 12.I2C接口 13.SPI接口 14.定时器0/1 15.脉宽调制器(PWM) 16.A/D转换器 17.实时时钟 18.看门狗,第5章 目录,1.简介 2.引脚配置 3.存储器寻址 4.系统控制模块 5.存储器加速模块 6.外部存储器控制器 7.引脚连接模块 8. 向量中断控制器 9.GPIO,10.UART0 11.UART1 12.I2C接

2、口 13.SPI接口 14.定时器0/1 15.脉宽调制器(PWM) 16.A/D转换器 17.实时时钟 18.看门狗,5.1 简介,LPC2000系列微控制器概述,LPC2000系列微控制器基于ARM7TDMI-S CPU内核。支持ARM和Thumb指令集,芯片内集成丰富外设,而且具有非常低的功率消耗。使该系列微控制器特别适用于工业控制、医疗系统、访问控制和POS机等场合。,芯片内部框图,LPC2000系列微控制器包含四大部分:,ARM7TDMI-S CPU,ARM7局部总线及相关部件,AHB高性能总线及相关部件,VLSI外设总线及相关部件,芯片内部框图,LPC2000系列微控制器将ARM7

3、TDMI-S配置为小端模式(Little-endian)。,ARM7TDMI-S CPU,AHB外设分配了2M字节的地址范围,它位于4G字节ARM寻址空间的最顶端。每个AHB外设都分配了16KB的地址空间。,LPC2000系列微控制器的外设功能(除中断控制器)都连接到VPB总线。AHB到VPB的桥将VPB总线与AHB总线相连。VPB外设也分配了2M字节的地址范围,从3.5GB地址点开始。每个VPB外设都分配了16KB的地址空间。,AHB To VPB 桥,芯片内部各单元简介,内部存储器包括无等待SRAM和Flash;,外部存储器控制器(EMC)支持4个BANK的外部SRAM或Flash,每个B

4、ANK最多16MB;,系统功能包括维持芯片工作的一些基本功能,如系统时钟、复位等;,向量中断控制器(VIC)可以减少中断的响应时间,最多可以管理32各中断请求;,I2C串行接口为标准的I2C总线接口,支持最高速度400kb;,EMC,系统功能,VIC,I2C串行接口,芯片内部各单元简介,具有两个完全独立的SPI控制器,遵循SPI规范,可配置为SPI主机或从机;,具有两个UART接口,均包含16字节的接收/发送FIFO,内置波特率发生器。其中UART1具有调制解调器接口功能;,在LPC2119/2129/2290/2292等芯片中包含CAN总线接口;,看门狗定时器带有内部分频器,可以方便设置溢出

5、时间,在软件使能看门狗后只有复位可以禁止(具有调试模式);,SPI串行接口,UART0 #if (Fpclk / (Fcclk / 4) = 1 VPBDIV = 0; #endif #if (Fpclk / (Fcclk / 4) = 2 VPBDIV = 2; #endif #if (Fpclk / (Fcclk / 4) = 4 VPBDIV = 1; #endif . . .,注意:在启动代码中很多地方使用了条件编译的方法,根据用户定义的宏来决定要设置的值,可以方便用户使用。,系统时钟初始化启动代码实例,设置PLL 分频值,C代码分析:,. . . #if(Fcco/Fcclk)=2

6、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); . . .,系统时钟初始化启动代码实例,PLL馈送序列,等待PLL锁定,连接PLL,PLL馈送序列,C代码分析:,. . . PLLFEED = 0 xaa; PLLFEED = 0 x55; while(PLLS

7、TAT ,注意:在修改PLL的控制和配置寄存器后,必须写入馈送序列,使修改生效。,5.4 系统控制模块小节目录,系统控制模块概述 系统时钟 复位 外部中断 存储器映射控制 功率控制 唤醒定时器,复位,复位的分类 外部复位 把nRESET引脚拉为低电平,并保持一个最小时间,引发复位 看门狗复位 通过设置看门狗相关寄存器,当看门狗定时器溢出后,引发复位,复位,外部复位 外部复位引脚(nRESET)连接内部的施密特触发器,通过施密特触发器可以滤除引脚输入的干扰信号,保证复位的可靠性。如果外部复位信号一直有效,芯片将保持复位状态。,注意: 如果芯片使用了外部晶体,上电后nRESET引脚的复位信号必须保

8、持至少10ms,以便产生稳定的振荡信号。如果晶振已经稳定运行且X1引脚上以出现稳定信号时,nRESET引脚的复位信号只需保持至少300ns时间。,1. 在芯片未上电时,芯片振荡器没有工作;,复位,UX1,t,外部复位,复位,振荡器稳定需要一段时间,UX1,t,外部复位,2. 芯片上电后,晶体振荡器开始振荡。因为振荡从开始到稳定需要一过程,所以外部复位信号至少要保持10ms;,=10ms,=300ns,复位,此时振荡器稳定工作,外部复位,3. 在晶体振荡器保持稳定振荡,或者使用有源钟振时,外部复位信号可以缩短到不小于300ns;,复位,任何复位源引起的芯片复位都会启动唤醒定时器,当计数到一个固定

9、个数的时钟时,处理器开始执行指令。这确保振荡器和芯片所需要的其它模拟电路在处理器开始执行指令之前能够正确工作。,外部复位与内部看门狗复位的共同点,复位,外部复位与内部看门狗复位的区别,外部复位将把某几个特定引脚的值锁存,来决定系统复位后的状态,而看门狗(WDT)复位则无此功能。,复位,复位后的系统状态,芯片被复位后,处理器和外设寄存器都恢复为默认状态。程序计数器(PC)值为0,即CPU复位后运行的第一条代码位于0 x00000000处。此时位于该地址的程序并不位于片内Flash,而是来自Boot Block的异常向量表的重新映射。通过异常向量表的复位异常入口,程序跳转至Boot Block中执

10、行Boot程序。,复位,复位后的系统状态,地址空间,1. 复位后用户见到的存储器分布,2. BootBlock中的异常向量表重新映射,复位,复位后的系统状态,地址空间,PC指向,3. PC指向0 x0000地址处,CPU执行复位后的第一条指令,复位,复位后的系统状态,地址空间,复位异常入口,未定义异常入口,软件中断入口,. . .,0 x00000004,0 x00000008,0 x00000040,4. 通过跳转指令,程序跳入Boot Block,执行Boot程序。,复位,复位后的系统状态,PC指向,地址空间,复位异常入口,未定义异常入口,软件中断入口,. . .,0 x00000004,

11、0 x00000008,0 x00000040,复位,Boot程序,Boot程序是芯片生产厂家固化在芯片中的一段代码,它完成芯片复位后的初始化操作,并提供实现Flash编程的方法。Boot装载程序可启动对空片的编程、已编程器件的擦除和再编程,以及在运行的系统中由应用程序对Flash存储器进行编程。,Boot程序工作流程LPC2114/2124,复位,运行ISP服务程序,看门狗复位,根据硬件 (P1.20、P1.26) 配置,进入ISP状态吗? (P0.14为低),初始化,用户代码 是否有效,执行用户代码 (片内Flash: 0 x00000000),N,Y,Y,Y,N,N,在此检测特定引脚,检

12、测用户代码是否有效,Boot程序工作流程LPC2210/2212/2214,复位,看门狗复位,进入ISP模式? (P0.14为低),初始化,用户代码 是否有效,芯片加密,允许调试,外部引导,芯片加密,运行ISP服务程序,执行外部用户代码 (0 x80000000),执行内部用户代码 (0 x00000000),N,N,Y,Y,N,N,N,N,Y,Y,Y,Y,在此检测特定引脚,检测用户代码是否有效,复位,有效用户代码的判别,LPC2000系列微控制器规定 “内部Flash中向量表所有数据的32位累加为零”时,判定内部Flash中的代码为有效可执行代码。即只有当向量表所有数据32位累加和为零时,用

13、户的程序才能脱机运行。,有效用户代码的判别,CODE32 AREA vectors,CODE,READONLY ENTRY Reset LDR PC, ResetAddr LDR PC, UndefinedAddr . . . DCD 0 xb9205f80 LDR PC, PC, #-0 xff0 LDR PC, FIQ_Addr ResetAddr DCD ResetInit UndefinedAddr DCD Undefined . . . Nouse DCD 0 IRQ_Addr DCD 0 FIQ_Addr DCD FIQ_Handler,异常向量表,前32字节为异常入口,后32字节

14、为跳转地址,有效用户代码的判别,Reset 0 xe59ff018 ldr pc,ResetAddr 0 xe59ff018 ldr pc,UndefinedAddr . . . 0 xb9205f80 dcd 0 xb9205f80 0 xe51ffff0 ldr pc,0 x7ffff030 0 xe59ff018 ldr pc,FIQ_Addr ResetAddr 0 x8000008c dcd 0 x8000008c UndefinedAddr 0 x80000040 dcd 0 x80000040 . . . Nouse 0 x00000000 dcd 0 x00000000 IRQ

15、_Addr 0 x00000000 dcd 0 x00000000 FIQ_Addr 0 x8000004c dcd 0 x8000004c,异常向量表反汇编代码,前32字节为异常入口,后32字节为跳转地址,有效用户代码的判别,Reset 0 xe59ff018 ldr pc,ResetAddr 0 xe59ff018 ldr pc,UndefinedAddr . . . 0 xb9205f80 dcd 0 xb9205f80 0 xe51ffff0 ldr pc,0 x7ffff030 0 xe59ff018 ldr pc,FIQ_Addr ResetAddr 0 x8000008c dcd

16、 0 x8000008c UndefinedAddr 0 x80000040 dcd 0 x80000040 . . . Nouse 0 x00000000 dcd 0 x00000000 IRQ_Addr 0 x00000000 dcd 0 x00000000 FIQ_Addr 0 x8000004c dcd 0 x8000004c,异常向量表反汇编代码,指令的机器码,指令,有效用户代码的判别,Reset 0 xe59ff018 ldr pc,ResetAddr 0 xe59ff018 ldr pc,UndefinedAddr . . . 0 xb9205f80 dcd 0 xb9205f80 0 xe51ffff

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 中学教育 > 教学课件 > 高中课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号