1 前言
早期的汽车 ECU 使用存储器(ROM)存程序代码和数据。这些 ROM 芯片一旦编程就无法修改,需要更换整个芯片才能更新程序。这种方式很不方便,因为需要大量的替换工作。
随着 EEPROM 的引入,ECU 变得更加灵活,因为它们可以在不更换芯片的情况下重新编程。这使得汽车制造商可以更轻松地更新 ECU 的程序代码和数据,以改进汽车性能、增加新的功能和修复问题。总之,EEPROM 在汽车电子控制单元的演进中发挥了重要作用,它提高了 ECU 的灵活性和可维护性,并促进了汽车技术的发展。
本文的 E3110 开发板就使用了 EEPROM_M24M02-DR 芯片,本文旨在通过 E3110 开发板所需 EEPROM 外设做一个简单的介绍。
2 EEPROM 简介
EEPROM 内部的存储单元是由一组非易失性存储单元(NVM)组成的。每个存储单元都是由一个晶体管和一个电容器组成。晶体管用于控制电容器的导通状态,从而实现存储和读取数据。
与普通的只读存储器(ROM)不同,EEPROM 允许在其内部存储器中进行编程和擦除操作,这些操作可以通过电子信号进行,而不需要物理地更改芯片。EEPROM 存储器通常用于存储小量数据,例如在计算机、电子仪器、智能卡和一些家用电器中存储系统配置信息或用户数据等。它们的易编程特性使得 EEPROM 成为一种非常有用的存储器类型。
2.1 EEPROM 工作原理
EEPROM 的工作原理是通过施加电场来改变内部存储器单元的物理状态,以实现数据的存储和读取。EEPROM 具有以下特性:
1、非易失性存储:EEPROM 存储器是一种非易失性存储,内部存储的数据不受电源断电影响,可保证数据的长期稳定性和可用性。
2、可擦写:与只读存储器(ROM)相比,EEPROM 存储器内部存储的数据可以被擦除和重写。它允许在调试、测试和更新设备时对存储器中的数据进行修改。
3、可编程性:EEPROM 存储器可以通过编程工具编程,支持编程数据、代码、配置等特定信息,可为设备带来更高的灵活性和可配置性。
4、读写速度较慢:EEPROM 存储器内部需要进行编程、擦除操作,速度较传统 RAM 存储器慢,一般适用于需要存储更少的数据且存取速度比较慢的场合。
5、低功耗:EEPROM 存储器在典型操作中消耗的功率较小,可减少对电池和电能的消耗,适合于长期低功耗设备。
6、寿命有限:EEPROM 存储器的写入擦除寿命是有限的,常见的寿命约在 10 万次左右,超过寿命后会出现不可靠的故障现象。
总的来说,EEPROM 存储器具有非易失性、可擦写、可编程等特点,能为设备提供重要的数据存储支持,同时也需要注意其寿命和读写速度的问题。
2.2 EEPROM 常用接口
EEPROM 常用接口有以下四种,分别是:
I2C(Inter-Integrated Circuit)接口:I2C 是最常见的 EEPROM 接口之一,由 NXP 公司推出。它使用两根线(SCL 和 SDA)进行数据传输,基于 I2C 接口的 EEPROM 存储器一般具有低功耗、小尺寸、数据读写快捷、简单易用等特点。通常被应用于智能手机、音频设备等嵌入式系统中。
SPI(Serial Peripheral Interface)接口:SPI 接口是一种使用快速串行通信协议的 EEPROM 接口,该接口需要 3 根线,分别是数据线(MOSI)、时钟线(SCK)和从器件选择线(SS),能以高达 100MHz 的速率传输数据。SPI 接口具有操作简单、高速传输和低功耗等优点。
Microwire(3-Wire)接口:Microwire 是一种由 National Semiconductor 公司研发的 EEPROM 存储器接口,具有高性能、低功耗、封装更小等特点。
Parallel 接口:Parallel 接口是一种并行接口,每个存储器单元都有自己的地址线和数据总线。它的主要优点是高速、处理器不需要转换数据等。
以上接口各有其优缺点,在不同的应用场景下可以根据需要选择不同的接口类型。无论是哪种类型的 EEPROM 接口,都需要根据具体的接口规范来接线和驱动 EEPROM 存储器的操作。
2.3 EEPROM 写入操作
在进行写入操作时,EEPROM 会在存储单元的晶体管和电容器之间形成一个电场,从而改变电容器的电荷状态。EEPROM 写入操作是将数据写入 EEPROM 存储器中的过程。这个写入工程也称为编程。EEPROM 写入操作的基本步骤如下:
1、确定需要写入的数据和数据存储的地址。
2、选择使用的写入模式-随机存取(Random Access)模式或字节模式(Byte-Program Mode)。
3、将数据存储到一个缓存寄存器中。
4、使用写入延迟(Write-Enable Delay)等待 EEPROM 内部的存储单元准备好写入数据。
5、发送写命令(Write Command),将缓存寄存器中的数据写入 EEPROM 存储器中。
6、等待写操作结束。
7、可以通过读取刚刚写入的数据,以确保 EEPROM 写入操作的正确性和有效性。
EEPROM 写入操作可以采用多种方式。其中一种常用的方法是使用专门的 EEPROM 编程器来完成。通过调用编程器的相关 API 接口,程序员可以完成 EEPROM 写入操作。还有一些微控制器具有内置的 EEPROM 存储器,程序员可以通过对内置 EEPROM 存储器的访问来实现 EEPROM 写入操作。
为了保持数据的长期存储,EEPROM 使用了一种称为“隧道注入”的技术。当电荷被写入到电容器中时,它会进入到一个细小的隧道中,并在隧道的壁上留下氧化物。由于氧化物是不易通电的,它可以在电容器中长期存储电荷。
需要注意的是,EEPROM 每次写入时都会改变存储单元的物理状态,这意味着它的使用寿命是有限的。通常情况下,EEPROM 的使用寿命可以达到 10 万次到 100 万次的写入操作。因此,在设计 EEPROM 应用程序时需要考虑到其使用寿命。
2.4 EEPROM 读写操作
在进行读取操作时,EEPROM 会将存储单元的电容器放电,然后测量存储单元中的电压。这个过程称为读取。EEPROM 读写操作的基本步骤如下:
一、EEPROM 读的操作步骤:
1、将读取数据的地址信息写入到 EEPROM 的地址寄存器中。
2、写入一个读信号,以使 EEPROM 将数据从指定地址中输出到数据输出寄存器。
3、从数据输出寄存器中读取数据。
二、EEPROM 写的操作步骤:
1、把需要写入 EEPROM 的数据、地址信息及写入标志位写入到各自对应的寄存器。
2、写一个写使能信号,以使 EEPROM 将数据从写入寄存器中写入到指定地址的存储单元中。
3、等待 EEPROM 写操作完成。
需要注意的是,EEPROM 的擦写次数是有限的,因此在进行 EEPROM 写操作时需要谨慎处理,以免频繁写入导致 EEPROM 寿命过早耗尽。
3 E3110 开发板的 EEPROM 方案设计
E3110 开发板的 EEPROM 方案主要是为了方便软件工程师写入/读取数据而进行设计的,考虑到 EEPROM 在掉电后存储数据也不丢失,同时 EEPROM 是常用的 IIC 通信协议元件。在 E3110 开发板的设计上,我选择使用了 ST 公司的 EEPROM_ M24M02-DR 这颗芯片。
3.1 M24M02-DR 简介
M24M02-DR 是一种 2Mbit I2C 兼容 EEPROM(电可擦除可编程存储器)。M24M02-DR 的特性如下:
兼容所有I2C总线模式 |
1 MHz |
400 kHz | |
100 kHz | |
内存阵列 |
2 Mbit(256 Kbyte)的EEPROM |
页面大小:256字节 | |
附加可写入锁定页面 | |
单电源电压 |
-40°C/+85°C时为-1.8 V至5.5 V |
写入 |
–10毫秒内的字节写入 |
–10毫秒内写入页面 | |
随机和顺序读取模式 | |
整个存储器阵列的写保护 | |
增强的ESD/闩锁保护 | |
超过400万个写入周期 | |
超过200年的数据保留期 | |
封装 |
SOIC-8 |
表3-1 M24M02-DR 特性
3.2 M24M02_DR 管脚解析
E3110 开发板的 EEPROM_M24M02-DR 选用的是 SO8 的一个封装,芯片共有 8 个管脚及相对应的管脚功能。
图3-2 M24M02-DR 封装图
引脚号 |
引脚名称 |
功能说明 |
1 |
DU |
不使用,此引脚上不加任何信号; |
2 |
DU | |
3 |
E2 |
该输入信号用于设置要在7位器件选择Bit b3上查找的值。该输入必须连接到VCC或VSS,以建立设备选择代码。未连接时(左浮动),此输入读取为低0。 |
4 |
VSS |
VSS接地。 |
5 |
VCC |
在选择存储器并向其发出指令之前,必须在指定[VCC(min),VCC(max)]范围内施加有效且稳定的 VCC 电压(见第8节:直流和交流参数中的操作条件)。为了确保稳定的直流电源电压,建议使用靠近VCC/VSS封装引脚的合适电容器(通常为10 nF至100 nF的数量级)将VCC线去耦。该电压必须保持稳定和有效,直到指令传输结束,对于写入指令,直到内部写入周期(tW)完成。 |
6 |
WC |
该输入信号对于保护存储器的整个内容免受无意的写入操作是有用的。当写入控制(WC)被驱动为高时,对整个存储器阵列的写入操作被禁用。当写入控制(WC)被驱动为低电平或左浮动时,写入操作被启用。当写入控制(WC)被驱动为高时,设备选择和地址字节被确认,数据字节不被确认。 |
7 |
SCL |
SCL 串行时钟输入加在 SCL 输入上的信号用于选通 SDA 上可用的数据(in)和输出 SDA 上的数据(out)。 |
8 |
SDA |
SDA 串行数据输入/输出,用于将数据传输到设备中或从设备中传输数据的输入/输出。SDA(out)是一种漏极开路输出,可以与总线上的其他漏极开路或集电极开路信号进行线-OR 连接。必须连接上拉电阻器。 |
表3-3表 M24M02_DR 管脚解析
3.3 E3110 开发板原理图
基于 E3110 开发板的 EEPROM 设计原理图,根据 M24M02_DR 的各管脚定义,绘制了如下原理图,VCC_3V3 从 SBC FS5600 的 BUCK 电压给到 EEPROM 进行供电,SCL/SDA 上拉并同时链接到 E3110 芯片的 GPIO 复用接口。
图3-4 EERPOM_ M24M02-DR 原理图
如对此有更多需求,敬请联系世平集团 ATU 部门,atu.cn@wpi-group.com。
4 参考文献
[1] 《EEPROM 数据存储及应用》洪涛 著,机械工业出版社,2012 年.
[2] 参考【M24M02-DR 数据手册】.
欢迎在博文下方留言评论,我们会及时回复您的问题。如有更多需求,欢迎联系大联大世平集团 ATU 部门:atu.sh@wpi-group.com
作者:Sandy Yang / 杨羽洁
更多资讯,请扫码关注我们!:
评论