第13章 Flash存储器
- 格式:doc
- 大小:2.49 MB
- 文档页数:25
摘要非易失性存储介质Flash与磁盘相比,具有读写速度快、消耗电量低等诸多优点。
近年来,由于Flash芯片的容量增长迅速,同时价格也急剧下降,使其应用范围进一步扩展,甚至很多人预言Flash必将取代磁盘成为新一代的联机存储介质来存储TB级的数据。
本文针对Flash固有的硬件特征,提出了一种基于Bloom Filter的数据库索引技术BFI,用于支持Flash上大规模数据记录的主码关键字快速查找。
BFI利用Bloom Filter体积小的优点,使索引结构的维护代价很低。
为了进一步提高BFI的查找效率,我们提出了一种叫做P-BFI的索引方案。
通过将Bloom Filter分割成若干划分块然后分别存储在不同的物理页上,来避免扫描整个Bloom Filter存放空间,从而降低查找代价。
尽管P-BFI对BFI 作了很大改进,但我们发现在此基础上还可以继续优化,因此又提出了HP-BFI 方法。
在构造Bloom Filter之前使用一个哈希函数对关键字进行预处理,从而把需要改变的比特位存放于同一个划分块中,使得查找效率得到成倍的提高。
最后,本文为目前存在的几种典型的Flash上数据库索引技术和HP-BFI方法分别建立了代价评估模型,对它们进行了定量的分析和比较。
结果表明,HP-BFI方法在最小化关键字查找代价的同时,还在Flash写入次数、空间占用和内存消耗等方面保持着较低的水平,这一点是其他任何已有的索引技术都无法比拟的。
关键词:Flash存储器;数据库索引;Bloom FilterAbstractCompared to magnetic disk, Flash Memory has a lot of advantages, such as faster read and write, less energy consumption. Recently, the capacity of Flash Memory has increased dramatically, while its price becomes lower and lower, so it has been more widely used. Many people believe that, Flash Memory will be the main storage device of mass data (e.g. terabytes), instead of the traditional mechanical disk. In this paper, we propose a Flash-based database index technique called BFI, which supports quick lookup on the primary keys of large datasets. BFI makes the maintenance cost of the index structure very low, by taking advantage of the small size of Bloom Filter. To make the lookup performance even better, we present a new index method P-BFI. It splits the Bloom Filters into many partitions with each partition stored in a single physical page, so that only several partitions need to be read for a lookup operation. Compared to BFI, P-BFI has improved the lookup performance a lot, but it still can be optimized, so we present a more efficient solution HP-BFI. It used a hash function to preprocess the keywords before filling the bloom filter, so that all the produced 1s are kept in the same partition. As a result, only one partition needs to be read when doing a lookup. Finally, we build cost models for some typical existing Flash-based index methods and our HP-BFI method. After comparing the existing methods with HP-BFI, we come to the conclusion that, while getting the highest lookup performance, HP-BFI keeps the write cost, RAM consumption and Flash occupancy rather low, which makes it outperform all the other methods.Keywords: Flash Memory; Database Index; Bloom FilterFlash存储器上的数据库索引技术研究目录第1章引言 (1)1.1研究背景 (1)1.2 Flash硬件特征介绍 (3)1.3 本文的研究目标和主要贡献 (5)第2章相关工作 (7)2.1 Flash转换层FTL介绍 (8)2.2 传统数据库索引技术在Flash上的应用 (9)2.2.1 基于FTL的传统B+树索引 (9)2.2.2 哈希索引直接应用于Flash (10)2.3 针对Flash的B+树改进算法 (11)2.3.1 改进方案一:BFTL (11)2.3.2 改进方案二:JFFS3 (12)2.4 Flash上的哈希索引 (13)第3章基于B LOOM F ILTER的F LASH索引技术:BFI (15)3.1 BFI所采用的存储模式 (15)3.2 Bloom Filter结构介绍 (17)3.2.1 Bloom Filter基本原理 (17)3.2.2 一个简单的应用实例 (18)3.3.3 关于纳伪率 (18)3.3 BFI的构造与使用 (19)3.3.1 BFI的构造过程 (19)3.3.2 使用BFI查找关键字 (21)3.4 BFI的优点与不足 (21)第4章动态分割B LOOM F ILTER来改进BFI:P-BFI (23)4.1 P-BFI基本思想 (23)4.2 动态分割Bloom Filter的算法描述 (24)Flash存储器上的数据库索引技术研究4.2.1 P-BFI的动态构造过程 (24)4.2.2 使用P-BFI进行关键字查找 (26)4.3 P-BFI的优点与改进的可能性 (28)第5章结合哈希方法来改进P-BFI:HP-BFI (30)5.1 HP-BFI设计思路 (30)5.1.1 构造Bloom Filter之前的哈希预处理 (30)5.1.2 使用HP-BFI进行关键字查找 (31)5.2 HP-BFI的优点和局限性 (32)第6章性能分析与算法调优 (34)6.1 代价评估模型 (34)6.1.1 基于FTL的传统B+树索引 (36)6.1.2 从不进行节点重组的BFTL(BFTL1) (37)6.1.3 根据节点转换表中节点链长度周期性重组的BFTL(BFTL2) (38)6.1.4 哈希方法HIU(Hashing Index Units) (39)6.1.5 HP-BFI方法 (39)6.2 评估结果的比较和分析 (40)6.2.1 读优化方法FTL&B+tree、BFTL2与HP-BFI的比较 (40)6.2.2 写优化方法BFTL1、HIU与HP-BFI的比较 (43)6.3 HP-BFI的性能调优 (44)6.3.1 参数s对HP-BFI的影响 (45)6.3.2 参数k对HP-BFI的影响 (47)第7章总结与展望 (49)7.1 结论 (49)7.2 未来工作 (50)参考文献 (51)致谢 (54)附录 (55)Flash存储器上的数据库索引技术研究图表索引图表 1 Flash组织结构图 (4)图表 2 向B+树中插入索引项 (10)图表 3 BFTL的节点转换表 (12)图表 4 JFFS3的日志缓冲策略 (13)图表 5 BFI采用的存储模式 (16)图表 6 使用2个哈希函数的Bloom Filter示例 (18)图表 7 Bloom Filter的纳伪率 (19)图表 8 BFI的构造和使用过程 (20)图表 9 使用BFI的记录插入算法 (20)图表 10 使用BFI的关键字查找算法 (21)图表 11 动态分割Bloom Filter:第1步 (24)图表 12 动态分割Bloom Filter:第2步 (25)图表 13 动态分割Bloom Filter:m个划分块 (26)图表 14 动态分割Bloom Filter构建SIA算法 (27)图表 15 使用P-BFI的关键字查找算法 (28)图表 16 构造Bloom Filter之前进行哈希预处理 (31)图表 17 HP-BFI中构造Bloom Filter的算法 (31)图表 18 使用HP-BFI的关键字查找算法 (32)图表 19 读优化方法的参数设定 (40)图表 20 读优化方法各项指标的评估结果 (41)图表 21 插入时读取的Flash页数比较 (41)图表 22 插入时写入Flash的页数比较 (42)图表 23 索引结构占据的Flash空间比较 (42)图表 24 写优化方法的参数设定 (43)Flash存储器上的数据库索引技术研究图表 25 写优化方法各项指标的评估结果 (43)图表 26 HP-BFI主要参数设定(除s外) (45)图表 27 s值对HP-BFI查找效率的影响 (45)图表 28 s值对HP-BFI查找效率的影响(折线图) (45)图表 29 s值对写操作次数和索引规模的影响 (46)图表 30 s值对写操作次数和索引规模的影响(折线图) (46)图表 31 HP-BFI主要参数设定(除k外) (47)图表 32 k值对于HP-BFI查找代价的影响 (47)图表 33 k值对于HP-BFI查找代价的影响(折线图) (48)Flash存储器上的数据库索引技术研究第1章引言Flash是继纸带、磁盘、光盘等传统存储介质之后出现的一种新型非易失性存储介质。
《半导体集成电路》考试题目及参考答案(DOC)1.双极性集成电路中最常用的电阻器和MOS集成电路中常用的电阻都有哪些?2.集成电路中常用的电容有哪些。
3. 为什么基区薄层电阻需要修正。
4. 为什么新的工艺中要用铜布线取代铝布线。
5. 运用基区扩散电阻,设计一个方块电阻200欧,阻值为1K的电阻,已知耗散功率为20W/c㎡,该电阻上的压降为5V,设计此电阻。
第4章TTL电路1.名词解释电压传输特性开门/关门电平逻辑摆幅过渡区宽度输入短路电流输入漏电流静态功耗瞬态延迟时间瞬态存储时间瞬态上升时间瞬态下降时间瞬时导通时间2. 分析四管标准TTL与非门(稳态时)各管的工作状态?3. 在四管标准与非门中,那个管子会对瞬态特性影响最大,并分析原因以及带来那些困难。
4. 两管与非门有哪些缺点,四管及五管与非门的结构相对于两管与非门在那些地方做了改善,并分析改善部分是如何工作的。
四管和五管与非门对静态和动态有那些方面的改进。
5. 相对于五管与非门六管与非门的结构在那些部分作了改善,分析改进部分是如何工作的。
6. 画出四管和六管单元与非门传输特性曲线。
并说明为什么有源泄放回路改善了传输特性的矩形性。
7. 四管与非门中,如果高电平过低,低电平过高,分析其原因,如与改善方法,请说出你的想法。
8. 为什么TTL与非门不能直接并联?9. OC门在结构上作了什么改进,它为什么不会出现TTL与非门并联的问题。
第5章MOS反相器1. 请给出NMOS晶体管的阈值电压公式,并解释各项的物理含义及其对阈值大小的影响(即各项在不同情况下是提高阈值还是降低阈值)。
2. 什么是器件的亚阈值特性,对器件有什么影响?3. MOS晶体管的短沟道效应是指什么,其对晶体管有什么影响?4. 请以PMOS晶体管为例解释什么是衬偏效应,并解释其对PMOS晶体管阈值电压和漏源电流的影响。
5. 什么是沟道长度调制效应,对器件有什么影响?6. 为什么MOS晶体管会存在饱和区和非饱和区之分(不考虑沟道调制效应)?7.请画出晶体管的D DS特性曲线,指出饱和区和I V非饱和区的工作条件及各自的电流方程(忽略沟道长度调制效应和短沟道效应)。
嵌入式写flash的过程嵌入式系统是一种特殊的计算机系统,它通常用于控制、监测或执行特定任务。
在嵌入式系统中,Flash存储器被广泛应用于存储程序代码、数据和配置信息。
下面将介绍嵌入式系统中如何使用Flash 存储器的过程。
Flash存储器是一种非易失性存储器,它可以在断电后保持数据的完整性。
在嵌入式系统中,Flash存储器通常用于存储操作系统、应用程序和固件等软件。
下面是使用Flash存储器的一般过程:1. 首先,开发人员需要了解嵌入式系统的需求和功能。
根据系统的需求,确定所需的Flash存储器容量和接口类型。
接口类型包括SPI、NAND、NOR等不同的接口标准。
2. 接下来,开发人员需要选择合适的Flash存储器芯片。
根据系统需求和成本考虑,选择容量适当且性能稳定的Flash存储器芯片。
3. 在确定了Flash存储器芯片后,开发人员需要进行硬件设计。
这包括将Flash芯片与嵌入式系统的主控芯片相连接,并根据接口标准进行电气连接和信号交互。
4. 在硬件设计完成后,开发人员需要编写软件驱动程序。
这些驱动程序通常是嵌入式操作系统的一部分,用于控制Flash存储器的读写操作。
驱动程序需要根据Flash芯片的接口标准和通信协议进行开发。
5. 在软件驱动程序开发完成后,开发人员可以开始编写应用程序。
应用程序通常是嵌入式系统的核心功能模块,它将使用Flash存储器来存储和获取数据。
开发人员需要使用驱动程序提供的接口函数来读写Flash存储器中的数据。
6. 在应用程序开发完成后,开发人员需要进行测试和调试。
他们可以使用仿真器或调试器来验证Flash存储器的读写操作是否正常,并确保数据的正确性和完整性。
7. 最后,开发人员需要对系统进行整体验证和性能测试。
这包括测试系统的稳定性、响应时间和功耗等指标,以确保系统在各种工作条件下都能正常运行。
嵌入式系统中使用Flash存储器的过程涉及硬件设计、软件驱动程序开发、应用程序编写以及测试和验证等多个环节。
(C语言版)绝密版C51单片机复习题及答案一填空题1、计算机中最常用的字符信息编码是(ASCII码)。
2、MCS-51系列单片机为(8)位单片机。
3、若不使用MCS-51片内存储器引脚(/EA)必须接(地)。
4、8031内部有(128)个RAM;8051内部有(4K ROM)和(128个RAM)。
5、堆栈的地址由(SP)内容确定,其操作规律是“(先)进(后)出”。
6、在单片机扩展时,(P0)口和(P2)口为地址线,(P0)口又分时作为数据线。
7、在MCS-51单片机中,如采用6MHZ晶振,一个机器周期为(2us)。
8、当80C51的RST引脚上保持(2)个机器周期以上的低电平时,80C51即发生复位。
9、当P1口做输入口输入数据时,必须先向该端口的锁存器写入(1),否则输入数据可能出错。
10、若某存储芯片地址线为12根,那么它的存储容量为(4K B)。
11、程序状态寄存器PSW的作用是用来保存程序运行过程中的各种状态信息。
其中CY为(进位)标志,用于无符号数加(减)运算,当进行(位)操作时作为位累加器。
OV为(溢出)标志,用于有符号数的加(减)运算。
12、消除键盘抖动常用两种方法,一是采用(硬件去抖电路),用基本RS触发器构成;二是采用(软件去抖程序),既测试有键输入时需延时(约大于10毫秒)后再测试是否有键输入,此方法可判断是否有键抖动。
13、若MCS-51单片机采用12MHz的晶振频率,它的机器周期为(1us),ALE引脚输出正脉冲频率为(2MHZ)。
14、8051有两个16位可编程定时/计数器,T0和T1。
它们的功能可由两个控制寄存器(TCON)、(TMOD)的内容决定,且定时的时间或计数的次数与(TH)、(TL)两个寄存器的初值有关。
15、串行口的控制寄存器SCON中,REN的作用是(允许串行接收位)。
16、单片机内外中断源按优先级别分为高级中断和低级中断,级别的高低是由(中断优先级寄存器,)寄存器的置位状态决定的。
stm32f103中文手册第一章综述1.1 STM32F103系列微控制器概述1.2 STM32F103系列微控制器特性1.3 STM32F103系列微控制器产品线第二章存储器2.1 存储器映射2.2 Flash存储器2.3 系统存储器2.4 备份寄存器2.5 静态随机存取存储器(SRAM)第三章外设3.1 复位和时钟控制(RCC)3.2 独立看门狗(IWDG)3.3 窗口看门狗(WWDG)3.4 嵌套向量中断控制器(NVIC)3.5 系统定时器(SysTick)...第一章综述1.1 STM32F103系列微控制器概述STM32F103系列微控制器是基于ARM® Cortex®-M3内核的高性能、低功耗、增强型单片机。
它们提供了从64KB到512KB Flash存储器和从20KB到64KBSRAM存储器的不同容量选择。
它们还集成了丰富的外设资源,包括USB 、CAN、11个定时器、3个ADC、13个通讯接口等。
STM32F103系列微控制器采用了先进的90nmNVM工艺技术,具有出色的电源效率。
它们支持多种低功耗模式,包括停机模式、待机模式、睡眠模式和停止模式。
它们还支持动态电压调节和动态频率调节,以进一步降低功耗。
STM32F103系列微控制器具有高度灵活性和可扩展性。
它们支持多种封装类型,从36引脚到144引脚不等。
它们还支持多种内部和外部时钟源,包括高速内部振荡器(HSI)、低速内部振荡器(LSI)、高速外部振荡器(HSE)、低速外部振荡器(LSE)和相位锁定环(PLL)。
它们还支持多种外部存储器接口,包括NOR Flash、SRAM、NAND Flash、SDIO等。
1.2 STM32F103系列微控制器特性---特性 ---描述 -------:-----:---------内核 ---ARM® 32位 Cortex®-M3CPU,最高72MHz运行频率,单周期乘法和硬件除法,嵌套向量中断控制器(NVIC)和系统定时器(SysTick) -------存储器 ---64KB到512KB Flash存储器,20KB到64KBSRAM存储器,512字节备份寄存器,可选的2KB系统存储器 -------电源管理 ---1.65V到3.6V电源电压范围,7uA待机模式,36uA停机模式,动态电压调节和动态频率调节 -------外设 ---USB 2.0全速设备接口,CAN2.0B接口,11个通用定时器,3个高级定时器,3个12位ADC,2个DAC,13个通讯接口(3个USART、4个UART、2个I2C、3个SPI、1个I2S),CR C计算单元,96位唯一ID -------调试和编程 ---SWD和JTAG接口,支持串行线调试(SWD)和串行线跟踪(SWO),支持Flash编程和调试 -------封装 ---36引脚到144引脚不同封装类型 ----1.3 STM32F103系列微控制器产品线STM32F103x8/xB:中等容量增强型单片机,具有64KB或128KB Flash存储器和20KBSRAM存储器。
第13章Flash存储器Flash存储器具有电可擦除、无需后备电源来保护数据、可在线编程、存储密度高、低功耗、成本较低等特点,这使得Flash存储器在嵌入式系统中的使用迅速增长。
本章主要以HC08系列中的GP32为例阐述Flash存储器的在线编程方法,也简要阐述了HCS08系列中GB60的在线编程方法。
本章首先概述了Flash存储器的基本特点,并介绍其编程模式,随后给出M68HC908GP32的Flash存储器编程的基本操作及汇编语言和C语言的在线编程实例。
最后讨论MC9S08GB60的Flash存储器编程方法。
Flash存储器编程方法有写入器模式与在线模式两种,本章讨论的是在线模式。
有的芯片内部ROM中,包含了Flash擦除与写入子程序,在本章的进一步讨论中给出了调用方法,使Flash编程相对方便。
有的芯片内部ROM中没有固化Flash擦除与写入子程序,只能自己编写Flash擦除与写入子程序。
而编写Flash擦除与写入子程序需要较严格的规范,所以这是比较细致的工作,读者应仔细分析本章的例程,并参照例程编程。
掌握了GP32芯片的Flash编程方法后,可以把此方法应用于整个系列的Flash编程。
Flash在线编程对初学者有一定难度,希望通过实例分析学习。
本章给出Flash在线编程的C语言实例,对于训练C语言与汇编联合编程技巧很有帮助。
13.1 Flash存储器概述与编程模式理想的存储器应该具备存取速度快、不易失、存储密度高(单位体积存储容量大)、价格低等特点,但一般的存储器只具有这些特点中的一个或几个。
近几年Flash存储器(有的译为:闪速存储器或快擦型存储器)技术趋于成熟,它结合了OTP存储器的成本优势和EEPROM的可再编程性能,是目前比较理想的存储器。
Flash存储器具有电可擦除、无需后备电源来保护数据、可在线编程、存储密度高、低功耗、成本较低等特点。
这些特点使得Flash存储器在嵌入式系统中获得广泛使用。
从软件角度来看,Flash和EEPROM技术十分相似,主要的差别是Flash存储器一次只能擦除一个扇区,而不是EEPROM存储器的1个字节1个字节地擦除,典型的扇区大小是128B~16KB。
尽管如此,因为Flash存储器的总体性价比,它还是比EEPROM更加流行,并且迅速取代了很多ROM器件。
嵌入式系统中使用Flash存储器有两种形式:一种是嵌入式处理器上集成了Flash,另一种是片外扩展Flash。
目前,许多MCU内部都集成了Flash存储器。
Freescale公司在Flash存储器技术相当成熟的时候,在HC08系列单片机内集成了Flash存储器。
该系列内部的Flash存储器不但可用编程器对其编程,而且可以由内部程序在线写入(编程),给嵌入式系统设计与编程提供了方便。
存储器是MCU的重要组成部分,存储器技术的发展对MCU的发展起到了极大的推动作用。
对于Freescale公司新推出的HCS08系列MCU采用第三代0.25微米的闪存技术,其擦写速度更快,性能更稳定。
本节首先简要概述Flash存储器普遍具有的基本特点、Flash存储器的两种编程模式,然后介绍Freescale的HC08系列单片机内的Flash存储器的主要特点,最后对M68HC908GP32单片机的Flash存储器在两种编程模式下的基本情况作简要介绍。
13.1.1 Flash存储器的基本特点与编程模式(1) Flash存储器的基本特点Flash存储器是一种高密度、真正不挥发的高性能读写存储器,兼有功耗低、可靠性高等优点。
与传统的固态存储器相比,Flash存储器的主要特点如下。
①固有不挥发性:这一特点与磁存储器相似,Flash存储器不需要后备电源来保持数据。
所以,它具有磁存储器无需电能保持数据的优点。
②易更新性:Flash存储器具有电可擦除特点。
相对于EPROM(电可编程只读存储器)的紫外线擦除工艺,Flash存储器的电擦除功能为开发者节省了时间,也为最终用户更新存储器内容提供了可能。
③成本低、密度高、可靠性好:与EEPROM(电可擦除可编程的只读存储器)相比较,Flash存储器的成本更低、密度更高、可靠性更好。
(2) Flash存储器的两种编程模式从Flash存储器的基本特点可以看出,在单片机中,可以利用Flash存储器固化程序,一般情况下通过编程器来完成,Flash存储器工作于这种情况,叫监控模式(Monitor Mode)或写入器模式,这与一般的EPROM、OTP、EEPROM装入程序的含义相似。
另一方面,由于Flash存储器具有电可擦除功能,因此,在程序运行过程中,有可能对Flash 存储区的数据或程序进行更新,Flash存储器工作于这种情况,叫用户模式(User Mode)或在线编程模式。
但是,并不是所有类型的单片机内Flash存储器都具有在线编程功能,目前,有的公司出品的单片机,还不能够支持Flash存储器在线编程模式。
Freescale的HC908系列单片机的片内Flash支持这两种编程模式。
一般来说,两种模式对Flash存储器的编程操作的程序是一致的,差别在于调用这些程序的方式和环境。
13.1.2 HC08系列单片机Flash存储器的特点与编程模式(1) MC908系列单片机Flash存储器的特点早期的片内Flash技术与ROM或EPROM相比较,其可靠性和稳定性存在一些不足。
Freescale公司在Flash存储器技术相当成熟的时候才推出片内带有Flash存储器的8位单片机,在应用方便性和可靠性等方面有自己的特点,主要有:第一,编程速度快及可靠性高。
Freescale HC08系列单片机的片内Flash的整体擦除时间可以控制在5ms以内,对单字节的编程时间也在40ns以内。
片内Flash的存储数据可以保持10年以上,可擦写次数也在1万次以上。
第二,单一电源电压供电。
一般的Flash存储器,在正常的只读情况下,只需要用户为其提供普通的工作电压即可,而要对其写入(编程),则需要同时提供高于正常工作电压的编程电压。
但是,Freescale HC08系列单片机通过在片内集成电荷泵,可由单一工作电压在片内产生出编程电压。
这样,可实现单一电源供电的在线编程,不需要为Flash的编程而在目标板上增加多余的硬件模块。
正因为Flash的读写电压要求不同,一些公司的内置Flash存储器便放弃了在线擦除写入功能,而仅有通过编程器的写入功能。
第三,支持在线编程。
Freescale HC08系列单片机的片内Flash支持在线编程(In-Circuit Program),允许单片机内部运行的程序去改写Flash存储内容,这样可以代替外部电可擦除存储芯片,减少外围部件,增加了嵌入式系统开发的方便性。
基于以上这些特点,掌握Freescale HC08系列单片机的Flash存储器的编程技术,充分利用Freescale HC08系列单片机Flash存储器的功能,对基于Freescale HC08系列单片机的嵌入式系统的开发是十分必要的。
但是,与一般程序相比,Flash存储器的编程技术相对比较复杂,有一些特殊之处,本章将在实际应用基础上,总结Freescale的MC908GP32单片机的Flash编程方法,给出编程实例。
(2) MC908系列单片机Flash存储器的编程模式MC908系列单片机中绝大多数型号在其内部带有监控ROM(Monitor ROM),其地址和大小取决于芯片型号。
Flash存储器工作于监控模式的条件是:①复位向量($FFFE~$FFFF)内容为“空”($FFFF)。
②单片机复位时在IRQ引脚上加上高电压(1.4~2Vdd),并给某些I/O脚置适当值(与芯片型号有关,设计时,参考芯片手册)。
只要满足上面条件之一,就可以使单片机在复位后进入监控工作方式。
前者适用于单片机芯片已经安装在用户PCB板上,可以实现在线编程(ICP)。
初始时,芯片为“空”,用户以这种方式装入程序后,以后的复位将执行用户装入的程序,不再进入监控模式。
后者一般用于通过编程器进行程序装入。
在监控方式下,单片机内部的监控ROM程序开始工作,首先进行初始化,随后进入串行输入命令状态。
监控ROM通过一根I/O口线与主机进行串行通信,该I/O口线的指定与芯片型号有关,例如,对MC908GP32,它为PTA0;对MC68HC908JL3,它为PTB0,该I/O口线在使用时需外接上拉电阻。
主机程序可以利用监控ROM提供的少数几条指令对单片机内部地址进行读取、写入等基本操作,包括下载程序到RAM中并执行。
在此基础上,主机可以通过主机程序或是下载到RAM中的程序完成对Flash 存储器编程所需的一系列操作。
M68HC908系列单片机的Flash存储器工作于用户模式不需要特别的条件,在单片机正常工作的过程中,程序可以随时转入对Flash存储器进行编程操作。
这种情况下对Flash存储器的擦除与写入不需要用户提供其它外部硬件条件。
两种模式各有优缺点:监控模式需要外部硬件支持,但不需要单片机内部程序的存在,所以适合对新出厂芯片进行编程写入,或是对芯片进行整体擦除与写入;用户模式可以在单片机正常工作时进入,所以常用在程序运行过程中对部分Flash存储器的一些单元内容进行修改,特别适合于目标系统的动态程序更新和运行数据的存储。
目前监控模式常被仿真器和编程器采用,而在实际的工程应用中,开发者往往只需要考虑和实现用户模式下的Flash存储器在线编程。
本章只讨论用户模式下的Flash存储器的编程方法,给出具体的实例。
要进行编程器研制或仿真器研制的技术人员需掌握有关监控模式的Flash存储器的编程方法,请参考Freescale的有关手册或其它文献。
13.2 MC908GP32单片机Flash存储器编程方法Flash存储器一般作为程序存储器使用,不能在运行时随时擦除、写入。
当然,由于物理结构方面的原因,对Flash存储器的写操作,更不能像对待一般RAM那样方便。
在许多嵌入式产品开发中,需要使用掉电仍能保存数据的存储器来保存一些参数或重要数据,目前一般使用EEPROM来实现。
HC08的Flash存储器提供了用户模式下的在线编程功能,可以使用Flash存储器的一些区域来实现EEPROM的功能,这样简化了电路设计,节约了成本。
但是,Flash存储器的在线编程不同于一般的RAM读写,需要专门的过程,本节介绍HC08的Flash存储器的基本操作方法。
13.2.1 Flash存储器编程的基本概念虽然Flash存储器是一种快速的电可擦除、电可编程(写入)的只读存储器,但是基于其物理结构原因,对Flash存储器的擦除及写入一般需要高于电源的电压,Freescale HC08系列单片机的片内Flash存储器内含有“升压电路”,使其能够在单一电源供电情况下进行擦除与写入。