RS232 synchron

Gast #267260
Lesenswert?

Hallo,

zum Übertragen größerer Datenmengen will ich eine synchrone 115,2kBaud
Verbindung vom einem MC zum PC mittels RS232 hinbekommen.
USB oder asynchrone Übertragung kommt leider nicht in Frage.

Wer hat schon mal mit dem synchronen Modus gearbeitet und kann mir
darüber berichten?

Zum Beispiel würde ich gerne wissen, wer Master, bzw Slave sein muss
und damit den Takt zur Verfügung stellt. Wie teile ich dem PC mit, dass
er zu einem bestimmten Zeitpunkt Daten einlesen soll ( Evtl. als Master
den Takt starten, oder aber per Hardware-Handshake?)?

Danke für eure Antworten

Klaus
Gast #267263
Lesenswert?

Danke erstmal für deine Antwort!

Also, ich muss mit 96kb/s netto übertragen. Sind bei der asynchronen
Übertragung die 115,2k brutto (inklusive Start und Stop-bit) oder
netto? Falls brutto, kommt man nämlich netto nur auf 92,2kb/s, also
knapp unter 96kb/s.

Sollten jedoch die 115,2k netto übertragen werden können, wäre mein
Problem gelöst.
Persönliche Seite #267265
Lesenswert?

Die Standardhardware (8250, 16450, 16550 und Konsorten) wird im PC mit
einem 1.8432 MHz-Quarz zur Baudratenerzeugung angesteuert. Da die UART
das durch 16 teilt, ist die höchst mögliche erzielbare Baudrate 115200
Baud. Höhere Baudraten sind nur mit anderer Hardware (PCI-Karten oder
USB-Adapter) möglich; daß irgendwelche Terminalprogramme irgendwelche
Baudraten anbieten, hat leider überhaupt keine Aussagekraft über die
tatsächlichen Möglichkeiten der Schnittstellenhardware.
Gast #267266
Lesenswert?

Offiziell hört die Welt bei 115,2 auf. Inoffiziell

Zu den Standardbausteinen für Onboard-Peripherie gehört der Winbond
W83627. Und der bietet nicht nur 1.8MHz an, sondern auch 2.0MHz,
14,7MHz und 24MHz.

Und da 128000 und 256000 im Windows API offiziell vorgesehen sind,
stehen die Chancen vielleicht doch nicht so schlecht.
Persönliche Seite #267267
Lesenswert?

... die Chancen stehen nur dann nicht so schlecht, wenn ein anderer als
der Standarddevicetreiber verwendet wird. Der nämlich geht bestenfalls
von einem 16550 aus ... mit eben einem externen Takt von 1.8432 MHz. Es
müsste also ein Treiber von/für Winbond verwendet werden, der die
erweiterten Betriebsarten zulässt.

Verwendet man beispielsweise eine der UARTs von Oxford Semiconductor,
wie sie auf manchen besseren seriellen Schnittstellenkarten zu finden
sind, bietet der zugehörige Treiber noch ganz andere Funktionen an, so
beispielsweise eine RS485-Betriebsart mit automatischer
Sender-/Empfänger-Umschaltung ... und deutlich größere Fifos als die 16
Bytes des 16550.

Mir ist allerdings keine API bekannt, mit der ein Anwendungsprogramm
die von einer seriellen Schnittstelle tatsächlich unterstützten
Baudraten ermitteln kann; soweit ich weiß, muss man das im Einzelfall
ausprobieren bzw. der Dokumentation des Treibers/Bausteins entnehmen.
Gast #267268
Lesenswert?

Was soll denn synchron genau heissen?
Mit RTS/CTS oder wie?

Und ich habe bisher keine serielle Schnittstelle oder auch nur einen
USB-RS232-Adapter gefunden, der nicht 4 Mbit/s schaffte; das Problem
war dabei bisher nur, dass der Mikrocontroller am anderen Ende der
Leitung Probleme hat, alle Daten schnell genug zu verarbeiten.
Mit nur 1,5 MBaud gibt's aber beim MSP430 erfahrungsgemäss keine
Probleme.
Gast #267270
Lesenswert?

Achso, aber das das hat mit RS232 oder V24 nichts zu tun.
Mit dem PC könnte man das noch hinbekommen, über den Parallelport und
mit Pin-Wackeln sowie einem harten Echtzeit-OS. Mit Linux +RTAI habe
ich bis zu 400 kHz hinbekommen. Das reicht für bis zu 200 kBaud.
Gast #267272
Lesenswert?

Hi zusammen,

danke für die zahlreichen Antworten. Ich denke, der synchrone Modus ist
wohl nicht zu realisieren. Die zu sendenden Daten sollen von mehreren
PC's empfangen werden können, d. h. auch wenn der eine PC mehr als
115kb/s schaffen sollte, muss das mit einem anderen PC nicht unbedingt
genauso sein.
Geschwindigkeitsmässig würde der MC auch locker 1 Mb/s schaffen; das
Problem liegt auf der PC-Seite.
Aus Zeitgründen geht das mit dem USB-Adapter leider auch nicht. Habe
noch nie damit gearbeitet und müsste daher wahrscheinlich erst einmal
längere Zeit damit herumexperimentieren.

Ich denke, ich werde den Datenstrom irgendwie kürzen, und dann ganz
konventionell asynchron versenden.

MfG

Klaus

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren