Forum: Mikrocontroller und Digitale Elektronik USB auf RS485 mit FT232R


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von FTDI (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich möchte mir einen USB auf RS485 Konverter auf Basis des FT232R bauen 
jedoch habe ich so meine Fragen beim Protokoll.

RS485 spezifiziert ja kein Protokoll, dass heißt ich kann mein Protokoll 
selber festlegen welches dann beispielsweise auch 12 Datenbits haben 
könnte.

Im Datenblatt des FT232R steht jedoch:
"UART interface support for 7 or 8 data bits, 1 or 2 stop bits and odd / 
even  mark  space / no parity"

Verstehe ich das richtig, dass ich mit diesem USB-RS485 Konverter dann 
nur das UART Protokoll über RS485 übertragen kann und kein eigenes mit 
beispielsweise 12 Datenbits?

Falls ja, gibt es Konverter-Bausteine die das können?

von OS (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Diese Konverter ob mit FTDI oder vergleichbaren USB/UART Chip können 
alle nur UART Protokolle übertragen.
Wo zu mit 12 Bit ? macht wenig Sinn, da auf der Anderen Seite des PC 
vermutlich ein Mikrocontroller mit dem RS485 Receiver verbinden sein 
wird.
Der kann dann auch keine 12 Bit.

von Frank (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Und warum nicht einfach 16 Bit übertragen und 4 Bit Reserve?

von FTDI (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Ich frage nicht ob 8 oder 12 oder 16 bits.

Meine Frage ist eher, ob das mit dem Baustein gehen würde, wenn das 
Zielgerät 12 Bit möchte oder 8 Bit + 4 Stop-Bits?

von OS (Gast)


Bewertung
0 lesenswert
nicht lesenswert
FTDI schrieb:
> Ich frage nicht ob 8 oder 12 oder 16 bits.
>
> Meine Frage ist eher, ob das mit dem Baustein gehen würde, wenn das
> Zielgerät 12 Bit möchte oder 8 Bit + 4 Stop-Bits?

Das geht nicht ! weil der FTDI FT232 nur das macht was ein UART macht.
Mehr als 8 Datenbit kann der nicht.
Dem RS485 Treiber z.B. SN75176 ist es egal, der setzt nur die Pegel um 
und erledigt die Datenrichtung Senden - Empfangen.

Wenn Du das brauchst, mit 12 Bit, dann kannst den FTDI Chip als IO Port 
verwenden. Du musst dann den Treiber und die Software selbst erstellen.
Am besten das Datenblatt des FTDI 232 nochmal genau durcharbeiten.

von Jim M. (turboj)


Bewertung
1 lesenswert
nicht lesenswert
FTDI schrieb:
> RS485 spezifiziert ja kein Protokoll, dass heißt ich kann mein Protokoll
> selber festlegen welches dann beispielsweise auch 12 Datenbits haben
> könnte.

Hast Du dir dann überlegt das nun plötzlich die erlaubte Taktabweichung 
um Größenordnungen kleiner sein muss?

Bei normalem UART wird alle 10 oder 11 Bits der Abtastzeitpunkt durch 
das StartBit mittels fallender Flanke neu bestimmt. Bei 11 Bits 
(8+Parity+Start+Stop) ist man IIRC bei ungefähr 3% erlaubter Abweichung.

Aber da ich sowieso keine µC kenne deren UART mehr als 9 Datenbits 
erlaubt, ist die Diskussion in meinen Augen ohnehin akademisch...

von Bit-Beißer (Gast)


Bewertung
0 lesenswert
nicht lesenswert
FTDI schrieb:
> wenn das Zielgerät 12 Bit möchte oder 8 Bit + 4 Stop-Bits?

Wenn es "nur" um die zusätzlichen Stpp-Bits geht, reicht es ja einfach, 
zwischen den einzelnen Byte eine zusätzliche Pause einzubauen. Im 
allgemeinen darf es bei den Stop-Bits auch etwas mehr (-> länger) sein. 
Das kann jeder Empfänger ab. Die Übertragung dauert nur ein wenig länger 
als nötig. Aber was soll's, das dürfte nicht stören.

von Hmmm (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Bit-Beißer schrieb:
> Im allgemeinen darf es bei den Stop-Bits auch etwas mehr (-> länger) sein.

Nicht nur etwas, sondern beliebig, da Stopbits dem Ruhepegel 
entsprechen, also allenfalls irgendwann ein Timeout greift.

Zu kurz ist wiederum schlecht, das wertet der empfangende UART als 
Framing Error.

von Dr. Sommer (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Man könnte das auch mit einem Mikrocontroller und Software UART selbst 
implementieren falls das in Frage kommt... oder in einem kleinen FPGA?

von georg (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Jim M. schrieb:
> Hast Du dir dann überlegt das nun plötzlich die erlaubte Taktabweichung
> um Größenordnungen kleiner sein muss?

Grössenordnungen nicht, aber es hat schon seinen Grund, dass UARTs 
maximal 8 bit senden und empfangen.

Man kann schon über längere Zeit synchronisieren, aber dann braucht man 
Techniken aus der synchronen Übertragung, also Takt mitübertragen oder 
aus den Daten rekonstruieren - aber das ist viel aufwändiger und wird 
heute bei seriellen Schnittstellen kaum noch benutzt (aber z.B. bei 
Ethernet).

Georg

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.