MAIN   SUPPORT   FAQs   VScom und andere BS 

Erstellt: 23. Dezember 1998
Letzte Änderung: 25. September 2001

VScom PCI Konfiguration

Installation in andere Betriebssysteme als Windows

Problem:

 VS kann nicht zu jedem Betriebssystem auf der Welt Treiber liefern. Insbesondere Schnittstellenkarten der Serie VScom PCI gestalten die Konfiguration des Systems schwierig. Dies wird dadurch verursacht, daß der PCI-Bus ein Plug&Play System ist. Bei jedem Start des Rechners werden die Ressourcen dynamisch vergeben. Es ist nicht möglich, eine spezielle Konfiguration auf der Karte zu speichern.
 Für den Betrieb der VScom PCI Serie gibt es aber trotzdem Möglichkeiten. Diese beruhen alle auf der Nutzung unserer Programme VSEMUIO, VSPCIDOS, und VSSHOW. Dies sind alles DOS-Programme.

  • VSEMUIO kann unter DOS Hardware emulieren.
  • VSPCIDOS zeigt die aktuellen Ressourcen an, und bindet Schnittstellen in das BIOS ein. Zusätzlich können auf manchen Karten die Adressen der Schnittstellen verändert werden.
  • VSSHOW zeigt die aktuellen Ressourcen aller Karten.
Die genauen Parameter der jeweiligen Programme werden im Anhang beschrieben.

Lösung:

  1. DOS:
    Für DOS gibt es eine getrennte Anleitung. Dort ist es möglich, die gewünschte Konfiguration zu emulieren.
    Außerdem kann bei manchen Karten mittels VSPCIDOS die Konfiguration verändert werden. Diese Karten sind: VScom (010, 020, 200, 210, 100L, 110L, 200L, 210L) PCI. Ein Beispiel mit einer VScom 210L PCI:
    VSPCIDOS compatch=0x3E8,0x2E8 lptpatch=0x3BC
    Dieses Kommando verlegt die erste serielle Schnittstelle nach 0x3E8, die zweite nach 0x2E8, und den parallelen Port nach 0x3BC. Zusätzlich werden diese drei Schnittstellen in das BIOS eingetragen, als 3. und 4. serielle und als 2. parallele Schnittstelle. Dadurch sind COM3, COM4 und LPT2 für DOS verfügbar.
    Karten mit 4 oder 8 Ports, sowie die H-Serie lassen sich aus technischen Gründen nicht sinnvoll umkonfigurieren. Allerdings werden die Schnittstellen trotzdem von VSPCIDOS zur Verfügung gestellt, soweit noch möglich.
  2. DOS-basierte Systeme:
    Darunter verstehen wir hier Systeme, die beim Startvorgang mindestens ein rudimentäres DOS booten und dabei DOS-Programme ausführen können. Beispiele sind natürlich Windows-Systeme bis 3.11, und Novell Netware.
    Hier kann es möglich sein, die gewünschte Konfiguration wie unter DOS zu emulieren. Die Schnittstellen (16C550A) liegen dann auf bekannten Adressen und können von den eigenen Treibern des Betriebssystems (bzw. Alternativen aus der Shareware) bedient werden.
    Alternativ ist es wie unter DOS möglich, bei bestimmten Karten die Konfiguration zu ändern. Dadurch brauchen die Treiber nicht speziell konfigurierbar zu sein.
  3. Systeme, die DOS-Programmen den Zugriff gestatten:
    Hier kann es in der Startphase möglich sein, eine Änderung der bestehenden Konfiguration vorzunehmen. Wieder können feste Adressen im Treiber eingetragen sein.
  4. Andere Systeme:
    Hier kann selbstverständlich keine Emulation stattfinden. VSSHOW ist aber trotzdem essentieller Bestandteil der Konfiguration.
    Die Ressourcen werden zwar dynamisch an ISA-PnP und PCI Karten vergeben. Solange sich aber an der Ausstattung (und Konfiguration) des Rechners nichts ändert, erhalten die PCI-Karten immer wieder die gleichen Ressourcen. Es ist jetzt nötig, genau diese zu ermitteln. Diese Werte werden dann an die Treiber des Systems übergeben, um die Schnittstellen zu steuern.
    1. Zuerst wird der Rechner in der endgültigen Ausstattung und Konfiguration von einer geliehenen DOS-Diskette gebootet. Das ist nötig, da VSSHOW nur unter DOS zuverlässig arbeiten kann.
    2. Dann wird VSSHOW von dieser Diskette gestartet. Das Programm findet jetzt die VScom PCI-Karte und gibt deren aktuelle Konfiguration aus. Diese Werte müssen notiert werden. ACHTUNG: alle Schnittstellen einer Karte benutzen zwangsläufig den gleichen IRQ!
    3. Der Rechner wird erneut gestartet, diesmal direkt in das Zielsystem.
    Hier werden die Treiber so konfiguriert, daß mehr Schnittstellen bedient werden können. ACHTUNG: Dieser Prozeß ist von System zu System verschieden. Deshalb können wir nur generelle Hinweise geben.

