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
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.
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"
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.
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
> 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.
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.
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.