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?
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.
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?
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.
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...
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.
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.
Man könnte das auch mit einem Mikrocontroller und Software UART selbst implementieren falls das in Frage kommt... oder in einem kleinen FPGA?
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.