電子書籍の厳選無料作品が豊富!

SDカードへの書き込み方法について
温度計測機器を作成しました。
2チャンネルLED温度計キットとFT4232H(4ch)高速USB シリアル変換モジュールキットを
使って、データロガーしています。しかし、パソコンと接続しないとデータ取得できませんので、
SDカードに記憶するように変更したいのですが、
どのような機器を購入して良いのかわかりません。
ご教示いただければ幸いです。

A 回答 (2件)

2チャンネルLED温度計キット。


http://strawberry-linux.com/catalog/items?code=1 …
FT4232H(4ch)高速USB シリアル変換モジュールキット。
http://strawberry-linux.com/catalog/items?code=5 …

パソコンがこのシステムのデータ入力端末になっている場合、少なくとも代わりとなる、ライトやリードを指示するものが無ければ、SDカードへの書き込みができません。"SDカードに記憶するように変更したい"という要求を実現するためには、何らかのコンピュータが必要です。

従って、下記のようなSDカードにリード・ライトするものを持ってきても、直結できませんから(単に信号を伝達するだけです)、上位に書き込みのコマンドをサポートする機能を持たせるか、間にマイコンを入れてプログラミングする必要があります。
http://park11.wakwak.com/~microtechnica/cgi-bin/ …

結局、現実的には、パソコンを使わなくとも書き込みにはマイコン(コマンドが固定で良ければPLDなどが使えるかも知れません)が必要になります。
http://ja.wikipedia.org/wiki/%E3%83%97%E3%83%AD% …
    • good
    • 0
この回答へのお礼

参考になりました。

ありがとうございました。

お礼日時:2011/10/01 02:57

SDカードに記録、と言うのは単純ですが、中身はかなり複雑です。



PCで直接読めるSDカードというのは、ファイルシステム(FAT/FAT32/NTFS等)でフォーマットされています。

そしてそこにファイルを作るというのは、今現在記録されているファイルシステムの整合性を壊さないように、ファイル領域を確保し、ファイル名・ファイル長をインデックスに書き込み、ファイル内容をセクタに書いていく、ということになります。
そしてデータが増えてファイルを大きくするという作業も、また上記領域をそれぞれ書き換えて、データをセクタに書き込んでいく、やはり整合性を崩さないように……と。
ファイル一ついじるにも、相当慎重に各データを書き込んでいかなければなりません。

その昔、それを担当していたのが「DOS = Disk Operating System 」でした。DOSのおかげで、プログラムは「何バイトのデータをこのファイルに追加してくれ」とシステムコールすれば、OSが書き込んでくれたのです。

しかし、その様なキットでは、そのDOSにあたる部分から作り込まなくてはならないことになります。

----

SDカードをフォーマットせず、単に不揮発メモリとして使うなら、もう少し簡単になります。

例えば、1セクタ512バイトの中を、日付8バイト・時刻4バイト・データ1 2バイト・データ2 2バイト と記録していく、などと決め、セクタに直接データを書き込んでいきます。

でも、これをPC側で見ると、通常のファイルシステムは存在しないため、「未フォーマット」のディスクであるとしか見えません。

でも、直接セクタを読み書きするプログラムを作り、取り出したセクタのデータから、上で決めた規則通りにデータを取り出していけば、無事データを取り出せることになります。

----

SDカードのキットを探してみて、こちらのページが出ました。
http://www.microtechnica.net/

中央付近にSDカード実装ボードがありますが、それを制御するためのPICマイコン本体と、プログラミングも必要になります。
これで、先ほどのDOSのようなものを実装すれば、PCで直接読めるようにSD書き込みが出来るかもしれません。

ファイルシステムはFAT(FAT16)のみ、従ってメモリカードは2GBまで、とすれば、多少ハードルは下がると思いますが…。

参考:FAT (File Allocation Table)
http://ja.wikipedia.org/wiki/File_Allocation_Table
    • good
    • 0
この回答へのお礼

参考になりました。

ありがとうございました。

お礼日時:2011/10/01 03:08

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!