www.mikrocontroller.net

Forum: PC Hard- und Software RS 232 Baudrate


Autor: Jens (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Guten Morgen

hab hier ein problem mit den Baudraten. Ich will mit einer Baudrate von 
230400Baud senden da das gerät diese unterstützt leider gibt es keinen 
passenden Gerätetreiber und in windows kann ich nur bis maximal 115200 
baud einstellen.
wie könnte ich es trotzdem schaffen die einstellungen so zu 
konfigurieren um die Baudrate zu erreichen? bzw. gibt es patches oder 
Programm in C/C++ ?

mfg jens

Autor: Stefan (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die Frage ist ja, ob Dein Mainboard das auch unterstützt?
230400 Baud kommt mir auch etwas 'krumm' vor.

Da Du von einem Programm in C/C++ sprichst, nehme ich mal an, Du willst 
da selbst was programmieren? In dem Fall musst Du den COM-Port eh' 
initialisieren und dazu eine DCB-Struktur zur Übergabe mit Daten füllen.
Laut MSDN ist der max. Wert für die Membervariable 'BaudRate' in DCB 
256000 Baud.

Autor: Jens (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also laut dcb sind 128000 und dann 256000 Baud möglich. aber ich kann 
nur mit 230400Baud mit der Hardware kommunizieren. selbst in der windows 
einstelllung kann ich max. nur 128000 einstellen.

wie finde ich raus ob mein pc 230400 unterstützt und wenn ja wie bekomme 
ich windows dazu diese Baudrate zu unterstützen.
zum Prog benutze ich Ruby da gibt es auch eine serialport.c die 
unterstützt auch 230400baud (steht zumindest in der datei) aber wenn ich 
die Baudrate einstelle kommt nur "unknown modem parameters"

Autor: Christoph Kessler (db1uq) (christoph_kessler)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Externe USB-zu-Seriell Kabel können unter WinXP bis zu 1 MBaud

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

Bewertung
0 lesenswert
nicht lesenswert
Die Standardschnittstelle des PCs unterstützt maximal 115200 Baud. Mehr 
lässt auch der Standarddevicetreiber von Windows nicht zu. Die Werte, 
die in irgendwelchen Headerdateien stehen, sind hierfür vollkommen 
irrelevant.

Die in den "Super-I/O-Chips" heutiger Motherboards eingebauten UARTs 
können auch mit höheren Baudraten betrieben werden, das aber ist weder 
standardisiert noch brauchbar dokumentiert.
Es gibt einen speziellen Devicetreiberhack, der mit einigen dieser 
"Super-I/O-Chips" zusammenarbeitet (nochmal dank an Benedikt für den 
Hinweis):

http://www.devdrv.com/shsmod/index.htm

Das würde ich aber nicht in einem Produktivsystem einsetzen, da sich der 
Treiber und seine "Installationsroutine" nicht an saubere 
Windows-Gepflogenheiten hält - der Standardtreiber "serial.sys" wird 
durch den gehackten ersetzt. Spätestens mit dem nächsten Servicepack 
wird die Angelegenheit also drollig.

Eine zuverlässige Möglichkeit, mit höheren Baudraten zu arbeiten, ist 
nur mit Verwendung von anderen seriellen Schnittstellen gegeben - 
entweder mit USB-RS232-Bridges (deren Hardware unterstützt je nach 
Hersteller Baudraten im MBit-Bereich) oder mit einer PCI-Karte, auf der 
geeignete UARTs verbaut sind.
In letzterem Falle sind die UARTs von Oxford Semiconductor oder von Exar 
zu empfehlen.

Autor: Jens (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Aha danke für den Link

also unterstützt win XP nur bis max. 115200 Baud obwohl man auch mehr 
rausholen könnte. hab jetzt ma noch ein wenig gegoogelt und bin noch auf 
"HiSerial.sys" (is ne .exe datei) gestossen und weiss net so recht ob 
ich installieren soll da die Änderungen ja schon ziemlich weit ins 
system gehen. Hat da schon jemand ne Erfahrung damit gemacht?

2.)

Warum kann man 256000 beim dcb.baudrate einstellen wenns eh nicht geht? 
irgendwie unlogisch für mich

mfg jens

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

Bewertung
0 lesenswert
nicht lesenswert
> also unterstützt win XP nur bis max. 115200 Baud

NEIN. Das hast Du falsch verstanden. Die standardisierte PC-Hardware 
tuts nicht, vollkommen unabhängig vom Betriebssystem.

Mit anderer Schnittstellenhardware kann man unter XP (und anderen 
Betriebssystemen) auch ganz andere Baudraten nutzen.

Es gibt schlecht dokumentierte und nicht standardisierte Erweiterungen, 
die mit speziellen Treibern (wie dem von mir verlinkten) angesprochen 
werden können, das aber ist eine ziemliche Frickellösung.

> Warum kann man 256000 beim dcb.baudrate einstellen wenns eh nicht geht?

Weil es auch andere seriellen Schnittstellen als die beiden auf dem 
Motherboard gibt. Und die können, da sie sich nicht an uralte 
IBM-Standards halten müssen, sich natürlich auch ganz anders verhalten.

Autor: Christian R. (supachris)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenn du mit 230.400 Baud kommunizieren willst, brauchst du am besten 
einen USB-Seriell-Wandler. Da kannst du dann wie schon gesagt, alles 
einstellen.
Allerdings nicht im Hyperterminal, sondern in deiner C/C++ Applikation. 
Da kannst du der DCB dann alles übergeben, was du gerne hättest.

Ich hab auch einen FT232R Wandler am PC und betreibe ihn mit 460.800 
Baud. Klappt bestens.

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.