片内非易失性存储器.ppt

上传人:s****8 文档编号:67207306 上传时间:2022-12-24 格式:PPT 页数:39 大小:835KB
返回 下载 相关 举报
片内非易失性存储器.ppt_第1页
第1页 / 共39页
片内非易失性存储器.ppt_第2页
第2页 / 共39页
点击查看更多>>
资源描述

《片内非易失性存储器.ppt》由会员分享,可在线阅读,更多相关《片内非易失性存储器.ppt(39页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、 PIC单片机片内非易失性存储器1非易失性存储器综述2单片机系统中的存储器3单片机系统中的存储器分为程序存储器和数据存储器两个部分:程序存储器一般由掉电后内容不会丢失的非易失性存储器(Nonvolatile Memory)构成。数据存储器则由读、写都非常方便的随机存储器(RAM)构成。PIC单片机中提供了多种非易失性存储器,这些非易失性存储器的使用的方法和成本都不尽相同,要根据实际需要选择合适的存储器。常见非易失性存储器4掩膜ROM掩膜ROM是最古老的非易失性存储器,只能由芯片生产厂商在制造时直接写入,写入后就不可以再修改。最大优点是低廉的成本,但随着单片机系统的个性化和每种产品产量的减少,这

2、种方式已无法满足设计者的需要。常见非易失性存储器5紫外线擦除的EPROMEPROM可以用紫外擦除工具多次修改其内容,但使用时仍然很不方便且成本较高,它很少用于实际产品,含有EPROM的PIC单片机通常只在开发阶段使用。含有EPROM的PIC单片机常见非易失性存储器6一次性电可编程存储器(OTP)OTP技术允许生产者可以通过编程器等工具对其进行一次性的编程。这种技术采用了类似掩膜ROM的工艺,在没有大幅度提高制造成本的同时,为单片机系统生产者生产批量较小的新产品提供了有效的选择。PIC单片机中中第六个字符为C字母的,其程序存储器多采用OTP技术。常见非易失性存储器7FlashFlash技术是半导

3、体业的一次革命,它提高了存储器的制造密度,降低了单位成本。更为重要的是Flash技术允许使用者通过电的方法多次擦写其内容(10,000次左右),可以作为程序存储器。目前大部分的单片机都采用Flash技术来常见非易失性存储器8EEPROMEEPROM的成本较高,较难实现高密度集成化,不能作为单片机的程序存储器,但EEPROM可靠性和耐用性较高。PIC单片机中EEPROM被作为RAM的补充,成为数据存储器的一部分。EEPROM不能像RAM那样直接读写,而是需要较为复杂的读出和写入过程来操作。常见非易失性存储器9非易失性RAM(Nonvolatile RAM)既能够像RAM一样高速、便捷地直接读写,

4、又能够像ROM那样掉电不丢失,可以用于存储那些需要掉电不丢失的大量数据。根据实现方法的不同,非易失性RAM可以分为:铁电存储器(FRAM)、内部藏有电池的NVRAM和双体结构的NVRAM三种。由于成本较高非易失性RAM没有在PIC单片机中使用。EEPROM在PIC单片机中的使用10单片机系统,经常需要根据现场实际情况设定或调整工作参数。存储参数的存储器必须:第一,能够在运行条件下进行动态修改,也就是可以通过程序读写其内容;第二,系统掉电后,设置的内容不会丢失,否则每次开机后这些参数需要重新设定或调整。EEPROM在PIC单片机中的使用11一般用EEPROM解决这个问题。传统的单片机系统没有片内

5、EEPROM,只能使用具有I2C、MicroWire或SPI接口的EEPROM芯片。PIC18F系列高档单片机中集成了EEPROM存储器,合理的解决了这个问题。EEPROM在PIC单片机中的使用12EEPROM被用作数据存储器,用以存储掉电不会丢失的配置数据。为了和其它数据存储器匹配,EEPROM和Flash不同,也采用8位的方式组织。但EEPROM并没有被映射到数据空间,而是使用不同的地址系统。片内的EEPROM大多是256字节,有的型号1024B。不同的PIC中档单片机含有的EEPROM大小也不相等。Flash在PIC单片机中的使用13含有Flash程序存储器的单片机具有多次编程的便利,简

6、化了设计者的开发过程,且满足了产品个性化设计的要求。目前包括PIC单片机在内的几乎所有单片机的程序存储器都用Flash存储器实现。Flash在PIC单片机中的使用14基于Flash技术的程序存储器具有以下优势:可以由设计者进行编程,且能够多次编程,提高了程序开发的灵活性。能够支持在线调试(ICD)、在线编程(ICP或ICSP)和在应用编程(IAP)的要求。产品发行到最终用户处之后,仍然可以通过某些渠道在最终用户处升级其程序。目前在MP3、MP4等消费电子领域非常流行的“固件升级”就是利用这一特性。Flash在PIC单片机中的使用15Flash存储器成本低廉,易于集成,但可重复读写的次数有限,因

7、此被用作程序存储器。PIC中档单片机的Flash满足每个字的宽度为16位,程序空间的最大长度为221 的要求。在地址的组织上以2K字为一个页,不同型号的单片机片内含有的Flash页数不等。PIC中档单片机片内Flash存储器的配置Flash和EEPROM写入方法的异同16Flash和EEPROM的写入过程相同,都需要经过擦除和烧写两个步骤。由于EEPROM存储的不是程序,因此对其进行写入操作不会影响单片机内核(CPU)的取指操作,单片机可以在EEPROM操作的同时正常运行。单片机无法一边不停地从Flash中取出程序,另一边完成对Flash的读写。针对这一问题,含有Flash的PIC中档单片机只

8、能在Flash写入期间暂停其内核的所有操作进入悬停状态。在Flash烧写过程中,虽然不能执行Flash中的指令,由于系统时钟仍然继续工作,片内其它模块还可以在系统时钟的支持下继续工作。Flash和EEPROM写入方法的异同17Flash的写入操作以块(Block)为单位进行,每个块的大小依单片机型号不同可能有4个或8个字。这种写入方法大大提高了写入的效率,有利于大量数据或程序的连续写入。但不利于单个数据的写入。EEPROM的写入是以字节为单位进行的,虽然写入效率较低,但却更灵活,有利于少量数据的频繁读写。非易失性存储器的使用方法和编程技术18与EEPROM、Flash相关的寄存器19和PIC单

9、片机内部的非易失性存储器操作相关的寄存器共有九个。这九个寄存器大致可以分为三类:第一类包括EECON1和EECON2,负责控制非易失性存储器的写入过程;第二类包括EEDATA、EEDATH以及EEADR、EEADRH,负责提供需要进行读写操作的存储器的地址和数据;第三类包括INTCON、PIR1和PIR2,用于控制相关的中断功能。与EEPROM、Flash相关的寄存器20EEPROM相关寄存器:1.EEPROM地址寄存器EEADR 访问EEPROM时通过这个寄存器指定EEPROM的地址。2.EEPROM数据寄存器EEDATA EEDATA是CPU和EEPROM交换数据的桥梁,要写入EEPROM

10、的数据需要暂存到这个寄存器后再由硬件写入EEPROM;要由EEPROM读入的数据也先由硬件读入到EEDATA 后再读入CPU。相关寄存器21与EEPROM、Flash相关的寄存器223.EEPROM读/写控制寄存器1 EECON1EECON1含有的各个位分别用于实现EEPROM读写过程中各种状态显示和控制,其中:EEPGD:访问对象选择位,用于设定读写的对象是数据存储器EEPROM还是程序存储器的Flash。值得注意的是:在读写操作期间这个位是不能改变的,否则将造成不可预知的后果。1=选择Flash作为操作对象0=选择EEPROM作为操作对象WRERR:EEPROM写操作过程出错标志1=写操作

11、过程中发生了错误,具体来讲就是在写操作期间发生了外部复位(MCLR)或看门狗复位(WDT)0=上一次写操作期间没有发生错误WREN:EEPROM写操作使能控制位1=允许写操作0=禁止写操作WR:EEPROM写操作启动控制位及状态位。注意这个位只能用软件置位,却不能由软件清零。1=启动一次写操作,在完成后由硬件自动清零0=标志着上一次的写操作已经完成RD:EEPROM读操作启动控制位及状态位。这个位同样只能用软件置位,却不能由软件清零。1=启动一次读操作,在完成后由硬件自动清零0=标志着上一次的读操作已经完成与EEPROM、Flash相关的寄存器233.EEPROM读/写控制寄存器2 EECON

12、2EECON2并不是一个实际物理存在的寄存器,它专门用于实现EEPROM写操作的安全控制上,用以避免意外的写操作。片内EEPROM的结构和操作原理24在PIC中档单片机内部EEPROM数据存储器被设计成一种外围模块,它和单片机的CPU之间通过数据总线交换数据。EEPROM和数据总线之间没有直接连接,而是通过地址寄存器EEADR和数据寄存器EEDATA 来相互交流,其结构关系如图所示:片内EEPROM的结构和操作原理25以两个寄存器为分界线,左边部分CPU通过数据总线、工作寄存器W和EEADR、EEDATA 交换数据,这种数据交换是通过软件完成。用户软件分两次完成地址和数据的传送。右边部分两个寄

13、存器和EEPROM之间的数据交换则是通过硬件自动完成的。从EEPROM中读取数据26读操作只受到控制寄存器EECON1中的一个位RD的控制:RD被程序置位后,地址寄存器EEADR所指定的EEPROM单元的内容会被自动复制到数据寄存器EEDATA 中,完成读出。这个控制位只能由软件置位,却不能由软件清零,RD的清零只能由硬件在读出数据后自动完成。因此RD除了完成控制位的功能外,还实现了读操作完成状态位的功能。软件可以通过对这个位的查询判断读操作是否完成。从EEPROM中读取数据27对EEPROM操作的前提是EECON1中的非易失性存储器选择位EEPGD必须首先清零,以选择EEPROM作为操作的对

14、象。同时将要读取的EEPROM单元的地址放入地址寄存器EEADR中,随后通过置位RD启动EEPROM读取操作。随后就可以通过工作寄存器W读取EEPROM中的数据了。EEDATA 中的数据会被一直保存到下一次读写操作修改EEDATA 为止。向EEPROM中写入数据28由于EEPROM的写入较慢,且非常重要,PIC单片机用两个控制位WR和WREN,以及两个状态位WREN和EEIF来保证写入过程的可靠性。WREN完成写使能的功能,也就是说只有在这个位为1的前提下,接下来所有的对EEPROM的写入才是有效的。另外用户程序将WR置位,数据寄存器EEDATA 里的数据就被自动存储到地址寄存器EEADR所指

15、向的存储器中。WR的清零只能由硬件自动完成,因此WR位也可以作为非易失性存储器写入完成的标志。向EEPROM中写入数据29EEPROM的写入过程应该注意:应使EEPGD清零,以选择写入对象为EEPROM。WREN和WR的置位,将启动写操作。但为保证写入的安全性,WREN和WR的置位不能在同一条指令中完成。同样出于安全原因,每次写操作完成后必须复位WREN,以防止误操作的发生。EEPROM的写入需要用户软件通过5条特殊的指令序列来开始,而无法通过简单的直接读写完成。在执行这5条指令的过程中,应该暂时关闭所有中断向EEPROM中写入数据30EEPROM的写操作包括以下步骤:的写操作包括以下步骤:1

16、、确认当前的WR为0,即确认上一次EEPROM写入过程已经完成,如果WR为1则需要等待当前的写入过程完成,才能继续完成后面的步骤。2、把地址送入EEADR,并确保这个地址不超过目标单片机的EEPROM地址范围3、把准备写入EEPROM的,一个字节的内容送入EEDATA 中。4、EEPGD位清零,选择EEPROM作为写入对象。5、写操作使能位WREN置位,允许写入操作。6、GIE清零,暂时关闭所有中断。7、按顺序执行专用的5个指令,这五条指令由厂家规定,不能进行任何改动:用MOVLW指令将0X55写入工作寄存器;用MOVWF指令将W中的0X55搬到EECON2中;用MOVLW指令将0XAA写入工

17、作寄存器;用MOVWF指令将W中的0XAA搬到EECON2中;用BSF指令将EECON1中的WR置位。8、置位GIE,重新开发全局中断。9、清零WREN位,只有在下次需要非易失性存储器写入时才再次对其置位。此时虽然EEPROM的写入仍未完成,但清零WREN位对本次EEPROM的写入操作已经没有了影响。10、通过中断方式或查询方式等待写入过程的完成。完成的标志是EEPROM中断的发生或者EEIF置位和WR的清零。片内Flash的结构和操作原理31Flash存储器虽然属于程序存储器,但其结构和操作方法与数据EEPROM基本相同。左半部分,CPU通过用户软件和寄存器交换数据;右半部分,寄存器和Fla

18、sh之间的数据交换则是通过硬件自动完成的。片内Flash的结构和操作原理32Flash和EEPROM存储器结构的不同点在于:Flash作为程序存储器,它的宽度与程序总线相同是14位。因此在数据总线和Flash之间交换数据的EEDATA 寄存器增加到两个字节,分别名为EEDATA 和EEDATH,其中EEDATA 用于存放低字节,EEDATH用于存放高6位。用于存放目标Flash地址的寄存器也增加到两个,分别名为EEADR和EEADRH,分别用于存放地址低字节和地址高5位。相关的寄存器33Flash读写相关的寄存器含义和地址基本和与EEPROM相关的寄存器相同,只有两个新增的寄存器。Flash地

19、址寄存器高字节EEADRHFlash数据寄存器高字节EEDATH从Flash中读取数据34Flash的读取过程和EEPROM的读取过程相似,其不同之处有:1、地址增加到两个字节,低字节写入EEADR,高字节写入EEADRH(其中有效位可能为3、4或者5位);2、目的地址控制位EEPGD应该置位,以选择Flash作为操作对象;3、Flash的读取速度慢于EEPROM,启动了读操作(RD置位)之后,需要等待两个指令周期后才能从数据寄存器中读出数据。通常可以插入两条NOP指令;4、一次读取操作,可以从Flash中读取长度为1个字(14位)的数据,它们将会被分成高低两个字节分别放置在EEDATA和EE

20、DATH中。向Flash中写入数据35Flash主要用于程序的存储,而每次向Flash中写入程序的数量一般较多。如果仍以单个字为单位写入,则每个字节的写入都需要花费较长的擦写时间,总体来看时间效率不高。改为一次写入多个字,则同时进行擦除和写入的数据将大大增加,执行擦除和写入的时间效率将成倍提高。向Flash中写入数据36一般称一次写入的数据为一个“块”(Block)。在PIC单片机中,一个块的大小有4个字或8个字之分。一个块必须具有连续的地址。图示的是以4个字为一个块的Flash写入过程。向Flash中写入数据37对Flash的写入和从Flash中读取程序不能同时进行,因此在数据完全写入缓冲寄

21、存器后,CPU将会停止4ms左右,用于完成擦除和写入工作。在Flash进行写操作期间系统时钟没有停止工作,外设产生的中断请求将在中断标志寄存器中排队等候,一旦写入完成CPU仍然可以继续执行程序,或响应暂停期间产生的中断请求。向Flash中写入数据38Flash的写操作包括以下步骤:的写操作包括以下步骤:1、将需要写入的Flash块的第一个地址(首地址)送入EEADRH和EEADR,并确保这个地址不超过目标单片机的Flash地址范围。2、把准备写入Flash的一个字(分两个字节)的内容送入EEDATH和EEDATA 中。3、EEPGD位清零,选择EEPROM作为写入对象。4、写操作使能位WREN

22、置位,允许写入操作。5、GIE清零,暂时关闭所有中断。6、按顺序执行专用的5个指令,这五条指令由厂家规定,不能进行任何改动:用MOVLW指令将0X55写入工作寄存器;用MOVWF指令将W中的0X55搬到EECON2中;用MOVLW指令将0XAA写入工作寄存器;用MOVWF指令将W中的0XAA搬到EECON2中;用BSF指令将EECON1中的WR置位。7、插入两条NOP指令。(如果当前块的数据已经全部被写入缓冲寄存器,CPU将在这里停留4ms左右等待擦写完成;如果当前块的数据还没有完全写入,CPU将会在这里设置写入操作,但无论何种情况,这两条指令将被忽略。)8、置位GIE,重新开发全局中断。9、

23、清零WREN位,只有在下次需要非易失性存储器写入时才再次对其置位。10、检查是否已经完成了当前块的写入,如果已经完成则退出,如果没有完成则跳转到步骤2继续将准备写入当前块的数据写入EEDATH和EEDATA 中。(无需多次修正地EEDATH和EEDATA,因为它们将自动递增)思考题391.非易失性存储器和随机存储器(RAM)在功能方面最大的不同是什么?2.常见的非易失性存储器有哪些类型,PIC中档单片机内有哪些类型的非易失性存储器?3.目前常见PIC中档单片机中的EEPROM和Flash的地址分别是多少位的?它们的宽度又分别是多少位的?4.PIC单片机片内的EEPROM和Flash无法直接通过寻址操作访问,那么采用什么结构和方法访问和操作这些存储器?5.在写入Flash时,单片机的CPU为什么需要停止运行,而在写入EEPROM时却不需要?6.为什么Flash的写入需要以块为单位,而EEPROM的写入却以字节为单位?

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 生活常识

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