Products Download Partner Contact
 
 

  SUPPORT   FAQ   Baudraten-Berechnung PCI 

Berechnung der Baudraten bei VScom PCI-Karten

VScom 110H,200H,210H,400H,410H,800H, 100L,110L,200L,210L,400L,800L PCI


English Version  Change to English Version ...

Fragestellung:

Eine immer wiederkehrende Frage ist die nach unterstützten Baudraten. Häufig in der konkreten Form, ob eine bestimmte Baudrate möglich ist, die von einer vorgegebenen Hardware genutzt wird. Da mehr als 60000 Baudraten unterstützt werden, macht es keinen Sinn diese alle aufzuzählen. Statt dessen folgt hier eine Anweisung zur Ermittlung  der notwendigen Parameter. Wird eine Konfiguration gefunden, so ist die gesuchte Baudrate erzielbar. Ist das nicht der Fall, so wird die Geschwindigkeit nicht unterstützt.

Um die Arbeit zu erleichtern, gibt es ein Programm für DOS. Dieses läuft auch in den DOS-Boxen aller Windows Versionen und in OS/2. Auch wenn noch nicht getestet, so sollte es auch in DOS-Emulatoren anderer Betriebssysteme funktionieren. Sie geben einfach die gefragte Baudrate ein, und erhalten als Ergebnis den am besten dazu passenden Wert. Ist die Abweichung geringer als 2%, so ist eine korrekte Datenübertragung sichergestellt.

Berechnung:

Maximalgeschwindigkeit:

Die Maximalgeschwindigkeit der PCI-Karten von VScom beträgt normalerweise 921600 Baud. Auf den meisten Karten läßt sich diese durch einen Jumper auf den Standardwert 115200 Baud reduzieren. Einige Karten bieten auch weitere Zwischenstufen wie 460800 Baud und 230400 Baud. Das gilt im Übrigen auch für die ISA-Karten von VScom.

Diese Geschwindigkeit ist eine Hardware-Option, und läßt sich auch nur durch Hardware ändern. Eine Option im Treiber gibt es nicht. Der Wert beruht auf der Division der Quarzfrequenz durch 16.

Spezialfall H-Serie:

Bei den UARTS des Typs 16C950 auf der VScom  H-Serie gibt es einen programmierbaren Vorteiler. Dieser teilt die Maximalgeschwindigkeit durch einen Wert zwischen Eins und Zweiunddreißig, abstufbar in Schritten von ein Achtel. Genauer, von 1 bis 31,872 in Stufen von 0,125; insgesamt sind das 248 mögliche Einstellungen. Die Maximalgeschwindigkeit wird durch diesen Wert dividiert, und ist die Basis der weiteren Berechnung. Der Treiber ermittelt selbst den optimalen Wert. Es ist nicht erforderlich, eine spezielle Konfiguration vorzunehmen.

Da bei den UARTS Typ 16C550 auf der VScom L-Serie und anderen Karten dieser Vorteiler nicht existiert, muß dort einfach der Wert 1 benutzt werden.

Konfiguration durch Division:

In allen UARTs wird die verfügbare maximale Baudrate durch eine Zahl zwischen 1 und 65535 dividiert (ein 16-Bit Wert). Die real erzielte Baudrate ist dann dieses Ergebnis. Daher kommen auch die über 60000 möglichen Baudraten aus dem oberen Absatz. Im folgenden wird die maximale Baudrate mit B bezeichnet, die Wunschgeschwindigkeit mit W, der ermittelte Teiler mit T, und die erzielte Geschwindigkeit mit G.

Um jetzt zu ermitteln, ob eine gewünschte Baudrate technisch möglich ist, muß die notwendige Konfiguration ermittelt werden. Dazu teilt man im ersten Schritt B durch W, das ergibt den Teiler T. In vielen Fällen ist das Ergebnis keine ganze Zahl. Dann muß man nach unten und oben runden, und erhält die Teiler T1 und T2. Jetzt teilt man die Maximalgeschwindigkeit B durch T bzw. T1 und T2. Das ergibt dann die real erzielbaren Geschwindigkeiten G bzw. G1 und G2. Weicht einer dieser Werte um nicht mehr als 2% von W ab, so ist W eine mögliche Einstellung.

T = B / W (Teiler ermitteln)
G = B / T  (Geschwindigkeit berechnen)
E = 100 * (G - W) / W (Abweichung in Prozent)

Im Falle der 16C950 UARTs auf der VScom H-Serie muß die Prüfung für jeden möglichen Vorteiler zwischen 1 und 32 vorgenommen werden.

Alle diese Berechnungen übernimmt der Treiber selber. Ebenso die Ermittlung des bestmöglichen Wertes für T. Das Programm SPEED-H+L führt die gleichen Berechnungen aus, inklusive der Anzeige der Abweichung.

Fiktives Rechenbeispiel:

Maximalgeschwindigkeit ist 921600 Baud. Die Wunschgeschwindigkeit ist 33600 Baud.

T = B / W T = 921600/33600 = 27,43 Rundung erforderlich. T1=27, T2=28
G1 = B / T1 G1 = 921600/27 = 34133,33
G2 = B / T2 G2 = 921600/28 = 32914,29
E1 = 100 * (G1 - W) / W E1 = 100*(34133,33-33600)/33600 = 1,59% Ergebnis akzeptabel
E2 = 100 * (G2 - W) / W E2 = 100*(32914,29-33600)/33600 = -2,04% Ergebnis nicht akzeptabel

33600 Baud ist realisierbar. Die Abweichung der Geschwindigkeiten von 1,6% stört die Übertragung nicht.