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