嵌入式系统原理与应用 第4章 LPC2000系列ARM硬件结构(5.ppt
《嵌入式系统原理与应用 第4章 LPC2000系列ARM硬件结构(5.ppt》由会员分享,可在线阅读,更多相关《嵌入式系统原理与应用 第4章 LPC2000系列ARM硬件结构(5.ppt(82页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、1.LPC2000系列简介2.引脚描述3.存储器寻址4.系统控制模块5.存储器加速模块 (MAM)6.外部存储器控制器(EMC)7.引脚连接模块8.GPIOLPC2000系列ARM硬件结构9.向量中断控制器10.外部中断输入11.定时器0和定时器112.SPI接口13.I2C接口14.UART(0、1)15.A/D转换器16.看门狗17.脉宽调制器(PWM)18.实时时钟4.5 存储器加速模块(MAM)概述 LPC2000微控制器扩展了器件内部Flash总线宽度为128位,用于提高处理器的指令执行速度。这个接口通过存储器加速模块(MAM)来控制。MAM内部结构 LPC2200系列芯片把Flas
2、h存储器被分成两组,它们轮番工作,及时的为CPU提供需要的指令和数据,以防止CPU取指暂停。每组Flash存储器都有自己的预取指缓冲区、分支跟踪缓冲区和数据缓冲区。分支跟踪缓存分支跟踪缓存总线接口Flash存储器组0Flash存储器组1预取指缓存预取指缓存数据缓存区选择ARM7局部总线2128位2128位存储器地址存储器数据/指令Flash组2Flash组1CPU 执行指令取指阶段提供指令提供指令.取指阶段提供指令取指阶段取指阶段提供指令取指阶段关闭MAM指令执行情况 从Flash组1中读取指令,CPU处于等待状态。1 CPU从1组指令缓存区中获取指令并执行。2 从Flash组2中读取指令,C
3、PU处于等待状态。3 CPU从2组指令缓存区中获取指令并执行。4 所有存储器操作请求都会直接对Flash操作,由此产生了CPU停止,等待若干周期的情况。Flash组2Flash组1CPU 执行指令开启MAM指令执行情况提供指令取指阶段取指阶段提供指令取指阶段提供指令提供指令取指阶段取指阶段.两组指令缓存区中不存在指令,启动Flash存储器指令读取周期,CPU停止,等待若干周期。1 CPU执行Flash组1指令缓存区中的指令。2 CPU执行Flash组2指令缓存区中的指令,同时从Flash组1中读取指令。3 只要指令存在两个组的指令缓存区中,CPU的指令执行是连续的,由此大大提高了指令执行效率。
4、4.5 存储器加速模块(MAM)程序顺序执行 每个128位值包括了4个32位ARM指令或8个16位Thumb指令。在连续执行代码时,通常一个Flash组包含当前正在取指的指令和包含该指令的整个Flash行,而另一个Flash组则包含或正在预取指下一个连续的代码行。4.5 存储器加速模块(MAM)程序出现分支 在预取指缓存区中保存着将要执行的指令,在分支跟踪缓存区中保存着程序跳转后可执行到的指令。CPU取跳转之后的指令跳转方向从Flash读取指令将指令行放入分支跟踪缓存区和预取指缓存区指令在预取指缓存区指令在分支跟踪缓存区读取指令读取指令向后向前否否是是4.5 存储器加速模块(MAM)程序获取数
5、据 当CPU在从Flash中获取数据时,如果这些数据没有出现在MAM的数据缓冲区中,那么MAM会执行一次Flash读操作,并把一个128位的数据行存入数据缓冲区,这样就加快了按顺序访问数据的速度。数据访问使用一个单行的缓冲区,和访问代码时提供两个缓冲区不同,因为数据访问不需要预取指功能。4.5 存储器加速模块(MAM)MAM与Flash编程 Flash编程功能不受存储器加速器模块的控制,而是作为一个独立的功能进行处理。Flash存储器的布线使其每个扇区同时存在于两个组当中,这样扇区擦除操作可同时对两个组执行。4.5 存储器加速模块(MAM)MAM的操作模式 LPC2000系列芯片允许用户设置M
6、AM的加速级别,使芯片适用于某些对功耗和可预测性有要求的场合。MAM定义了三种操作模式:加速加速级别级别顺顺序序执执行行程序分支程序分支数据数据功耗功耗可可预测预测性性关关闭闭不预取代码不缓冲代码不缓冲数据低高部分使能部分使能预取代码缓冲代码缓冲但时序固定中中完全使能完全使能预取代码缓冲代码缓冲数据高低4.5 存储器加速模块(MAM)MAM的配置 在复位后,MAM默认为禁止状态。软件可以随时将存储器访问加速打开或关闭。通常我们都会把加速设置为完全使能,这可使程序以最高速度运行。而运行某些要求更精确定时的代码时,我们可以关闭或部分使能MAM,以较慢但可预测的速度运行代码。4.5 存储器加速模块(
7、MAM)寄存器描述控制寄存器MAMCR7:21:0模式控制控制寄存器MAMTIM7:32:0取指周期控制MAM控制寄存器(MAMCR):MAMCR1:0:用于MAM的模式控制,具体关系如下表。MAMCR1:0描述00禁止MAM功能01部分使能MAM功能10完全使能MAM功能11保留MAM定时寄存器(MAMTIM):MAMTIM2:0:决定使用多少个CCLK周期访问Flash存储器,这样可以调整MAM时序使其匹配处理器操作频率,具体关系如下表。MAMTIM2:0描述MAMTIM2:0描述000保留100取指周期为4个CCLK001取指周期为1个CCLK101取指周期为5个CCLK010取指周期为
8、2个CCLK110取指周期为6个CCLK011取指周期为3个CCLK111取指周期为7个CCLK 当访问周期设置为1个CCLk时,实际上关闭了MAM,但是仍可以选择MAM模式对功耗进行优化。注意:不正确的设定会导致器件的错误操作4.5 存储器加速模块(MAM)MAM使用注意事项MAM定时问题:在改变MAM定时值时必须先关闭MAM。其设置的定时值和系统时钟有如下关系,目的是为了确保Flash的访问周期不会小于50ns,否则会导致操作错误。系统时钟系统时钟(CCLK)MAM定时值定时值 20MHz120MHz 40MHz240MHz 60MHz3Flash编程问题:在编程和擦除操作过程中不允许访问
9、Flash存储器。为了防止从Flash存储器中读取无效的数据,在Flash编程或擦除操作开始后MAM将不缓冲任何数据。所以在Flash操作结束后,任何对Flash地址的读操作都将启动新的取指操作。4.5 存储器加速模块(MAM)MAM应用示例void MAMSet(uint32 Fcclk)MAMCR=0;If(Fcclk 200000000)MAMTIM=1;else if(Fcclk 40000000)MAMTIM=2;else MAMTIM=3;MAMCR=2;MAM部件Flash访问时钟的配置:关闭MAM部件;1 启动MAM部件。3 根据系统时钟配置取指周期;21.LPC2000系列简
10、介2.引脚描述3.存储器寻址4.系统控制模块5.存储器加速模块 (MAM)6.外部存储器控制器(EMC)7.引脚连接模块8.GPIOLPC2000系列ARM硬件结构9.向量中断控制器10.外部中断输入11.定时器0和定时器112.SPI接口13.I2C接口14.UART(0、1)15.A/D转换器16.看门狗17.脉宽调制器(PWM)18.实时时钟4.6 外部存储器控制器(EMC)概述 外部存储器控制器是AMBA AHB总线上的一个从模块,它为AMBA AHB系统总线和外部(片外)存储器器件提供了一个接口。该模块可同时支持多达4个单独配置的存储器组,每个存储器组都支持SRAM、ROM、Flas
11、h EPROM、Burst ROM存储器或一些外部I/O器件。存储器或外部I/O口器件存储器或外部I/O口器件存储器或外部I/O口器件存储器或外部I/O口器件ARM7TDMI-S内核EMC模块Bank0Bank1Bank2Bank3AMBA AHB 注:每个存储器组的总线宽度为8、16或32位,但是同一个存储器组不要使用两个不同宽度的器件。总线CS0/1/2/34.6 外部存储器控制器(EMC)特性支持静态存储器映射器件;4个存储器组(Bank0 Bank3)可单独配置,每个存储器组可访问16M字节空间;总线空闲周期可编程;可对静态RAM器件的读写等待时间进行编程;可编程外部数据总线宽度8位、
12、16位和32位。4.6 外部存储器控制器(EMC)引脚描述引脚名称引脚名称类型类型引脚描述引脚描述复用引脚复用引脚D31:0输入/输出外部存储器数据线P2.0P2.31A23:0输出外部存储器地址线P3.0P3.23OE输出读使能信号,低有效P1.1WE输出写使能信号,低有效P3.27CS3:0输出片选信号,低有效P1.0、P3.24P3.26BLS3:0输出字节定位选择信号,低有效P3.28P3.31 注:每个这些引脚是与P1、P2和P3口GPIO功能复用,所以在使用外部总线前首先要正确配置PINSEL2寄存器。4.6 外部存储器控制器(EMC)寄存器描述 外部存储器控制器包含4个配置寄存器
13、。每个配置寄存器控制一个外部存储器接口的总线空闲时间、读访问长度、写访问长度、存储器组是否写保护、存储器组的总线宽度的设置等。ARM7TDMI-S内核EMC模块Bank0Bank1Bank2Bank3AMBA AHB配置寄存器BCFG1BCFG0BCFG2BCFG34.6 外部存储器控制器(EMC)寄存器描述配置寄存器BCFG033:0IDCY31:30AT49:5WST110RBLE15:11WST223:1624BUSERR25WPERR26WP27BM29:28MWIDCYWST1 IDCY:总线空闲时间控制位。该位控制着一个存储器内部的读写访问之间,以及访问一个存储器组和访问另一个存储
14、器组之间EMC需要给定的“空闲”CCLK周期最小数目,以避免器件间的总线竞争。计算公式为:空闲CCLK周期数 IDCY+1;存储器组配置寄存器03(BCFG03):WST1:读写访问长度控制位。该位控制读访问的长度(对Burst ROM的连续读访问除外),以调节对外部存储器的读访问时间。读访问的长度以CCLK周期来计量。计算公式为:读操作周期长度 WST1+3;XCLKCSOEWE/BLSAddrData有效地址变化数据有效数据WST1=01个等待周期个等待周期外部存储器读访问波形(WST1=0):读操作,共需读操作,共需3个周期个周期增加1个等待周期外部存储器读访问波形(WST1=1):WS
15、T1=1,2个等待周期个等待周期有效地址变化数据有效数据读操作,共需读操作,共需4个周期个周期4.6 外部存储器控制器(EMC)寄存器描述配置寄存器BCFG033:0IDCY31:30AT49:5WST110RBLE15:11WST223:1624BUSERR25WPERR26WP27BM29:28MWRBLE存储器组配置寄存器03(BCFG03):RBLE:字节定位使能位。在LPC2200微处理器中,EMC提供了一组字节定位选择信号(BLS0BLS3)实现对16位或32位外部存储器组的字节操作。设定RBLE可实现:写访问时,RBLE位决定WE信号是否有效(低电平有效);读访问时,RBLE位决
16、定BLSn信号是否有效(低电平有效)。操作方式RBLEBLSOEWE读操作0 无效有效无效1有效有效无效写操作0有效无效无效1有效无效有效RBLE位对总线信号的影响:4.6 外部存储器控制器(EMC)LPC2200读外部总线器件RBLE=0RBLE=1LPC2200写外部总线器件RBLE=0RBLE=14.6 外部存储器控制器(EMC)寄存器描述配置寄存器BCFG033:0IDCY31:30AT49:5WST110RBLE15:11WST223:1624BUSERR25WPERR26WP27BM29:28MWWST2存储器组配置寄存器03(BCFG03):WST2:写访问长度控制位。和读操作类
17、似,该位控制写访问的长度(对Burst ROM的连续读访问除外),以调节对外部存储器的写访问时间。写访问的长度以CCLK周期来计量。计算公式为:写操作周期长度 WST2+3;对于Burst ROM,计算公式为:写操作周期长度 WST2+1;外部存储器写访问波形(WST2=0):XCLKCSOEWE/BLSAddrData有效数据有效地址WST2=01个等待周期个等待周期写操作,共需写操作,共需3个周期个周期外部存储器写访问波形(WST2=1):增加1个等待周期写操作,共需写操作,共需4个周期个周期有效数据有效地址WST2=12个等待周期个等待周期4.6 外部存储器控制器(EMC)寄存器描述配置
18、寄存器BCFG033:0IDCY31:30AT49:5WST110RBLE15:11WST223:1624BUSERR25WPERR26WP27BM29:28MWMW存储器组配置寄存器03(BCFG03):MW:该位控制相应存储器组的数据总线宽度。BCFGx29:28数据总线宽度0080116103211保留4.6 外部存储器控制器(EMC)寄存器描述MW控制域(BCFG29:28)与引脚BOOT1:0的关系:由于Bank0可用于引导程序运行,所以BCFG029:28的复位值与引脚BOOT1:0的设定有关(当BOOT1:0=11时,复位后从片内Flash引导程序运行)。Bank复位时引脚BOO
19、T1:0的状态BCFG29:28复位值存储器宽度0LL0080LH01160HL10320HH10321XX10322XX01163XX0084.6 外部存储器控制器(EMC)外部存储器接口 LPC2200的外部存储器宽度可设定为8位、16位和32位模式,每一种模式对应的硬件连接都是不同的,原因就是在总线工作模式上存在差别。4.6 外部存储器控制器(EMC)8位总线宽度 数据总线D7D0有效,字节定位信号中只有BLS0是有效的,总线的工作模式 如表。LPC2200工作模式RBLECSOEWEBLS0说明读操作(8位数据)0LLHH1LLHL1写操作(8位操作)0LHHL21LHLL空闲操作XH
20、HHH说明:1、如果此时使用BLS0作为存储芯片的写使能信号,那么在执行读取操作时,存储芯片上的读、写使能信号就会同时有效。说明:2、此时对存储芯片进行写操作时,WE信号会一直处于无效状态,因此不能用WE作为存储芯片的片选信号。4.6 外部存储器控制器(EMC)8位总线宽度连接方式需要设置RBLE=1,否则在写数据时,WE不会出现有效信号。需要设置RBLE=0,否则在读数据时,读、写使能信号都有效,就会出现总线数据错误。4.6 外部存储器控制器(EMC)16位总线宽度 数据总线D15D0有效,地址总线A0无效,字节定位信号中BLS0和BLS1有效。16位存储器数据16位存储器地址D15 D8D
21、7 D0高字节低字节0 x0000 0000高字节低字节0 x0000 0001高字节低字节0 x0000 0010高字节低字节 LPC2200操作16位存储器时,需将LPC2200的地址线A1连接到存储器地址线A0处。总线工作模式如表。16位存储器件中,高、低字节定位表示方法:LPC2200工作模式RBLECSOEWEBLS1BLS0读操作8位、16位数据0LLHHH1LLHLL写操作8位数据0LHHHLLH1LHLHLLH16位数据0LHHLL1LHLLL空闲操作XHHHHH4.6 外部存储器控制器(EMC)16位总线宽度连接方式RBLE=0。否则在对存储器进行读操作时,读、写使能信号都有
22、效。RBLE=1。否则在对存储器进行写操作时,写使能信号无效。4.6 外部存储器控制器(EMC)16位总线操作示例 LPC2000与存储芯片MT45W4MW16 的连接示意图。MT45W4MW16是一款PSRAM芯片,16位总线宽度,容量8M字节。RBLE=1MT45W4MW16部分引脚描述引脚描述A0A22地址线D0D15数据线CE片选线OE读使能线WE写使能线UB高字节使能线LB低字节使能线4.6 外部存储器控制器(EMC)向PSRAM中写入16位数据uint16 *point16;uint16 data16=0 x00;point16=(uint16*)0 x80001020;while
23、(1)*point16=data16+;向PSRAM中0 x80001020地址循环写入从0开始递增的数据。使用逻辑分析仪捕捉到前4次操作的波形。4.6 外部存储器控制器(EMC)向PSRAM中低字节地址写入8位数据uint8 *point8;uint8 data8=0 x00;point8=(uint8*)0 x80001010;while(1)*point8=data8+;向PSRAM中低字节地址0 x8 0001010循环写入从0开始递增的8位数据。WE、BLS0有效,数据线上D7D0有效,D15D8无效4.6 外部存储器控制器(EMC)向PSRAM中高字节地址写入8位数据uint8 *
24、point8;uint8 data8=0 x00;point8=(uint8*)0 x80001011;while(1)*point8=data8+;向PSRAM中高字节地址0 x8 0001011循环写入从0开始递增的8位数据。WE、BLS1有效,数据线上D15D8有效,D7D0无效4.6 外部存储器控制器(EMC)1、写入16位数据时,EMC将16位数据输出到D15:0,同时使BLS0和BLS1均有效;2、向“低字节地址”处写入8位数据时,EMC将8位数据输出到D7:0,同时使BLS0输出有效,BLS1输出无效;3、向“高字节地址”处写入8位数据时,EMC将8位数据输出到D15:8,同时使
25、BLS1输出有效,BLS0输出无效。16位写操作总结4.6 外部存储器控制器(EMC)从PSRAM中读取8位数据uint8 RcvData8;uint8 *point8;point8=(uint8*)0 x80001010;while(1)RcvData8=*point8+;RcvData8=*point8+;RcvData8=*point8+;RcvData8=*point8-;point8-;point8-;从PSRAM 0 x8000 1010 0 x8000 1013循环读取8位数据 读取16位数据时,BLS0和BLS1均有效,有效数据位于:D15:0;读取“低字节”数据时,BLS0和
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 嵌入式系统原理与应用 第4章 LPC2000系列ARM硬件结构5 嵌入式 系统 原理 应用 LPC2000 系列 ARM 硬件 结构
限制150内