Dokumentation V24-Treiber Highlights: * bis zu 8 V24-Kan„le gleichzeitig (erweiterbar) * freie Adreáwahl der Uart-Bausteine * Untersttzung der Interrupts 2 (=9), 3,4,5,7,10,11,12,14,15 * Interrupt-Sharing * Fifo-Untersttzung * Hard- und Software-Handshake * Schnelle Interrupt-Behandlung durch Assembler-Code. * Einbindung als Pascal-Unit, DLL oder TSR * Einbindung als C-Modul mit TSR Durch Untersttzung der hohen Interrupts und durch Interrupt-Sharing l„át sich die praktisch gr”átm”gliche Anzahl von Com-Ports gleichzeitig im Interrupt-Betrieb verwenden. Beim Interrupt-Sharing wird auf die besonderen Verh„ltnisse des "Wired-Or" auf einem flanken-getriggerten Eingang Rcksicht genommen. Natrlich mssen entsprechende COM-Karten eingesetzt werden. NS-16550-kompatible Bausteine verfgen ber 16 Byte FIFOs an Ein- und Ausg„ngen. Das Eingangs-FIFO dient in erster Linie zur Verhinderung des Eingangs-Overrun fr den Fall, daá die Zeichen schneller ankommen als der Interrupt-Treiber sie abholen kann. Auáerdem kann das Gesammt-Timing dadurch verbessern, daá Interrupts seltener auftreten. Das ist auch der Hauptzweck des Ausgangs-FIFOs. Der Triggerlevel des Eingangs-FIFOs liegt bei unseren Treibern bei 8. Das stellt den besten Kompromiá zwischen groáer Pufferung und seltenen Interrupts dar. Genau betrachtet bedeutet es, daá ein Empfangs-Interrupt erzeugt wird, sobald mindestens 8 Zeichen kontinuierlich empfangen wurden oder wenn nach Zeichen-Empfang fr mindestens eine Zeichen-L„nge kein Zeichen mehr kam. Also wird bei kontinuierlichen Datenempfang alle 8 Zeichen ein Interrupt ausgel”át und der Rechner hat weitere 8 Zeichenl„ngen Zeit, darauf zu reagieren. Die Verwendung des Ausgangs-FIFOs verlangt vom Treiber, den Fllzustand mitzufhren, da der Baustein nur melden kann, ob das FIFO leer oder nicht leer ist. Sende-Interrupts werden erzeugt, sobald der Zustand von nicht-leer auf leer wechselt. Dann lassen sich bis zu 16 Bytes in das Ausgabe-Register schreiben. Bei unserem Treibr schreiben wir jeweils 8 Zeichen und l”sen so bei kontinuierlichem Datentransfer ein Sendeinterrupt pro 8 Zeichen aus. Ein Nachteil des Sendebuffers ist der Nachlauf beim Ausgangs-Handshake. Typischerweise nehmen alle Ger„te, die Handshake verwenden, darauf Rcksicht, doch sind F„lle bekannt, in denen die Ausnutzung der vollen 16 Byte FIFO bei der Gegenstelle (z.B. Modem) zum šberlauf fhren kann. FIFO-Bausteine kann man heutzutage beinahe als Muá fr die Daten-šbertragung ansehen. Sind auch die Rechner sehr viel schneller geworden, so ist aber auch die System-Software viel umfangreicher (was zu l„ngeren Interrupt- Sperrzeiten fhrt) und die Datenraten der seriellen šbertragungen liegen typischerweise heute ber der frher geltenden Schallgrenze von 9600 Baud. Software Konfiguration: Der Treiber ist in Borland Pascal 7.01 geschrieben. Die besonders zeitkritischen Interrupt-Routinen sind Assembler-Code. Aus Grnden der šbersichtlichkeit sind die Pascal-Routinen als einfache Objekt-Methoden (ohne Virtualisierung) ausgefhrt. Um andererseits das Benutzer-Interface so universell wie m”glich zu gestallten, gibt es eine Schicht von nicht Objekt-orientierten Prozeduren und Funktionen. Diese sind wahlweise die Interface-Punkte einer Unit (im Real oder Protected-Mode Modell kompilierbar) oder auch die Export-Punkte einer Protected-Mode DLL. Auáerdem l„át sich der Treiber auch als Real-Mode TSR starten, wobei die Einsprungspunkte ber einen Software-Interrupt und einer Funktions- Nummer angesprochen werden. Bei Benutzung des Treibers als DLL oder TSR gibt es eine Interface-Unit fr das Anwender-Programm. Dateien: TV24 .PAS : kleines Anwender-Beispiel und Testprogramm zur Verwendung der Treiber-Routinen. V24DRV .INC : Include-File mit Treiber-Source-Code V24DRV .SRC : Include-File mit Source-Code Interruptroutinen (nur Vollversion) V24DRV .PAS : Unit Source zum Einbinden in Anwender-Programm V24DLL .PAS : Source Code fr V24DLL.DLL V24TSR .PAS : Terminate-&-Stay-Resident Source TPASCAL .H : Includefile mit Pascal-Datentypen V24DLL .H : Prototypen fr C-Interface V24DRV .CPP : C-Modul mit TSR-Interface Zur Vereinfachung der Software-Pflege (Vermeidung von Dubletten) wird abh„ngig von der Konfiguration der selbe Source-Code (V24DRV.INC) in DLL, TSR oder direkter Unit verwenden. Dazu wird fleiáiger Gebrauch von {$DEFINE ... }-Ausdrcken gemacht. Vor Kompilierung von V24DRV.PAS mssen die Compiler-Definitionen fr den gewnschten Anwendungsfall richtig gesetzt werden: {$DEFINE USETSR} : Es wird eine Interface-Unit zur Benutzung von V24TSR erzeugt (nur im Real-Mode m”glich). {$DEFINE USEDLL} : Es wird eine Interface-Unit zur Benutzung von V24DLL erzeugt (nur im Protected-Mode m”glich). sonst : Es wird eine Unit mit dem V24-Treiber selber erzeugt. Garantie und Software-Pflege: Vision Systems bernimmt keine Garantie fr die einwandfreie Funktion aller Treiber-Komponenten unter allen Umst„nden. Alle Treiber-Komponenten k”nnen bei sp„teren Versionen ge„ndert werden. Die generelle Kompatibilit„t mit Vor-Versionen kann dabei nicht garantiert werden. Dies gilt insbesondere fr die šbergabe-Parameter zur DLL und zum TSR, die System-bedingt keine inherente Fehler-šberprfung haben.