积分规则 网站地图 帮助中心    
嵌入式软件 单 片 机 DSP 存储器 传感控制 光电显示
嵌入式硬件 CPLD/FPGA SOPC AD/DA 接口电路 模拟设计
I C设计 通信产品 汽车电子 电源产品 消费电子 数控系统
工业控制 军工/航天 安防产品 医疗电子 计算机外设 测试测量
供应 I C
求购 公司库

  IC 求购 销售 公司 论文 DATASHEET 参考设计 论坛
当前位置: 电子技术 >> 存储器 >> 应用论文
  相关分类: 相关文章 | 应用论文 | 新产品 | 下载 |
I2C串行EEPROM应用系统的健壮性设计
 
作者:汪社民 李毅成   来源:单片机与嵌入式系统应用    点击数:363   更新时间:2008-3-27
您可以添加到网摘 让更多人关注此文章:

    

引言


  在嵌入式控制系统中,通常要用到非易失性存储器。无论是掉电时维持需要保存的设置,还是存储重要记录,可靠的非易失性存储器都是一种理想的选择。非易失性存储常常采用外部串行存储器来实现,其中I2C接口产品是最常用的一种类型。然而,这种产品和其他EEPROM存储器一样,在使用时也存在着一些条件会潜在地导致其产生某些非标准的甚至是错误的操作。因此在进行I2C串行EEPROM存储器的应用设计时,除了应考虑数据手册规范之外,还必须考虑更多的因素,这样才能实现更健壮的总体设计,确保系统具有优良的质量特性。


1 防意外写措施


  器件在上电/掉电期间或者SDA/SCL线的噪声过大时都有可能导致意外写操作。为了解决这一问题,一方面需要使用去耦电容(容量通常为0.1 μF)来帮助滤除VCC上的纹波,另一方面则可以通过写保护措施来防止对器件的非法访问。


  对于具有硬件写保护功能的器件,既可以将其WP引脚连接到VCC来保护整个阵列,也可以将其WP引脚连接到VSS来放弃写保护。通常用户可以将 WP引脚连接到微控制器的一根I/O口线上,并在该引脚与VCC间连接一个上拉电阻,这样就可确保器件在平时处于写保护状态;但是要启动写周期,WP引脚必须首先被驱动为逻辑0。注意,WP引脚不能悬空,否则器件将无法正常工作。


  对于无写保护功能的器件,则可以利用一个电子开关对其SDA引脚与微控制器之间的连接进行通断控制来实现写保护。平常不访问器件时,切断它们的连接;仅在需要对器件实施读/写操作时才接通。


2  数据完整性保护措施


  在整个写周期内(对于大多数器件而言,通常最大为5 ms),必须将VCC维持在最小工作电压以上。如果此时VCC掉电或降到最小电压以下,则无论时间长短,均无法确保被写页面的数据完整性,可能导致编程数据的不正确。此外,由于无法对EEPROM单元进行完全编程,器件的数据保留时间会比数据手册中规定的时间短。对于写周期内电源故障所导致的这些问题,通常可以在软件上采取相应的保护措施来加以解决。基于事物的提交—回退机制[1]就是一种典型的解决方案。可以证明,当EEPROM存储器应用系统采用该机制后,无论电源何时掉电或微控制器何时被复位,EEPROM存储子系统都可保持数据的完整性。