Beispiele:

  1. Windows (f. WG) 3.11:
    Dieses System gehört zur Kategorie 2). Die Konfiguration geschieht also in der AUTOEXEC. Leider unterstützt der normale Treiber nur vier serielle Schnittstellen und kein IRQ-Sharing. VS bietet einen speziellen Treiber für acht Ports, der auch IRQ-Sharing ermöglicht. Näheres in den ausführlichen Beispielen.
  2. Novell Netware (Server):
    Dieses System startet aus DOS heraus, eine Emulation von Hardware ist aber nicht möglich. Es gehört zu 2). Die mitgelieferten Treiber unterstützen mehr Schnittstellen, allerdings nicht mit gemeinsamen Interrupts. Es kann also pro Karte nur eine Schnittstelle genutzt werden. Die Adresse der Schnittstelle kann mit VSPCIDOS konfiguriert werde.
  3. Unix (z.B. SCO):
    Gehört zu Kategorie 4). Empfohlen wird hier der Treiber der Hostess-Karten, dieser gehört meist zum Lieferumfang, s.u.
  4. OS/2:
    Gehört u.W. zu Kategorie 3). Allerdings kann die Änderung der Adressen nicht rechtzeitig genug erfolgen, um erfolgreich neu zu konfigurieren. Immerhin ist die aktuelle Konfiguration unter OS/2 lesbar, mittels VSSHOW. Der OS/2 eigene Treiber arbeitet nur mit vier Schnittstellen und ohne IRQ-Sharing. Es ist eine Alternative aus der Shareware bekannt, der Treiber heißt SIO.SYS. Zu beziehen nicht über VS. Näheres in einer gesonderten Anleitung.

DOS:

Wenn der PC eingeschaltet wird, werden alle PCI- und ISA-PnP-Karten konfiguriert. Soweit möglich werden Ressourcen zugeteilt. Insbesondere die Karten der VScom xxx PCI Serie werden komplett konfiguriert. Dabei werden aber nicht die Standardadressen für serielle und parallele Schnittstellen vergeben. Diese sind ja gerade für alte Hardware reserviert. In der Folge findet das BIOS beim Systemtest nur die Schnittstellen, die auf dem Mainboard vorliegen. Die notwendigen Änderungen im System nimmt ein Programm von VS vor: VSPCIDOS.
Annahme: Im Rechner sind bis jetzt nur die Schnittstellen auf dem Mainboard vorhanden. Eine VScom 210 PCI soll zusätzlich als COM3, COM4 und LPT2 installiert werden. Die Grafikkarte ist von Cirrus Logic, es gibt also keine Probleme mit der Adresse 02E8h. Die seriellen Schnittstellen sollen mit kompatibler Geschwindigkeit laufen, also max. 115200bps.
Dann ist nur ein Eintrag in der Autoexec.bat nötig:
 C:\VSPCIDOS compatch=0x3E8,0x2E8 lptpatch=0x3BC
Dieser Eintrag findet die Schnittstellen, und ändert die aktuellen Adressen. Dabei wird auch gleich die Geschwindigkeit auf "niedrig" gesetzt. Außerdem holt er das nach, was das BIOS nicht leisten konnte. Besonders die Konfiguration von LPT2 ist notwendig, damit über DOS und BIOS gedruckt werden kann. DOS und BIOS kümmern sich nicht um IRQ's. VSPCIDOS zeigt an, welcher vergeben wurde. Dieser läßt sich leider nicht verändern, außerdem haben alle Schnittstellen den gleichen erhalten. Terminalprogramme müssen auf den korrekten Wert konfiguriert werden.
Hier ist es besonders wichtig, nicht 0x278 als Adresse für den parallen Port zu verwenden. Dadurch würde nämlich ISA-Plug&Play komplett unmöglich gemacht.

Windows (für Workgroups) 3.1x:

