Flash单片机自编程技术的探讨Flash单片机自编程技术的探讨 Flash的可自编程性(Self-Programmability)是指,用Flash存储器中的驻留软件或程序对Flash存储器进行擦除/编程,但是,要求运行程序代码的存储区与待编程的存储区不在同一模块中。因此,只有一个片上Flash存储器模块的微处理器,是不能在进行擦除/编程Flash操作的同时执行程序的。目前,有两种途径可以解决:①在擦除/编程Flash的过程中,将CPU置于空闲状态;②将擦除/编程Flash的指令复制到RAM,再由CPU来执行。 TI公司的MSP430系列Flash型单片机内部集成有Flash控制器,可以采用外部编程器进行烧写,也可以利用自己的程序修改Flash的内容,且不用外加编程电压。在进行系统设计时,可以利用片内的Flash保存一些运行数据,实现掉电保护;还可以修改Flash中的整个程序或局部程序,实现在系统升级。 本文以TI公司的MSP430系列Flash型芯片为例,对如何进行Flash的自编程操作做进一步的探讨。 1 MSP430芯片Flash存储器的结构 Flash存储器模块是一个可独立操作的物理存储器单元。全部模块安排在同一个线性地址空间中,一个模块又可以分为多个段。当对Flash存储器段中的某一位编程时,就必须对整个段擦除,因此,Flash存储器必须分为较小的段,以方便地实现擦除和编程。图1是MSP430芯片上Flash存储器模块的结构框图。该Flash存储器模块包含如下部分: ◆ 控制逻辑——控制Flash擦除和编程时的机器状态和时序发生器; ◆ Flash保护逻辑——避免意外的Flash擦除和编程操作; ◆ 编程电压发生器——提供Flash擦除和编程所需全部电压的集成电荷泵; ◆ 3个16位控制寄存器——FCTL1、FCT……