Mir ist aufgefallen, dass das vorgeschlagene Protokoll mit den 4-Byte Paketen schon Ähnlichkeiten mit Modbus hat, aber noch nicht bis zu Letzt definiert ist. Vielleicht könnte man es ja absichtlich so auslegen, dass es auch mit Modbus auf dem selben Bus parallel laufen kann, ohne dass sich die Geräte stören. Bei Modbus sind die kürzesten Datenpakete 8-Byte lang. Daher wären die Datenpakete schon mal grundsätzlich unterscheidbar. Das Ende eines Datenpakets wird (bei Modbus) durch eine Pause von der Dauer von mindestens 1,5 Byte Länge erkannt. Zwischen den Bytes innerhalb eines Datenpaketes dürfen also keine solchen Lücken sein. Der Slave darf dann frühestens mit der Antwort beginnen, wenn die Pause eine Länge entsprechend 3,5 Byte erreicht hat. Auch der Master darf ein weiteres Paket frühestens nach einer solchen 3,5-Byte-Pause senden.
Diese Zeitliche Paketerkennung kann auf Mikrocontrollern mit einem Timer und Interupts gemacht werden. Auf PCs ist das in der Regel nicht möglich, weshalb ein PC zwar als Master aber nicht als schneller Slave geeignet ist.
Mein Vorschlag wäre also die Paket Erkennungsregeln von Modbus zu übernehmen. Die alternative die mir sonst einfällt ist, einfach die Bytes bis 4 zu Zählen und dann auszuwerten. Aber dann kann das Problem auftreten, dass ein Slave aus der Synchonisation geraten kann, welches irgendwie gelöst werden müsste.
Diese Zeitliche Paketerkennung kann auf Mikrocontrollern mit einem Timer und Interupts gemacht werden. Auf PCs ist das in der Regel nicht möglich, weshalb ein PC zwar als Master aber nicht als schneller Slave geeignet ist.
Mein Vorschlag wäre also die Paket Erkennungsregeln von Modbus zu übernehmen. Die alternative die mir sonst einfällt ist, einfach die Bytes bis 4 zu Zählen und dann auszuwerten. Aber dann kann das Problem auftreten, dass ein Slave aus der Synchonisation geraten kann, welches irgendwie gelöst werden müsste.
Zuletzt bearbeitet: