我正在开发使用 Microchip MDDFS 库将数据存储到 SD 卡的设备。记录器将以每分钟 1 个条目(56 字节)的最大速率记录数据。问题是设备可能随时断电,可能是在写入序列的中间。我想知道保护我的数据免受损坏的最佳方法是什么。我发现如果在断电时打开文件,则在上次关闭文件后写入文件的所有数据都会丢失。我不知道如果在写入序列的中间断电,是否也是如此。
由于写入过程不经常发生,我可以打开文件,写入数据,然后关闭文件,每次记录数据。这种方法会随着时间的推移损坏 SD 卡吗?
另一种方法可能是保持文件打开,但在每 10 或 50 次写入后,我可以关闭文件然后重新打开它。
我也可以在内存中缓冲数据,然后偶尔刷新数据,可能在一个 kbyte 左右之后。
我的最后一个想法是,在我的电路中,我可以添加一个大电容器,以便在断开电源后足够长的时间为我的 pic/sd 卡供电以快速关闭文件。这种方法的问题是关闭文件和/或保存数据所需的时间非常不一致。据我了解,这个时间可能非常取决于文件所在的闪存页面中的当前位置。
无论如何,你们有什么建议?