STM8S系列单片机原理与应用 教学课件 ppt 作者 潘永雄 第1-5章 第3章

上传人:E**** 文档编号:89362350 上传时间:2019-05-24 格式:PPT 页数:103 大小:610KB
返回 下载 相关 举报
STM8S系列单片机原理与应用 教学课件 ppt 作者 潘永雄 第1-5章 第3章_第1页
第1页 / 共103页
STM8S系列单片机原理与应用 教学课件 ppt 作者 潘永雄 第1-5章 第3章_第2页
第2页 / 共103页
STM8S系列单片机原理与应用 教学课件 ppt 作者 潘永雄 第1-5章 第3章_第3页
第3页 / 共103页
STM8S系列单片机原理与应用 教学课件 ppt 作者 潘永雄 第1-5章 第3章_第4页
第4页 / 共103页
STM8S系列单片机原理与应用 教学课件 ppt 作者 潘永雄 第1-5章 第3章_第5页
第5页 / 共103页
点击查看更多>>
资源描述

《STM8S系列单片机原理与应用 教学课件 ppt 作者 潘永雄 第1-5章 第3章》由会员分享,可在线阅读,更多相关《STM8S系列单片机原理与应用 教学课件 ppt 作者 潘永雄 第1-5章 第3章(103页珍藏版)》请在金锄头文库上搜索。

1、第3章 存储器系统及访问,3.1 存储器结构 3.2 存储器读写保护与控制寄存器 3.3 Flash ROM存储器IAP编程,3.1 存储器结构,在STM8S系统内,RAM存储区、EEPROM存储区、引导ROM存储区、Flash ROM存储区,以及与外设有关的寄存器(包括外设控制寄存器、状态寄存器、数据寄存器)均统一安排在16 MB线性地址空间内,即内部地址总线为24位,如图3-1所示。这样,无论是RAM、EEPROM、Flash ROM,还是外设寄存器,其读、写指令的格式与操作数的寻址方式等完全相同。,图3-1 STM8S存储器组织,在图3-1中,16 MB线性地址空间以段(Section)

2、形式组织,每段大小为64 KB。内部地址总线b23b16(最高8位)视为段号;而b15b0被视为段内存储单元的字节编号,即地址形式为00XXXXHFFXXXXH。为减小指令码长度,RAM、EEPROM存储区安排在00段内,这样堆栈指针SP长度就可以缩减为16位。位于00段内的各存储单元也能用16位地址形式访问。另外,16 MB地址空间也可以按页(Page)形式组织,每页大小为256 B。这时,内部地址总线b23b8(高16位)被视为页号;而b7b0被视为页内存储单元的字节编号,即地址形式为0000XXHFFFFXXH。,这样位于0000页内的存储单元,即RAM空间内的前256字节,可用8位地址

3、形式访问。RAM地址空间为000000H003FFFH,目前容量在16 KB之间(000000H0017FFH),未来最大可以扩充到16 KB,即001800H003FFFH的地址空间目前保留。EEPROM地址空间为004000H0047FFH,目前容量在640 B2 KB之间。,与硬件配置有关的选项字节(Option Bytes)用Flash ROM作为存储介质,地址空间在004800H00487FH之间,共计128字节。内嵌外设(包括通用I/O口、定时器、串行通信口以及AD转换器等)的控制寄存器、状态寄存器以及数据寄存器的映像地址,位于005000H0057FFH之间,可用16位地址形式访

4、问。引导ROM存储区(Boot ROM)位于006000H0067FFH,大小为2 KB,主要存放硬件复位引导程序,即006000H单元是STM8内核CPU复位入口地址。,程序存储器(Flash ROM)地址从008000H单元开始。这意味着,对于容量在32 KB以内的芯片,Flash ROM地址空间为008000H00FFFFH,即全部位于00段内,可使用16位地址形式访问;而对于32 KB以上Flash ROM容量的芯片,须使用24位地址形式访问。 在STM8系统中,存储单元内字、双字(由四个字节组成)等的存放规则是低字节存放在高地址中,高字节存放在低地址中,即采用“大端”方式。,字存储单

