ssimple 发表于 2020-7-31 09:15:53

每秒往SD卡写一次数据,SD卡能用多久

硬汉大哥,请教下,用fatfs每秒往SD卡里写一次数据,每次大概200个字节左右,SD卡能用多久

eric2013 发表于 2020-7-31 10:56:37

这个就涉及到一个问题,SD卡自带的控制器管理是否支持擦写均衡处理。带的话时间还能长点。

另外就是一般数据都是往空闲空间里面写的,写满一轮开始下一轮,写个1-2年问题不大。

还有就是买这种专用的卡:

SanDisk推出性能更强的汽车级、工业级SD卡。
http://www.armbbs.cn/forum.php?mod=viewthread&tid=37968&fromuid=58
(出处: 硬汉嵌入式论坛)


ssimple 发表于 2020-7-31 13:00:42

eric2013 发表于 2020-7-31 10:56
这个就涉及到一个问题,SD卡自带的控制器管理是否支持擦写均衡处理。带的话时间还能长点。

另外就是一般 ...

谢谢硬汉哥!

caicaptain2 发表于 2020-8-3 16:55:03

只要不是同一个地址反复的写,比如8G的卡,轮流写,可以写很多年。我们常用是,新建一个文件,然后开始写;文件写道xxMB后,新建一个,继续写。 应该就可以写很多年了。

kokoromi 发表于 2020-9-12 11:25:10

SD卡都有擦写平衡管理,同一个逻辑块对应的物理块都是不停的变换的,容量越大的卡,可变换的物理块越多,写一轮的时间越长,所以选个32G的卡写个10年应该没啥问题。
再一个可以开辟一块缓存,比如写入100个数据到缓存然后再一次性写入SD卡,这样也能较少写入次数。

yqyq 发表于 2021-9-4 00:02:57

caicaptain2 发表于 2020-8-3 16:55
只要不是同一个地址反复的写,比如8G的卡,轮流写,可以写很多年。我们常用是,新建一个文件,然后开始写 ...

最近也在搞这个,但卡在了如何新建文件上,创建文件名不是一个字符串吗,如何一直新建,大佬可以参考下程序吗

eric2013 发表于 2021-9-4 09:22:23

yqyq 发表于 2021-9-4 00:02
最近也在搞这个,但卡在了如何新建文件上,创建文件名不是一个字符串吗,如何一直新建,大佬可以参考下程 ...

字符串可以递增或者使用日期时间做区分

ihavedone 发表于 2022-1-10 14:37:52

在 SD 卡中做一个 log 信息。
log.txt 的每一行都是一样长的,不够的用空格补齐。
第一行放一个数字,表示当前记录了多少条。这个数可以一直累加。
从第二行开始,每行记录一条 log 信息。最多记录10000条,超过最大数量从第二行开始覆盖。

假设 SD 卡可擦鞋 10万次,后面的记录位置要用完擦写次数,就需要1w * 10w 次, 那就是 10 亿次,这个应该够了。
但是第一行是每条记录更新的时候都会更新的,第一行要是写坏了那也一样的废了。。

这里有啥好办法吗?还是说 SD 卡会自动均衡?

eric2013 发表于 2022-1-10 15:47:50

ihavedone 发表于 2022-1-10 14:37
在 SD 卡中做一个 log 信息。
log.txt 的每一行都是一样长的,不够的用空格补齐。
第一行放一个数字,表 ...

这个得咨询下专业设计SD卡,SD卡是自带擦写均衡的。

修改同一个文件不知道有没有均衡效果处理。

ihavedone 发表于 2022-1-10 17:07:31

eric2013 发表于 2022-1-10 15:47
这个得咨询下专业设计SD卡,SD卡是自带擦写均衡的。

修改同一个文件不知道有没有均衡效果处理。

保险起见,我做一个处理算了。
每次保存后再把刚刚写入的读出来一遍,如果相同就OK。
如果不相同,就把整个文件复制一份,删除原文件,把新文件名改为原名。
再重新更新一次本条记录。这个时候应该是换了个地方存储的,又可以来个几万次。
:lol

eric2013 发表于 2022-1-11 08:14:05

ihavedone 发表于 2022-1-10 17:07
保险起见,我做一个处理算了。
每次保存后再把刚刚写入的读出来一遍,如果相同就OK。
如果不相同,就把 ...

那直接裸机操作扇区得了,简单省事。

ihavedone 发表于 2022-1-11 09:37:53

eric2013 发表于 2022-1-11 08:14
那直接裸机操作扇区得了,简单省事。

这个卡有时候也需要拔出来插到电脑上看的,也是没办法:dizzy:
页: [1]
查看完整版本: 每秒往SD卡写一次数据,SD卡能用多久