2012-05-04 17 views

答えて

11

「接続されています」という言い方によります。私は最も正確ではないが、最も単純な意味を最初に取り上げます。ポート

存在しますが、ポート自体がシステムに存在しているかどうかを確認する意味であれば、あなたが存在するかどうかを確認、それをサポートするロードされたモジュールの存在を確認できました/ dev/ttyS0や/ dev/ttyUSB0,のようなデバイスを開くことができることを確認してください(たとえば、実際にはそのハードウェアを持っていないシステムに/ dev/ttyS0デバイスファイルがあります) 。 USBコンバーターをホットプラグすることができるので、今日、実際の「シリアルポート」が稼働中のシステムに出入りするのを見ることができます。

「モデム」コントロール/ステータス信号

もう一つの可能​​性は、あなたがポートにケーブル接続何があるかどうかを知りたいということです。これはシステムが必ず知ることではありません。周辺機器がアサートし、読み取ることができるモデム制御信号とステータス信号があります。しかし、周辺機器はそれらを使用する必要はなく、モデムの時代に一度意味をなさない方法で使用する必要もありません。多くのシステムでは、データ線とグラウンドの送受信だけを利用するように接続している場合があります。

残りの可能性は、ポートが接続されている場合、そこからデータを探すことによって以外に、指示する方法がない場合があることである受信データ

によって検出します。いくつかの周辺機器は自動的にデータを定期的に生成するかもしれないので、読んでみることができます。他の人には、クエリを送信して(うまくいけば望ましくない副作用がないこともあります)、期待される応答が返ってくるかどうかを確認してください。たとえば、SCPI標準をほぼ実装している機器は、文字列「* IDN?\ n」を送信した場合、識別情報を返すことがあります。

これに加えて、ポートとペリフェラルに互換性のあるボーレートとワードフォーマットを設定する必要があります。もしそうでなければ、一見無作為なデータを得るかもしれません。いくつかのケースでは、実装しているUARTエンジンからフレーミングエラービットを読み取ることができます(ドライバがこれを公開しているかどうかを確認する必要があります)。これはおそらく何かがあるかもしれないが間違ったボーレート。

ハードウェアと期待されるデータをきめ細かく制御することで、自動ボーレート検出ルーチンを書くこともできますが、通常は「ホスト」ではなく「周辺」端で実装されます。

+0

このような詳細な説明をいただき、ありがとうございました。ご協力いただきありがとうございます。 –

+0

@ RajeshSO plzも満足している場合は答えを受け入れます。これは他の人に役立つでしょう。 – Raulp

関連する問題