also, das mit den 9 Bit hat halt einfach praktische Gründe.
Was unterscheidet ein Datenbyte von einem Adressbyte ?
Beide sind 8 Bit lang, können nen Wertebereich von 0 - 255
annehemen ... hmmm. Daher eben aha, hier kommt ein 9-Bit
ergo hier beginnt Protokoll, ab hier gehts los. Ne alternative
wär auch über Timer möglich, von wegen aha, 5ms keine Daten,
das nächste Byte müssen dann Adressen sein.
Aber für Version B muss halt das Timing stimmen, sprich durch
die Timeouts verlierste was an möglicher Übertragungsrate, dafür
muss halt bei Variante A n Bit mehr übertragen werden.
Wichtig ist, dass alle Empfänger merken wann wo das Paket
anfängt und wo aufhört um verstehen zu können ob sie jeweils
gemeint sind, auch wenn mal n Byte irgendwie verloren geht
muss der Empfänger sich immer neu orientieren können.
Ach so, auch ein Buchstabe hat nur einen Zahlenwert der ihn
als solchen identifiziert (Siehe ASCII).
Die Pegel der 485 sollten gegenläufig sein, denn genau darauf
beruht die Funktion der 485 und auch die tollen Eigenschaften
bezüglich Reichweite. Der Häufigste Fehler bei nem 485-Netz
ist der AB-Tausch, sprich vertauschen der LEiter.
Witzigerweise erhält der µC noch Daten, nur stimmt eben nix mehr.
Dout auf RX Din auf TX werden die Dinger angeschlossen. Dann noch
zu berücksichtigen, der Busteilnehmer muss den Bus aktiv belegen
und auch wieder freigeben wenn er mit seiner Übertragung fertig ist.
Auch ein häufiger fehler, sprich Busteilnehmer sendet Daten drauf,
obwohl Bus noch von anderem Teilnehmer belegt. Dafür hat der Max485
extra 2 Pins, die Ihm die Datenrichtung eingeben. Ein passiver Teilnehmer
muss immer auf Horchmodus stellen.
PS: Zum Protokoll: Für Single-Master reicht ne Empfängeradresse,
für Multimaster geht das so nicht mehr, da muss der Slave wissen,
wer will was von wem.
Lesezeichen