5、元起始于字的低位地址,对应于字存储单元的高位字节。字可以按“对齐”方式存放,字低位地址起始于0、2、4、6等偶地址字节;也可以按“非对齐”方式存放,字低位地址起始于1、3、5、7等奇地址字节。例如: LDW X, 0100H ; 将0100H单元内容送XH寄存器,将0101H单元内容送XL寄存器对齐 LDW X, 0101H ; 将0101H单元内容送XH寄存器,将0102H单元内容送XL寄存器非对齐 可见,字低位地址字节的a7a0对应于字的高8位b15b8,字高位地址字节的a15a8对应于字的低8位b7b0。,3.1.1 随机读写RAM存储区 STM8S内部RAM容量在640 B6 KB之间

6、,起始地址为0X00000H,终了地址与芯片内RAM存储器容量有关,可作为用户RAM存储区及堆栈区。RAM存储区内各单元地位相同,即读写指令、寻址方式相同,只是前256字节(00HFFH)支持8位地址形式,指令码短一些。例如:,LD $10, A ; 累加器A送10H(8位地址)单元,指令码为B710(两字节) LD $100, A ; 累加器A送0100H(16位地址)单元,指令码为C70100(三字节) STM8S堆栈区位于RAM存储区高端,特征是堆栈下向生长,数据压入堆后,堆栈指针SP减小;且为空栈结构,数据先入堆,后修改堆栈指针SP。例如执行“PUSH #$33”指令时,(SP)33H

7、,然后SPSP - 1。复位后,堆栈指针 SP内容与芯片内部RAM容量有关:含有6 KB RAM的STM8S芯片,复位后SP为017FFH;含有2 KB RAM的STM8S芯片,复位后SP为007FFH;含有1 KB RAM的STM8S芯片,复位后SP为03FFH,即堆栈被安排在RAM存储区的上端。,3.1.2 Flash ROM存储区 STM8S系列Flash ROM存储器数据总线为32位,即以4个字节作为一个基本的存储单元字(字起始地址最低两位为00),一次可同时访问4个字节,但也可以只访问其中的一个字节。Flash ROM存储区起始地址为008000H,终了地址与Flash ROM存储器

8、容量有关。其中中断向量表占用128个字节,每个中断向量占用4个字节,用户监控程序可从008080H单元开始存放。,为保护用户关键程序代码,以及中断向量不因意外被误写,STM8S引入了用户启动代码区UBC(User Boot Code)保护机制。因此,Flash ROM存储区可分为UBC(具有二级保护功能)和主程序区(只有一级保护功能)。为调节这两个存储区的相对大小,在Flash ROM中引入了“Page”(页)的概念,将整个Flash ROM存储区视为由若干页组成,页的大小与存储器容量有关。为方便快速擦除,Flash ROM存储区被分成若干块(Block),块的大小与片内Flash ROM存储

9、器容量有关,如表3-1所示。,表3-1 Flash ROM存储器页、块大小与容量的关系,1. UBC存储区 UBC存储区起始于008000H单元,它是有还是没有以及其值的大小(即UBC存储区包含的Page数目)由选项字节OPT1定义,如表3-2所示。,表3-2 UBC存储区大小与OPT1选项字节内容的关系,当OPT17:0取00H、FFH以外的值时,UBC存储区存在,大小与芯片Flash ROM存储器容量有关。例如,对于STM8S207R8芯片来说,当希望把8000HDFFFH之间存储区作为UBC存储区时(共计24 KB,即48页),OPT17:0内容应为46,即2EH。 鉴于UBC存储区具有

10、二级保护功能,可将中断向量表、无须修改的程序代码及数表划入UBC区,而将需要通过IAP编程方式改写的代码、数据放在主存储区内。,2. 主存储区 UBC存储区外的Flash ROM存储区称为主程序区。如果没有定义UBC,则主程序区起始地址为008080H单元,即中断入口地址表外的所有Flash ROM单元均属于主程序区。如果定义了UBC存储区,则UBC存储区之上的所有Flash ROM单元属于主程序区。,3.1.3 数据EEPROM 存储区 数据EEPROM存储区起始于004000H单元,大小在640 B2 KB之间,组织方式与Flash ROM相同,即EEPROM中页、块的大小与Flash R

11、OM相同。它主要用于存放需要经常改写的非易失性数据,可重复擦写30万次以上,远高于Flash ROM存储器(1万次)。,3.1.4 硬件配置选项区 硬件配置选项字节位于004800H00487FH,共计128 B。存储介质也是Flash ROM存储器,即具有非易失特性。它主要用于存放系统硬件配置信息,包括存储器读保护字节ROP以及与硬件配置有关的8个选项寄存器及其反码寄存器,如表3-3所示。,表3-3 硬件配置选项字节,在表3-3中: (1) OPT0为ROP(Read-Out Protection)。当该选项字节为0XAAH时,EEPROM、Flash ROM存储器中的信息就处于读保护状态。