Annahme 1: die VScom 210 PCI aus dem DOS Beispiel soll auch unter Win 3.11 genutzt werden.
 Die Autoexec.bat muß geändert werden wie oben beschrieben. Das bietet bessere Unterstützung für DOS-Programme, die unter Windows laufen sollen. Die parallele Schnittstelle bereits kann von Druckern genutzt werden. Die seriellen Schnittstellen müssen noch in der System-Steuerung konfiguriert werden (unter "Anschlüsse"). Hier muß der korrekte IRQ und die richtige Adresse eingetragen werden, statt der Standardwerte.
 Leider ist der Treiber von Win 3.11 nicht in der Lage, mehrere Schnittstellen mit IRQ-Sharing zu betreiben. Die Schnittstellen arbeiten zwar korrekt, können aber nicht gleichzeitig genutzt werden. VS bietet einen Treiber für Win 3.11, der dieses leistet.
Annahme 2: Statt der VScom 210 PCI soll eine VScom 400H PCI verwendet werden. Für schnelle Übertragungen sollen höhere Übertragungsraten als 115200bps möglich sein. Zusätzlich besitzt der Rechner noch ein internes Modem auf der Adresse 03E8 (als COM3) mit IRQ 5. Dieses ist schon vom BIOS als dritte serielle Schnittstelle identifiziert worden.
 Diese Konfiguration ist nicht einfach zu konfigurieren. Eine Änderung der Adressen ist bei einer 400H nicht vorgesehen. Im Endeffekt ist das jetzt ein System der Kategorie 3). Deshalb muß einmalig VSSHOW aufgerufen werden. Dieses liefert die Adressen und den IRQ der vier Schnittstellen.
Der gleiche Treiber wie eben muß installiert werden. Er erlaubt bis zu 8 Schnittstellen unter Win 3.11, sowie das IRQ-Sharing der seriellen Ports. Das interne Modem ist schon bekannt als COM3, die neuen Schnittstellen können als COM4 bis COM7 (oder COM5 bis COM8) installiert werden. Da sie schneller getaktet sind, muß die Applikation dieses berücksichtigen. Wenn eine Applikation eine bestimmte Geschwindigkeit anfordert, wird immer der 8-fache Wert eingestellt. Der Bediener bzw. der Programmierer muß dieses berücksichtigen. Der Treiber ist nicht darauf vorbereitet.

Unix:

Annahme: eine VScom x00 PCI soll genutzt werden. Es ist unter Unix nicht möglich, in der Startphase ein DOS-Programm ablaufen zu lassen. Damit kann die Karte nicht auf gewünschte Adressen konfiguriert werden. Es müssen die Ressourcen verwendet werden, die das BIOS zugeteilt hat.
 Zuerst einmal wird die Karte in den Rechner eingebaut. Dann leiht man sich eine bootfähige Diskette für MS-/PC-/DR-/Novell-/Caldera- oder ein ähnliches DOS. Nach dem Start mit dieser Diskette wird einmalig VSSHOW aufgerufen. Dieses Programm zeigt dann die aktuelle Konfiguration an. Diese Konfiguration ist bei jedem Start gleich, bis die Hardware-Konfiguration des Rechners geändert wird. Beispiel:

VScom 800 PCI
VS PCI 800 found at bus 0, device nr. 17 func 0
IRQ = 9
Speed: HIGH
Com port 1: 0x6000
Com port 2: 0x6008
Com port 3: 0x6010
Com port 4: 0x6018
Com port 5: 0x6020
Com port 6: 0x6028
Com port 7: 0x6030
Com port 8: 0x6038
VScom 800H PCI
VS PCI 400H found at bus 0, device nr. 19 func 0
IRQ = 9
Speed: HIGH
Com port 1: 0x6200
Com port 2: 0x6208
Com port 3: 0x6210
Com port 4: 0x6218
VS PCI 400HF1 found at bus 0, device nr. 19 func 1
IRQ = 9
Speed: HIGH
Com port 1: 0x6400
Com port 2: 0x6408
Com port 3: 0x6410
Com port 4: 0x6418
VScom 200L PCI
VS PCI 200L found at bus 0, device nr. 20 func 0
IRQ = 9
Speed: HIGH
Com port 1: 0x6700
Com port 2: 0x6800

 Diese Angaben sind nur Auszüge. Bei der VScom 200L PCI hat jeder UART seinen eigenen Adressbereich. Bei der VScom 800H PCI liegen alle Schnittstellen direkt hintereinander in zwei Gruppen, ab den Adressen 06200h und 06400h. Bei der VScom 800 PCI liegen alle 8 Schnittstellen in einem Block, ab der Adresse 06000h. Diese Informationen müssen notiert werden.
 Es fehlt noch die Installation in das Unix. Für die 4- und 8-Port Karten wird am besten der Hostess-Treiber eingesetzt. Dieser benötigt zwei Angaben, Base Address und IRQ. In der Anleitung für OS/2 steht, wie bei bestimmten Karten die Geschwindigkeit von Hoch (14 MHz) auf Standard (1.8 MHz) reduziert werden kann.


