|
带8位CISC微控制器的系统内可编程闪存的建设
|
Programmable Flash With 8-Bit CISC Microprocessor
System
|
■Mark Rootz, STMicroelectronics PSM 分公司
|
在新的嵌入式设计 中,有三分之一是采用8位CISC微控制器(MCU),嵌入式统计编程人员开始使用高级编程语言。闪存密度不断提高。所有这些趋势可以由一个设计方案关联起来:利用大容量闪存设计嵌入式MCU系统的解决方案。
用闪存替代PROM或EPROM的优点包括:开发代码的时间缩短;产品可以在组装线上完成测试和按需定制过程;可以现场纠正代码错误,不用拆除产品;增加产品新特性十分容易,甚至可以通过远程完成。
闪存有多大才够用
固件往往会超出系统最初设计的内存容量,产生这种现象有各种原因:固件所具有系统差异化特性;使用高级语言编写代码;采用OS内核;因此,64K字节闪存是今天嵌入式8位CSIC设计的最低配置需求,还需要把数据存储和记录功能所需的存储容量考虑在内。这些特性可以大幅度提升产品的可销售性。
系统内编程和应用中编程
一般情况下,系统内编程(ISP)应用于可编程逻辑以及可编程非易失性存储器(NVM)。但是,在本文中,我们将引用一个新的术语“应用中编程(IAP)”。当涉及到微控制器时,ISP和IAP之间存在着细微但重要的差别,内存ISP是指对内存进行编程时,MCU保持脱机状态,并且不涉及这一过程。而系统内IAP则是指MCU参加内存编程过程,这对更新固件过程中必须联机的系统来说很重要。在一般情况下,ISP适用于生产制造,而IAP则适合现场更新。
IAP并不是想象得那么简单
一个主机通过一个由MCU支持的信道,向嵌入式闪存系统下载固件,这个信道通常情况下是一个UART,但是由MCU支持的任何信道都可以提供这一功能(如CAN、调制解调器、USB、J1850等)。由于MCU参与IAP过程,因此,它必须执行由一个非可擦或非可编程的存储器阵列提供的代码。另外,MCU无法使用引导代码和闪存编程算法(IAP装入代码)。因此,必须使用一个备用存储器阵列来存储IAP装入代码。今天,AMD、Atmel、SST和ST等多家公司都能提供在单片上包含两个以上的独立并行闪存器件,而且,SST还提供了一带两个单板并行闪存的单芯片MCU。并行存储器特别适用于IAP应用。系统设计人员必须选择正确型号的备用存储器来存储IAP装入代码。每种备用存储器都有优点和缺陷,如表1所示,备用存储器可以位于MCU外部,也可以插件的形式装在MCU内。图1是一个带外存储器具有IAP功能的系统的顶视图。
其它问题
某些MCU(特别是8051)提供两个独立的地址空间,一个用于程序内存,另一个用于数据内存。因为,这些MCU不能在下载过程中向程序空间写入代码。今天,一些产品能够在IAP过程中,按数据空间而不是程序空间对闪存进行临时性的“重新分类”。SST开发的单片闪存MUC和ST推出的PSD都能提供这种功能,另一种方法是,通过外部合并,使闪存既能提供程序存储空间又能提供数据存储空间,但是这种方法丧失了独立空间产生的保护作用,并且整体地址空间也缩小了一倍。
8位CICS MCU通常提供的线性地址空间不足64K字节,要想超过64K,必须采用页面调度技术(或内存模块技术)。但当一个拥挤的内存印象图必须容纳临时IAP装入代码时,这项技术会变得十分复 | |