欢迎来到天天文库
浏览记录
ID:27903195
大小:74.00 KB
页数:4页
时间:2018-12-06
《实例分析MCU的Data Flash访问控制.doc》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、实例分析MCU的DataFlash访问控制 笔者在家用火灾报警系统项目的开发过程中,在进行主从机通讯和从机自身任务处理时,需要经常与从机MCU进行运行数据的存取。过去传统的方法是在MCU上外挂EEPROM或将MCU内部的部分存储单元专门划分出来,以存取运行数据。这两种方法的不利之处是:外挂EEPROM需要增加MCU与EEPROM的读写接口,增加了MCU的管脚负担,减慢了数据的读写速度的同时还增加了功耗;专门为运行数据划分存储单元则减少了程序代码的存储空间,同时存储空间的读写、擦除等操作会比较麻
2、烦,另外还要非常小心,以防擦掉了有用的程序代码。 瑞萨RL78系列MCU内嵌2KB的DATAFLASH,省去了用户单独外扩数据FLASH的麻烦。RL78系列MCU还支持BGO操作,程序指令在DATAFLASH读写时仍可正常执行。其对DATAFLASH存储单元的写操作寿命高达1百万次以上,非常适合于需要频繁存取数据的应用场合。 与有些半导体厂商的控制芯片不同,瑞萨并没有直接将DATAFLASH的读写操作完全开放给用户,而是提供了一套叫做PFDL(PicoDataFlashLibrary,即微型
3、数据闪存访问库)的软件接口,来实现对闪存系统的操作。用户使用时只需要调用相应的库函数即可进行DATAFLASH的读写、校验、擦除等操作,而不必关心底层驱动函数的具体实现方式。这在很大程度上方便了用户程序的设计,缩短了开发周期。 1)DATAFLASH结构和PFDL RL78的存储结如图1所示。其中DataFlashmemory物理地址为F1000H-F17FFH,被分成了两个BLOCK区,每个BLOCK区1KB,共2KB。 图1:瑞萨RL78系列MCU的存储结构 PFDL由表1所
4、示的库文件组成。 表1:PFDL库文件 2)DataFlash的存储结构和使用方法 首先有必要将RL78系列MCU关于DATAFLASH操作的几个问题进行说明。RL78系列DATAFLASH的擦除操作只能以BLOCK为单位,不支持单字或单字节擦除。所以当有一项长度为若干字节的数据要写入DATAFLASH时,不可能将数据每次都写入固定的物理地址所对应的存储单元中,而是必须在新的空存储单元中写入。这就意味着用户在设计DATAFLASH的存储结构时,必须有寻址功能。 RL78系列DAT
5、AFLASH同一时刻只能有1个BLOCK处于激活状态,是有效的,此时另一个BLOCK不可访问,是无效的。习惯上,我们常将DATAFLASH的一个BLOCK称为一页,当一个有效页被写满数据时,要想继续写入数据的话,则只能在下一页中写入,同时还需要将前一页中有用的其他数据项拷贝到下一页中,并将下一页标记为当前的有效页,将上一页标记为无效页,即必须有DATAFLASH的页标记和导页机制。 为此,笔者将整个DATAFLASH分成两页(每个BLOCK自然形成一页,两页交替使用),每页的起始地址作为页标记
6、单元,见表2。每次进行DATAFLASH操作前应先读取该标记单元来确认当前有效页。 表2:页标记
此文档下载收益归作者所有