|
嵌入式Flash微控制器简介(上)
|
Embedded Flash MCU
|
■摩托罗拉半导体产品部 Harald Kreidl
|
嵌入式Flash存储器获得的技术进步在本质上促进了微控制器(MCU)的应用,它显著地改变了微控制器市场。Flash技术结合使用了OTP存储器的成本优势和EEPROM的可再编程性能,可以使产品早日推向市场,能够对那些难度较大的用户需求尽快作出反应。它是那些想要用最小开销来发挥EEPROM的最大灵活性的系统集成开发者的理想选择。
嵌入式Flash存储器同EEPROM一样是电可擦除和可编程存储器,但是与OTP(one-time-programmable,一次性编程)不同的是,EPROM和EEPROM版本的Flash只需要极短的时间就能擦除和编程。摩托罗拉制造的微控制器有一个内置的充电泵,在芯片上产生编程电压,提供单独的高电压用来对嵌入式Flash不需要的存储擦除或编程。它的16位HCS12和32位MPC56X微控制器的Flash存储器块被排列成许多只有几个字节的段从而能够同时进行擦除和编程,节约了编程时间,减少了成本。状态机执行擦除和编程所必需的Flash算法,这种状态机产生必要的计时,并检验编程是否成功,利用它来避免导致毁坏Flash或者降低其计时错误的发生。这种应用在微控制器上的存储技术相当程度地影响了印制电路板和最终产品的开发和生产过程。
Flash MCU的另外的成本优势还体现在产品的布局和库存,使用Flash微控制器来替代ROM能够避免这个昂贵地花费。例如,使用ROM,不同的软件版本需要保存不同的掩膜ROM版本。这些不同版本的ROM能够用一个Flash版本来替代,这使一切变得十分简单。微控制器用软件来调整,即使对需要Flash微控制器的产品有越来越多的需求,微控制器厂商也能迅速作出反应。
由于它具有这样显著的优点,克服掩膜生产过程中因迟缓带来的开销,所以能够在市场竞争中处于领先地位。使用Flash代替ROM或者OTP能够使开发和生产的周期明显地缩短。在生产周期里,将测试软件编入设备中来调试硬件,测试成功以后在用应用软件来代替测试软件,然后就可以提供给用户使用了。对于用户而言,远程软件更新或者额外的性能升级都成为可能。
将Flash和芯片上结合起来有很多好处。高性能的16位和32位微控制器能够以60MHz的频率不间断地访问内部Flash存储器。如果使用外存,CPU不得不等待,从而程序运行的速度就会减慢。即便你使用外部分段Flash存储器也只能达到内存性能的60%。使用外部Flash需要额外的主板空间,这时EMI(Electromagnetic
Interference,电磁干扰)性能由于存储器控制线上高频率的信号而处于比较糟糕的状态。
Flash微处理器的参数
微控制器的选择并不仅仅决定于Flash存储器的特性。体系架构,技术和商业上的支持,性能,实用性,开发工具的质量和价格,可以使用的软件和操作系统,开发工程师的偏好和其他要点在决策过程中都应该包含进来。下面我们介绍摩托罗拉
Flash微控制器的重要Flash存储器特性。
数据保持时间
生命期或者Flash的数据保持时间说明了数据能够保持多长时间。数据保持的时间用年来作单位,从10年到100年不等。由于厂商在不同条件下来说明他们的产品,所以最好注意阅读数据表中的标注。这使比较数据变得非常复杂。原则上对于数据保持时间有两个重要参数:
第一个是能够保证生命期的操作温度;第二个是能够使得数据保持时间有效的擦除/编程循环次数。数据保持时间完全取决于温度,不同温度下的数据保持时间由Arrhenius方程来计算。例如,在125℃下指定数据保持时间是10年,如果知道电子的激活能量的值,则可以根据这个方程来计算其他温度下的生命期。比如在80℃数据保持时间的值为60,000年。当然,长期影响没有考虑,所以真正的生命期比计算所得的值要短。但是这清楚的显示了温度对生命期的巨大影响。
摩托罗拉微控制器产品的操作温度范围为-40到+85℃(工业级)或者-40到+125℃(汽车用)。生命期同时表明Flash存储器经过特定的擦除和编程次数后的时间,最坏的情况就是经过了擦除编程循环的允许最大次数之后。现在摩托罗拉标明其微控制器在全部的工业级和汽车用操作温度范围下的生命期>10和>15年,这个范围在半导体工业中是唯一的。
擦除编程耐久度
一个更为重要的特征值是可擦除编程次数。现在有标明从100到100,000次循环的各种微控制器,但是这个数据只有在公布其条件下才是有效的。在什么温度下擦除编程耐久度才是有效的?频率数据是指单独的一个单字节的频率还是特定数目的Flash存储器单元的频率?耐久度数据是指擦除操作的耐久度,还是指编程操作的,还是同时指两者的?摩托罗拉基于微控制器的不同应用规定了两个耐久度值。对于主要用于汽车应用的微控制器,在-40到+125℃范围内耐久度值为1000次,比如HCS12系列的16位微控制器和MPC56x系列的32位微控制器。更为一般用途的微控制器,在-40到+85℃和-40到+125℃(汽车用)的范围内,耐久度为10000次,比如68HC08系列的8位微控制器。
编程电压
为了读、编程和擦除一个Flash单元,根据Flash技术特定的电压是必须的。编程电压可以由外部供给微控制器,也可以从片上充电泵(on-chip
charge pump)中产生。摩托罗拉的Flash微控制器中加进了充电泵,消除了提供外部电压所必需的额外工作和花费。需要指出的是,大多数微控制器工作在一定的电压范围内,所以在操作电压范围内都要能够进行Flash编程,这是非常重要的。这是摩托罗拉的Flash微控制器的一种情况。
擦除和编程
利用一个非常复杂的算法,我们可以在微控制器中完成对Flash进行擦除和编程的过程。这个算法必须通过软件程序实现,或者将它隐藏在一个状态机后,而这个状态机简化了系统内(in-system)编程。有一些Flash微控制器在对Flash编程过程中会出现阻塞现象,以至于不能够执行任何其他的任务。有些时候对于电路内编程需要额外的工作和外部电路。在选择微控制器之前,这些因素都应该考虑进去。摩托罗拉在最新的产品中对Flash编程使用了一个状态机,这样对于电路内编程不在需要额外的外部电路,而且所有的微控制器的接口,像串行通讯接口(SPI,CAN,SCI等等),在软件和数据更新时都可以使用。因为摩托罗拉的产品在编程的过程中CPU不会阻塞,所以MCU能够继续执行其他的应用程序。
|
|