Frage

Ich entwerfe Software rund um ein vorhandenes Hardwareprodukt.Ich habe die volle Kontrolle über das Kommunikationsprotokoll, bin mir aber nicht sicher, wie ich die Geräteerkennung erleichtern kann.

Ein Gerät kann eine Reihe möglicher Konfigurationen haben (z. B.Baudrate, Datenbits, Paritätsbits, Stoppbits), die zur Laufzeit erkannt werden müssen.Wie kann die Software am einfachsten und zuverlässigsten herausfinden, welche Konfiguration sie verwendet?Auch hier habe ich die volle Kontrolle über das Kommunikationsprotokoll, sodass ich jeden gewünschten Mechanismus definieren kann.

War es hilfreich?

Lösung

Handelt es sich um ein Vollduplex- oder Halbduplex-Gerät?Können Sie die Sendeanforderung steuern und die Sendefreigabe an beiden Enden der seriellen Leitung überwachen?Ist die serielle Leitung Punkt-zu-Punkt (wie RS-232) oder Multidrop (wie RS-485)?Es macht einen (wenn auch kleinen) Unterschied, wenn Sie andere bereits angeschlossene Geräte stören, während Sie mit einem neu angeschlossenen Gerät verhandeln.

Wenn Sie sich den Handshake-Prozess wie ein Modem vorstellen, das ein Verbindungsschichtprotokoll aushandelt, verwendet es einen Standardsatz von Nachrichten, um die Art der Kommunikation zu beschreiben, die es haben möchte, und wartet auf eine „Bestätigung“ vom anderen Ende.In Ihrem Fall empfehle ich eine Standardnachricht „Lass uns reden“, die Ihr Head-End mit dem Bereich der Bitraten generiert und auf die Bestätigung vom Gerät wartet.

Ich empfehle außerdem, die Anzahl der Konfigurationsmöglichkeiten für das Gerät zu reduzieren.Vergessen Sie variable Datenbits, Paritätsbits und Stoppbits.Die Welt der seriellen Kommunikation ist nicht mehr so ​​instabil wie in den 70er Jahren.Verwenden Sie einfach 8 Datenbits, keine Parität, ein Stoppbit und variieren Sie die Bitrate.Ein CRC am Ende der Nachrichten bietet umfassende Fehlerprüfung.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top