Forum: Mikrocontroller und Digitale Elektronik USB auf RS485 mit FT232R


von FTDI (Gast)


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)


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)


Lesenswert?

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

von FTDI (Gast)


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)


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)


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)


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)


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)


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)


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

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
Noch kein Account? Hier anmelden.