カスタマーサポートセンター

FAQ~よくある質問~ | FAQマスタ詳細表示

FAQ詳細情報

ID 10810530
FAQカテゴリ(大) デバイス対応
最終更新日 2013-12-14

質問内容

TN15729: USB 仮想 Comポートを介したシリアル通信

回答内容

対象となるEW: ARM

問題
USBのVirtual Com Port (CDCクラス)でシリアル通信をしていると、WindowsのVirtual Comとの通信が停止し、デバイスマネージャーの画面からも消えてしまう。USBポートは、USBコネクタの抜き差しで再インストールされず、リスタートする前にデバイスの電源をいったん切ってから入れる必要がある。

適用されるターゲット
いまのところ、EWARMのLPC2148、LPC2378、STR750、STR912用にサンプルプロジェクトが作成されています。

助言
USB CDCの規格

コミュニケーション・デバイス・クラス (CDC)の規格は、シリアル・エミュレーションを含み、多くの通信モデルで定義されています。Windowsのドライバ usbser.sysはこの規格に従っています。従って、すでにあるWindowsのusbser.sysを使用するため、組み込み機器もこの規格に従うように設計する必要があります。

CDCの規格は、USB上のシリアルエミュレーションの絶対制御モデルを規定しています。つまり、2つのUSBのインタフェースが必要です。最初の1つは、コミュニケーション・クラス・インタフェースで、1つのIN 割り込みエンドポイントを使います。このインタフェースは、USB RS232エミュレートデバイスからの現在のRS-232の接続状態を知らせるために用いられます。もう1つは、データ・クラス・インタフェースで、1つのOUTバルクエンドポイントとINバルクエンドポイントを使用します。このインタフェースは、実際のRS-232インタフェースで送受されるロー・データを流すために使用されます。

USBを経由するRS-232エミュレーション
Windowのハイパーターミナルプログラムを使用している時の、USBデバイスの物理的または電気的に再接続すると、特定のデバイスにとって新しいドライバ・ハンドラのを割り当てることになります。従って、どの古いハンドルへのパスを持つのアプリケーションにとってもの通信の停止を意味します。ハイパーターミナルには、デバイスを切断する前に接続がハングアップすることは、プログラムが再度COMポートと、正しいドライバハンドラを数え上げることを可能にします。

Windows内の問題の可能性
Windowsが認識しているUSBデバイスがUSBポートを占有しても、ボードとの通信接続はUSBではなく、シリアルデバイスであることです。USBポートがインストールされたことを表すUSBアイコンが表示されないことに気が付くでしょう。これは、USB接続は、実際は、USBのトラフィックをボードで必要なシリアルのトラフィックに変換するデバイスだからです。

デバイスマネージャー
コントロールパネル > システム > デバイスマネージャー > ポート (COMとLPT1)に、ボードへの接続が見えます。
ボードに割り当てられたポートのポート番号は 1 から 8の間であるかもしれません。シリアルデバイスに割り当てられるポート番号を 1~ 4 に割り当てしなおすと、問題が解決する場合もあります。ポート番号は、右クリック > プロパティ > ポートの設定タブを開き、詳細設定ボタンをクリックして、左下のCOMポート番号のドロップダウンリストで変更することができます。マイクロソフトWindowsのナレッジベースには、この問題が続く場合の hot fix の概要が解説されています。 (下のリンクを参照してください。)


全ての製品の名前は、それぞれの所有者の商標または登録商標です。

参考資料URL