質問

私は、既存のハードウェア製品を中心にソフトウェアを設計しています。私は、通信プロトコルの完全な制御を持っているが、私は、デバイスの検出を容易にするかどうかはわかりません。

デバイスは、実行時に検出されなければならない可能な構成の範囲(すなわちボーレート、データビット、パリティビットは、ストップビット)を有する可能性があります。ソフトウェアは、それが使用しているものの構成を把握するための最も簡単な、最も信頼性の高い方法は何ですか?再び、私は私が望む任意のメカニズムを定義することができる通信プロトコルの完全な制御を有している。

役に立ちましたか?

解決

これは全二重または半二重デバイスですか?あなたは、送信要求を制御し、明確なツー送るシリアル回線の両端に監視することができますか?シリアル・ライン・ポイント・ツー・ポイント(RS-485など)またはマルチドロップ(RS-232など)はありますか?あなたは、新たに接続された1と交渉しながら、他の既に接続されたデバイスに干渉しようとしている場合は(たとえ小)の違いを行います。

あなたは、リンク層プロトコルを交渉モデムのようなハンドシェイクプロセスを考える場合は、

、それがもう一方の端から「ACK」を持っていると待機したい通信の種類を記述するために、メッセージの標準セットを使用しています。あなたのケースでは、私はあなたのヘッドエンドは、ビットレートの範囲を生成し、デバイスからのACKを待ち標準メッセージを「の話をしましょう」を持つお勧めします。

私はまた、デバイスの設定オプションの数を減らすことをお勧めします。可変データビット、パリティビットを忘れると、ビットを停止します。シリアル通信の世界では、もはやそれが戻って70年代にあったようにように不安定ではありません。わずか8データビット、パリティなし、1つのストップビットを使用してビットレートを変化させます。メッセージの最後にCRCエラー・チェックの多くを提供しています。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top