PICでアナログ値を取得し、データをそのままPCに転送し出力する。
もしくは、得られたデータを一度SDカードなどにためて、その後一度にPCに転送する。
このPICとPCのインターフェースにUSBを使いたいのですが、
どのクラスを使うのが最適なのかわかりません。
CDCクラス、Genericクラス、HIDクラスのどれでも可能な気がするのですが、
それぞれを使った時の良い点悪い点などありましたら教えてください。
また、CDCは仮想COMポートと本に書かれていたのですが、どういう意味でしょうか?
ご存知の方、教えてください。
No.2ベストアンサー
- 回答日時:
1、ドライバを作りたくないならどれかのクラスを使えばよいということでしょうか?
大量データの転送及びデータの欠如を考慮するとStrageクラスがいいと思いますが
大変だと思います。
PC側はただのDISKに見えるので、ファイルをコピーするようにデータがとれますが
ボード側は、Strageクラスに見えるようなディスクリプタ、SCSI/IDEのどちらかの対応
ファイルシステムの組み込みとなるので・・・
実際には私もやったことがないので、その他にも実装しなければならないことが
あるかもしれません。
2、RS232Cの代わりにUSBを使っているということは、RS232CでPCと通信するのと
同じように扱えるということでしょうか。(printfなどの関数で通信できるということ?)
PC側からはCOMで通信できます。ボード側からは、stdin/stdoutが232Cになるように実装
しているのであればprintfが使用できます。でもこれは遅すぎて使えないと思います。
バイナリ転送には向かないので、テキスト化したりすると倍の時間がかかりますし。
やはり、自分たちでI/Fを決めたBULK転送を行い、可能ならドライバをつくる。
ドライバが作れないのであれば、libUSBとかWinUSBなどの汎用ドライバを使用する。
PCはWindowsだと思って書いていますが、libUSBはLinux版もあるらしいです。
No.1
- 回答日時:
CDC/HIDなどの決まったクラスにすると、そのクラスにあった転送を
PICマインコンボード側で実装しなければなりません。
例えばStorageクラス(USBメモリ等)にすると、
BULK IN/OUTを実装して、かつコマンドは
SCSIorATAなどのそのクラスにあったものを実装する必要があります。
その代わりにドライバを作る必要がなくなります。
またHIDクラスにすると、インタラプトIN/OUT転送を実装しなければ
なりません。
ドライバを作れるまたはlibUSBなどフリーのドライバを使うのであれば
その他のクラスとして、自分たちでI/Fを決めて転送した方が簡単だと
思います。通常はBULK転送で行えばいいと思います。
仮想COMがCDCクラスになっていたことは知りませんでしたが
仮想COMとは、以前のPCにはRS232Cのポートがついていたのですが
最近のPCには全くついていません。そのためUSBで接続して
それをCOMポートに見せかけています。
PICマイコンのボードに232Cがついていませんか?
マイコン側からprintfすると232C経由でPCのターミナルソフト(TeraTrem等)に
表示されると思います。
もちろんボードがでの実装が必要です。
この回答への補足
回答ありがとうございます。
もう少し教えていただけると有り難いです。
1、ドライバを作りたくないならどれかのクラスを使えばよいということでしょうか?
2、RS232Cの代わりにUSBを使っているということは、RS232CでPCと通信するのと
同じように扱えるということでしょうか。(printfなどの関数で通信できるということ?)
以上ですが、よろしくお願いします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(パソコン・スマホ・電化製品) iPhoneのデータ移行について 当方は今iPhone8plusを使用していますが、iPhoneには 1 2022/04/17 23:20
- Android(アンドロイド) Aloha Browser でダウンロードしたファイルをPCに転送するには? 1 2022/05/23 18:54
- ドライブ・ストレージ USBメモリの転送速度が異常に遅い... 5 2022/05/03 17:49
- マウス・キーボード 【マルチペアリングのキーボード&マウスのセット】 1 2022/10/30 00:20
- タブレット 1円タブレットを検索していたら2000円くらい 10インチ 中国メーカー不明 おすすめですか? 2 2022/09/24 05:15
- Android(アンドロイド) Googleのファミリーリンクの危険性に気付いてしまったのですが、皆さんの感想を教えてください! 2 2023/05/09 10:01
- その他(パソコン・スマホ・電化製品) ガーミン・ラップ数の保存上限 1 2023/07/13 16:43
- ドライブ・ストレージ ハードディスクのデータ回復について 15 2022/08/22 14:55
- 中古パソコン 中古PCを売る時、OS(Windows11)はどんな状態にするのが親切ですか? 4 2022/12/15 17:08
- ドライブ・ストレージ WindowsパソコンのバックアップとしてNASを導入したいけどセキュリティが不安 9 2023/08/24 15:43
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
java eclipse 型に解決できません
-
どこからも呼ばれていない無意...
-
グローバルIPとプライベートIP...
-
「天声人語」をインターネット...
-
容姿について
-
配列の重複する値とその個数を...
-
自作のクラスファイルがインポ...
-
ポータブル電源を買おうと思う...
-
1 つのヘッダファイルに複数の...
-
ドキュメントクラスの取得方法
-
string formatについて
-
同じパッケージ、クラス名が含...
-
C#で OpenSSLで3DES
-
正規表現を使った小数入力チェ...
-
クラスのプロパティに構造体を...
-
同一パッケージにあるクラスが...
-
Javaでの構造体の構造体のクラ...
-
標準モジュールとクラスモジュ...
-
VBAもしくはVB6:クラスの中で...
-
ネスカフェ エクセラ と UCCク...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
グローバルIPとプライベートIP...
-
配列の重複する値とその個数を...
-
java eclipse 型に解決できません
-
「天声人語」をインターネット...
-
オブジェクト指向プログラミン...
-
同一パッケージにあるクラスが...
-
SQLです教えてくださいお願いし...
-
自作のクラスファイルがインポ...
-
packageとimport の違いって?
-
重複エラーを解決するには
-
1 つのヘッダファイルに複数の...
-
UMLのクラス図はmain()も含むん...
-
main()を持つクラスが2つ以上...
-
3年間同じクラスになる確率
-
河合塾のクラス分けについて
-
EclipseでJSPのコンパイルエラー
-
どこからも呼ばれていない無意...
-
IPアドレスの3バイト目の呼び方
-
同じクラスにならない確率を教...
-
IPアドレスのクラスAを取得して...
おすすめ情報