Hallo zusammen,
ich habe hier ein paar dürftige Daten zu einem Bus und muss verstehen,
worum es sich genau handelt. Was ich weiß: "standard UART-Protocol,
single wire"
Meine Frage: Kann RS232 als Protokoll gemeint sein oder wäre bei einem
1-Draht-Bus über UART ein anderes Protokoll der Standard?
Grüße
Bernd
> Was ich weiß: "standard UART-Protocol, single wire"
..könnte eine unidirektionale UART gemeint sein damit. Einfach mal das
Ossi dranhängen und beobachten was so drüber geht. Bei der Gelegenheit
kannst Du dann auch gleich - sofern es eine UART ist - Symbolrate,
Polarität und die Anzahl der Daten- und Stoppbits ablesen.
Wenns keine UART ist dann kannst das Ossi gleich dran hängen lassen und
mit reverse-engineeren loslegen.
> ...das Ossi dranhängen...
Sofern ich noch des deutschen mächtig bin, heißt es doch "der
Oszillograph", oder? Wie kommt man dann auf "das Ossi"? Hab ich noch nie
gehört. Wenn schon, dann "der Oszi", stimmt's?
Im übrigen gebe ich der restlichen Aussage recht. Nur mit einem Oszi
kann man sehen, was auf der Leitung passiert, und das auch entsprechend
interpretieren. In vielen Oszi's sind auch Protokoll-Analyzer drin (oder
direkt mit einem Logik-Analyzer). Damit kann man der Sache auch auf die
Schliche kommen...
Mal den Duden außer Acht gelassen.
Es gibt "halfdupplex" UART-Verbindungen die über 1-Wire (+GND) laufen.
Dazu benötigst Du eine spezielle Beschaltung (ob's die als Chip gibt?)
und ein Software Collisions-Handling.
Eventuell meinen Die sowas?
Grüße Löti
Die nötige Beschaltung für UART über einen Draht habe ich hier gefunden.
http://www.maximintegrated.com/app-notes/index.mvp/id/214
Außerdem habe ich inzwischen weitere Infos:
Bidirectional, Master-Slave, half-duplex, 2400N2, LSB first.
Das Signal habe ich mir auch angesehen: Standardmäßig 5V, immer 2 Bytes
in Folge. Eines davon hat einen minimal anderen Low-Pegel als das
andere. Es ziehen also scheinbar beide Teilnehmer etwas unterschiedlich
das Signal auf Masse.
Bernd schrieb:> Die nötige Beschaltung für UART über einen Draht habe ich hier gefunden.> http://www.maximintegrated.com/app-notes/index.mvp/id/214
Das beschreibt ist eine Implementierung von Dallas' proprietärem 1-Wire
Protokoll per UART. Nicht aber normale asynchrone RS232 Kommunikation
über eine Leitung.
Bernd schrieb:> Was ich weiß: "standard UART-Protocol, single wire"
RS232 halt.
Es gibt noch RS422 bzw RS485 mit 2 wire differential (verdrilltes
Leitungspaar)
Jens Martin schrieb:
> Es gibt noch RS422 bzw RS485 mit 2 wire differential (verdrilltes> Leitungspaar)
Beides sind 2 Signaladern + GND, aber kein single wire, wie der TO
zitiert hat.
"EIA-485 benutzt ein Leitungspaar, um den invertierten und einen nichtinvertierten Pegel eines 1-Bit-Datensignals zu übertragen. Am Empfänger wird aus der Differenz der beiden Spannungspegel das ursprüngliche Datensignal rekonstruiert."
Zitat Ende
Man kann, wenn man möchte, das ganze natürlich auch zweimal aufbauen,
dann hat man nicht mehr halbduplex, sondern fullduplex. Der eigentliche
485-Standard ist aber halbduplex.
Ist aber auch egal, ich hatte das nur geschrieben, weil der TO nach
"single wire" gefragt hatte, und da ist es nicht angebracht, einen
Hinweis mit 2 (oder mehr) Drähten zu geben.
Lothar S. schrieb:> UART hat TTL Level... .
UART ist eine Funktion und hat gar keinen Level, geschweige denn einen
Standard.
hilmar schrieb:> Ist aber auch egal, ich hatte das nur geschrieben, weil der TO nach> "single wire" gefragt hatte, und da ist es nicht angebracht, einen> Hinweis mit 2 (oder mehr) Drähten zu geben.Bernd schrieb:> Meine Frage: Kann RS232 als Protokoll gemeint sein oder wäre bei einem> 1-Draht-Bus über UART ein anderes Protokoll der Standard?
Die Frage ist ja längst beantwortet, die Antwort lautet:
Ja, beides ist möglich ;-).
Danke für eure Antworten!
Mein reales Problem ist, dass ich bisher eine I²C Schnittstelle habe, an
die nun dieser 1-Draht Bus angeschlossen werden soll (I²C entfällt).
Leider habe ich über diesen Bus bisher nur die bereits genannten Infos.
Die erste Frage, die ich nun beantworten muss ist, ob und welche
Hardwareänderungen nötig sind. Da ich ja nun weiß, dass das Signal
genauso wie bei I²C standardmäßig auf 5V liegt, müsste ich doch ohne
Änderung der Hardware auskommen. Der Pull-Up des I²C kann ja auch gleich
hierfür genutzt werden. Somit müsste ich doch unabhängig vom Protokoll
mit einer reinen Softwareänderung auskommen, oder?
Nette Frage.
Wer aber kennt Deine Hardware um sie beantworten?
Du kennst (hoffentlich) die Hardware, kannst die Frage selbst
beantworten, oder gibst uns Informationen, dann klappts auch mit ner
Antwort.
Falk Brunner schrieb:> Ja.
Klingt gut, danke! :)
Genau genommen geht es um verschiedene Platinen. Gemeinsam haben sie
aber eben den I²C Bus. Der kommt direkt vom Controller und SCL und SCK
werden mit 4k7 auf 5V gezogen. Welche Infos fehlen denn noch?
>Welche Infos fehlen denn noch?
Naja, wenn alle I2C-Devices ersetzt werden sollen und alles an einem
einzigen Bus hängt, dann wär doch mal zu prüfen, ob alle Bauteine
einzeln ansprechbar sind.
I2C kann Bausteine adressieren. Das geht meines Wissens zumindest nicht
bei allen Single-Wire-Bausteinen.
Oder ist das gar nicht die Aufgabenstellung?
Da fehlts noch gewaltig an den Specs. Zumindest sind keine auf den Tisch
gelegt.