Darkside(https対応しました)

2014年12月13日の記事

2014年12月13日(土) 18:12

ログを取りたい

 飛行ログをSDカードに書き込むのは、断念するしかないとの結論に至った。
 しかし、ふと思い付いた。別に大容量メモリーを外付けしたらどうか?
 バッテリーバックアップなど無くてもいいから、高速のメモリーを外付け。飛行ログをそこに書き込む。そして着陸後に内容をSDカードにまとめて書き出せば良い。これならSDカードの扱い易さをキープしたまま、飛行ログを残せる。

 市販マルチローターには、飛行ログを残す機能などない。そんなものあったとしても、役に立たない。センサーや受信器の生データーが取得できて、飛行制御プログラムもソースリストを持っている・・・そんなDIY機でないと、飛行ログを役立てることはできない。
 しかし逆にDIY機の場合、飛行ログの価値は極めて大きい。空モノには原因不明の墜落が付き物と考えておくべきだし、保険加入も困難。となれば、墜落や想定外の挙動が発生した際に、原因を確定できるかどうかは決定的な問題である。最近のクルマにはドライブレコーダーが珍しくないが、それと似たようなものである。DIY機なら、詳細なデーターが取れる。処理はデジタルなので、直前までの状況が残っていれば事故の再現が可能だ。つまり、原因も調査できる。

 飛行ログの価値は、恐らく想像以上に大きい。DIY機において、飛行ログを取っているかどうかで、大変な差が出るのではないか。
 ここは何としても、飛行ログを取る方法を探るべきだ。

 センサーの生データーや受信器データー、それに付随する情報などひっくるめて100バイトあれば足りるだろう。
 1秒に6Kバイト。1分で360Kバイト。まあざっと2Mビット強か。飛行時間を考えると、最低でも16Mビットは欲しい。できれば32Mビット以上。
 そこで、16MビットのSRAMを調べると、ネックは48ピン以上になる点。大量のI/Oピンが必要なので、直結は無理でコントローラー用のICを介在させねばなるまい。ちょっと現実的ではない。そこまでするなら、シリアル接続のSRAMを使うべきだ。最近は、SPI通信でアクセス可能なSRAMが売られているはず。
 だが、シリアルSRAMは容量1Mバイトまでしかない。僅かに2Mバイトのものもあるが、それでも8個以上を使わねばならない。信号線が少なく実装の容易なシリアルRAMなのに、8個も使ったのではメリットがスポイルされる。価格だって万単位になる。

 SRAMと違って不揮発性にFRAMというのも出ているが、SRAMより更に高価。容量も大きいのがなく、採用は無理。
 4Mビット品も存在するが、個人で購入可能かどうかは不明。できたとしても、4個以上必要なのでそれほど事態は好転しない。

 こうして辿り着いたのが、シリアル・フラッシュ・メモリーである。
 をいをいSDカードを諦めたのに、またフラッシュメモリーを採用してどうするの?
 そう自分だって思ったが、SDカードの場合はフラッシュメモリにSDカード規格とファイルシステムという皮がかぶさっている。だからハンドリングが良いのだが、反面アクセス時間が不確定になっている。素のフラッシュメモリーに直接アクセスすれば、処理が単純になりアクセス時間も保証し易い。問題になっているのは、書き込み時間である。

 飛行していないメンテナンス時に、フラッシュの内容を読み出してSDカードに保存する。その後で、フラッシュまるごと消去する。これで、次の飛行時はフラッシュの物理アドレスを指定してひたすら書き込めば良い。消去無しの書き込み1回だから、想定外に長時間掛かることはまずないはず。アクセスも錯綜せず1回だけなので、書き込み待ちの間にSTM32は別の処理ができる。
 消去と書き込みは、飛行回数と同じ。となれば、フラッシュの寿命も問題ではない。業務で酷使するなら別だが、趣味のマルチローターで寿命が来る心配はないだろう。
 ファイルシステムが介在しないためファイルのクローズという概念もなく、電源が絶たれてもそれまでに書き込んだログは残っている。これも大きなメリットである。シリアルSRAMでは、電源が切れたら内容も消えてしまう。

written by higashino [マルチローター] [この記事のURL] [コメントを書く] [コメント(3)] [TB(0)]

この記事へのトラックバックPingURL
Darkside(https対応しました)

Generated by MySketch GE 1.4.1

Remodelling origin is MySketch 2.7.4