3

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

デバイスには、実行時に検出する必要があるさまざまな構成 (つまり、ボーレート、データ ビット、パリティ ビット、ストップ ビット) が含まれる場合があります。ソフトウェアが使用している構成を把握するための最も簡単で信頼できる方法は何ですか? ここでも、通信プロトコルを完全に制御できるので、任意のメカニズムを定義できます。

4

1 に答える 1

3

これは全二重または半二重デバイスですか? シリアル回線の両端で送信要求を制御し、送信可を監視できますか? シリアル回線はポイントツーポイント (RS-232 など) ですか、それともマルチドロップ (RS-485 など) ですか? 新しく接続されたデバイスとネゴシエートしているときに、すでに接続されている他のデバイスに干渉する場合は、(小さいながらも) 違いが生じます。

ハンドシェイク プロセスを、リンク層プロトコルをネゴシエートするモデムのようなものと考えると、標準のメッセージ セットを使用して、必要な通信の種類を記述し、相手からの「ack」を待ちます。あなたの場合、ヘッドエンドがビットレートの範囲で生成し、デバイスからのACKを待つ「話しましょう」という標準メッセージを用意することをお勧めします。

デバイスの構成オプションの数を減らすこともお勧めします。可変データ ビット、パリティ ビット、ストップ ビットのことは忘れてください。シリアル通信の世界は、70 年代ほど不安定ではなくなりました。8 データ ビット、パリティなし、1 ストップ ビットを使用し、ビット レートを変更するだけです。メッセージの最後にある CRC は、十分なエラー チェックを提供します。

于 2009-04-03T07:18:01.177 に答える