您的当前位置:首页正文

C8051F35X单片机内部Flash存储器的擦写方法

2023-11-18 来源:爱站旅游
导读C8051F35X单片机内部Flash存储器的擦写方法
第18卷V01.18第2期No.2电子设计工程ElectronicDesignEngineering2010年2月Feb.2010C8051F35X单片机内部Flash存储器的擦写方法陈富安。张莹(河南工业大学电气工程学院。河南郑州.450001)摘要:为避免在程序运行时向单片机内置的Flash写入数据导致复位,采用调用镇定与关键码的操作方法对C805lF35X型单片机的Flash进行擦除、写入和读取操作,并提供程序范例。该方法无需任何接口电路,使用方便。成本低且安全可靠。此方法已应用于包装机控制器,实现包装参数的保存和修改,效果良好。关键词:C805lF35X;Flash;单片机:包装机中图分类号:TS206.5文献标识码:A文章编号:1674-6236(2010)02-0105_02MethodofprogrammingtechniquesforOil-chipFlashinC8051F35XCHENFu·an,ZHANGYing(SchoolofElectricEngineering,He’nanUnivers毋ofTechnology,Zhen毋hou450001,China)Abstract:InordertoavoidMCUresetwhenFlashmemoryiswrittendataduringtheprogrammerrunning,thispaperde—toscribesthewayoflockandkeycodesMoreover,theprogrammingexamplesniquehasusederase,writeandreaddatatoFlashmemorywhichisinC8051F35X.neededifusingthismethod.Thistech—alsoprovided.Anyinterfacecircuitisnotadvantageofminimizingtocosts,bettercontrollabilityandincreasingreliability.Thismethodhasbeenappliedtothepackingmachinecontrofierandchangeparameters.Ithasgoodeffectinoperation.Keywords:C8051F35X;Flash;MCU;packingmachineC8051F35X是Cygnal公司推出的混合信号片上系统型单片机MCU。采用CIP.51内核可大大提升指令运行速度。另外该器件内部还具有一个完整而先进的时钟系统和片内调试电路,其内置的Hash代替ROM和EPROM。不仅为用户的存储提供方便,还大大简化电路llI。这里给出使用C8051F35X单片机内部Flash存储器的擦除、写入和读取操作方法。2Flash存储器的锁定与解锁在n五h操作之前.必须按顺序向Flash锁定和关键码寄存器(FLKEY)写入正确的关键码,该关键码禁止对知识产权信息(以程序或常数形式存储在Flash中)进行未经授权访问或防止用户无意修改程序代码以及因系统条件异常导致代码改变。写关键码时必须按顺序写。否则Flash写入或擦除操作被禁止。直到下一次系统复位。存储在Flash用户空间的最后一个字节的安全锁定字节保护Flash存储器,使其不被非保护代码或通过硬件接口读写或擦除。使用安全锁定字节时有以下关键点121:1)将Flash安全字节中的位设置为0。保护1存储器结构C805lF35X单片机内部含有2个独立的存储器:程序存储器和数据存储器。程序存储器中包含8KB可在系统编程的n弱h存储器。C8051F35X通过设置程序存储写允许位(PSCTL.0)采用MOVX指令对程序存储器写入。如图1所示。8K保留Flash存储器不通过J1'AG接口被访问:2)采用软件设置一个软件读访问限制,保护存储器不被读取:3)已被软件访问保F1ash(在系统可编程,以5l2字节为1个扇区】护的Flash存储器也应用‰h安全字节进行保护.使其不通过JrrAG接口访同;4)在保护Flash时。包含Flash安全字节的Flash页也应保护;5)如果最终用户无需访问Flash,可通过简单锁定整个Flash存储器保护其不通过JTAG访问。3图l程序存储器结构图这8KB的Flash存储器在一个连续的存储器块内(地址范围为OX0000.0X1DFF,OXlE00以上的地址保留),其通过硬件接口或采用MOVX指令对Flash存储器在系统编程12-31。Flash数据擦除采用软件MOVX指令对Flash存储器编程.在使用MOVX为了保证操作正确.写入和擦除操作由硬件自动定时,无需数据查询判断写/擦除操作何时结束。程序在Flash写入,擦除操作时停止执行。收稿日期:2009~07—21稿件编号:200907072指令前,先允许Flash写操作,其过程为:1)将程序存储写允许位PSWE(PSCTL0)设置为逻辑…1.这将使MOVX操作指向目标Flash存储器;2)接顺序向Flash锁定寄存器(FLKEY)写入Flash关键码.PSWE位将保持置位状态,直到被软件清除t21。作者简介:陈富安(1962一),男,河南驻马店人,硕士,副教授。研究方向:电气工程,控制理论与控制工程。-105-万方数据《电子设计工程)20lo年第2期在采用软件修改Flash内容前,PSWE必须置为逻辑“l”;而在软件擦除Flash存储器前,PSWE位和PSEE位都必须置为逻辑“l”。写入Flash存储器操作可清除数据位,但不能使数据位置“l”.只有擦除操作能将Flash中的数据位置为。l”。所以在写入新值前,必须先擦除待编程地址。Flash存储器是以512字节的扇区为单位构成的。一次擦除操作将擦除整个扇区(将扇区内的所有字节置为0XFF)。EA=O:PFEOCN=Ox20;//关总中断pread=(charcede*)addr;byte=+pread;EA=EA—SAVE;//读取数据//恢复中断retumbyte;}擦除一个扇区的步骤如下鲫:1)禁止中断;2)置“l”程序6实际应用C8051F35X内部Flash存储器的读写操作可应用于包装存储器擦除允许位(PSCTL中的PSEE),以允许儿sh扇区移除;3)置“1”程序存储器写允许位(PSCTL中的PSWE),允许Flash写入:4)向FLKEY写第1个关键码:OXA5;5)向FLKEY写第2个关键码:OXFI:6)用MOVX指令向待擦除页内的任何一个地址写入1个数据字节;7)清除PSWE和PSEE位;8)重新允许中断。4机控制器的参数存储㈣。在开机运行时如果每次重新输入分装重量值、分装精度等参数会降低工作效率。这时需在系统上电后自行调用事先设置的参数以简化工作人员的操作步骤.提高生产效率。图2是包装机参数调用流程。开机上电后先初始化串口.如果按下设置键重新设置分装重量.内部Flash需保存新参数。先将事先保存在Flash内的数据删除后再写入新数据。使掉电时数据不丢失.可在下次开机时直接调用数据。此方法已成功运用于包装机控制器中。图2分装机参数调用流程设置参数并取出参数nFlash数据写入Flash存储器可一次写1个字节.也可一次写l组字节,IFlash教据擦除卜———1—一寄存器PFEoCN中的FLBWE位为一次Flash写操作可写入1个或2个字节。当FLBWE清零时,每次Flash写操作写入1个字节:当n.BWE位置为“l”时.每次Flash写操作写入2个字节(块写)13】。块写时间与单字节写的时间相同,在向Flash存储器写入大量数据时可节省时间。在单字节写Hash时,分别写入字节数据.每个MOVX写指令执行一次Flash写操作。C8051F35X的Flash存储器写入程序代码如下:void《蔓矽《萝’疋匝互夏豆弘一F1ash内部数据读出I开始定量Flash_ByteWrite(FLADDRaddr,unsignedcharbyte)charxdata*dampwrite;EA=0:VDMOCN--Ox80:RSTSRC=0x02:l//Flash写指针,/关总中断7结论C8051F系列的其他型号的单片机Flash的基本操作只需修改上述程序代码即可完成Flash存储器的相关操作。此外.在线写入C8051F35X单片机片内Flash时需注意:1)Flash读写或擦除地址超出用户代码空间引起系统复位:2)1个兀ash位一旦清零,必须经擦除才能回到“1”状态,在重新写入之前,一般要将数据字节擦除(置为0XFF);3)为保证Flash内容的正确性。用户使用软件对Flash存储器进行写或擦除操作时.需先使能片内VDD监视器。参考文献:【l】傅务谨.n鹪h存储器在嵌入式系统设计中的应用叨.福建电脑.2008.7(22):91—93.『21潘琢金.C805lF350混合信号ISPFlash为控制器数据手册//使能VDD监视器114吏能VDD监视器作为1个复位源pwrite=(charxdata8)addr;//指向首地址PSCTLI--Ox01:FLKEY=OxA5:FLKEY=OxFl://允许写FLSSH存储器,,向nⅨEY写第1个关键码:0】【A5//向FLKEY写第2个关键码:0)【FlVDMOCN--0x80:,/使能VDD监视器RslSRC=0)【02:*pwrite=byte:IH吏能VDD监视器作为1个芰位源/,写入1个字节PSC7IL&=~0】【叭://禁止写Flash存储器EA=EASAVE;//恢复EA值}5Flash数据读取由于Flash读操作采用MOVC指令实现,因此用于读操fM】.北京:北京航空航天出版社,2005.【31蔡晓雯.基于C805117020的外部存储器扩展[J】.测控技术,2008.3(27):52—54.作的Flash指针必须是CODE类型。由于Flash写操作是用MOVX指令实现的.所以写入或擦除操作的Flash指针必须是XDATA类型。对于C8051F35X的Flash存储器读取数据程序代码如下:unsignedchar【4】朱恩亮.FlashMemory程序存储器实验的设计【J】.盐城工学院学报,2006,3(19):36—38.【5】赵海舰.嵌入式系统的Flash编程技术研究田.计算机工程与设计。2005,ll(26):3006—3008.Flash_ByteRead(FLADDRaddr)//n鹄h读指针【6】杨勇涛.Flash存储器在DSP系统中的应用叨.电子技术,2006,6(361):41-43.fcharcode*dampread;一106一万方数据C8051F35X单片机内部Flash存储器的擦写方法

作者:作者单位:刊名:英文刊名:年,卷(期):

陈富安, 张莹

河南工业大学电气工程学院,河南,郑州,450001电子设计工程

ELECTRONIC DESIGN ENGINEERING2010,18(2)

1.杨勇涛 Flash存储器在DSP系统中的应用[期刊论文]-电子技术 2006(361)2.赵海舰 嵌入式系统的nash编程技术研究[期刊论文]-计算机工程与设计 2005(26)3.朱恩亮 Flash Memory程序存储器实验的设计 2006(19)

4.蔡晓雯 基于C8051F020的外部存储器扩展[期刊论文]-测控技术 2008(27)5.潘琢金 C8051F350混合信号ISP Flash为控制器数据手册 2005

6.傅务谨 Flash存储器在嵌入式系统设计中的应用[期刊论文]-福建电脑 2008(22)

本文链接:http://d.g.wanfangdata.com.cn/Periodical_dzsjgc201002039.aspx

因篇幅问题不能全部显示,请点此查看更多更全内容