12、 (2) OPT1定义了UBC代码区的有无与大小。 (3) OPTBL选项字节定义了复位后启动方式,是执行位于0X6000H开始的引导程序,还是执行复位向量定义的指令码。,3.1.5 通用I/O端口及外设寄存器区 STM8S通用I/O端口与外设寄存器(包括外设控制寄存器、状态寄存器以及数据寄存器)的地址均位于005000H0057FFH之间。,3.1.6 唯一ID号存储区 STM8S系列MCU芯片提供了可按字节方式读取,长度为96 bit(12 Bytes)的唯一器件的ID号。该ID号可作为设备识别码,为程序加密、升级安装提供了身份验证。不同系列STM8S芯片ID号存放位置略有差异,其中STM

13、8S105、STM8S207、STM8S208系列芯片的ID号位于0048CDH0048D8H之间,而STM8S103系列芯片的ID号位于004865H004870H之间。,3.2 存储器读写保护与控制寄存器,3.2.1 存储器读保护(ROP)选择 在ICP编程状态下,如果选项字节OPT0(ROP)被编程为AAH,则EEPROM(DATA区)、Flash ROM(包括UBC和主程序区)均处于读保护状态。用户可在ICP编程状态下,重新指定选项字节OPT0的内容(置为00H),以解除存储器的读保护状态。不过,一旦取消存储器读保护状态,芯片将自动擦除EEPROM(DATA区)、Flash ROM中的

14、全部信息。,3.2.2 存储器写保护 芯片复位以后,Flash区、DATA区、选项字节就自动处于写保护状态,避免意外写入造成数据丢失。当需要对这些区域进行编程时,可按下述方式解除其写保护状态。 通过IAP方式对UBC存储区以外的主程序区进行编程前,必须向FLASH_PUKR寄存器连续写入两个MASS密钥值(56H、AEH),解除主程序存储区的写保护状态。如果输入的MASS密钥值不正确,则复位前主程序区就一直处于写保护状态,再向FLASH_PUKR寄存器写入的操作无效,即STM8S主存储器写保护采用“一错即锁”方式,以保证数据的可靠性。,通过IAP方式对EEPROM数据区写入前,必须向FLASH

15、_DUKR寄存器连续写入两个MASS密钥值(AEH、56H),解除EEPROM数据区的写保护状态。 (AEH、56H),解除选项字节的写保护状态。在Flash ROM状态寄存器FLASH_CR2的OPT为1、其反码FLASH_NCR2的NOPT为0的情况下,即可对选项字节编程。 值得注意的是,存储器读保护与写保护特性相互独立,即读保护有效与写保护是否有效无关,反之亦然。,3.2.3 存储器控制寄存器 Flash存储器的特性、编程操作由下列寄存器控制。 1. 控制寄存器1(Flash_CR1) Flash_CR1寄存器主要控制Flash存储器在不同状态的 供电。其表示及各位的含义如下: 寄存器名

16、:FLASH_CR1 偏移地址:0X00H; 复位初值:0X00H,HALT:在HALT状态下,Flash ROM电源状态选择。该位由软件置1或清0,若其为0,当MCU处于停机状态时,Flash处于掉电状态(功耗小一些);若其为1,MCU处于停机状态下,Flash处于加电状态(功耗大一些)。,IE:Flash中断允许。该位由软件置1或清0,若其为0,禁止MCU响应Flash编程结束EOP中断、向保护页写操作错误WR_PG_DIS中断请求(可采用查询方式);若其为1,允许MCU响应这两个中断请求。 FIX:编程周期选择。若其为0,由MCU自动确定编程时间:当待写入目标单元空白时,自动跳过擦除操作过程,编程时间只有正常时间的1/2;若其为1,无论目标单元是否空白,均执行擦除操作,编程时间长。这一项最好设为0,即由MCU自动选择编程时间。,2. Flash控制寄存器2(Flash_CR2与Flash_NCR2) Flash_CR2寄存器主要涉及Flash存储器编程方式的选择,该寄存器具有反码寄存器Flash_NC

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

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

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