欢迎来到天天文库
浏览记录
ID:9990361
大小:147.50 KB
页数:7页
时间:2018-05-20
《avr104 缓存和中断方式eeprom写入》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、AVR104:缓存和中断方式EEPROM写入翻译:邵子扬AVR104:缓存和中断方式EEPROM写入翻译:邵子扬2006年8月18日http://shaoziyang.bloger.com.cnshaoziyang@gmail.com1特点l多字节EEPROM缓存l高效EEPROM访问l缓存访问控制lEEPROM缓存重写2介绍许多应用中使用了AVR单片机内置的EEPROM来保存和恢复参数。存放单个字节到EEPROM的编程时间在3到8.5ms左右,在这个写入时间里写入访问被禁止。传统上是使用查询法来判断EEPROM写入是否完成的,这篇应用笔记介
2、绍一种使用缓存和中断方法,明显的提高了程序的性能,和查询法相比还减少了电源的功耗(在等待期间可以进入休眠模式)。提高性能和降低功耗直接关系到系统。当执行EEPROM写访问查询时,所有资源(除了中断)都被查询所占用,而中断法在“等待”EEPROM写入完成中断时,可以将单片机释放出来去执行其它代码。与查询法相比,中断驱动写每字节的EEPROM最多可以释放8.5ms时间–依赖于芯片编程时间和系统时钟频率。3理论AVR单片机既可以通过中断方式也可以通过查询方式写内部的EEPROM,两种方法有各自的优点,但是从执行性能看要选择中断方式。3.1轮询法轮询
3、就是在读写时,查询EEWE状态标志位来保证写周期已经完成。如果写周期还在进行中,单片机将等待并不停检查标志位,直到标志位被清楚后才继续进行。检查自编程是否被激活也是必要的,在需要时,要等待SPM操作完成。如果不使用自编程,可以忽略这个步骤。一旦标志位被清除,就可以启动下一个EEPROM操作了。轮询法的优点是代码紧凑,主要缺点是单片机在等待EEPROM写入时浪费了很多时间。一个典型的单字节写子程序如下:EEPROM_WR:;EEPROMWriteSub-RoutinesbicEECR,EEWE;IfEEWENotClearrjmpEEPROM_
4、WR;WaitLongerSPM_BUSY:;(OmitifSelf-ProgrammingisNotUsed)sbicSPMCR,SPMEN;IfSPMENNotClearrjmpSPM_BUSY;WaitLonger第7页共7页AVR104:缓存和中断方式EEPROM写入翻译:邵子扬outEEARH,r16;OutputAddressByte(High)outEEARL,r17;OutputAddressByte(Low)outEEDR,r18;OutputDataBytecli;DisableGlobalInterruptssbiEEC
5、R,EEMWE;SetMasterWriteEnablesbiEECR,EEWE;SetEEPROMWriteStrobe;Thisinstructiontakesfourclock;cycles.sei;EnableGlobalInterruptsret;ReturnFromSub-Routine1.1中断法在中断驱动法,不需要查询EEWE状态位确定EEPROM写入完成,EEPROM就绪中断是EEWE状态位被清除时触发的。如果使用了自编程,还是需要查询SPMEN状态位的,保证当前没有处于自编程状态。中断驱动法的主要优点是减少了处理器的负荷。
6、如果使用了缓存中断驱动EEPROM访问的效率更高:缓存保存需要写入EEPROM的参数,中断程序从缓存中获取数据。中断复位程序(ISR)的复杂度和写入EEPROM的字节数有关。这个程序对单字节缓存是相对简单的,但是当需要写入多字节时就变得复杂了。为了写入多字节,缓存区需要一个计数变量,用来跟踪当前使用的缓冲区位置。计数器就是缓存索引指针。1.2缓存结构在一个努力简化和增强的多字节写入中断驱动法,在片内SRAM中构造了两个缓冲区。两个缓冲区分别负责缓存地址和数据。Atmega系列最小EEPROM是512字节,这需要2字节标识地址,这样1字节的EE
7、PROM缓存就是3个字节。图1.EEPROM访问的数据和地址LIFO缓存第7页共7页AVR104:缓存和中断方式EEPROM写入翻译:邵子扬1.1.1缓存大小缓存EEPROM写入主要考虑的因素之一是缓冲区的大小。缓冲区大小影响性能,因为需要搜索缓冲区查找EEPROM地址是否已经在缓存中了;如果在就需要在写入时更新,或者在读取时返回其内容。EEPROM也扮演了决定合适缓冲区大小的角色,必须考虑包括EEPROM和EEPROM使用和/或更新的字节数。如果有许多字节在短时间内要写入EEPROM,缓存需要足够大来容纳这些数据。提供一个方法来决定合适的缓
8、存大小超出了这篇文档的范围,缓存大小需要由具体程序来评估,上面介绍过的指导方针可以提供足够帮助来决定合适的缓存大小。1.2缓存结果当缓存内容写入片内EEPROM时,
此文档下载收益归作者所有