Microchip MDDFSライブラリを使用してデータをSDカードに保存するデバイスで作業しています。ロガーは、毎分1エントリー(56バイト)の最大速度でデータを記録します。問題は、潜在的に書き込みシーケンスの途中で、デバイスの電源が失われる可能性があることです。破損からデータを保護する最善の方法は何だろうと思っています。電源が切れたときにファイルが開いていると、最後のファイルを閉じた後にファイルに書き込まれたすべてのデータが失われることがわかりました。書き込みシーケンスの途中で電力が失われた場合、同じことが当てはまるかどうかはわかりません。
書き込み手順はあまり頻繁に行われないため、データが記録されるたびに、ファイルを開いてデータを書き込んでからファイルを閉じることができました。このアプローチは、時間の経過とともにsdカードに損傷を与えますか?
別のアプローチとしては、ファイルを開いたままにすることもできますが、10回または50回書き込みを行うたびに、ファイルを閉じてから再度開くことができます。
また、メモリにデータをバッファリングし、場合によってはキロバイト程度でデータをフラッシュすることもできます。
私の最後のアイデアは、回路に大きなコンデンサを追加して、電源が切断されてからすぐにファイルを閉じるために十分な時間、pic / sdカードに電力を供給することでした。このアプローチの問題は、ファイルを閉じたりデータを保存するのにかかる時間が非常に一貫していないことです。私の理解では、この時間は、ファイルが存在するフラッシュページの現在の場所に大きく依存します。
とにかく、皆さんは何を提案しますか?