AVR104缓存和中断方式EEPROM写入..doc

  1. 1、本文档共8页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
AVR104缓存和中断方式EEPROM写入.

AVR104: 缓存和中断方式EEPROM写入 EEPROM 缓存 高效 EEPROM 访问 缓存访问控制 EEPROM 缓存重写 介绍 许多应用中使用了 AVR 单片机内置的 EEPROM 来保存和恢复参数。存放单个字节到 EEPROM 的编程时间在 3 到 8.5 ms 左右,在这个写入时间里写入访问被禁止。传统上是使用查询法来判断 EEPROM 写入是否完成的,这篇应用笔记介绍一种使用缓存和中断方法,明显的提高了程序的性能,和查询法相比还减少了电源的功耗(在等待期间可以进入休眠模式)。 提高性能和降低功耗直接关系到系统。当执行 EEPROM 写访问查询时,所有资源(除了中断)都被查询所占用,而中断法在“等待” EEPROM 写入完成中断时,可以将单片机释放出来去执行其它代码。与查询法相比,中断驱动写每字节的 EEPROM 最多可以释放 8.5 ms 时间 –依赖于芯片编程时间和系统时钟频率。 理论 AVR 单片机既可以通过中断方式也可以通过查询方式写内部的 EEPROM,两种方法有各自的优点,但是从执行性能看要选择中断方式。 轮询法 轮询就是在读写时,查询 EEWE 状态标志位来保证写周期已经完成。如果写周期还在进行中,单片机将等待并不停检查标志位,直到标志位被清楚后才继续进行。检查自编程是否被激活也是必要的,在需要时,要等待 SPM 操作完成。如果不使用自编程,可以忽略这个步骤。一旦标志位被清除,就可以启动下一个 EEPROM 操作了。轮询法的优点是代码紧凑,主要缺点是单片机在等待 EEPROM 写入时浪费了很多时间。一个典型的单字节写子程序如下: EEPROM_WR: ;EEPROM Write Sub-Routine sbic EECR, EEWE ;If EEWE Not Clear rjmp EEPROM_WR ;Wait Longer SPM_BUSY: ;(Omit if Self-Programming is Not Used) sbic SPMCR, SPMEN ;If SPMEN Not Clear rjmp SPM_BUSY ;Wait Longer out EEARH, r16 ;Output Address Byte (High) out EEARL, r17 ;Output Address Byte (Low) out EEDR, r18 ;Output Data Byte cli ;Disable Global Interrupts sbi EECR, EEMWE ;Set Master Write Enable sbi EECR, EEWE ;Set EEPROM Write Strobe ;This instruction takes four clock ;cycles. sei ;Enable Global Interrupts ret ;Return From Sub-Routine 中断法 在中断驱动法,不需要查询 EEWE 状态位确定 EEPROM 写入完成,EEPROM 就绪中断是 EEWE 状态位被清除时触发的。如果使用了自编程,还是需要查询 SPMEN 状态位的,保证当前没有处于自编程状态。中断驱动法的主要优点是减少了处理器的负荷。 如果使用了缓存中断驱动 EEPROM 访问的效率更高:缓存保存需要写入 EEPROM 的参数,中断程序从缓存中获取数据。中断复位程序 (ISR) 的复杂度和写入 EEPROM 的字节数有关。这个程序对单字节缓存是相对简单的,但是当需要写入多字节时就变得复杂了。为了写入多字节,缓存区需要一个计数变量,用来跟踪当前使用的缓冲区位置。计数器就是缓存索引指针。 缓存结构 在一个努力简化和增强的多字节写入中断驱动法,在片内 SRAM 中构造了两个缓冲区。两个缓冲区分别负责缓存地址和数据。Atmega 系列最小 EEPROM 是 512 字节,这需要 2 字节标识地址,这样1 字节的 EEPROM 缓存就是 3 个字节。 图1. EEPROM 访问的 数据和地址 LIFO 缓存 缓存大小 缓存 EEPROM 写入主要考虑的因素之一是缓冲区的大小。缓冲区大小影响性能,因为需要有哪些信誉好的足球投注网站缓冲区查找 EEPROM 地址是否已经在缓存中了;如果在就需要在写入时更新,或者在读取时返回其内容。 EEPROM 也扮演了决定合适缓冲区大小的角色,必须考虑包括 EEPROM 和 EEPROM 使用和/或更新的字节数。如果有许多字节在短时间内要写入 EEPROM,缓存需要足够大来容纳这些数据。 提供一个方法来决定合适的缓存大小超出了这篇文档的范围,缓存大小需要由

您可能关注的文档

文档评论(0)

dashewan + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档