(1)  提交—回退机制的建立


  提交—回退机制的建立包括两方面的内容:一方面是定义EEPROM存储器的逻辑结构;另一方面是构造对存储子系统进行访问、检查和错误清理的接口函数。该机制将EEPROM存储器划分为主存储区、校验存储区和缓存区3个部分。其中主存储区用于存放用户数据;校验存储区用于存放主存储区每个页面的 CRC校验码,且该区中每一页的最后一个CRC用于校验本页数据;缓存区包括多个写缓存,每个写缓存包含4个域——数据域、地址域、状态域和16位CRC 域。数据域用于临时存放写函数写入的数据页面,执行下一个提交命令时,该数据页面将从缓存区传送到主存储区。地址域表示缓存数据要写入的页面地址;状态域表示缓存的状态,包括可用(available)、占用(occupied)和终止(expired)状态;16位CRC域用来校验整个写缓存。


  该机制提供了6个接口函数:读、写、提交、回退、检查和清理。


  ①  读函数。接收1个页面编号和1个用于存放待读出数据的暂存区指针。如果暂存区指针和页面编号处于有效范围内,程序就会将指定的页面数据读入暂存区,并校验数据的有效性。该函数会返回如下状态之一:有效读(valid read)、无效读(invalid read)、无效暂存区地址(invalid buffer address)、无效页面编号(invalid page number)或保护失败(protection failure)。
  ②  写函数。接收1个页面编号和1个指向填好数据的暂存区指针。如果暂存区指针和页面编号处于有效范围内,程序就会将数据写入非易失性缓存,并标记缓存状态以准备提交。
  ③  提交和回退函数。提交和回退函数是可以在运行写函数之后执行的互补型操作。提交函数将最近被写入缓存的数据复制到存储区中的对应位置,并为下一个待写入的数据页面准备好缓存结构。回退函数实际上就是一个“取消”操作,它消除最近一次执行写函数产生的效果,并为下一个写操作准备好缓存子系统。
  ④  检查函数。读取存储器件的每个数据页面,并检查存储数据的有效性。该函数还检查缓存子系统,以确保没有未执行的写操作。任何无效页面或未执行的写操作都会使检查函数返回一个错误状态。
  ⑤  清理函数。修复一个数据损坏的EEPROM。实际上,它将试图找出发生的错误,并采取相应的解决措施。


(2)  提交—回退机制的应用


  读操作:调用读函数来实现。


  更新主存储区数据操作:先调用写函数再调用提交函数来完成。主存储区只有在完成一个提交操作后才更新数据,而不是在一个写操作之后更新的。


  异常处理:在任何一个可能破坏EEPROM写周期的事件之后(例如上电之后),都将首先执行校验/清理函数。检查函数将检验存储系统的可用性,并报告任何发现的错误;清理函数将根据检查函数返回的错误代码解决EEPROM系统存在的任何问题。在清理操作退出时,无论EEPROM子系统先前是何种状态,都应该可以继续使用。


[1] [2]  下一页



相关文章
· DSP专业存储器-WEDC中国代理[17]
· 基于PLD的视频接口的技术构成与应用设计[31]
· 无线遥控LED时钟屏的设计[42]
· AVR内部EEPROM读写范例[67]
· 快速创建存储器接口的设计[116]
热门评论排行
·VHDL设计中电路简化问题的
·江苏嵌入式Linux教育培训
·锐极LINUX驱动培训班定于
·基于实时操作系统μC/OS-
·ARM处理器应用开发4步骤

文章评论
    没有任何评论
*只显示最新10条评论。评论内容只代表网友观点,与本站立场无关。更多评论
发表评论
  * 请先[登陆]再进行评论,谢谢。
评分: 1分 2分 3分 4分 5分
内容: *
发帖须知:
一.所发文章必须遵守《互联网电子公告服务管理规定》;
二.严禁发布供求代理信息,公司介绍,产品信息等广告宣传信息;
三.严禁恶意重复发帖;
四.严禁对个人,实体,民族,国家等进行漫骂,污蔑,诽谤。
 
热点新闻 [更多]
 
各种冲值卡批发销售!独家特价!
特价销售GPS车载导航系统!
数字电视批发销售!你想不到的价格!
品牌相机批发销售!你想不到的价格!
品牌手机批发销售!你想不到的价格!
笔记本电脑批发销售!你想不到的价格!
那一年我做了鸭子2
那一年我做了鸭子1
等你十年(下)
等你十年(上)
 
热门下载 [更多]
 
[ ] 手把手学单片机20个例
[ ] 单片机做的智能台灯
[ ] 单片机入门书
[ ] linux系统移植开发文档
[ ] IC卡的读写程序
[ ] 8051单片机C语言彻底应用
[ 常用软件] 555定时器电路设计软件V1.2
[ 常用软件] 51定时器计算软件
[ ] ARM处理器应用开发4步骤
[ ] 实用电源电路集锦
 
论坛新帖 [更多]
 
新店开业,部分开发板&元器件特...
[原创]VB编程RS232串口...
红外摄像机控制故障分析与处理方...
红外防水摄像机在智能视频监控中...
步进电机不用驱动芯片能驱动吗?...
我要选一块双串口,带AD的单片...
[分享]运放和功放的区别是什么...
4×4矩阵式键盘的课程设计...
做过高速信号滤波的高手帮忙...
做视频信号放大器,各位有什么好...

 
赞助商 [更多]
 


ICP许可证号:[粤 05056597]
联系电话:010-82517432 82517615 传真: 010-82517615

版权所有 Copyright © 2006 嵌入式技术网