• 締切済み

USB-CDC通信する場合のパケットサイズについて

表題の件ですが、、、 ある機器とUSBで接続すると、デバイスマネージャとしては、「COMポート」と認識します。 この状態で、COM通信を行いたいのですが、、、、 1パケットあたりの最大サイズはどうなるのでしょうか? COMであれば、上限はバッファで割り当てられたサイズ(機器/PCで)になるのかと思うのですが、、、 PC:Windows7 機器:LinuxOS(組み込み) CDC Driver:Windows標準 、、、機器側は、標準と聞いていますが不明。。(ttyGSと書いてあった) 自分で試している分では、なぜか512Byte以上のデータを転送(WriteFile)をすると、受け取り側(機器)で512Byte以上読めない(ReadFileで読み出せない)ように見えます。 USB-CDCの場合は、1パケットの上限が決まっていたりしますか? (10MB程度のデータ転送を行う必要も有り、1パケットあたりの転送量が少ないと転送効率が悪いと思うので、改善したいのが目的です。ヘッダが20Byteは必要なので、、、) COM通信に見えて、USBのBulk転送の制約があるのかな・・???? 知っている人がいましたら、ご教授願いたいと思います。 申し訳ありませんが、協力を宜しくお願いします。 一部のHPでは、USBのBluk転送が1パケット512Byteと書いてあるところもありました。

みんなの回答

  • nak777r
  • ベストアンサー率36% (49/136)
回答No.1

COMポートと認識しているという事はシリアル通信ですよね シリアル通信自体に、パケットという概念はありません 簡単に言うとOPENさえしていればデータが垂れ流しで延々と 届いても良い通信規格です 質問内容は、機器の仕様になると思いますので その機器のメーカーに問い合わせてください

junjun039
質問者

お礼

回答ありがとうございます。 機器側にはUSB-RS232Cにハード的に変換していないので、 Linux組み込みの中で制約が入っているって感じなのかな? ネットで見てもよくわからないんですよね。 (CDC-ACMが該当するような感じがするのですが、いまいち理解出来ていないです) CDC-ACMとシリアルポートは違うのでしょうか???

関連するQ&A

専門家に質問してみよう