mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik RS232 synchron


Autor: Klaus (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Rufus Τ. Firefly (rufus) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die serielle Schnittstelle des PC ist eine asynchrone, eine synchrone
Betriebsart unterstützt die Hardware des PCs (8250, 16450, 16550 etc.)
nicht.

Was spricht gegen die asynchrone Betriebart? Die zehn Bits pro Byte,
die die Nutzdatenrate auf 11,520 Byte/sec "reduzieren"?

Autor: Rufus Τ. Firefly (rufus) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nachtrag:

  11,520 Byte/sec

soll natürlich

  11520 Byte/sec

heißen.

Autor: Klaus (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: A.K. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
115200 Bits/Sek sind bei 10 Bit pro Byte 11520 Bytes/Sek.

Allerdings sind bei PCs bisweilen auch mehr als 115200 drin, 256000
wird mir von diversen Terminalprogrammen auch angeboten.

Autor: Rufus Τ. Firefly (rufus) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: A.K. (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Rufus Τ. Firefly (rufus) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Rolf (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Rufus Τ. Firefly (rufus) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Synchrone serielle Schnittstelle bedeutet, daß es keine Start- und
Stopbits gibt und daß zusätzlich zu den Daten eine Taktleitung
verwendet wird.

Das in vielen Microcontrollern verbaute SPI-Interface ist ein schönes
Beispiel für eine synchrone serielle Schnittstelle, die
"PS/2"-Tastatur- oder Mausschnittstelle von PCs ebenfalls.

Autor: Rolf (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: TravelRec. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wobei die Tastatur- und Maus-Schnittstelle PS2 sehr wohl mit Start- und
Stopbit arbeitet!

Autor: Klaus (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Anton Wert (antonwert)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wie währe eine Lösung mit USB? Hat heute praktisch jeder PC, und mit 2.0
ist so einiges drin :-)

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]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [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.