Hallo, ich möchte einen RS485 Bus mit dem abhören. Bei RS232 ist das ja kein Problem. Wie kann ich es bei RS485 machen? Tobias
Im Funkamateur 3/06 war ein Interface, mit diesem sollte ein abhören möglich sein.
Hallo Hubert, danke für die Unterlagen. Die Schaltung ist doch recht kompliziert. Es müsste doch auch einfacher zu machen sein?! Gibt es so etwas auch für die serielle Schnittstelle? Tobias
Hä ? Einen RS-485-Bus abhören ? Wo ist das Problem ? Du nimmst einen LT485 (oder so) und wandelst die Bus-Signale in TTL um (reiner Receiver). Diese Signale wandelst Du per MAX232 in RS-232 um und kannst alles mit dem PC empfangen. Sowas gibt es fertig zu kaufen mit mehr oder weniger Isolation.
Du gehst mit dem RX vom LTC485 auf den T1IN vom MAX232. Am T1OUT hast du dann die RS232 Signale mit der selben Bit-Rate wie auf RS485.
Bernd: >>Du nimmst einen LT485 (oder so) und wandelst die Bus-Signale in TTL um (reiner Receiver). Diese Signale wandelst Du per MAX232 in RS-232 um und kannst alles mit dem PC empfangen. Sowas gibt es fertig zu kaufen mit mehr oder weniger Isolation. Tobias: >>kann man so etwas auch nachbauen? Nein, kann man nicht nachbauen, keine Chance. Absolut nicht! ;) ;)
@Simon: Stimmt. Ich benutze dafür die RS232-Spare des STK500... Kann man nicht nachbauen.
Hier mal eine einfache Variante mit galvanischer Trennung des PCs. Bis 38400 ok, darüber ist der Koppler zu langsam.
Und die komplette Version für beide Richtungen. Die Jumper sind für Loopback-Tests.
Hallo Bernd, >Hä ? >Einen RS-485-Bus abhören ? >Wo ist das Problem ? Wie bekommt man es hin, auf der PC-Seite mit dem 9. Bit bei einer Multiprozessorkommunikation auf RS-485-Seite umzugehen? Thomas
Für das 9.Bit wirst du einen Controller verwenden müssen, der auch den Multiprozessormode unterstützt. Für solche Wandlungsaufgaben bieten sich AVR mit 2 seriellen Schnittstellen an. Der IMHO am einfachsten zu handhabende ist der ATMega162 wegen seines DIP40 Gehäuses; alle anderen AVR mit 2 USART haben AFAIK SMD-Gehäuse.
>Was steht in dem 9. Bit drin ?
eine 1 wenn das Byte eine Adresse (eines Controllers im RS485-Netz) ist
und eine 0 wenn es ein Datenbyte ist.
Prinzip:
Alle Slave-Controller gehen ihrer Arbeit nach. Kommt ein Telegramm mit
gesetztem 9. Bit, gibt es bei allen einen Interrupt; in der Routine
wird die in den unteren 8 Bit gesendete Adresse geprüft. Ist die
Adresse die eigene, wird von diesem angesprochenen Controller weiter
zugehört, alle anderen gehen weiter ihrer Arbeit nach, bis wieder ein
Byte mit gesetztem 9. Bit daherkommt.
Den Inhalt muß man bei der Auswertung am PC kennen, da sonst ist keine
eindeutige Interpretation des Datenstroms möglich.
Thomas
AFAIK unterstützt der PC-UART-Baustein keinen Multiprozessor-Mode geschweige 9 Datenbits. Deswegen die o.g. Interface-Schaltung.
Alternative ist die Verwendung einer PCI-Karte mit OX16C950, ich bin nur zu dusslig, eine geeignete PC-Software zu erstellen. Thomas
Als Programm macht das keinen schlechten Eindruck, nach meinen Erkenntnissen beim schnellen Überlesen der Doku kann es aber auch nicht mit dem 9. Bit umgehen :-((
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.