シリアル通信に問題があります。 [閉じる]

シリアル通信に問題があります。 [閉じる]

私はシリアル通信の専門家ではなく、ずっと前にこれを試しました。私の即座の目標は、SUN Sparc T5140のサービスプロセッサに接続することでしたが、その後複数のデバイスに接続しようとしましたが、毎回同じ結果が得られました。空の画面/端末が表示され、カーソルが移動せず、画面/端末に何も起こりません。

ホスト(他のホストも試みます)とターゲットの間に9ピンシリアルポートに接続されたストレート接続ケーブル(ヌルモデムケーブル)があります。

次のように私が使用しているポートを確認しました。

0: uart:16550A port:000003F8 irq:4 tx:0 rx:0 RTS|DTR
1: uart:16550A port:000002F8 irq:3 tx:0 rx:0

これにより、電気的接続があることがttyS0であることがわかります。

私はまた、さまざまなモード/速度などを大まかに試しました。

私はminicom、screen、puttyなどのさまざまなクライアントを試してみましたが、すべて何も表示せず、入力を許可しない空の画面/ターミナルで終わりました。試していないクライアントがもっとありますが、必要ではないと思いますが、問題は別の場所にあります。

ケーブルを悩んで今日信じられない店で購入したのに電気的接続が見えるから正しいと思ったのに…?しかし、ここではよくわかりません...

ttyS0またはttyS1以外のものを使用すると、画面に次のように表示されます。

[root@tc1 ~]# screen /dev/ttyS2
[screen is terminating]

通信がないか、デバイスが設定されていないことを意味するようです。

私の空の端末のスクリーンショット

ベストアンサー1

これにより、電気的接続があることがttyS0であることがわかります。

申し訳ありません。しかし、あなたは間違っています。

RTSおよびDTR信号は、単に何かがローカルでポートをアクティブにしていることを示します。つまり、プログラムまたはscreen同様のminicomプログラムがコンピュータのポートで実行されていることを示します。両方とも発信する信号なので、リモートエンドについてはまったく公開されません。ポートを有効にするローカルプロセスのPIDを取得するには、ルートを使用します。ModemManageragettyfuser -u /dev/ttyS0

信じられない場合は、実行してscreen /dev/ttyS1実行中にcat /proc/tty/driver/serial別のウィンドウで再実行してみてください。これで、ttyS1 RTSおよびDTR信号もアクティブになっていることがわかります。

一方、CTSとDSR信号は2つを表します。

  • ケーブル実際にはあります。任意の方法で接続された電線(一部のシリアルケーブルには、着信データ、発信データ、および接地の3つの電線のみがあります)
  • CTSおよびDSR信号がRTSおよびDTRなしで単独で表示される場合それまでこれは、反対側に何かがあることを示します。一部のヌルモデムケーブルは、一端のデバイスが接続されている状況の回避策として、各コネクタのローカルDTRをローカルDSRに接続し、ローカルRTSをローカルCTSに接続します。〜しなければならないハードウェアハンドシェイクを使用した相手のデバイスできないします。この場合、ポートに電力が供給され、発信されたRTSおよびDTR信号がアサートされている場合、ケーブルのもう一方の端がまったく接続されていなくても、着信CTSおよびDSR信号は常に存在します。

シリアル接続が機能する前にパラメータを理解する必要があることがよくあります。最も一般的な変数は接続の転送速度(速度)です。 T5140のコンソールポートでは、最初は9600bpsを試しました。他のデバイスも38400または115200bpsを使用できます。私の経験では、これが最も一般的な値です。

他のパラメータには、データビット数(現在最も一般的な値は8)、パリティビット(最も一般的な値は「なし」)、およびストップビット数(最も一般的な値は1)が含まれます。

すべてのパラメータが正しい場合でも、もう一方の端は入力として有効な文字を受け取るまで何も送信しない可能性があります。したがって、起動したらscreenまたはminicomEnterキーを1〜2回押します。

ほとんどのシリアルコンソール接続は「リモートエコー」の原則に従います。つまり、入力したときに入力した文字は画面に表示されず、単にシリアルポートから送信されます。これらの文字は、リモート側でその文字をエコーするときにのみ表示されます。これにより、画面に表示されずにパスワードを入力するなどの操作が可能で(リモート側ではパスワード入力エコーを無効にするため)、入力した文字が正しく受信されたことを知らせます。

minicom人が使用することを意図していないシリアル接続では、このリモートエコー機能を省略できます。これらの接続の問題を解決するには、ターミナルエミュレーションプログラム(「画面と例:)」で「ローカルエコー」機能を有効にする必要があります。リモートエコーが適用されると、入力した内容がすべて画面に表示されます。

おすすめ記事