Protokoll für serielle Übertragung, Bit 9?

ACK, wenn es so wäre. Isset aber nicht: Die Verkabelung ist als elektrischer Ring ausgeführt und wird ganz normal als RS485-Bus benutzt. Dadurch, dass die Enden eben keinen Ra haben sondern wieder miteinander verbunden sind, gibt es eben für die Welle, die sich auf dem Kabel ausbreitet, kein Ende mehr. Also eine Welle ab jeweiligem Transmitter wetzt links rum, die andere rechts eröm. Und gerade, wenn sie meinen, einen Busabschluss zu brauchen, kommt der Zwillingsbruder "andere Welle" und lädt die Leitung wunschgemäß auf. Drum gibt es keinen Grund für eine Reflektion etc. Nix wird an Leistung zusätzlich verbraten, alle sind glücklich :-)

Als Nachteil gibt es nur den doppelten Kabelaufwand, dafür keine hohen Verluste in den Ra und somit kannste 256 Teilnehmer dranhängen, wo sonst nur offiziel sich 32 tummeln (dürfen). Unterm Strich dann wohl doch billiger, IMHO auf jeden Fall besser!

Sollte doch mal das Kabel unterbrochen werden, kann man mit ggf. verminderter Baudrate noch alle Teilnehmer erreichen, es gibt dann allerdings Reflektionen, da dann der Buss 2 offene Enden hat. So gesehen eine erhöhte Sicherheit gegen Kabelbruch als weiterer Vorteil.

Ich find die Idee genial! Das ist so simpel, da hätte ich selber drauf kommen können. Aber so Tricks hat mir in meinem Studium keiner beigebracht und heutzutage können die Jungs (und Mädels) nicht mal mehr richtig löten :-]

Saludos Wolfgang

--
Meine 7 Sinne:
Unsinn, Schwachsinn, Blödsinn, Wahnsinn, Stumpfsinn, Irrsinn, Lötzinn.
 Click to see the full signature
Reply to
Wolfgang Allinger
Loading thread data ...

"Stefan Brröring" schrieb im Newsbeitrag news:fg6iot$p8f$ snipped-for-privacy@news1.ewetel.de...

Bit Stopbit

Ja, jetzt habe ich es endlich begriffen.

Danke.

Sven

Reply to
Sven Schulz

Hallo Stefan,

anbei nochmal einen Schnipsel aus meinem Empfangs Code Hier werden immer Frames mit einer festen L=E4nge (8 Byte) empfangen:

typedef union { uint8_t Byte[8];

struct { uint8_t Adresse; uint8_t Befehl; uint32_t Daten; uint16_t CRC16; }; } RecFrameT;

typedef struct { uint8_t Befehl; Long Daten; } RecDataT;

typedef union { uint8_t Byte[29]; // 21 uint8_t Info; uint16_t Analog[2]; uint16_t Word; CounterDataT Counter; } SndDataCollectionT;

typedef struct { uint8_t Typ; SndDataCollectionT Daten; } SndDataT;

volatile RecDataT RecDaten; // Speicher f=FCr den vom Master // empfangenen Befehl volatile SndDataT SndDaten; // Speciher f=FCr die zu sendenen // Daten

// RS485 Interrupt SIGNAL(SIG_UART_RECV) { uint8_t b; static uint16_t crc, RecCRC; static uint8_t FrmByteCnt=3D0; static RecFrameT Frame;

b =3D UDR; // Empfangenes Byte speichern

// Pr=FCfen ob das Adressflag gesetzt wurde if(RS485Timeout=3D=3D0) { if(b =3D=3D ModulID) { UCSRA =3D UCSRA & !(1

Reply to
Artur

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.