Aufrufparameter der Hilfsprogramme

VSSHOW Aufruf:

VSSHOW wird ohne Parameter aufgerufen. Es listet dabei alle installierten PCI-Karten VScom. Zusätzlich werden IRQ und Adressen aller Schnittstellen detailliert angegeben.

VSPCIDOS Aufruf:

VSPCIDOS kann mit und ohne Parameter aufgerufen werden. Ohne Parameter bindet es gefundene Schnittstellen ins BIOS (und damit auch ins DOS) ein. Die Parameter können dieses Prozeß beeinflussen. Zusätzlich zeigt es alle Adressen und IRQs an.
VSPCIDOS <options>
Die <options> sind:

usecom=n[,n]
Liste von COM-Nummern, die installiert werden sollen. Vorgabe sind alle freien Nummern. Mögliche Werte sind 1, 2, 3 und 4.
uselpt=n[,n]
Liste von LPT-Nummern, die installiert werden sollen. Vorgabe sind alle freien Nummer. Mögliche Werte sind 1, 2, und 3.
nocom=n[,n]
Liste von COM-Nummern, die nicht genutzt werden dürfen
nolpt=n[,n]
Liste von LPT-Nummern, die nicht genutzt werden dürfen
compatch=<adr1>[,<adr2>]...
Liste von Adressen, auf die die seriellen Schnittstellen gesetzt werden sollen. Dieses bedingt eine Neukonfiguration der PCI-Bridge. Die Benutzung erfolgt auf eigenes Risiko.
lptpatch=<adr1>[,<adr2>]...
Liste von Adressen, auf die die parallelen Schnittstellen gesetzt werden sollen. Dieses bedingt eine Neukonfiguration der PCI-Bridge. Die Benutzung erfolgt auf eigenes Risiko.

VSEMUIO Aufruf:

VSEMUIO wird vor einem darauf basierenden Programm gestartet. Am besten bereits in der AUTOEXEC.BAT Startdatei.
Anforderung: EMM386 muss geladen sein.
Folgende Karten werden unterstützt:
VScom 010,010H,010L, 020,020L, 100H,100L, 110H,110L, 200,200H,200L, 210,210H,210L, 400,400H,400L, 800,800H,800L PCI.
VSEMUIO benötigt eine Konfigurationsdatei, die die von VSSHOW ermittelten Parameter enthält. VSEMUIO vsemuio.cfg
vsemuio.cfg kann auch weggelassen oder durch eine Datei mit anderem Namen ersetzt werden.
Das Programm reagiert sehr empfindlich auf die Syntax. Jede Zeile beschreibt genau einen Port. Leerzeilen sind nicht möglich.
Konfigurationszeile eines seriellen Ports:
S,<real io>,<virtual io>,<virq>,<clock>,<com nummer>
real io
ist die tatsächliche I/O-Adresse des Ports auf der Vscom Karte.
virtual io
auf welcher Adresse soll der Port virtualisiert werden.
virq
welcher IRQ soll für diesen Port virtuell verwendet werden.
clock
entspricht dem Faktor um den der Port schneller ist verglichen mit einem Standardport. Hier sind ganze Zahlen zulässig, sinnvoll sind allerdings nur die Werte 1, 2, 4 und 8.
com nummer
Nummer der COM- Schnittstelle, unter der der virtualisierte Port dem BIOS bekannt gemacht werden soll.
Beispiel für COM3 und COM4:
S,D400,03f8,4,8,1
S,D408,02f8,3,8,2
 
Parallele Ports:
P,<real io>,<virtual io>,<lpt nummer>
<real io>
ist die tatsächliche IO- Adresse des Ports auf der Vscom Karte.
<virtual io>
wie soll sie virtualisiert werden.
<lpt nummer>
Nummer der LPT- Schnittstelle, unter der der virtualisierte Port dem System bekannt gemacht werden soll.
Beispiel für LPT 2:
P,DC00,0278,2

Anmerkungen: Die Lauffähigkeit der Applikation in dieser Umgebung ist nicht gewährleistet.

VS Vision Systems GmbH      
         Aspelohe 27 A               
         D-22848 Norderstedt         
         Fon : +49 40 528401-0       
         Fax : +49 40 528401-99      
         http://www.visionsystems.de 
         Mail: info@visionsystems.de