您好,请问一下,EEPROM有写入的寿命,但如果我写入的都是同样的值会减少其寿命吗?(在实际中是我有一块控制仪表,通过RS485通讯不断的向内部的参数进行写入操作,一秒钟写入一次,但大多数情况下写入的都是相同的数值,想问一下写相同的数据会对参数的存储单元造成损坏吗?)
补充:看了一下仪表的存储单元型号为 24C04RP
会影响寿命
如果你每次写入的数据大多数是相同的,可以想办法不写这个数。可以先读出来这个数,与要写的数做比较,不同再写。这样就不影响寿命了
理论上寿命是肯定影响的,但很多时候轮询的485通讯都是直接读写的,轮询周期都在1s内,在实际应用中,我们调试完成后正常运行的设备只是偶尔有反馈说通讯中断,大部分都一直正常,几年了也没问题,而且问题较多的也是通讯端口损坏,一般不考虑eeprom的问题。当然,能尽量减少写入是最好的。
这里没有cache的概念。 有2种方式可以试试
1种是 在内存里面设置一个缓存,如果不一样才刷新EEPROM
2种是 先读取EEPROM的值,在内存中比较值是否一样,不一样才刷新EEPROM, 只是读取EEPROM会好很多
它这个不像emmc、sd会有缓冲区,到了一定的情况才会从写入存储介质中,频繁写入会降低寿命。
如果是单纯写入,不管写入的是否相同,并不会影响寿命,影响寿命的是擦除操作。
所以有种节约寿命的计数做法是,先擦除,然后一次改一个bit(1改为0)
1.多分几个区,数据最开始存在1区,写入后读出判断读出对比是否写入正常,异常就换其他区写。
2.每次写入前也和eeprom的数据判断一下,一致就不用写了,不一致才写入。eeprom写个10~20万次就容易出问题了
你的频繁操作的次数与影响寿命的限制次数不是一个数量级的,差好多级。没事的。
正常运行的数据是在plc的ram中的。
一秒写满一次吗,不写满只是写一部分数据的话换着地址写好一些