Main Content

シリアル ポート インターフェイスのトラブルシューティング

シリアル通信は、2 つ以上のデバイス間での通信に対する低水準のプロトコルです。通常は、デバイスの 1 つはコンピューターで、相手側のデバイスは別のコンピューター、モデム、プリンター、またはオシロスコープやファンクション ジェネレーターなどの科学的機器です。

シリアル ポートは情報を 1 ビットずつ順次に送受信します。これらのバイトはバイナリ形式またはテキスト (ASCII) 形式を使用して送信されます。

多くのシリアル ポート アプリケーションでは、シリアル ポートの仕組みに関する詳しい知識がなくても装置と通信ができます。MATLAB® ワークスペースで作成するシリアル ポート オブジェクトを介して通信が確立されます。

問題

シリアル ポート デバイスとの接続や通信に問題がある場合は、以下のトラブルシューティング手順に従ってください。これらの手順はすべて、シリアル エクスプローラー アプリのトラブルシューティングにも適用されます。

考えられる解決策

サポートされているプラットフォーム

シリアル ポート インターフェイスは以下のプラットフォームでサポートされています。

  • Linux® 64 ビット

  • macOS 64 ビット

  • Microsoft® Windows® 64 ビット

シリアル ポート インターフェイスは MATLAB と同じプラットフォームでサポートされています。現在サポートされているプラットフォームのリストの更新については、MATLAB のシステム要件を参照してください。

メモ

RS-232 は macOS 13 以降ではサポートされていません。

アダプター要件

RS-232 インターフェイス標準をシリアル ポート通信で使用します。長年の間に、コンピューターを周辺デバイスと接続するためのシリアル ポート インターフェイス標準がいくつか開発されてきました。これらの標準には RS-232、RS-422、RS-485 などがあり、これらはすべてシリアル ポート オブジェクトでサポートされています。これらのうち最も広く使用されている標準は RS-232 で、推奨標準番号 232 を意味します。

2 つのデバイスをシリアル ケーブルで接続する必要があります。詳細については、シリアル ケーブルで 2 つのデバイスを接続を参照してください。

シリアル ポートには、"データ信号" と "制御信号" の 2 つの信号タイプがあります。これらの信号タイプとともにシグナル グラウンドをサポートするために、RS-232 標準は 25 のピン接続を定義します。しかし、ほとんどの PC および UNIX® プラットフォームでは 9 ピン接続を使用しています。実際には、3 つのピンだけがシリアル ポート通信に必要とされます。1 つはデータ受信用、もう 1 つはデータ送信用、そして最後の 1 つはシグナル グラウンドです。詳細については、シリアル ポート信号とピン割り当てを参照してください。

構成と接続

  1. 使用するデバイスの適正な計測器ドライバーがインストールされていることを確認します。デバイスのドキュメンテーションとベンダーの Web サイトを参照してください。

  2. デバイスが Instrument Control Toolbox™ でサポートされていることを確認します。Is My Hardware Supported? (Instrument Control Toolbox)を参照してください。

  3. 関数 serialportlist を使用して、MATLAB がシリアル ポートを認識することを確認します。たとえば、コンピューターのシリアル ポートが複数ある場合、出力は次のようになります。

    serialportlist
    ans = 
    
      1×3 string array
    
        "COM1"    "COM3"    "COM4"

    シリアル エクスプローラー アプリを使用している場合は、アプリを起動すると利用可能なシリアル ポートが表示されます。

    Serial Explorer app showing device selection.

    Windows デバイス マネージャーを使用して、利用可能なシリアル ポートのリストを確認することもできます。

    macOS マシンでは、[システムプロファイラ] を使用して、デバイスがシリアル接続として表示されていることを確認します。[システムプロファイラ] に存在しない場合、serialportlist でも表示されません。

  4. シリアル ポート オブジェクトを作成できることを確認します。オブジェクトを作成するには、2 つの引数を指定しなければなりません。たとえば、ポート COM1 を使用し、ボー レートが 9600s というシリアル ポート オブジェクトを作成します。

    s = serialport("COM1",9600);

    エラーが発生しなければ、オブジェクトは正常に作成されています。

  5. 接続が完了したら、デバイスと通信できます。送受信に問題がある場合、BaudRateDataBitsParityStopBits、または Terminator などの通信設定の構成が必要な可能性があります。これらの通信パラメーターが、接続されているデバイスのものと必ず一致するように構成してください。

    通信の例については、テキスト データの書き込みと読み取りおよびバイナリ データの書き込みと読み取りを参照してください。

ポートの検証

Windows の [コントロール パネル]、[デバイス マネージャー]、[ポート] に、シリアル (COM) ポートがリストされていることを確認します。

送受信

送受信に問題がある場合、BaudRateDataBitsParityStopBits、または Terminator などの通信設定の構成が必要な可能性があります。これらの通信パラメーターが、接続されているデバイスのものと必ず一致するように構成してください。

VISA シリアル通信

シリアル通信には、Keysight Connection Expert などの VISA ベンダー ユーティリティで定義された VISA リソース名を用いて VISA シリアルを使用することもできます。serialport インターフェイスまたはシリアル エクスプローラー アプリの代わりに、VISA シリアル リソース名を用いて visadev インターフェイスまたは VISA エクスプローラー アプリを使用します。

メモ

visadev または VISA エクスプローラーを使用するには、Instrument Control Toolbox がインストールされていなければなりません。

サードパーティ ソフトウェア

シリアル ポート通信のトラブルシューティングを行うために、PuTTY や Tera Term などのサードパーティのシリアル通信ソフトウェアを使用して問題を切り分けることもできます。

不適切なデータ型

適切なデータ型 (たとえば int16uint16double) が read および write で使用されていることを確認します。機器と同じデータ型を使用します。uint8 または int8 以外のデータ型の読み取りと書き込みを行う場合は、ByteOrder が正しいことを確認します。

参考

| |

関連するトピック