DE60030278T2 - Tastatur-/video-/mausverteiler für mehrfachnutzer - Google Patents

Tastatur-/video-/mausverteiler für mehrfachnutzer Download PDF

Info

Publication number
DE60030278T2
DE60030278T2 DE60030278T DE60030278T DE60030278T2 DE 60030278 T2 DE60030278 T2 DE 60030278T2 DE 60030278 T DE60030278 T DE 60030278T DE 60030278 T DE60030278 T DE 60030278T DE 60030278 T2 DE60030278 T2 DE 60030278T2
Authority
DE
Germany
Prior art keywords
computer
mouse
keyboard
workstation
video
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
DE60030278T
Other languages
English (en)
Other versions
DE60030278D1 (de
Inventor
L. Christopher Madison THOMAS
D. Douglas Meridianville REED
H. David Huntsville STAFFORD
M. Philip New Market KIRSHTEIN
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Avocent Huntsville LLC
Original Assignee
Avocent Huntsville LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Avocent Huntsville LLC filed Critical Avocent Huntsville LLC
Publication of DE60030278D1 publication Critical patent/DE60030278D1/de
Application granted granted Critical
Publication of DE60030278T2 publication Critical patent/DE60030278T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/02Input arrangements using manually operated switches, e.g. using keyboards or dials
    • G06F3/023Arrangements for converting discrete items of information into a coded form, e.g. arrangements for interpreting keyboard generated codes as alphanumeric codes, operand codes or instruction codes

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Input From Keyboards Or The Like (AREA)
  • Keying Circuit Devices (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Closed-Circuit Television Systems (AREA)
  • Digital Computer Display Output (AREA)

Description

  • QUERVERWEIS AUF IN BEZIEHUNG STEHENDE FÄLLE
  • Diese Anmeldung steht teilweise in Beziehung mit der vorläufigen US-Patentanmeldung mit der Seriennummer 60/043,085, angemeldet am 8. April 1997, betitelt „Biphase Coded Computer Peripheral Extension System", und mit der US-Anmeldung Seriennummer 08/971,223, angemeldet am 15. November 1997, betitelt „A Method and Apparatus for Extending Computer Peripherals".
  • Gebiet der Erfindung
  • Diese Erfindung bezieht sich auf Datenverteiler, genauer gesagt auf Mehrbenutzer-Tastatur-, Video- und Maus-(KVM)Verteiler.
  • HINTERGRUND UND ABRISS DER ERFINDUNG
  • Tastatur-/Maus-Videoverteiler sind wohl bekannt, die es ermöglichen, dass eine Tastatur, eine Arbeitsstation und ein Videomonitor mit einem ausgewählten von mehreren Computern zusammenwirken. Obwohl bekannte Tastatur-/Video-/Mausverteiler verschiedene Formen annehmen können, ist ihr grundlegender Zweck, es zu ermöglichen, dass eine Arbeitsstation (allgemein bestehend aus einer Tastatur, einer Maus und einem Monitor) mit einem ausgewählten Computer zusammenwirkt, so dass der Computer verständliche Signale von den verschiedenen Arbeitsstationskomponenten empfängt und an sie versendet, unabhängig von den Datenprotokollschemata, die entweder von dem ausgewählten Computer oder den Arbeitsstationsgeräten verwendet werden. Typische Tastatur-/Video-/Mausverteiler ermöglichen es dem Benutzer einer Arbeitsstation, den Zugriff zwischen verschiedenen der zahlreichen zugeordneten Computer umzuschalten.
  • Der Tastatur-/Video-/Mausverteilerkasten hat typischerweise wenigstens einen Anschluss für die Arbeitsstation Geräte, um dem Verteiler Signale bereitzustellen und von ihm von ihm zu empfangen, begleitet von einer Anzahl von Computeranschlüssen, mittels derer jeder der zugeordneten Computer an den Verteiler angeschlossen ist. Die meisten KVM-Verteiler verwenden eine Einzelbenutzer-(Einzelarbeitsstation-)Architektur, bei der eine einzelne Tastatur, ein einzelner Video und ein einzelner Monitor auf eine eine mehrfache Anzahl von Computern zugreifen können, aber der Stand der Technik ist nicht auf solche Architekturen beschränkt. Matrixartige KVM-Verteiler sind ebenfalls bekannt, die verteilungs- oder routing-artige Funktionen be reitstellen, um eine beliebige von mehreren zugeordneten Arbeitsstationen mit einem beliebigen der mehreren zugeordneten Computer zu verbinden.
  • Daher werden KVM-Verteiler, von denen einige Matrixverteiler sind, kommerziell von Firmen hergestellt, einschließlich der Cybex Computer Products Corporation aus Huntsville, AL, Apex PC Solutions aus Washington, The CCC Group aus England, und Rose Electronics aus Houston, TX.
  • Das US-Patent Nr. 5,884,096 offenbart ein KVM Verteilersystem, welches einen Kreuzungspunktverteiler verwenden kann. Es kann beispielsweise mehrere Arbeitsstationen mit mehreren verbundenen Arbeitsstationsanschlüssen und mehreren Computer mit mehreren entsprechenden Computeranschlüssen beinhalten.
  • Der vorliegende KVM-Verteiler stellt eine alternative Architektur für Verbindungen von mehreren Benutzern zu mehreren Computern bereit, die wesentliche Vorteile gegenüber bekannten Architekturen bereitstellt. Insbesondere ist der vorliegende KVM-Verteiler gekennzeichnet durch einen einzelnen KVM-Prozessor, durch den viele der mehreren Benutzer auf einen oder mehrere der unterschiedlichen Computer zugreifen können, sogar gleichzeitig auf einen beliebigen bestimmten Computer. Der einzelne Prozessor stellt Verarbeitungsfähigkeiten bereit und erlaubt es dem bevorzugten KVM-Verteiler, die Benutzeranschlüsse und Computeranschlüsse mittels Unterbrechungsroutinen abzufragen, um die nächsten verfügbaren zu verteilenden Daten zu erlangen.
  • Bei einer beispielhaften Ausführungsform stellt der KVM-Verteiler auch Zugriff für einen Benutzer bereit, der lokal bezüglich des Verteilerkastens ist und Zugriff für einen weiteren Benutzer, der entfernt von dem Verteilerkasten ist. Bei dieser alternativen Ausführungsform kommuniziert der entfernte Benutzer mit dem Verteilerkasten vorzugsweise mittels eines CAT5 Kabels, welches mit einem integrierten Verlängerungsprodukt innerhalb des KVM Verteilerkastens und einem externen Verlängerungsprodukt nahe der Benutzerstation kommuniziert. Selbstverständlich kann der KVM-Verteiler ein optisches Faserkabel, einen integrierten Wellenleiter oder eine drahtlose Verbindung an Stelle der CAT5 Verbindung einsetzen. Die CAT5 Verbindung kann gemäß der US-Patentanmeldung Nr. 08/971,223 ausgeführt sein.
  • Mit der Einzelprozessorarchitektur können andere besondere Merkmale in dem bevorzugten KVM-Verteiler verwendet werden. Diese beinhalten die Verwendung von FLASH-Speicher, um mehrere verschiedene Default On-Screen-Display-Aktivierungs sequenzen und OSD-Konfigurationen in den KVM-Verteiler zu laden. Das bedeutet, verschiedene KVM Verteilerarten können das Pop-up On-Screen-Display-Menü mittels unterschiedlicher Tastenanschlagsequenzen aufrufen. Der vorliegend beschriebene FLASH-Speicher enthält vorgegebene Sequenzen, die verwendet werden können, On Screen Displays gemäß voreingestellten Tastatursequenzen aufzurufen, wobei die Sequenzen (und andere Konfigurationsparameter) durch Herunterladen des FLASH Speichers geändert werden können.
  • Der einzelne Prozessor stellt auch Lösungen für spezielle, mit der Bereitstellung von gleichzeitigem Zugriff zweier Benutzer auf mehrere Computer verknüpfte Probleme bereit. Beispielsweise beinhaltet die bevorzugte Ausführungsform Lösungen, mit denen ein einzelner Prozessor die Tastatur- und Taktleitungen für acht verschiedene Computeranschlüsse überwachen kann. Weiterhin verwendet die bevorzugte Ausführungsform Vorkehrungen, verschiedene Arten von Mausprotokollen zu behandeln, die existieren können, wenn zwei verschiedene Mauscontroller mit einem gemeinsamen Computer verbunden sind. Bei der bevorzugten Ausführungsform verwendet der KVM ein hierarchisches Bewertungssystem für die Mäuse.
  • Diese wie auch andere Ziele und Vorzüge dieser Erfindung werden ganzheitlicher verstanden und gewürdigt durch sorgsames Studium der folgenden ausführlichen Beschreibung einer derzeit bevorzugten beispielhaften Ausführungsform der Erfindung im Zusammenhang mit den begleitenden Zeichnungen, von denen:
  • KURZE BESCHREIBUNG DER ZEICHNUNGEN
  • 1 eine schematische Darstellung einer beispielhaften Ausführungsform der vorliegenden Erfindung ist;
  • 2 eine beispielhafte Ausführungsform einer Verbindung von einem KVM-Verteiler an einen PC gemäß einer beispielhaften Ausführungsform der vorliegenden Erfindung ist;
  • 3 eine schematische Darstellung einer weiteren beispielhaften Ausführungsform der vorliegenden Erfindung ist;
  • 4 eine schematische Darstellung einer Verlängerungseinrichtung gemäß der vorliegenden Erfindung ist;
  • 5 eine schematische Darstellung der Verbindung zwischen einem KVM-Verteiler gemäß einer beispielhaften Ausführungsform der vorliegenden Erfindung und einer Arbeitsstation ist;
  • 6 eine schematische Darstellung einer beispielhaften Ausführungsform mit gestaffelten KVM-Verteilern ist;
  • 7 eine beispielhafte Ausführungsform der gestaffelten KVM-Verteiler aus 6 ist;
  • 8 ein elektrisches Blockschaltbild einer beispielhaften Architektur gemäß der vorliegenden Erfindung ist;
  • 9 ein Mikroprozessor nach dem Stand der Technik ist, der in der beispielhaften Ausführungsform von 8 verwendet werden kann;
  • 10 ein Funktions-Blockschaltbild der Softwareeinrichtungen auf seiten der Arbeitsstation des vorliegenden KVM-Verteilersystems ist;
  • 11 ein beispielhaftes Funktions-Schaltbild der Software auf seiten des Computers des vorliegenden KVM-Systems ist;
  • 12 eine beispielhafte Speicherbelegung des Prozessors aus 8 ist;
  • 13 ein beispielhaftes elektrisches Schaltbild des FPGA aus 8 ist;
  • 14 ein Flussdiagramm von Funktionen einer beispielhaften Ausführungsform der vorliegenden Erfindung ist;
  • 15 ein Funktions-Blockschaltbild des seriellen Maushandlers gemäß einer beispielhaften Ausführungsform der vorliegenden Erfindung ist;
  • 16 eine beispielhafte Ausführungsform eines Softwaremoduls für den seriellen Anschluss gemäß einer beispielhaften Ausführungsform der vorliegenden Erfindung ist;
  • 17 eine beispielhafte Ausführungsform des Softwaremoduls zur Kanalverteilung gemäß einer beispielhaften Ausführungsform der vorliegenden Erfindung ist;
  • 18 eine schematische Darstellung eines Erkennungsverfahrens gemäß der vorliegenden Erfindung ist, um das Anschließen eines weiteren KVM-Verteilerproduktes zu erkennen;
  • 19 eine Flussdiagramm-Darstellung des Tastaturdaten Routermoduls gemäß der vorliegenden Erfindung ist;
  • 20 eine Flussdiagramm-Darstellung des Mausdaten Routermoduls gemäß der vorliegenden Erfindung ist; und
  • 21 eine perspektivische Darstellung einer FLASH-Speichererweiterung gemäß der vorliegenden Erfindung ist.
  • AUSFÜHRLICHE BESCHREIBUNG DER DERZEIT BEVORZUGTEN AUSFÜHRUNGSFORM
  • Eine typische Beispielinstallation der vorliegenden Erfindung ist in 1 gezeigt. Dort beinhaltet ein System 1 einen KVM-Verteiler 2, der eine Benutzer-Arbeitsstation 3 in relativer Nähe (beispielsweise bis zu 30 Fuß entfernt) zum KVM-Verteiler 2 versorgt. Die Arbeitsstation 3 beinhaltet eine Tastatur 5, eine Maus 6 und einen Monitor 4.
  • Der KVM-Verteiler 2 versorgt auch eine zweite Arbeitsstation 7, die relativ weit entfernt von den KVM-Verteiler 2 sein kann (beispielsweise bis zu 500 Fuß), wobei die Arbeitsstation 7 eine Tastatur 9, eine Maus 10 und einen Monitor 8 beinhaltet. Um die relative Distanz zwischen der Arbeitsstation 7 und dem KVM-Verteiler 2 zu versorgen, schließt eine Verlängerungseinrichtung 11 (die unten ausführlicher beschrieben wird) schnittstellenmäßig zwischen der Arbeitsstation 7 und dem KVM-Verteiler 2 an. Die Verlängerung 11 ist mittels einer langen Leitung 12 an den KVM-Verteiler 2 gekoppelt. Die Leitung 12 kann bei einer bevorzugten Ausführungsform ein CAT5-Kabel, ein faseroptisches Kabel etc. sein.
  • Ein KVM-Verteiler 2 kommuniziert im Betrieb Tastatur-, Video- und Maussignale zu und von den Arbeitsstationen 3 und 7 und einer Menge Computer 13. Jeder Computer 13 ist an den KVM-Verteiler 2 mit Kommunikationsleitungen 14 gekoppelt.
  • In dem Beispiel von 1 führt der KVM-Verteiler 2 eine vollständige 2 × 8 Matrixverteilung durch, wobei beide Benutzer unabhängig voneinander auf jeden der acht angeschlossenen PCs zur gleichen Zeit zugreifen können.
  • Wie unten detaillierter beschrieben, kann der Verteiler 2 auch per FLASH aufgerüstet werden, was bedeutet, dass die Firmware im Verteiler 2 zu jeder Zeit mittels einer einfachen seriellen Verbindung zwischen einem PC und dem KV-Verteiler aktualisiert werden kann.
  • Der Verteiler 2 stellt im Wesentlichen unbeschränkte Unterstützung für verschiedene Maustypen 6/10, verschiedene Tastaturtypen 5/9, verschiedene Monitortypen 4/8 und verschiedene Computertypen 13 bereit. Beispielsweise ist der Verteiler 2 kompatibel mit IBM PC/AT und PS/2 Systemen, SUN Systemen, etc. Er ist auch kompatibel mit VGA, SVGA, XGA und XGA-II Videosignalen. PS/2 und SUN Tastaturen werden versorgt, gleichermaßen PS/2 Intellimouse, IBM ScrollPoint, Logitech Mouse Man+, Logitech Marble+, Logitech Marble FX, und Kensington Expert-Mäuse, etc. Der Verteiler 2 stellt mit den VESA DDC2B-Standards konforme plug-and-play Videosignale bereit.
  • Die Verlängerungseinrichtung 11 kann ein Empfänger der Art sein, die von Cybex unter dem Namen „Longview" vertrieben wird, wie in 3 gezeigt. Wie ebenfalls in 3 gezeigt, beinhaltet der Verteiler 2 eine entsprechende Verlängerung 18 innerhalb des Verteilers 2, um als ein Sender/Empfänger mit der Verlängerung 11 über das Kabel 12 zu kommunizieren. Die Kombination der eingebauten Verlängerung 18 in den Verteiler 2 erlaubt es dem entfernten Benutzer 7, mit dem Verteiler 12 über relativ lange Entfernungen (beispielsweise bis zu 500 Fuß) zu kommunizieren.
  • Der Verteiler 2 weist die Fähigkeit zur Mausübersetzung auf, wobei die Maustypen 6/10 Datenprotokolle verwenden können, die unterschiedlich von einem zugeordneten Computer 13 sind, in welchem Fall der Verteiler 2 das Mausprotokoll zwischen dem ausgewählten Computer 13 und der Maus 6/10 übersetzt. Dies erlaubt es jeder Maus, mit jedem angeschlossenen PC zu funktionieren, unabhängig davon, ob der Computer notwendigerweise kompatibel mit dem speziellen Maustyp ist.
  • Übereinstimmend mit gängigen auf dem Markt verfügbaren KVM-Verteilern verwendet der Verteiler 2 beide „keep alive"-Merkmale, die es den angeschlossenen Computern 13 erlauben, den Verteiler 2 mit Energie zu versorgen, falls der Verteiler 2 einen Energieausfall erfährt. Dies verhindert, dass die angeschlossenen PCs 13 „sich aufhängen" und vermeidet den Verlust von Zeit und Daten. Weiterhin verwendet der Verteiler 2 andere bekannte Merkmale wie Sicherheit auf mehreren Ebenen, um den Serverzugriff für jede Art von Benutzer in dem System zu konfigurieren und kontrollieren, mit einer Administratorfunktion, die Administratoren vollere Zugriffsprivilegien und einzelnen Benutzern beschränkte Zugriffsprivilegien wie lesenden Zugriff, lesenden/editierenden Zugriff, etc. bereitstellt.
  • Der Verteiler 2 kann On Screen Anzeigefähigkeiten verwenden, bei welchen der Verteiler 2 mit einer On Screen Menüführung konfiguriert und gesteuert werden kann. In dem On-Screen-Menü können Computerkanäle mit kundenspezifischen Namen versehen und mittels eines graphischen Menüs ausgewählt werden. Untermenüs können es dem Benutzer erlauben, die Kanalsuche in anderen Systemmerkmalen zu konfigurieren und auszulösen. Ein OSD-Konfigurations-Dienstprogramm erlaubt es dem Administrator auch, eine Kanalliste mit definierten Benutzern und Zugriffsprivilegien für ein gesamtes System einfach zu konfigurieren und herunterzuladen. Dieses Dienstprogramm liest und speichert auch eine gegenwärtige Konfiguration zur zusätzlichen Sicherheit ab.
  • Ein Autoboot-Merkmal im Verteiler 2 bootet alle angeschlossenen Computer 13 während eines ersten Hochfahren oder nach einem Energieausfall. PCs 13 werden transparent ohne jeden Anwendereingriff gebootet und können einer nach dem anderen oder alle gemeinsam hochgefahren werden. Hat sich die Energieversorgung stabilisiert, kann ein Kanal von einem Benutzer einer Arbeitsstation 3/7 ausgewählt werden.
  • Ein eingebautes Abtastmerkmal des Verteilers 2 erlaubt es dem Benutzer, PCs 13 ohne Eingriff automatisch zu überwachen oder abzutasten. Wird eine Tastaturaktivität ermittelt, wird das Abtasten ausgesetzt bis alle Aktivität beendet wird, woraufhin das Abtasten mit dem nächsten Kanal und der nächsten Reihenfolge fortgefahren wird.
  • Die Verbindungen zwischen dem Verteiler 2 und den Computern 13 sind in 2 veranschaulicht. Dort ist einer der Computer 13, namentlich Computer 13a, als mit dem Verteiler 2 über ein Kabel 14 verbunden veranschaulicht. Der Computer 13a ist ein Standard-Anwendercomputer mit Tastatur- und Mausanschlüssen 15 und einer Videokarte mit externen Videoanschlüssen 16. Das Kabel 14 beinhaltet Standard-Tastatur- und Mausverbinder zum Verbinden mit Tastatur- und Mausanschlüssen 15 und ein Standard-Video-Monitorkabel, zur Verbindung mit dem Videoanschluss 16. An einem gegenüberliegenden Ende des Kabels 14 sind die Kabel mit einem Computeranschluss 29A des Verteilers 2 verbunden. Acht Computeranschlüsse sind in dem in 2 veranschaulichten Verteiler 2 bereitgestellt, obwohl jede Anzahl weiterer Anschlüsse durch die vorliegende Erfindung unterstützt werden kann, was lediglich von der gewünschten Architektur abhängt. Daher kann, obwohl in den 1 und 2 der 2 × 8 Verteiler für veranschaulichende Zwecke verwendet wird, jede andere Kombination von Benutzeranzahlen und Computeranzahlen von dem Verteiler 2 versorgt werden.
  • Unter Benutzung der Verbindungen von 2 stellt der Verteiler 2 Tastatur-, Maus- und Monitorsignale mittels des Anschlusses 29A dem Computer 13A über das Kabel 14 bereit. Der Computer 13A empfängt die Tastatur-, Maus- und Videosignale (und überträgt auch passende Signale an den Verteiler 2), so dass der Computer 13A sich dessen nicht bewusst ist, dass er mit einem KVM-Verteiler 2 statt einem tatsächlichen Tastatur-, Video- und Mausperipheriegerät spricht. Daher stellt der Verteiler 2 den Tastatur-, Maus- und Videoprotokollen, die von dem Computer 13A während seines Bootens verlangt werden, die passenden Initialisierungsprozeduren bereit.
  • Obwohl nicht in 2 gezeigt, kann das Kabel 14 weitere alternative Enden für andere Arten von Mäusen und Tastaturen beinhalten, so dass das Kabel 14 ein Standardkabel für mehrere verschiedene Arten von Tastatur-/Maus-Videoanschlüssen sein kann. Daher kann das Kabel 14 bei einer beispielhaften Ausführungsform einen 25 poligen „D" Verbinder an dem mit dem Anschluss 29A verbundenen Ende tragen. Das andere Ende des Kabels 14 kann bei dieser beispielhaften Ausführungsform fünf Verbinder besitzen: einen 15-poligen „HDD" Verbinder für Video (um den Videoanschluss 16 anzuschließen), einen 5-poligen/6-poligen Mini-DIN-Verbinder für eine AT oder PS/2 Tastaturverbindung und einen 9-poligen seriellen/6-poligen Mini-DIN-Verbinder für eine serielle oder PS/2 Mausverbindung. Der PS/2 Mausverbinder kann durch eine passende Markierung gekennzeichnet sein. Dann werden nur diejenigen Tastatur- und Mausverbinder, die für den PC 13 passend sind, mit den Anschlüssen 15 verwendet, und die verbleibenden Verbinder bleiben unverbunden.
  • Die Verbindungen von 2 werden dann für jeden der in 1 gezeigten Computer 13 wiederholt, indem sie jeweils an den Anschlüssen 29A, 29B etc. des Verteilers 2 angebracht werden. 2 zeigt daher die Verbindungen zwischen dem Verteiler 2 und den Computern 13. Auf der anderen Seite des Verteilers sind die Verbindungen zwischen den lokalen Benutzern 3 und dem Verteiler 2 in 5 gezeigt. Dort beinhaltet der Verteiler 2 die Sektion 28 für lokale Benutzerverbindungen, welche die Tastatur-/Video-/Mausverbindungen von Arbeitsstation 3 versorgen. Ein Kabel der Tastatur 5 ist in 5 als PS/2 Tastaturkabel 25 gezeigt, welches mit dem Tasturanschluss 26 des Verteilers 2 verbunden ist. Die Maus 6 verwendet ein PS/2 Mauskabel 26, welches in den Mausanschluss 25 des Verteilers 2 eingesteckt ist. Der Monitor 4 schließlich beinhaltet ein VGA-Monitorkabel 27, welches mit dem Videoanschluss 27 des Verteilers 2 verbunden ist. Die Kombination der in die lokale Benutzersektion 28 des Verteilers 2 eingebundenen Kabel 25, 26 und 27 stellt die in 1 zwischen der Arbeitsstation 3 und dem KVM-Verteiler 2 gezeigten Verbindungen bereit.
  • Daher werden im Betrieb Tastatur- und Maussignale von der Tastatur 5 und der Maus 6 der Benutzerstation 3 direkt an den KVM-Verteiler 2 in die Anschlüsse 25 und 26 gesendet. Der Verteiler 2 empfängt die Tastatur-/Maussignale, führt geeignete Übersetzungen durch und liefert sie an den ausgewählten Computer 13A mittels des Kabels 14 an die Anschlüsse 15 (2). Der Computer 13A reagiert auf die an seinem Anschluss 15 empfangenen Tastatur- und Maussignale und erstellt eine neue Anzeige als Antwort auf die Tastatur-/Maussignale, wobei die Videosignale von Anschluss 16 durch Kabel 14 dem Verteiler 2 bereitgestellt werden. Der Verteiler 2 führt dann geeignete Videoübersetzungen durch und liefert die Videosignale an Anschluss 27 (5) auf Kabel 27 aus, welches die Videosignale an den Monitor 4 liefert.
  • Der entfernte Benutzer 7 verbindet sich ebenfalls mit dem Verteiler 2, tut dies jedoch gemäß der in 4 gezeigten Beschreibung. Wie in 4 gezeigt, ist ein Standard-Kategorie-5 nicht abgeschirmtes verdrilltes Leitungspaar (bis zu 500 Fuß) von einem RJ-45-artigen modularen Stecker 30 (5) an der entfernten Benutzersektion 29 des Verteilers 2 eingesteckt. Bei einer bevorzugten Ausführungsform sollte, wenn ein Kategorie-5 Kabel verwendet wird, das Kabel gemäß des allgemein für 10-Base T Ethernet verwendeten Standards EIA (TIA) 568B terminiert werden, obwohl andere Arten von Anschlüssen und Kabeln von der vorliegenden Erfindung in Erwägung gezogen werden.
  • Wie in 4 gezeigt, ist das CAT-5 Kabel 12 mit der Verlängerung 11 verbunden, welche auch einen Tastaturanschluss 22, einen Mausanschluss 23 und einen Videoanschluss 24 beinhaltet. Das Tastaturkabel 19 von Tastatur 9 verbindet mit dem Tastaturanschluss 22 der Verlängerung 11, das Mauskabel 20 verbindet mit dem Mausanschluss 23 der Verlängerung 11 und das Videokabel 21 vom Monitor 8 verbindet mit dem Videoanschluss 24 der Verlängerung 11. Die Verlängerung 11 stellt Langstrecken-Übertragung/Empfang für Peripheriegeräte bereit. Bei einer bevorzugten Ausführungsform ist die Verlängerung 11 ein von Cybex Computer Products Corporation in Huntsville, Alabama, vertriebener Longview Sender/Empfänger.
  • Wenn mehr als acht Computer 13 mit Hilfe des Verteilers 2 der bevorzugten Ausführungsform (2 × 8) eingesetzt werden sollen, kann die kaskadierte Ausführung der 6 und 7 verwendet werden. Wie in 6 gezeigt, verbindet der Verteiler 2 mit der entfernten Station 7 und der lokalen Station 3, wie zuvor unter Bezug auf die 2 bis 5 beschrieben. Der Verteiler 2 verbindet auf die gleiche, oben beschriebene Weise auch mit Computern 13A bis 13C. Um es den Arbeitsstationen 3 und 7 zu erlauben, mit mehr als acht Computern zu kommunizieren, wird der Verteiler 2 kaskadiert, indem zwei zusätzliche Verteilereinheiten 31 und 32 mittels Kommunikationsleitungen 33 und 34 verbunden werden. Der Verteiler 31 koppelt mit den zusätzlichen Computern 35A bis 35C, und der Verteiler 32 koppelt mit den zusätzlichen Computern 36A bis 36C. Wie in 6 gezeigt, erlaubt es die kaskadierte Anordnung den Benutzern 3 und 7, mit mehr Computern zu kommunizieren, als es ein einzelner Verteiler 2 erlauben kann.
  • Bei der kaskadierten Ausführungsform von 6 waren die Verteiler 2, 31 und 32 auf die in 7 gezeigte Weise verbunden. Der Verteiler 2 beinhaltet die Computeranschlüsse 29A etc. (vgl. 2), die mit den Computern 13A bis 13C verbunden sind. Bei der kaskadierten Anordnung ist einer der Computeranschlüsse des Verteilers 2 mit dem kaskadierten Verteiler 31 mittels des Kabels 33 gekoppelt. An einem Ende des Kabels 33 verbindet ein Koppler mit einem der Computeranschlüsse 29A und das andere Ende des Kabels 33 koppelt mit der lokalen Benutzersektion 28 des Verteilers 31 auf die gleiche Weise wie in 5 gezeigt. Die jeweiligen Verteiler 2, 31, 32 etc. erkennen einander an ihren Computeranschlüssen 29A in einer Weise, die später unter Bezug auf 18 erklärt werden wird. Falls daher Benutzer 3 (6) den Computer 36A auszuwählen wünscht, wird der Verteiler 2 wissen, dass Computer 36A dem Verteiler 32 zugeordnet ist und wird alle Tastatur-/Video-/Maus-Signale an den Verteiler 32 mittels des Kabels 34 zur Verteilung an den Computer 36A übermitteln. Für den Benutzer der Arbeitsstation 3 ist der Transfer vollständig transparent.
  • Bei jeder der Ausführungsformen der 1 bis 7 können die Computer von den Benutzern mittels fester Knöpfe auf dem Verteiler, einer Hot-Key-Abfolge oder einer On Screen Display-Auswahl umgeschaltet werden.
  • Wieder Bezug nehmend auf 1, können die Benutzer der beiden Arbeitsstationen 3 und 7 aus Gründen, die nach der unten stehenden Besprechung der Architektur (Software und Hardware) verständlich sein werden, auf jeden der Computer 13 unabhängig voneinander zur selben Zeit zugreifen. Die Arbeitsstationen 3 und 7 können auch einen Zugriff auf einen beliebigen der Computer 13 durch den Verteiler 2 teilen. In der Situation des Teilens sehen beide Arbeitsstationen 3 und 7 einen Computerkanal zur selben Zeit auf einem jeweiligen Monitor 4 und 8. Der Verteiler 2 stellt sicher, dass nur eine Arbeitsstation 3/7 zu jedem Zeitpunkt ihre Daten durch die Tastatur 5/9 oder Maus 6/10 eingibt, um ein „sich Aufhängen" zu vermeiden. Sobald jedoch die aktive Arbeitsstation eine Tastatur- und Mausaktivität beendet, kann die andere Arbeitsstation die Steuerung des Computers übernehmen und Daten durch ihre Tastatur und Maus eingeben. Auf diese Weise haben beide Arbeitsstationen 3 und 7 unmittelbaren und geteilten Zugriff auf alle Computer 13 (mit der Einschränkung, dass der Verteiler 2 absolut simultane Dateneingaben in den gleichen Computer im gleichen Moment verhindern wird).
  • Der Verteiler 2 schließt eine Vielzahl von Merkmalen ein, die im Lauf der Zeit Aufrüstungen verlangen. Beispielsweise werden OSD-Konfigurationsparameter für bestimmte Benutzer im Abschnitt "OSD Configuration Utility" der U.S. Patentanmeldung Nr. 60/132,926 (welche vorstehend durch Inbezugnahme aufgenommen wurde) beschrieben und beinhalten Parameter wie Kanalnamen, Anzeigepositionierung und – attributierung, Anzeigeverweilzeiten pro Kanal, erforderliche Flag-Antworten pro Kanal, Benutzernamen, Benutzerpassworte, Benutzer-Login-Zeitüberschreitungen, Benutzerzugriffsbeschränkungen etc. Die Konfigurationsparameter können sogar im Lauf der Zeit aktualisiert und verändert werden, so dass neue und verbesserte Konfigurationsparameter verwendet und vom KVM-Verteiler aktiviert werden können. Während diese neuen Konfigurationsprotokolle entwickelt werden, kann die vorliegende Erfindung, wie in 21 gezeigt, FLASH-Speicher auf dem Verteiler 2 bereitstellen, um es zu erlauben, die Firmware des Verteilers 2 aufzurüsten. Um den FLASH-Code auf dem Verteiler 2 aufzurüsten, kann neue FLASH-Firmware von dem Computer 111 auf den Verteiler 2 mittels eines Kabels 108 heruntergeladen werden. Das Kabel 108 ist ein serielles Kabel, welches den PC 111 mit dem Verteiler 2 zwischen einem Konfigurationsanschluss 109 am Verteiler 2 und einem seriellen Anschluss 110 am Computer 111 verbindet. Der Computer 111 verwendet irgendeine Form von Terminalsoftware, um es dem Computer zu erlauben, mit dem Verteiler 2 zu kommunizieren. Jede kommerziell verfügbare Terminalsoftware kann genügen. Die FLASH-Aufrüstung wird allgemein durch das On Screen Display-Menü des Vertei lers 2 durch Aktivierung eines Menüpunktes für das FLASH Aufrüsten aktiviert. Die FLASH-Datei von dem Computer 111 wird allgemein als eine Textdatei an den Verteiler 2 übermittelt.
  • Selbstverständlich muss das Aufrüsten des Verteilers 2 nicht von dem PC 111 auf den Verteiler erfolgen, sondern kann mittels jeder anderen Art von Kommunikationsmitteln, wie durch ein Netzwerk (mittels des Anschlusses 109), mittels eines Internets, mittels eines IR-Transfers etc. erfolgen.
  • 8 veranschaulicht eine beispielhafte Hardwarearchitektur eines KVM-Verteilers gemäß der vorliegenden Erfindung. In 8 ist der Verteiler 37 als eine Einzelprozessorarchitektur ausgeführt. Bei der Ausführungsform von 8 kann der Verteiler 37 in dem KVM-Verteiler 2 aus 1 verkörpert sein. In einem solchen Fall kommunizieren die Arbeitsstationen 3 und 7 mit dem KVM-Verteiler 37 genau so wie sie mit dem KVM-Verteiler 2 in 1 kommuniziert haben. Signale von der Arbeitsstationstastatur 5/9, der Maus 6/10 und dem Videomonitor 4/8 der Arbeitsstationen 3/7 werden dem Verteiler 37 mittels der Leitungen 25/26/27 (5) und 11/12 (1) bereitgestellt. Die Arbeitsstationssignale werden dem einzelnen Prozessor 38 bereitgestellt. Der Prozessor 38 kann bei einer beispielhaften Ausführungsform ein Prozessor der Siemens 167-Familie, wie der Siemens C163-16F Prozessor, sein. Der Prozessor 38 kann bei der beispielhaften Ausführungsform von 8 FLASH-Speicher und lokales RAM beinhalten. Der Durchschnittsfachmann wird verstehen, dass zusätzlicher RAM-Speicher 39 und EEROM Speicher 40 ebenfalls mit dem einzelnen Prozessor 38 kommunizieren, um zusätzlichen externen Speicher bereitzustellen.
  • Zwischen dem einzelnen Prozessor 38 und den PCs 13 ist ein FPGA 41. Im FPGA ist eine Computer-I/O 42 vorgesehen, die Eingabe-/Ausgabeschnittstellen zwischen dem Prozessor 38 und den PCs 13 bereitstellt, wie unten detaillierter beschrieben wird. Das FPGA 41 stellt auch einen Sync-Generator 43 zur Synchronisation des OSD-Subsystems 44 dem Prozessor 38 bereit. Das OSD-Subsystem 44 kann ein Standard Motorola OSD-Chip sein. Ein Video-Subsystem 45 empfängt Videosignale direkt von den PCs 13 und gibt sie in den Prozessor 38 mit passend darüber gelegten OSD-Menüs aus dem OSD-Subsystem 44 ein.
  • Im Betrieb werden Tastatur- und Maussignale von den Arbeitsstationen 3/7 an den Prozessor 38 mit einem oder mehreren PCs 13 als Bestimmungsorte bereitgestellt. Der Prozessor 38 legt die Tastatur- und Maussignale an die passenden PC-Anschlüsse für die PCs 13 mittels der Computer-I/O 42 an. Währenddessen werden Videosignale von den PCs 13 von den PC-Anschlüssen des Verteilers 2 empfangen und an das Videosubsystem 45 eingegeben. Das Subsystem 45 stellt dem Prozessor 38 Videosignale bereit, welcher diese an die geeigneten Leitungen 27 oder 12 für die Zieladressen der Videomonitore 4 oder 8 anlegt. Selbstverständlich wird das OSD-Subsystem 44, falls ein OSD-Menü aktiviert worden ist, das OSD-Menü an das Videosubsystem 45 bereitstellen, welches die Menüs über das von den PCs 13 gerade bereitgestellte Signal überschreibt.
  • Wie später detaillierter beschrieben wird, ist die Architektur 37 dadurch neu, dass der Prozessor 38 nicht nur als ein Matrix-Verteiler wirkt, der "festverdrahtete" Verbindungen zwischen den Arbeitsstationen 3/7 und den ausgewählten PCs 13 bereitstellt. Stattdessen wird es der Prozessor 38 erlauben, beide Arbeitsstationssignale 3/7 sogar von einem einzelnen PC 13 zu empfangen. Dies erlaubt es zwei verschiedenen Benutzern, auf den gleichen PC zur selben Zeit zuzugreifen und Tastatur- und Mauszugriff auf den selben PC einzusetzen. Daher erlaubt es die vorliegende Architektur und Methodologie, im Gegensatz zu einem reinen Matrix-Verteiler, bei dem eine Arbeitsstation mit einem PC kommuniziert und eine andere Arbeitsstation mit einem anderen PC kommunizieren kann, einem einzelnen Prozessor, geteilten Zugriff und geteilte Kontrolle zwischen mehreren Arbeitsstationen in einem einzelnen PC bereitzustellen, sowie zwischen mehreren Arbeitsstationen und den jeweiligen unabhängigen PCs.
  • 9 veranschaulicht eine beispielhafte Ausführungsform des Prozessors 38, namentlich die Siemens C163-16F Prozessorarchitektur. Der in 9 gezeigte Prozessor ist ein bekannter Prozessor, der auf die neuartige Weise von 8 angewendet wird. Der Prozessor von 9 ist gezeigt und beschrieben im Siemens Datenblatt Microcomputer Components, 16-bit SMOS Microcontroller C163-16F, veröffentlicht am 1. 11. 1997. Da die grundsätzliche Wirkungsweise des Mikrocontrollers 38 dem Durchschnittsfachmann aus einer Durchsicht von 9 und des Siemens-Datenblattes sofort ersichtlich sein wird, ist aus Gründen der Kürze nur eine kurze Zusammenfassung der Funktionen des Mikrocontrollers unter Bezugnahme auf 9 nachstehend beschrieben. Im Prozessor 38 stellt eine CPU 46 zentrale Verarbeitungsfunktionen bereit. Der FLASH-Speicher, auf den schon vorher verwiesen wurde (unter Bezugnahme auf 8), ist in einem Puffer 47 geführt, der mit der CPU 46 und dem Interrupt-Controller 52 kommuniziert. Alternativ hierzu kann der FLASH-Speicher extern bezüglich des Prozessors 38 sein und immer noch innerhalb des Bereichs der derzeit angedachten Erfindungen liegen. Internes RAM (ebenfalls vorher beschrieben unter Bezugnahme auf 8) ist in 9 als ein mit der CPU 46 und dem Interrupt- Controller 52 kommunizierendes Element 53 gezeigt. Der Watchdog Schaltkreis 54 ist ebenfalls in Kommunikation mit der CPU 46 und dem Interrupt-Controller 52 bereitgestellt. Der Mikrocontroller beinhaltet mehrere I/O-Anschlüsse 50. Port0, Port1 und Port6 stellen eine bidirektionale Kommunikation von externen Geräten an die CPU 46 mittels eines externen Busses 51 und eines externen Instruktionsdatenbusses bereit. Taktgenerierung wird über eine PLL 48 mittels entweder direktem oder vorher geteiltem Takteingang bereitgestellt. Zwei multifunktionale allgemeine Timer ("GPT")-Einheiten 55 und 56 sind mit 5 Timern T2–T6 bereitgestellt. Jede GPT-Einheit 55/56 stellt eine flexible multifunktionale Timer/Zähler-Struktur dar, die für verschiedene zeitbezogene Aufgaben wie Ereignis-Zeitmessung, zählende Sync-Erzeugung etc. verwendet wird. Eine serielle Kommunikation mit anderen Mikrocontrollern, Prozessoren, Endgeräten oder externen Peripheriekomponenten wird durch den asynchronen/synchronen seriellen Kanal ASC des USART57 und synchronen seriellen Anschluss SSP 49 bereitgestellt.
  • Der Interrupt Controller 52 stellt eine sehr schnelle Unterbrechungs-Antwortreaktion auf Serviceanforderungen bereit, die von verschiedenen Quellen intern oder extern des Mikrocontrollers generiert werden können. Jede dieser Unterbrechungsanforderungen kann programmiert werden, um von dem Interrupt-Controller oder von dem Peripherie-Event-Controller (PEC) behandelt zu werden.
  • Im Mikroprozessor 38 wird die laufende Programmausführung während einer Verzweigung auf die Unterbrechungsvektortabelle nicht ausgesetzt. Stattdessen wird ein Zyklus der momentanen CPU 46-Tätigkeit verwendet, um einen PEC-Dienst durchzuführen. Ein PEC-Dienst beinhaltet einen Ein-Byte- oder Ein-Wort-Datentransfer zwischen zwei beliebigen Speicherplätzen mit einem zusätzlichen Inkrement entweder des PEC-Quell- oder des Zielzeigers. Ein eigener PEC-Transferzähler wird implizit für jeden PEC-Dienst dekrementiert, außer wenn im fortlaufenden Transferbetrieb verfahren wird. Wenn dieser Zähler Null erreicht, wird eine Standard-Unterbrechung auf den zugeordneten quellbezogenen Vektorort durchgeführt. PEC-Dienste sind sehr gut geeignet, um beispielsweise die Übertragung oder den Empfang von Blöcken von Daten zu unterstützen. Der C163-16F hat 8 PEC Kanäle, von denen jeder solche schnellen unterbrechungsgesteuerten Datentransfermöglichkeiten bietet.
  • Ein eigenes Kontrollregister, welches ein Unterbrechungs-Anforderungs-Flag, ein Unterbrechungs-Einschalt-Flag und ein Unterbrechungs-Prioritäts-Bitfeld enthält, existiert für jede der möglichen Unterbrechungsquellen. Mittels ihres zugeordneten Registers kann jede Quelle auf eine von sechzehn Unterbrechungsprioritätsstufen programmiert werden. Sobald sie von der CPU akzeptiert worden ist, kann eine Unterbrechungsbehandlung nur durch eine höher priorisierte Unterbrechungsbehandlungsanforderung unterbrochen werden. Für die normale Unterbrechungsbearbeitung hat jede der möglichen Unterbrechungsquellen einen zugeordneten Vektorort.
  • In dem Prozessor 38 ist der FLASH-Speicher des Puffers 47 ein On-Chip FLASH Modul mit einer Kapazität von 128 KByte. Es kombiniert die Vorzüge eines sehr schnellen Lesezugriffs von 32 Bits in einem Maschinenzyklus mit schützenden aber einfachen Schreibe-Aus-Zyklen („Writing Out Rhythmus") zum Programmieren und Löschen. Lesezugriffe auf Code und Daten sind in jedem Adressierungsbetrieb möglich, wodurch die höchste CPU-Performanz mit dem Holen von Doppelwort-Instruktionen in einem einzelnen Zyklus realisiert wird. Der FLASH-Speicher im Puffer 47 ist besonders nützlich bei der vorliegenden Erfindung, um das zuvor unter Bezugnahme auf 21 beschriebene FLASH-Aufrüsten der OSD-Firmwareänderungen durchzuführen.
  • Wie in 12 gezeigt, ist der Prozessor 38 in einer Von-Neumann-Architektur konfiguriert, was bedeutet, dass auf Code und Daten innerhalb des selben linearen Adressraums zugegriffen wird. In dem Beispiel von 12 sind alle physisch getrennten Speicherregionen inklusive FLASH, RAM und PLD in einen gemeinsamen Adressraum abgebildet. In dem Beispiel von 12 ist der Adressraum von 16 Megabyte als 256 Segmente von jeweils 64 Kilobyte angeordnet. Jedes Segment ist eingeteilt in 4 Datenseiten zu je 16 Kilobyte. Daher ist der externe FLASH/ROM-Speicher auf die Segmente 0–3, das externe RAM auf die Segmente 4–5, das PLD auf das Segment 6 und das optionale vierfache UART (für SUN-Daten) auf das Segment 7 abgebildet. Der Prozessor 38 ist so konfiguriert, dass jedes Chip Select-Signal auf bis zu 256 Kilobyte Adressraum zugreifen kann.
  • Als Nächstes ist die in dem Prozessor 38 umzusetzende Softwarearchitektur beschrieben. Die Software erlaubt es durch Verwendung eines einzelnen Mikroprozessors, der eine zeitgesteuerte Unterbrechung verwendet, um periodisch die Software zu veranlassen, die Anforderungen (RTS) von einem oder allen der mehreren Computer abzufragen und zu behandeln, dass mehrere Computer gleichzeitig hochgefahren werden. Die Software kann erweitert werden, um 4, 8, 16 oder jede andere Anzahl von Computern mittels des einzigen Mikroprozessors zu unterstützen.
  • Die Software ist in einer abgeteilten Weise ausgeführt, so dass Grenzen zwischen Softwarekomponenten den Grenzen zwischen getrennten physischen Hardwarekomponenten sehr ähnlich sind. Hier wird die Bezugnahme auf den "Handler" als eine Bezugnahme auf Software verwendet, die von der Hauptaufgabenschleife aufgerufen wird, um eine modulspezifische Verarbeitung zu erlauben. Der Ausdruck "application programming interface (API)" bezieht sich auf einen zur Kommunikation zwischen Handlern bereitgestellten Mechanismus.
  • Der Prozessor 38 stellt das folgende Hauptaufgabeschleifenlisting bereit. Diese Routinen sind nicht notwendigerweise in der richtigen Reihenfolge.
    CheckScanButton (leer); (Aufgabe #1)
    CheckChannelButton (0); (Aufgabe #2)
    CheckChannelButton (1);
    CheckChannelButton (2);
    CheckChannelButton (3);
    CheckChannelButton (4);
    CheckChannelButton (5)
    CheckChannelButton (6)
    CheckChannelButton (7)
    U1_KbdHandler(&kbd_hdlr[0]); (Aufgabe #3)
    U1_KbdHandler(&kbd_hdlr[1]);
    U1_KbdHandler(&mse_hdlr[0]);
    U1_KbdHandler(&mse_hdlr[1]);
    CheckKbdDataRouterHandler(); (Aufgabe #4)
    CheckMseDataRouterHandler();
    CI_Handler(); (Aufgabe #5)
    SerialMouseHandler(); (Aufgabe #6)
    ChannelSwitchHandler(); (Aufgabe #7)
    MenuProcess(); (Aufgabe #8)
    CheckLEDs(); (Aufgabe #9)
    TimerHandler(); (Aufgabe #10)
  • Die oben angeführten Aufgaben sind unten ausführlicher beschrieben.
  • Aufgabe #4 wird von einem Tastaturdatenrouter-Modul ausgeführt, das Tastaturdaten von der Peripherie an verschiedene Verbraucherregionen, wie das OSD, das Hot Key- und das Computerinterface (CI) routet. 19 stellt ein Flussdiagramm dieser Operationen dar.
  • Zuerst, in Schritt 102, überprüft das Modul den Tastatureingangspuffer, um zu bestimmen, ob Tastaturdaten von einem Peripheriegerät empfangen worden sind. Wenn Daten verfügbar sind, bestimmt es in Schritt 103, ob die Daten mehrstufig sind. Ist das der Fall, so werden die Daten direkt an die Computerschnittstelle (beispielsweise Computer I/O 42) in Schritt 106 weitergeleitet. Falls nicht, so wird der Tastaturstatus geprüft, der Tastatur-OSD-Status in Schritt 104 geprüft, und der Hot Key-Status in Schritt 105 geprüft. Falls die Tastendrücke von den OSD-(Schritt 104) oder Hot Key-(Schritt 105)Abfragen konsumiert werden, dann zeigen sich die Daten keinem der Computer. Sind die Daten nach Schritt 105 verfügbar, so werden sie in Schritt 106 an die Computerschnittstelle gesendet.
  • Selbstverständlich führt der Prozessor geeignete Tastatur-Datenformat-Umsetzungen (wie Scan-Set 1, 2, 3 etc.) durch, um die gewünschten Protokolle für das OSD-Menü-Subsystem, für den gewählten PC etc. anzupassen.
  • Aufgabe #4 wird ebenfalls von einem Mausdaten-Router-Modul durchgeführt, welches Mausdaten von dem Peripheriegerät an verschiedene Verbraucherregionen wie das OSD und das CI (Computer Interface) routet. 20 veranschaulicht ein Flussdiagramm dieser Prozesse. In Schritt 107 überprüft das Modul den Mausempfangspuffer, um festzustellen, ob Mausdaten von einem Peripheriegerät empfangen worden sind. Der Prozessor prüft in Schritt 104, um zu bestimmen, ob die Mausdaten ein OSD-Menü beantworten. Ist dies der Fall, kann das OSD-Subsystem die Mausdaten konsumieren, und die Verarbeitung endet. Falls nicht, werden die Mausdaten an die Computerschnittstelle in Schritt 106 weitergeleitet.
  • PS/2 Maus-Peripheriegeräte können Datenpakete in zahlreichen Formaten ausgeben. Die Standard-2/3-Tasten-Maus sendet Dreibytepakete an das System. Die Schaffung des „Wheels" in der Microsoft Intellimouse hat jedoch das Vierbytedatenpaket bedingt, wobei das vierte Byte die Drehung des Rades anzeigt. Weiterhin haben Logitechs MouseMan+ and IBMs Scrollpoint ihre eigene Radeinrichtung umgesetzt, jedoch tun sie dies, indem sie zu einem Dreibytepaket zurückkehren und die Overflowbits in Byte 1 verwenden, um die Drehung des Rades anzuzeigen.
  • Es ist ein Ziel dieser beispielhaften Ausführungsform der Erfindung, dass die Peripherieseite nicht in Kenntnis von der PC-Seite bezüglich Peripheriegeräten vs. PC-Gerätetreibern sein muss. Mausdaten müssen die Einheit oder Stufen von Einheiten, die all die Daten enthalten, die von den Peripheriegeräten empfangen wurden, durchlaufen, und zwar unbeachtet ihrer Fähigkeiten, so dass das CI-Modul den ge wählten PC-Treiber mit den passenden Daten versorgen kann. Es ist möglich, dass die von den Peripheriegeräten empfangenen Daten mehr Attribute enthalten, als der gegenwärtig ausgewählte PC-Treiber benötigt. Beispielsweise wird ein Intellimouse Peripheriegerät Raddaten (vier Bytes) senden, aber ein Standard-PS/2-Maustreiber auf dem ausgewählten PC kann nur drei Byte konsumieren. Aufgrund der Unvorhersagbarkeit der PS/2 Mausindustrie stellt die gegenwärtige Ausführungsform ein Fundament dar, um die derzeit existierenden Mäuse und auch zukünftige aus der Perspektive ihrer Paketlänge zu versorgen.
  • Alle Mausdaten, die von der vorliegenden Verteilereinheit (gemäß dieser beispielhaften Ausführungsform) an eine gestufte („tiered") oder gepaarte Einheit kommuniziert werden, werden dies im folgenden Paketformat:
    Figure 00180001
  • Die gesamte Paketlänge ungeachtet der Art ist sechs Byte.
  • Ein User Interface-(UI) Modul verarbeitet den Empfang der Daten von und Anweisungen an die Peripheriegeräte für mehrere Benutzer; Fehlerverarbeitung, Initialisierung und Konfiguration. Ein Beispielmodul ist in 10 gezeigt. Dort senden Tastaturen und Mäuse von den Arbeitsstationen 3 und 7 Daten an die Unterbrechungsbehandlungsroutine (ISR) 58. Handler-Funktionen werden bei 59 durchgeführt, welches mit der Benutzerschnittstelle API 60 schnittstellenmäßig koppelt. Der gemeinschaftliche Datenbereich 61 wird für die ISR 58 und den Handler 59 bereitgestellt.
  • Das User Interface (UI)-API stellt eine Programmierschnittstelle bereit, die dazu verwendet wird, mit Benutzer-Peripheriegeräten, sowohl Tastaturen als auch Mauseinrichtungen, schnittstellenmäßig zu koppeln. Es führt Funktionen durch, indem es einen öffentlichen Datentyp zum Austausch von Mausdaten zwischen dem UI, dem CI und anderen interessierten Parteien verwendet. Ein Beispielformat kann sein:
    Figure 00190001
  • Das User Interface API führt die folgenden Funktionen durch:
    • 1. U1_KbdHandler: Diese Funktion wird wiederholt von der Hauptaufgabenschleife aufgerufen. Sie ist dafür verantwortlich, die Funktion der Tastatur für alle Benutzeranschlüsse zu initialisieren. Sie muss feststellen, ob eine Tastatureinrichtung aktiv ist und fehlgeschlagene Tastaturschnittstellen zurücksetzen. Sie muss auch die Anwesenheit eines ähnlichen, gestaffelten KVM-Verteilerproduktes ermitteln und dies über die öffentliche API anzeigen. Sie ist verantwortlich dafür, den Status der Tastaturlichter und Typematic-Raten den letzten von der API bereitgestellten Werten nachzuführen. Diese Funktion kann wahrscheinlich durch Verwendung eines Endlichen Automaten bzw. einer „state machine" umgesetzt werden. Parameter: keine. Rückgaben: leer.
    • 2. U1_KbdDataAvail: Diese Funktion bestimmt, ob wenigstens ein Tastaturbyte im Tastaturpuffer verfügbar ist. Parameter: userPort – ausgewählter Benutzeranschluss. Rückgaben: WAHR, falls Tastaturdaten verfügbar sind, sonst FALSCH.
    • 3. U1_KbdDataGet: Diese Funktion holt ein Tastaturbyte vom Tastaturpuffer ab. Sie kann die Tastatur bei Bedarf als Folge des Abholens des Bytes freigeben. Parameter: userPort – gewählter Anschluss; kbdPtr – Adresse, wo das Tastaturbyte hinzubringen ist. Rückgaben: WAHR, falls Tastaturdaten verfügbar sind, sonst FALSCH.
    • 4. U1_KbdproductType: Diese Funktion bestimmt, welche Art von Gerät an dem Tastaturanschluss angeschlossen ist, falls überhaupt eines angeschlossen ist. Parameter: userPort – gewählter Benutzeranschluss; symbolischer Produkttypwert, der die Art der Tastatureinrichtung angibt. Die folgenden Symbole sollten verwendet werden: KBPROD_NONE, KBPROD_KEYBOARD, KBPROD_AUTOVIEW, KBPROD_FALCON.
    • 5. U1_KbdSetTypematic: Diese Funktion stellt die Tastatur-Typematic-Rate ein und speichert diesen Wert zur späteren Benutzung, falls die Tastatur durch Hot Plugging oder einen Tastaturfehler neu konfiguriert werden muss. Parameter: userPort – ausgewählter Benutzeranschluss; Rate – Typematic Rate, die verwendet werden soll. Rückgaben: keine.
    • 6. U1_KbdSetLightStatus: Diese Funktion stellt die Tastatur ein und speichert diesen Wert zur späteren Verwendung ab, falls die Tastatur durch Hot Plugging oder einen Tastaturfehler neu konfiguriert werden muss. Parameter: userPort – ausgewählter Benutzeranschluss; Lichter – zu verwendender Lichterstatus. Bit 0 ist Scroll Lock, Bit 1 ist Num Lock, Bit 2 ist Caps Lock. Rückgaben: keine.
    • 7. U1_KbdGetLightStatus: Diese Funktion holt die momentane Lichterstatus-Einstellung, die verwendet wird, wenn die Tastatur des Benutzers konfiguriert wird. Parameter: userPort –ausgewählter Benutzeranschluss. Rückgaben: Bit 0 ist Scroll Lock, Bit 1 ist Num Lock und Bit 2 ist Caps Lock.
    • 8. U1_KbdFlushBuffer: Diese Funktion löscht alle Tastenanschläge aus dem lokalen Pufferspeicher und setzt ein Pufferlöschkommando an die angeschlossene Tastatureinrichtung ab. Parameter: userPort – ausgewählter Benutzeranschluss. Rückgaben: keine.
    • 9. U1_KbdSendFeedback: Diese Funktion empfängt drei Byte EF-Feedback zur Übertragung an die Tastatureinrichtung. Parameter: userPort –ausgewählter Benutzeranschluss; feedBack – Adresse des 3-Byte-Puffers, der die Feedback-Bytes enthält. Rückgaben: keine.
    • 10. U1_MseHandler: Diese Funktion wird wiederholt von der Hauptaufgabenschleife aufgerufen. Sie ist dafür verantwortlich, den Mausbetrieb für alle Benutzeranschlüsse zu initialisieren. Sie muss bestimmen, ob eine Mauseinrichtung aktiv ist und fehlgeschlagene Mausschnittstellen zurückzusetzen. Sie muss die Art der im Betrieb befindlichen Mauseinrichtung bestimmen und in der Lage sein, diese über die öffentliche API anzuzeigen. Sie ist dafür verantwortlich, den Lichterstatus und die Typematic-Raten der Tastatur den letzten mittels der API bereitgestellten Werten nachzuführen. Diese Funktion kann wahrscheinlich als Endlicher Automat ausgeführt werden. Parameter: keine; Rückgaben: leer.
    • 11. U1_MseDataAvail: Diese Funktion bestimmt, ob wenigstens ein Mauspaket im Mauspuffer verfügbar ist. Parameter: userPort – gewählter Benuzreranschluss; Rückgaben: WAHR, falls Mausdatenpaket verfügbar ist, sonst FALSCH.
    • 12. U1_MseDataGet: Diese Funktion holt ein Mauspaket aus dem Mauspuffer ab. Sie kann bei Bedarf die Maus als Folge des Entnehmens des Paketes freigeben. Parameter: userPort – ausgewählter Benutzeranschluss; DataPtr – Adresse des Mausdaten-Struct, wo das Mauspaket platziert wird. Rückgaben: WAHR, falls ein Mausdatenpaket verfügbar war, sonst FALSCH.
    • 13. U1_MseProductTyp – Diese Funktion bestimmt, welche Art von Gerät an den Mausanschluss angeschlossen ist, falls überhaupt eines angeschlossen ist. Parameter: userPort – ausgewählter Benutzeranschluss. Rückgaben: Symbolischer Produktartwert, der die Art der Mauseinrichtung angibt. Die folgenden Symbole sollten verwendet werden: MSPROD_NONE, MSPROD_INTELLIMOUSE, MSPROD_MOUSEMAN_PLUS, MSPROD_MARBLE_PLUS, MSPROD_MARBLE_FX, MSPROD_SCROLL_POINT, MSPROD_EXPERT_MOUSE.
    • 14. U1_MseSetScaling: Diese Funktion stellt den Maus-Maßstabssfaktor ein und speichert diesen Wert zur späteren Verwendung ab, falls die Maus aufgrund von Hot Plugging oder eines Mausfehlers neu konfiguriert werden muss. Parameter: userPort – ausgewählter Benutzeranschluss; Scaling – Maus-Maßstabseinstellung. Rückgaben: keine.
    • 15. U1_MseSetResolution: Diese Funktion stellt die Mausauflösung ein und speichert diesen Wert zur späteren Verwendung ab, falls die Maus aufgrund von Hot Plugging oder eines Mausfehlers neu konfiguriert werden muss. Parameter: userPort – ausgewählter Benutzeranschluss; resolution – Mausauflösungseinstellung. Rückgaben: keine.
    • 16. U1_MseSetSampleRate: Diese Funktion stellt die Mausabtastrate ein und speichert diesen Wert zur späteren Verwendung ab, falls die Maus aufgrund von Hot Plugging oder eines Mausfehlers neu konfiguriert werden muss. Parameter: userPort – ausgewählter Benutzeranschluss; resolution – Mausabtastrate. Rückgaben: keine.
  • Die Tastatur- und Mausschnittstellen empfangen Daten über die Unterbrechungsbehandlungsroutinen (ISR) 58. Sowohl die Tastatur als auch die Maus haben solche ISRs, welche die folgenden Funktionen durchführen:
    • 1. KeyboardClockISR_UserA ..._UserB: MouseClock: Dies ist eine Unterbrechungsbehandlungsroutine für die angeschlossenen PS2 Peripheriegeräte. Die gleiche Philosophie wird für jeden Benutzer verwendet, wobei jeder Benutzer einen eigenen ISR hat, jedoch der gleiche Vektor verwendet wird, falls der PEC verwendet wird. Diese Routine hat eine höhere Priorität als die PC-seitige Timerunterbrechung. Sie tritt an jeder Taktflanke auf, außer wenn PEC verwendet wird, dann tritt sie an jedem Byte auf. Diese Routine ist bidirektional und kann Daten sowohl empfangen als auch senden. Empfangene Daten werden in einen Empfangs- oder Antwortpuffer gelegt. In diesem Beispiel muss die CI-weite ISR alle 40μs (durchschnittlicher Takt gemäß der Spezifikation) behandelt werden, also müssen die UI-Peripheriegeräte jeweils innerhalb von 10μs behandelt werden, falls die vier Peripheriegeräte nacheinander unterbrechen. Parameter: leer. Rückgaben: leer.
  • Um ein Befehlsbyte an die Peripheriegeräte zu übertragen, übersendet das UI ein Byte an das Tastaturperipheriegerät und stellt die Anzahl der erwarteten Antwort bytes ein. Es wartet dann 40ms auf den externen, auf RTS bezogenen Takt (die Spezifikation erfordert 10ms). Gemäß diesem Beispiel ist die Tastatur für 150μs blockiert, was die Tastatur veranlasst, die Kontrolle erforderlichenfalls aufzugeben (maximaler Taktzyklus = 100μs, die Beispielspezifikation verlangt ein Minimum von 60μs).
  • Um eine 1-Byte-Antwort auf eine Anweisung von einem Peripheriegerät zu empfangen, überprüft das UI 20ms lang den Antwortpuffer, und vergleicht während dieser Zeit die Antwort mit einem gewünschten Ergebnis, welches vor der Übertragung der Anweisung voreingestellt worden ist.
  • Auf der Computerseite des Verteilers verarbeitet ein Computer Interface (CI)-Modul für bis zu acht Computer (in diesem Beispiel) den Empfang von Anweisungen (RTS) vom PC und den Versand von Daten an den PC; die tatsächliche Videokanalverteilung wird ebenfalls in diesem Handler durchgeführt. 11 veranschaulicht das Computerschnittstellenmodul, welches das schnittstellenmäßig mit Daten aus den Benutzerpfaden A und B (62 und 63) koppelnde API 64, dem Handler 65 und die computerseitige ISR (66) beinhaltet. Die ISR 66 erlaubt gleichzeitigen Zugriff auf jeden Computer durch Liefern von Daten an und Empfangen von Daten von jedem der PCs durch ein Timer-basiertes Abfragen des PC-Anschlusses an den ISR 66.
  • Frühere Umsetzungen von Tastatur- und Mausemulationen bedienten allgemein die Schnittstelle unter Ausschluss jeder anderen Verarbeitung. In Fällen, in denen die Tastatur- und Mausperipheriegeräte auch verarbeitet wurden, wurde der Versuch unternommen, die Peripheriegeräte während der Zeiten zu blockieren, zu denen emulierte Geräte Taktzyklen generierten. Dies machte die Software fehleranfällig und schwierig zu warten.
  • Die vorliegende Ausführungsform verwendet eine Technik zur Emulation mehrerer Computerkanäle gleichzeitig mit der Verarbeitung von Softwareaufgaben niedriger Priorität und dem Empfang von Tastatur- und Mausperipheriegeräte-Daten. Dadurch wird eine gleichzeitige Taktgenerierung für mehrere Kanäle von Tastatur- und Mausemulationen bereit gestellt. Auch werden von Tastatur- und Mausperipheriegeräten empfangene Takte gleichzeitig mit der Generierung von Takten für die emulierten Tastaturen und Mäuse verarbeitet. Des Weiteren wird es Softwareaufgaben mit niedriger Priorität gestattet, weiterzulaufen, ohne Bedenken hinsichtlich der Echtzeit-Aspekte von emulierten Tastaturen und Mäusen und der Verarbeitung von Takten von Keyboard- und Mausperipheriegeräten.
  • Die verwendete Hardware kann beinhalten:
    • • Zwei parallele Anschlüsse mit offenen Kollektoren, wobei ein Anschluss mit den PS/2 Taktsignalen der emulierten Tastaturen und Mäuse verbunden ist und der andere Anschluss mit den PS/2 Datensignalen der emulierten Tastaturen und Mäuse verbunden ist.
    • • Einen programmierbaren Timer mit Unterbrechung, der zu Intervallen von 1ms fähig und in 30μs-Intervallen einstellbar ist.
    • • Falls gleichzeitige Verarbeitung von Peripheriegeräte-Takten gewünscht ist, so werden flankensensitive Unterbrechungen für jedes Taktsignal eines Peripheriegerätes benötigt.
  • Gemäß dem Beispielalgorithmus beginnt die gleichzeitige Tastatur- und Mausemulation mit einer 1ms-Timer-Unterbrechung niedriger Priorität. Das gesamte PS/2 Timing für die emulierten Tastatur- und Mausanschlüsse wird zur Gänze innerhalb der Timer-Unterbrechung generiert. Die Timer-Unterbrechung isoliert die Hauptsoftwareaufgaben von Echtzeit-Belangen. Die Zeit, die zum Verarbeiten der Timer-Unterbrechung benötigt wird, variiert zwischen einigen 10 Mikrosekunden und einigen 10 Millisekunden. Die Timer-Unterbrechung ist auf eine niedrige Priorität eingestellt, so dass die Takte für Peripheriegeräte verschachtelte Unterbrechungen generieren können. Obwohl die Timer-Unterbrechung unterbrechbar ist, kann sie nicht für lange Zeitspannen unterbrochen worden. Während der Zeit, in der die Timer-Unterbrechung eine PS/2 Takt-Zeitgebung generiert, sollte sie im hier beschriebenen Beispiel nicht für längere Zeitspannen als 30–40 Mikrosekunden unterbrochen werden.
  • Die Verarbeitung von mehreren Kanälen ist möglich, weil die Takt- und Datensignale parallel abgetastet und gesteuert werden. Eine Vier-Kanal-Emulation benötigt 8-Bit-Anschlüsse. Eine Acht-Kanal-Emulation benötigt 16-Bit-Anschlüsse.
  • Wenn die Timerunterbrechung beginnt, werden zwei Masken berechnet, die ein Bit für jede emulierte Tastatur und Maus enthalten. Die erste Maske (psenseMask) wird von den Energiefühlereingängen abgeleitet und dazu verwendet, den Betrieb jedes Anschlusses zu ermöglichen. Die zweite Maske (nsMask) wird aus PS/2 Datensignalen abgeleitet, die einen vorliegenden RTS-Zustand anzeigen.
  • Anschließend wird ein Muster von Übertragungsbits für jeden Anschluss berechnet. Übertragungsbits werden für alle Anschlüsse zusammengestellt, egal ob diese senden, empfangen oder still liegen. Das Muster von Bits unterscheidet sich in Abhängigkeit von der Art des Betriebs. Das für einen sendenden Anschluss erzeugte Bitmuster besteht aus einem Startbit, Datenbits, einem Paritätsbit und einem Stoppbit. Das für einen empfangenden Anschluss erzeugte Bitmuster besteht nur aus Einsen, außer einem Leitungskontrollbit, welches an die Position des Stoppbits geladen wird. Das Bitmuster für Anschlüsse, die ungenutzt sind, besteht nur aus Einsen.
  • Danach wird eine txMask für jeden Daten übertragenden Anschluss berechnet.
  • Danach wird eine respMask für jeden Anschluss berechnet, der Antworten überträgt.
  • Danach wird eine clkMask berechnet, welche die clkMask einschaltet, oder während der zurückliegenden Schleife des Zeit-Handlers wurde keine Arbeit ausgeführt, der Timer wird konfiguriert, nach einer Millisekunde wieder zu unterbrechen und die Unterbrechungsbehandlung ist beendet.
  • In diesem Beispiel überlappen die Tx- und Rx-Datenarrays. Zwölf Bytes wurden für die überlappenden Arrays zugeteilt. Die ersten 11 Bytes wurden als das Rx-Datenarray verwendet. Die letzten 11 Bytes wurden als das Tx-Datenarray verwendet. Gibt es genügend Speicher, so ist diese Überlappung unnötig.
  • An diesem Punkt beginnt die emulierte Tastatur- und Maustaktgenerierung für 11 Zyklen. Die Schrittgeschwindigkeit wird ausschließlich durch Ablauf des 30 Mikrosekunden-Timers gesteuert. Dies stellt sicher, dass trotz möglichen verschachtelten Unterbrechungen von peripheren Tastatur- und Maustakten in Echtzeit gemessen wird.
  • Der Timer wird jetzt so eingestellt, dass er in Intervallen von 30 Mikrosekunden abläuft. Er beginnt im abgelaufenen Zustand.
  • Für 11 Taktzyklen wird Folgendes wiederholt:
  • (PS/2 Takt FALLENDER Flankenzyklus)
    • Warte darauf, dass die Zeit abläuft.
    • Lese PS/2 Datenanschluss und speichere in Rx/Tx-Datenarray.
    • Schalte Rx/Tx Array Zeiger fort.
    • Schreibe PS/2 Datenanschluss von Rx/Tx-Datenarray verODERt mit clkMask.
    • Aktualisiere clkMask mit invertierten, von PS/2 Taktanschluss gelesenen Bits. (Dies terminiert Takte und Daten an Anschlüssen, die stillgelegt sind).
    • Setze Timer auf 30 Mikrosekunden zurück.
    • Schalte Unterbrechungen ab
    • Gebe clkMask auf PS/2 Taktanschluss aus. (Dies erzeugt die fallende PS/2 Taktflanke).
    • Starte Timer
    • Schalte Unterbrechungen an
  • (PS/2 Takt STEIGENDER Flankenzyklus)
    • Warte darauf, dass die Zeit abläuft
    • Setze Timer auf 30 Mikrosekunden zurück
    • Schalte Unterbrechungen ab
    • Gebe Einsen auf PS/2 Taktanschluss aus (Dies erzeugt die steigende PS/2 Taktflanke).
    • Starte Timer
    • Schalte Unterbrechungen an
  • Wenn alle Taktzyklen vollständig sind, schreibe Einsen an den PS/2-Datenanschluss, um unerledigte Kontrollleitungsbits zu entfernen.
  • Das erste Byte des Rx-Datenarrays enthält Startbits von allen Anschlüssen, die empfingen. Das zweite Byte des Rx-Datenarrays enthält Datenbit 0 von allen Anschlüssen, die empfingen, usw.
  • An diesem Punkt wird das Rx-Datenarray von seriell auf parallel gedreht.
  • Aktualisiere für jeden immer noch in der clkMask eingeschalteten Anschluss die Sendewarteschlangen, die Antwortwarteschlangen oder verarbeite empfangene Bytes.
  • Fahre am Anfang der Timer-Unterbrechung fort. Die Verarbeitung der Unterbrechungen endet, wenn keine weiteren mehr durchgeführt werden können, weil sie blockiert wurden oder zu übertragende Bytes fehlen.
  • Das Computerinterface (CI) API 64 benutzt die folgenden öffentlichen Datentypen:
    Figure 00280001
  • Das Computerinterface API führt die folgenden Funktionen durch:
    • 1 C1_Int: Diese Funktion initialisiert das CI-Subsystem für die Verarbeitung. Diese Funktion wird nur einmal nach dem Einschalt-Reset aufgerufen. Parameter: leer. Rückgaben: leer.
    • 2. C1_KdbReady: Diese Funktion bestimmt, ob der angegebene PC-Kanal bereit ist, ein weiteres Byte Tastaturdaten zum Senden anzunehmen. Parameter: Byte PC – Nummer des betroffenen Computeranschlusses (0...7). Rückgaben: Byte – WAHR, falls der Kanal bereit ist, neue Tastaturdaten zu empfangen.
    • 3. C1_KbdSend: Diese Funktion nimmt ein (1) Tastaturbyte zur Übertragung mittels des angegebenen PC-Kanals an. Parameter: Byte PC – Nummer des betroffenen Computeranschlusses (0...7). Rückgaben: leer.
    • 4. C1_KbdConfigChanged: Diese Funktion bestimmt, ob die Tastaturkonfiguration des angegebenen PC-Kanals mittels PC-Kommandos verändert worden ist. Parameter: Byte PC – Nummer des betroffenen Computeranschlusses (0...7): Rückgaben: Byte – WAHR, falls die Konfiguration geändert worden ist, seit C1_KbdGetConfig() zum letzten Mal aufgerufen wurde.
    • 5. C1_KbdGetConfig: Diese Funktion ruft die gegenwärtige Konfiguration für den angegebenen PC-Kanal ab. Parameter: Byte PC – Nummer des betroffenen Computeranschlusses (0...7), C1_KbdConfig *cfg – Zeiger auf Tastaturkonfigurationsinformation. Rückgaben: leer.
    • 6. C1_SetScanCodeSet: Diese Funktion wird verwendet, den gegenwärtig vom angezeigten PC-Kanal verwendeten Tastaturabfrage-Codesatz zu überschreiben. Parameter: Byte PC – Nummer des betroffenen Computeranschlusses (0...7), Byte b – welcher Abtastsatz einzustellen ist (1, 2, 3). Rückgaben: leer.
    • 7. C1_EF_FeedBackAvail: Diese Funktion bestimmt, ob EF-Feedback von dem angegebenen PC-Kanal verfügbar ist. Parameter: Byte PC – Nummer des betroffenen Computeranschlusses (0...7) Rückgaben: Byte – WAHR, falls das neue EF-Feedback verfügbar ist, seit zum letzten Mal C1_EF_FeedBackGet() aufgerufen wurde.
    • 8. C1_EF_FeedBackGet: Diese Funktion ruft das letzte EF-Feedback ab, das von dem angegebenen PC-Kanal empfangen wurde. Parameter: Byte PC – Nummer des betroffenen Computeranschlusses (0...7), Byte *feedBack [3] – Zeiger auf ein 3 Byte-Array, welches die EF-Feedbackbytes empfängt. Rückgaben: leer.
    • 9. C1_MseReady: Diese Funktion bestimmt, ob die Maus für den angegebenen PC-Kanal bereit ist, ein neues Mauspaket für die Übertragung zu empfangen. Parameter: Byte PC – Nummer des betroffenen Computeranschlusses (0...7). Rückgaben: Byte – WAHR, falls der Kanal bereit ist, ein neues Mauspaket zu empfangen.
    • 10. C1_MseSendPacket: Diese Funktion nimmt ein neues Mauspaket zur Übertragung mittels des angegeben PC-Kanals an. Das Mauspaket wird von dem in MSE_DATA enthaltenen neutralen Format in das gegenwärtig von der Maus-Schnittstelle für den angegebenen Computeranschluss emulierte Datenformat übersetzt. Parameter: Byte PC – Nummer des betroffenen Computeranschlusses (0...7), MSE_DATA *pkt – Zeiger auf das zu übertragende Mauspaket. Rückgaben: leer.
    • 11. C1_MseSendByte: Diese Funktion nimmt ein einzelnes Mausbyte zur Übertragung mittels des angegebenen PC-Kanals an. Parameter: Byte PC – Nummer des betroffenen Computeranschlusses (0...7), Byte b – zu übertragendes Byte. Rückgaben: leer.
    • 12. C1_MseEnable: Diese Funktion überschreibt den Maus-Einschaltstatus, so dass die Mausschnittstelle für den angegeben PC-Kanal eingeschaltet ist. Parameter: Byte PC – Nummer des betroffenen Computeranschlusses (0...7). Rückgaben: leer.
    • 13. C1_MseConfigChanged: Diese Funktion bestimmt, ob die Mauskonfiguration des angegebenen PC-Kanals mittels PC-Kommandos geändert wurde. Parameter: Byte PC – Nummer betroffenen Computeranschlusses (0...7). Rückgaben: Byte – WAHR, falls die Konfiguration geändert wurde, seit C1_MseGetConf() zum letzten Mal aufgerufen wurde.
    • 14. C1_MseGetConfig: Diese Funktion ruft die aktuellste Mausschnittstellenkonfiguration für den angegebenen PC-Kanal ab. Parameter: Byte PC – Nummer des betroffenen Computeranschlusses (0...7), C1_MseConf*cfg – Zeiger auf Maus-Konfigurationsinformation. Rückgaben: leer.
    • 15. C1_MseSetProductType – Diese Funktion stellt den Mausprodukttyp ein, der von der angegebenen Computerschnittstelle nach dem nächsten von dem angeschlossenen Computer empfangenen RESET Kommando emuliert werden soll. Bis ein RESET Kommando empfangen wird, bleibt die Art der Mausemulation für einen gegebenen Computeranschluss unverändert. Parameter: Byte productType – Produktartcode aus der folgenden Liste von symbolischen Konstanten: MSPROD_INTELLIMOUSE, (voreingestellt) MSPROD_MOUSEMAN_PLUS, MSPROD_MARBLE_PLUS, MSPROD_MARBLE_FX, MSPROD_SCROLL_POINT, MSPROD_EXPERT_MOUSE.
    • 16. C1_Timer_ISR: GPT1 – Timer 2-Unterbrechungsbehandlungsroutine (ISR) für Timer 1-Überlaufunterbrechung. Aktiviert periodisch die PC-seitige Emulationslogik, um RTS-Zustände zu behandeln, um Bytes von einem oder mehreren PCs zu empfangen und Daten und Antworten an einen oder mehrere PCs zu senden. Parameter: leer. Rückgaben: leer. Anmerkungen: Unterbricht, wenn T2 unterläuft oder 0 × 0000 erreicht (rückwärts zählender Timer-Betrieb).
  • Aufgabe #6 in der Hauptaufgabenschleife wird von einem seriellen Maus-Handler innerhalb des CI-Moduls durchgeführt, welcher alle seriellen Mausdaten verarbeitet, die an die PCs übermittelt werden sollen.
  • Gemäß der seriellen Mausprozedur wird/werden:
    • 1. Der serielle Handler von der Hauptaufgabenschleife oder dem CI Handler aufgerufen.
    • 2. Die CI-Datenstruktur für alle aktiven PC-Anschlüsse für serielle Mäuse geprüft.
    • 3. An die PCs zu sendende Mausdaten (maximal 2 zu jedem beliebigen Zeitpunkt) von einem von dem KVM-Verteiler selbst verwendeten Mauspaketformat in serielles Mauspaketformat übersetzt und in einer Datenstruktur des seriellen Handlers gespeichert.
    • 4. Wie in 15 gezeigt, enthält die Datenstruktur des seriellen Handlers ein serielles Mauspaket für jeden der 8 PCs, ungeachtet dessen, ob der PC für eine serielle Maus tauglich ist.
    • 5. Das erste Byte jedes seriellen Mauspakets in ein IRAM 10 Byte-Array gelegt, welches für die Übermittlung an alle PCs verwendet wird. Lauter Einsen werden an diejenigen PCs versandt, die keine tatsächlichen seriellen Mausdaten empfangen.
    • 6. In diesem Beispiel erfordert der serielle Mausanschluss, dass Daten mit einer Rate von 1200 bps gesendet werden. Ein Timer wird verwendet, um PEC-Behandlungsanforderungen mit der Rate von 1200 bps zu erzeugen. Dieser Timer hat ein Autoreload-Register, um die Rate von 1200 bps zu ermöglichen. Jede PEC-Behandlungsanforderung ruft einen Transfer von Daten vom IRAM an Anschluss 0 hervor.
    • 7. Die letzte PEC-Übertragung erzeugt eine Unterbrechung. Das ISR schalten entweder den Timer ab, falls es keine weiteren seriellen Mausdaten zu senden gibt, ODER verschiebt den nächsten Satz Bytes von der CI-Datenstruktur in die serielle Handler-Datenstruktur im IRAM. Die serielle Handler-Datenstruktur kann doppelt gepuffert sein, um jede Latenz zwischen der Übermittlung von Bytes zu verhindern.
  • Das höhenwertige Byte von Anschluss 0 wird an die Datenübermittlung jedes seriellen Mausanschlusses gekabelt. Jedes der 10 Bytes stellt einen Satz von Bits für jeden PC dar. Zuerst werden die Startbits 81 an jeden PC übermittelt, gefolgt von den Datenbits 82 und Stopbits 83. Der Peripheriegeräte-Event Controller (PEC) wird verwendet, um jeden Satz Bits an Port 0 zu übertragen.
  • Aufgaben #1 und #2 der Hauptaufgabenschleife werden von einem Drucktastenmodul durchgeführt, um die Benutzereingaben an das System mittels des 1 Nächster/Abtasten-(Next/Scan) und 8 Kanalauswahl-Drucktastern an der Frontplatte zu verarbeiten und zu entprellen. Dies zeichnet Drucktastereneignisse wie Make, Break, Next, Scan, Reset usw. in Drucktastenmodul-eigene Datenstrukturen ein.
  • Ein Drucktasten-API verwendet eine Datenstruktur gemäß dem folgenden Format:
    #define BUTTONS_NONE 0 // Keine Taster-Aktivität
    #define BUTTONS_NEXT 1 // Taster für < 1 Sekunde gedrückt
    #define BUTTONS_SCAN 2 // Taster für 1–3 Sekunden gedrückt
    #define BUTTONS_RESET 3 // Taster für > 3 Sekunden gedrückt
  • Die von der Drucktasten-API ausgeführten Funktionen beinhalten:
    • 1. BUTTONS_GetChannelButtons – diese Funktion gibt den Status der Kanalauswahl-Drucktaster zurück. Ist Bit 0 gesetzt, so zeigt es an, dass der Kanal A Taster gedrückt ist. Ist Bit 1 gesetzt ist, zeigt es an, dass der Kanal B-Taster gedrückt ist; usw. Der Wortwert kann für bis zu 16 Kanalauswahltaster verwendet werden. Taster werden mit 20 Hz oder weniger abgetastet, um ein Entpnellvenhalten hervorzurufen. Parameter leer: Rückgaben: Wort: Anmerkungen: 1) Entprellt mittels 20 Hz-Abtastung in BUTTONS_ButtonTimer; 2) Handlungsanforderung ergab bei Verteiler-Handler Taste ist gedrückt.
    • 2. BUTTONS_GetScanNextButton – diese Funktion gibt eine Anzeige von Nächster, Abtasten oder Reset zurück, wenn der Taster nach einer gemessenen Kontaktdauer losgelassen wird. Der Abtasten/Nächster-Taster wird mit 20 Hz oder weniger abgetastet, um ein Entprellverhalten hervorzurufen. Nächster – weniger als 1 Sekunde, Abtasten – zwischen 1 und 3 Sekunden und Reset – mehr als 3 Sekunden. Parameter: leer. Rückgaben: Byte: Anmerkungen: 1) Entprellt mittels 20 Hz-Abtastung in BUTTONS_ButtonTimer; 2) Taster wird in kaskadierten Einheiten ignoriert.
    • 3. BUTTONS_ButtonTimer – diese Funktion wird mit 20 Hz von dem Timer Subsystem aufgerufen, zur Handhabung des Taster-Entprellens und -Timing Parameter: leer. Rückgaben: leer.
  • Andere Funktionen der Hauptaufgabenschleife beinhalten eine Steuerung der Status- und Kanalauswahl-LEDs (Aufgabe #9), eine Handhabung von Timern (Aufgabe #10), und ein Aufrufen des OSD Menü-Subsystems (Aufgabe #8). Das OSD-Subsystem wird unten detaillierter beschrieben.
  • Ein On Screen Display (OSD)-Modul ist in 14 gezeigt. Die Anzeige von OSD-Menüs wird von der Hauptaufgabenschleife 73 (Aufgabe #8) aufgerufen. Die Hauptaufgabenschleife 73 ruft die API 74 des Menü-Subsystems auf, die einen Mechanismus zur Kommunikation mit dem Menü-Subsystem bereitstellt. Das Menüsystem erfordert es, dass Tastatureingaben verarbeitet und übersetzt werden, bevor sie vom Menüsystem konsumiert werden. Das Menüsystem erfordert „rohe" Make/Break-Tastencodes für alle Tastendrücke, „gekochte" Make/Break-Codes für alle Tastendrücke und Shift Status-Flags für Shift, Control und Alt. Rohe Tastencodes sind ein Satz von eindeutigen Tastencodes. Es gibt einen Code für jede Taste auf der gesamten Tastatur. Das Menüsystem muss den Make und Break Code für jeden Tastendruck empfangen. Dies beinhaltet auch die Shift-, Alt- und Control-Tasten. Es können die Codes von Scan Set 3 verwendet werden.
  • „Gekochte" Tastencodes sind ASCII plus Funktionstasten. „Gekochte" Tastencodes werden durch den Status der Num Lock-, Caps Lock-, Shift-, Control- und Alt-Tasten verstellt. Gegenwärtig verwendet das Menüsystem isprint()-Tasten, Steuerungstasten wie Tabulator, Löschen, Entfernen, Eingabe, Pfeiltasten und Funktionstasten F1 ... F12. In Kombination mit den Shift Status-Flags befriedigen diese alle gegenwärtigen Erfordernisse des Menüsystems.
  • Kein Menüsubsystem wird durch eine Tastensequenz wie „STRG-STRG" aufgerufen. Nachdem STRG-STRG gedrückt ist und die Make/Break-Codes an den Computer durchgereicht sind, kann die Kanalliste gestartet werden. An diesem Punkt können die „rohen" und „gekochten" Tastencodes an das Menüsystem geleitet sein. Der Punkt, an dem die Umschaltung stattfindet, wird durch einen nicht zum Menü gehörenden Systemcode entschieden. Die Rückumschaltung wird vollständig durch das Menüsystem entschieden. Bei jedem Durchlauf der Aufgabenschleife überprüft das Hauptprogramm ein Flag in einer globalen Struktur, die dem Menüsystem zugeordnet ist, um genau zu bestimmen, wann das Menüsystem den Tastaturbesitz aufgibt. Dies wird so durchgeführt, dass das Menüsystem alle ausstehenden Break Codes ordnungsgemäß entnehmen kann, bevor Tastencodes an einen Computer geleitet werden.
  • Das Menüsystem 74 kann aufgerufen werden (durch „STRG-STRG" beispielsweise) oder einmal pro Durchlauf der Hauptaufgabenschleife eingeleitet werden. Ist es aktiviert, erstellt das Menü-Subsystem ein Menü von Computerkanälen, das es von der Datenbank 79 und dem Speicher 80 zieht. Dieses enthält Benutzerkonfigurationsinformation wie Kanalnamen, Anzeigecharakteristiken etc. Tastencodes, die Make/Break-, ASCII- und „rohe" Tastencodes enthalten, werden dann das Menüsystem eingespeist. Das Menüsystem zeigt der Hauptschleife an, wenn das Menü fertig ist und/oder eine Aktion angefordert ist. Das Menü kann auch die Hauptschleife beauftragen, dem Menüsystem keine weiteren Make und Break Codes einzuspeisen. In allen Fällen ist dies das Mittel, die Einspeisung von Tastencodes in das Menüsystem zu beenden.
  • Die OSD Handler-API 76 stellt einen Mechanismus zur Kommunikation mit dem OSD-Chip (wie von Motorola hergestellt und verfügbar) bereit. Dieses OSD-Subsystem 76 stellt die Mittel bereit, mit denen das MENU-Subsystem 74 die OSD-Einrichtung beeinflusst. Durch diese Funktionen wird eine Darstellung der OSD-Einrichtung im lokalen Speicher aufrecht erhalten. Funktionen, die den Inhalt der Anzeige verändern, wie die Druckfunktionen und Betriebssteuerungsfunktionen, verändern lediglich die Darstellung im lokalen Speicher. Es ist der Zweck der OsdProcess()-Funktion, inkrementell den Inhalt der lokalen OSD-Darstellung an die tatsächliche OSD-Einrichtung auf eine optimierte Weise zu übermitteln.
  • Selbstverständlich muss das vorhandene Menüanzeigesystem mehr als einen Benutzer an dem gemeinsamen Prozessor unterstützen. In diesem Beispiel wird jeder Benutzeranschluss auf unabhängige Weise verarbeitet, obwohl es nur ein Subsystem gibt.
  • Funktionen der API beinhalten:
    • 1) Initialisieren der OSD-Einrichtung beim Starten auf voreingestellte Bedingungen, Löschen des Anzeigenspeichers und Einstellen der Einrichtung auf voreingestellte Farbgebung und Größe
    • 2) Bestimmung des Bildschirmstatus (im Aufbau befindlich vs. statisch);
    • 3) Timing (bzw. Zeitsteuerung);
    • 4) Löschen des Texts im OSD-Speicher von der momentanen Druckposition bis zum Ende der Zeile für einen bestimmten Benutzeranschluss;
    • 5) Löschen des gesamten OSD-Textspeichers, so dass der Text leer ist, und Einstellen der Druckposition auf (0,0);
    • 6) Einschalten oder Ausschalten der OSD-Anzeige für einen angegebenen Benutzeranschluss;
    • 7) Ausschalten der Anzeige eines blinkenden Cursors auf der OSD-Anzeige;
    • 8) Einschalten der Anzeige eines blinkenden Textcursors auf dem OSD;
    • 9) Auswählen, welcher OSD-Zeichencode für einen blinkenden Cursor verwendet wird;
    • 10) Einstellen der Position des blinkenden Textcursors;
    • 11) Einstellen der Farben für Hintergrund und Text;
    • 12) Einstellen der Attribute einer Textzeile;
    • 13) Einstellen der Textdruckposition des OSD-Subsystems. Die Textdruckposition steuert, wo Text gedruckt wird;
    • 14) Drucken eines einzelnen Zeichens in den OSD-Speicher an der gegenwärtigen Textdruckposition mit der gegenwärtigen Auswahl von Textfarbe gefolgt von Fortschalten der Druckposition um eins;
    • 15) Drucken einer Kette (bzw. eines Strings) von Text in den OSD-Speicher, beginnend an der gegenwärtigen Textdruckposition mit der gegenwärtigen Auswahl der Textfarbe. Die Druckposition wird für jedes gedruckte Zeichen einmal fortgeschaltet;
    • 16) Auswählen, welche von zwei für eine gegebene Textzeile verfügbaren Farben für jedes nachfolgend mittels den OSD-Druckfunktionen an das OSD geschriebene Zeichen verwendet wird;
    • 17) Definieren der Position eines bestimmten Hintergrundfensters;
    • 18) Steuerung der Platzierung der gesamten OSD-Anzeige bezüglich der oberen linken Ecke des Anzeigemonitors sowie der vertikalen Höhe jeder OSD-Anzeigenzeile;
    • 19) Steuerung der vertikalen Größe der Anzeigezeichen und der Anzahl der von der OSD-Einrichtung erzeugten horizontalen Punkte;
    • 20) Anpassen der von jeder Reihe des OSD-Texts verwendeten Anzahl horizontaler Zeilen. Die Anzahl der Zeilen muss in Abhängigkeit der gemessenen horizontalen Zeilen, die von der Sync-Quelle 75 erzeugt wurden, angepasst werden. Die Sync-Quelle ist entweder dasjenige PC-Video, das online ist, oder der lokale Sync-Generator, der in Abwesenheit von PC-Video verwendet wird;
    • 21) Bestimmen einer bestimmten horizontalen und vertikalen Videopunkt-Position;
    • 22) Berechnen der vertikalen und horizontalen Zeilenposition für einen gegebenen Wert für vertikale und horizontale OSD-Positionskontrolle;
    • 23) Berechnen der Anzahl von der OSD-Anzeige innerhalb des angegebenen Satzes von Textspalten verwendeten vertikalen Zeilen;
    • 24) Berechnen der von der OSD-Anzeige innerhalb des angezeigten Satzes von Textspalten verwendeten horizontalen Punkte;
    • 25) Scrollen einer Textregion, die zuvor an die OSD-Anzeige geschrieben wurde,
    • 26) Speichern des gesamten Kontexts des OSD in lokalen Speicher zur späteren Wiederherstellung;
    • 27) Wiederherstellen des gesamten Kontexts der OSD-Anzeige aus zuvor abgespeichertem lokalen Speicher;
    • 28) Aktivierung eines kompletten Refresh des OSD aus der lokalen Speicherdarstellung;
    • 29) Konfigurieren des OSD-Subsystems vor einer Anzeigeerstellung, indem die lokale Sync-Erzeugung des OSD-Anzeigechips für kompatiblen Betrieb konfiguriert wird;
    • 30) Einleiten der Erfassung hereinkommender Sync-Signale, beinhaltend die Art und Rate des Sync-Impulses; und
    • 31) Bestimmen, wann der Sync-Erfassungsprozess abgeschlossen ist und, wenn das der Fall ist, Zurückgeben der Ergebnisse.
  • Die OSD-Treiber Handler-Einrichtung-API 78 stellt einen Mechanismus zur Kommunikation mit dem OSD-Chip bereit, beispielsweise mit der als MC141543 „Advanced Monitor On-Screen Display" bekannten Motorola OSD-Einrichtung. Der Treiber Handler 78 schreibt Bytes an den OSD-Anzeigespeicher und erzeugt eine Zeitsteuerung zum Senden von Bytes von Anweisungen, Adressen und Daten an die OSD-Einrichtung.
  • Der Video Sync Handler 75 zählt vertikale und horizontale Syncs für beide Benutzerpfade. Eine Bestimmung kann von dem Menü-Subsystem 75 vorgenommen werden, um die von dem Computer bereitgestellten Syncs (separate N & V, kein Composite) ODER Syncs, die von dem bordeigenen FPGA 77 (siehe Element 43 von 8) generiert wurden, als Quelle für das OSD zu verwenden. In 13 ist die Verarbeitung horizontaler Syncs in Form eines Beispiels dargestellt.
  • Der Prozessor 38 stellt Timer (siehe 9) bereit, die für den vertikalen Sync-Zähler und horizontalen Sync-Zähler verwendet werden.
  • Mindestens einmal pro Sekunde führt der Video Sync Handler einen Endlichen Automaten 70 aus, der die Anzahl horizontaler Sync-Impulse zwischen zwei vertikalen Sync-Impulsen zählt. Der vertikale Sync-Zähler verwendet eine kurze ISR, um den horizontalen Sync-Zähler entsprechend zu starten/stoppen. Die Anzahl der während des letzten Messzyklus aufgenommenen horizontalen Sync-Impulse ist in dem Menü-Subsystem verfügbar. Syncs von den Computern 13 werden von dualen Muxen 71 und 72 empfangen und auf den lokalen und entfernten Benutzer-Sync-Bus platziert. Lokale und entfernte Muxe 68 und 69 nehmen Syncs entweder von dem Sync-Bus (von den Computern) oder von der Sync-Erzeugung 43 zur Anwendung auf die lokalen und entfernten Monitore 4/8.
  • Da der vorliegendende Verteiler mehrere Benutzer versorgt, muss das OSD-System Verteileranweisungen von allen Benutzern handhaben. Ein Kanalverteilmodul verarbeitet den Empfang von Handlungsanforderungen von verschiedenen Benutzern, um Kanäle von verschiedenen Quellen wie Drucktastern, Hot Key-Sequenzen, Abtasten und dem OSD-Menü zu verteilen. 17 veranschaulicht solch ein Modul.
  • In 17 ist es das Ziel, die verschiedenen Subsysteme wie den Hot Key-Handler etc., voneinander und von dem Verteiler-Handler getrennt zu halten. Die Mentalität eines Schwarzen Brettes wird verwendet, so dass jedes Modul/jeder Handler, der extern von dem Verteiler-Handler 97 ist, mittels API 96 eine Handlungsanforderung an das Schwarze Brett des Verteiler-Handlers verschicken kann. Der Verteiler-Handler, der von der Hauptaufgabenschleife aufgerufen wird, überprüft das Schwarze Brett auf alle Handlungsanforderungen, die aufgegeben sein könnten. Die Handlungsanforderungen bestehen wenigstens aus der Nummer des Benutzers, der die Anforderung abgibt, und dem gewünschten Zielkanal.
  • Jede Verteilereinheit, ob Basis oder gestuft, ist dafür verantwortlich, beide Benutzerpfade innerhalb dieser Einheit zu verfolgen. Mit anderen Worten, jede Einheit muss wissen, welcher PC gegenwärtig von welchem Satz lokaler oder entfernter Peripheriegeräte ausgewählt ist.
  • Ein serielles Anschlussmodul kann auch verwendet werden, um den seriellen Ein-/Ausgabeanschluss auf dem Verteilerkasten handzuhaben, einschließlich Anwendungen wie OSD-Dienstprogramme oder „Power Commander" Dienstprogramme, die kommerziell von Cybex Computer Products, Corp. etc. angeboten werden. 16 stellt den seriellen Anschluss 89, die Unterbrechungsbehandlungsnoutine 88, den Handler 87 und die API 86 dar, die an beispielhafte Dienstprogramme wie das OSD-Dienstprogramm 84 und den Power Commander 85 angeschlossen ist. Das serielle Anschlussmodul stellt einen Mechanismus für verschiedene Anwendungen bereit, um den externen seriellen Anschluss (DB-9) zu benutzen und mit ihm zu kommunizieren. Serielle Anschlussdaten werden mittels Unterbrechungen versandt und empfangen.
  • Bei einer alternativen Ausführungsform der gestuften (kaskadierten) Struktur von 6 beinhalten die vorliegenden Verteiler ein Verfahren, um den Anschluss eines weiteren Verteilerprodukts zu erfassen. Dieses Verfahren gründet auf der Verwendung der Read ID-Tastaturanweisung. Unter Bezugnahme auf 18 ist gemäß der IBM Tastaturspezifikation die Standardantwort auf die Read ID-Tastaturanweisung ein konstanter 16 Bit-Wert (0 × 83AB). Früher war man sich so sicher, dass alle Tastaturen gleichförmig auf das Read ID antworten, dass KVM-Verteilerprodukte die Read ID-Anweisung nicht ausgaben, sondern stattdessen die bekannte Antwort an den zugeordneten Computer emulierten. Dieses Verhalten wurde ausgenutzt, indem Verteilerprodukte entwickelt wurden, die mit einer Hersteller-ID (höherwertiges Byte) und einem Produktcode (niederwertiges Byte) als Antwort auf die dritte aufeinanderfolgende Read ID-Anweisung antworteten.
  • Insgesamt funktionierte der Ansatz gut, außer dass einige PCs (beispielsweise der IBM 9585 und der IBM 300XL) ebenfalls 3 aufeinandertolgende Read ID-Anweisungen in ihrer Hochfahr-Sequenz ausgeben. Daher bestimmten frühere KVM-Verteiler, welche die 3-Read ID-Anweisungstechnik verwendeten, manchmal irrtümlich, sie wären an ein weiteres ähnliches KVM-Verteilerprodukt angeschlossen, wenn nur ein PC angeschlossen war. Die Anzahl von ausgegebenen Read ID-Anweisungen wird auf 10 gesteigert, wie in 18 gezeigt. Die größte Anzahl von Read ID-Anweisungen, deren Ausgabe von einem PC bekannt ist, ist 5 durch den IBM 9585.
  • In einer Anstrengung, den Kommunikationsverkehr zwischen den KVM-Verteilerkästen zu verringern, kann ein Steno-Protokoll implementiert werden, um es dem Basiskasten zu erlauben, mit dem gestuften („tiered") Kasten mit nur geringem Overhead zu kommunizieren. Ein solches Steno kann ein geschichtetes Protokoll verwenden, welches aus einem Präfixbyte gefolgt von einem Anweisungsbyte besteht. Das Anweisungsbyte weist die geschichtete Einheit an, verschiedene Aufgaben wie Kanalverteilung durchzuführen. Zusätzliche Präfixbytes können verwendet werden, um das geschichtete Protokoll zu verbessern.
  • Wie zuvor beschrieben verwendet die vorliegende Erfindung auch Flash-Speicher-Aufrüstung. Es wird davon ausgegangen, dass derzeit Rose Electronics aus Houston eine Flash-Aufrüstung in einem KVM-Verteiler namens Ultraview anbietet, wobei davon ausgegangen wird, dass dieser dem Benutzer zwei Verfahren der Flash-Aufrüstung anbietet:
    • 1) Verwendung eines Terminalprogramms (wie Hyperterminal), um eine ASCII-Textdatei zu versenden, wobei der Terminalschirm verwendet wird, um den Benutzer über den Fortschritt auf dem Laufenden zu halten;
    • 2) Verwenden einer Dateikopie, um eine ASCII-Textdatei zu senden, wobei LEDs verwendet werden, um den Benutzer über den Fortschritt auf dem Laufenden zu halten.
  • Ein Problem bei diesem Verfahren ist, dass die Benutzerschnittstellen unzulänglich sind, um die Dateiübertragung zu überwachen. Weiterhin ist keine Datenflusssteuerung eingebaut, was bedeutet, dass Menüdaten aufgrund von langsamer Kommunikationsanbindung oder überladenen Bussen beim Herunterladen verloren gehen können. Das Problem wird dadurch verschlimmert, dass die Unzulänglichkeit der Benutzerschnittstelle den Benutzer ohne gutes Feedback darüber lässt, dass ein Datenabladen erfolglos war und warum.
  • Bei einer ersten alternativen Ausführungsform von 21, dem Herunterladen von Flash, wird ein die ASCII-Dateiübertragung verwendendes Terminalprogramm (wie ProComm, Hyperterminal, etc.) verwendet, jedoch mit auf der Embedded-Seite entwickelter Unterstützung von ASCII-Dateitransport. Eine solche Unterstützung kann entweder ein X-Modem Protokoll oder eine verlangsamte Baudrate sein. Alternativ hierzu kann das Terminalprogramm mit dem über einen dedizierten Flash-Herunter ladebetrieb (siehe Element 47 von 9) verfügenden Prozessor 38 verwendet werden, der nicht von einem Flash-Download überladen wird.
  • Bei einer zweiten alternativen Ausführungsform wird ein DOS-basiertes Dienstprogramm für den PC-Download bereitgestellt. Dies verbessert die Benutzerschnittstelle und weist eine integrierte Flusssteuerung auf.
  • Bei einer dritten alternativen Ausführungsform wird eine benutzerspezifische Windows-Anwendung für das PC-Herunterladen bereitgestellt. Diese stellt die benutzerfreundlichste, einfachste GUI für eine integrierte Flusssteuerung bereit.
  • In jedem Fall lädt ein Bootstrap Loader (BSL) die Flash-Programmierroutinen und den Programmcode mittels einer seriellen Schnittstelle an den KVM-Verteiler, um den On-Chip Flash-Speicher des Prozessors 38 zu programmieren. Die Flash-Programmierroutinen und der Programmiercode steuern dann zukünftige Flash-Aufrüstungen mittels der Ausführungsform von 21.
  • Während die Erfindung in Verbindung mit dem beschrieben wurde, was derzeit als die praktischste und bevorzugteste Ausführungsform angesehen wird, versteht es sich, dass die Erfindung durch die offenbarte Ausführungsform nicht eingeschränkt werden soll, sondern ganz im Gegenteil ist es beabsichtigt, verschiedene Veränderungen und äquivalente Anordnungen, die innerhalb des Sinngehalts und des Umfangs der beigefügten Ansprüche enthalten sind, abzudecken.

Claims (17)

  1. Tastatur-/Video-/Mausverteiler, beinhaltend: Hardwarekomponenten, beinhaltend: zwei oder mehr Computeranschlüsse (29A, 29B) zur jeweiligen Verbindung von zwei oder mehr Computern (13) an Tastatur- (5, 9), Maus- (6, 10) und Video-Anschlüssen (16, 27, 24) jedes dieser Computer; eine Computer-Ein-/Ausgabe-Schnittstelle (42) zur schnittstellenmäßigen Koppelung von Tastatur-, Maus- und Videodaten mit jedem der Computeranschlüsse (29A, 29B); zwei oder mehr Arbeitsstation-Anschlüsse (25, 26, 27, 30) zur jeweiligen Verbindung von zwei oder mehr Arbeitsstationen, von denen jede eine Tastatur, eine Maus und einen Videomonitor umfasst, wobei die Arbeitsstation-Anschlüsse mit dem einzigen Mikroprozessor (38) kommunizieren; dadurch gekennzeichnet, dass er weiter umfasst: einen einzigen Mikroprozessor (38), der mit der Computer-Ein/-Ausgabe-Schnittstelle (42) kommuniziert; und Softwaremodule, beinhaltend: ein Benutzerschnittstellenmodul (58, 59, 60) zum Versenden und Empfangen von Tastatur-, Maus- und Videodaten zu und von den Arbeitsstation-Anschlüssen (29A, 29B) unter der Steuerung des einzigen Mikroprozessors (38); eine Benutzerschnittstellen-Unterbrechungsbehandlungsroutine (58), um die Übertragung der Tastatur-, Maus- und Videodaten zu und von den Arbeitsstation-Anschlüssen (25, 26, 27, 30) mittels Unterbrechungen auf zugewiesenen Leitungen der Arbeitsstation-Anschlüsse (25, 26, 27, 30) abzuwickeln; ein Computerschnittstellenmodul (64, 65, 66) zum Versenden und Empfangen von Tastatur-, Maus- und Videodaten zu und von den Computeranschlüssen (29A, 29B) unter der Steuerung des selben einzigen Mikroprozessors (38); und eine Computerschnittstellen-Unterbrechungsbehandlungsroutine (66), um den Transfer der Tastatur-, Maus- und Videodaten zu und von den Computeranschlüssen (29A, 29B) sowie der Computer Ein-/Ausgabe (42) mittels zeitgesteuerter Unterbrechungen auf zugewiesenen Leitungen der Computeranschlüsse (29A, 29B) abzuwickeln.
  2. Tastatur-/Video-/Mausverteiler gemäß Anspruch 1, ferner beinhaltend: eine Datenfernübertragungseinrichtung (11), die zwischen wenigstens einem der Arbeitsstation-Anschlüsse (25, 26, 27, 30) und wenigstens einer dazu gehörenden Arbeitsstation (3, 7) schnittstellenmäßig koppelt.
  3. Verteiler gemäß Anspruch 1 oder 2, dadurch gekennzeichnet, dass der einzige Mikroprozessor (38) ferner Flash-Speicher (38) beinhaltet.
  4. Verteiler gemäß einem der vorangehenden Ansprüche, dadurch gekennzeichnet, dass die Softwaremodule ferner beinhalten: ein On-Screen-Anzeige-Modul (74, 76) zur Generierung von On-Screen-Anzeige-Menüs in Übereinstimmung mit einer On-Screen-Anzeige-Konfiguration.
  5. Verteiler gemäß Anspruch 4, dadurch gekennzeichnet, dass der einzige Mikroprozessor (38) ferner Flash-Speicher (38) beinhaltet und die On-Screen-Anzeige-Konfiguration in diesem Flash-Speicher (38) gespeichert ist.
  6. Verteiler gemäß Anspruch 5, dadurch gekennzeichnet, dass die Hardware ferner einen seriellen Port (110, 89) beinhaltet und die Softwaremodule weiter ein Schnittstellenmodul für den seriellen Port beinhalten, um den Transfer neuer On-Screen-Anzeige-Konfigurationsdaten in den Flash-Speicher (38) abzuwickeln.
  7. Verteiler gemäß einem der vorangehenden Ansprüche, dadurch gekennzeichnet, dass die Hardware ferner ein Videountersystem (45) zum Empfang von Videosignalen von den Computeranschlüssen (29A, 29B) und Versenden der Videosignale zum einzigen Mikroprozessor (38) für den Versand an die ausgewählten Arbeitsstationsanschlüsse (25, 26, 27, 30) beinhaltet.
  8. Verteiler gemäß Anspruch 7, dadurch gekennzeichnet, dass die Hardware ferner ein mit dem Videountersystem (45) kommunizierendes On-Screen-Anzeige-Untersystem (44) zur Generierung von On-Screen-Menü-Signalen beinhaltet, wobei das Videountersystem Monitorvideosignale mit einer Kombination aus den Videosignalen von den Computer-Anschlüssen (29A, 29B) und den On-Screen-Menü-Signalen zum Versand an die ausgewählten Arbeitsstationsanschlüsse (25, 26, 27, 30) erzeugt.
  9. Verteiler gemäß Anspruch 8, dadurch gekennzeichnet, dass die Software ferner ein On-Screen-Anzeige-Modul (74, 76) zur Steuerung der Erzeugung der On-Screen-Menü-Signale des On-Screen-Anzeige-Untersystems beinhaltet.
  10. Verteiler gemäß Anspruch 8, dadurch gekennzeichnet, dass die Hardware ferner einen internen Synchronisierimpulsgenerator (43) beinhaltet, und wobei das Videountersystem (45) ein Synchronisierimpulssignal entweder von dem internen Synchronisierimpulsgenerator (43) oder von den von den Computeranschlüssen (29A, 29B) empfangenen Videosignalen auswählt.
  11. Verteiler gemäß einem der voranstehenden Ansprüche, dadurch gekennzeichnet, dass die Computerschnittstellen-Unterbrechungsbehandlungsroutine (58) jede der zugewiesenen Leitungen der Computeranschlüsse (29A, 29B) periodisch abfragt.
  12. Verfahren zum Verteilen von Tastatur-, Maus- und Videodaten zwischen mehreren Computern und mehreren Arbeitsstationen, folgende Schritte umfassend: Bereitstellen von computerseitigen Anschlüssen, mit einem Anschluss für jeden der Computer; Auswählen einiger der Computer für die Kommunikation mit einigen der mehreren Arbeitsstationen; bidirektionales Vermitteln der Tastatur-, Maus- und Videodaten zwischen den einigen ausgewählten Computern und einem einzigen Mikroprozessor mittels einiger der entsprechenden computerseitigen Anschlüsse unter der Steuerung einer computerseitigen Unterbrechungsbehandlungsroutine, welche fortwährend die computerseitigen Anschlüsse abfragt; Übersetzen der Tastatur-, Maus- und Videodaten in ein oder mehrere Protokolle, die jeweils für die einige ausgewählten Arbeitsstationen geeignet sind; Bereitstellen von peripherieseitigen Anschlüssen, mit einem Anschluss für jede der Arbeitsstationen; bidirektionales Vermitteln der Tastatur-, Maus- und Videodaten zwischen den einigen ausgewählten Arbeitsstationen mittels einiger der entsprechenden peripherieseitigen Anschlüsse und dem einzigen Mikroprozessor unter der Steuerung einer peripherieseitigen Unterbrechungsbehandlungsroutine.
  13. Verfahren gemäß Anspruch 12, ferner folgenden Schritt beinhaltend: Empfangen der aktuellen Tastaturdaten von der ersten Arbeitsstation gemäß eines ersten für die erste Arbeitsstation geeigneten Tastaturprotokolls und Überset zen der aktuellen Tastaturdaten in ein zweites Tastaturprotokoll, welches für den ausgewählten Computer geeignet ist; und Empfangen der aktuellen Tastaturdaten vom ausgewählten Computers gemäß des zweiten für den ausgewählten Computer geeigneten Tastaturprotokolls und Übersetzen dieser aktuellen Tastaturdaten in das erste Tastaturprotokoll, welches für die erste Arbeitsstation geeignet ist.
  14. Verfahren gemäß Anspruch 12 oder 13, ferner folgenden Schritt beinhaltend: Empfangen der aktuellen Mausdaten von der ersten Arbeitsstation gemäß eines ersten für die erste Arbeitsstation geeigneten Mausprotokolls und Übersetzen dieser aktuellen Mausdaten in ein zweites Mausprotokoll, welches für den ausgewählten Computer geeignet ist; und Empfangen der aktuellen Mausdaten von dem ausgewählten Computer gemäß des zweiten für den ausgewählten Computer geeigneten Mausprotokolls und Übersetzen dieser aktuellen Mausdaten in das erste Mausprotokoll, welches für die erste Arbeitsstation geeignet ist.
  15. Verfahren gemäß Ansprüchen 12 bis 14, ferner folgenden Schritt beinhaltend: Empfangen der aktuellen Videodaten von der ersten Arbeitsstation gemäß eines ersten für die erste Arbeitsstation geeigneten Videoprotokolls und Übersetzen dieser Videodaten in ein zweites Videoprotokoll, welches für den ausgewählten Computer geeignet ist; und Empfangen der aktuellen Videodaten von dem ausgewählten Computer gemäß des zweiten für den ausgewählten Computer geeigneten Videoprotokolls und Übersetzen dieser aktuellen Videodaten in das erste Videoprotokoll, welches für die erste Arbeitsstation geeignet ist.
  16. Verfahren gemäß Ansprüchen 12 bis 15, dadurch gekennzeichnet, dass der erste und zweite Computer an den ersten und zweiten Computeranschlüssen Anforderungen ausgeben und der einzige Mikroprozessor fortwährend den ersten und zweiten Computeranschluss mittels einer weiteren Unterbrechungsbehandlungsroutine abfragt, um die Anforderungen des ersten und zweiten Computers zu erfassen und bereitzustellen.
  17. Verfahren, wie in Ansprüchen 12 bis 16 beansprucht, zur Vermittlung von Tastatur-, Video- und Maussignalen zwischen ungleichartigen Arbeitsstationen und Computern mittels eines Schalters, beinhaltend: Bereitstellen einer Vielzahl von Computeranschlüssen, einen pro Computer, um den Schalter mittels der jeweils dazugehörenden Computeranschlüsse mit jedem der Computer zu verbinden; Bereitstellen einer Vielzahl von Arbeitsstation-Anschlüssen, einer pro Arbeitsstation, um den Schalter mittels der jeweils dazugehörenden Arbeitsstations-Anschlüsse mit jeder der Arbeitsstationen zu verbinden; Bereitstellen eines Kanalumschalters für jeden Benutzer einer Arbeitsstation zur Auswahl eines beliebigen Computers; Überprüfen des Kanalumschalters und Zuordnen eines Computeranschlusses an jede Arbeitsstation basierend auf der Auswahl jedes Arbeitsstationsbenutzers; Empfangen der jeweiligen Tastatur- und Maussignale von jedem der Arbeitsstation-Anschlüsse; ferner folgende Schritte beinhaltend: Abfragen der jeweiligen Arbeitsstation-Anschlüsse, einen nach dem anderen, und Erfassen der Tastatur- und Maussignale daraus; Abfragen aller Computeranschlüsse, einen nach dem anderen, und Weitergeben der Tastatur- und Maussignale an die zugeordneten Computer über die entsprechenden Anschlüsse.
DE60030278T 1999-05-06 2000-05-08 Tastatur-/video-/mausverteiler für mehrfachnutzer Expired - Lifetime DE60030278T2 (de)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US13292699P 1999-05-06 1999-05-06
US132926P 1999-05-06
US564793 2000-05-05
US09/564,793 US6671756B1 (en) 1999-05-06 2000-05-05 KVM switch having a uniprocessor that accomodate multiple users and multiple computers
PCT/US2000/012379 WO2000068813A1 (en) 1999-05-06 2000-05-08 Kvm switch for multiple users

Publications (2)

Publication Number Publication Date
DE60030278D1 DE60030278D1 (de) 2006-10-05
DE60030278T2 true DE60030278T2 (de) 2007-10-11

Family

ID=26830876

Family Applications (1)

Application Number Title Priority Date Filing Date
DE60030278T Expired - Lifetime DE60030278T2 (de) 1999-05-06 2000-05-08 Tastatur-/video-/mausverteiler für mehrfachnutzer

Country Status (6)

Country Link
US (1) US6671756B1 (de)
EP (1) EP1183614B1 (de)
AT (1) ATE337585T1 (de)
AU (1) AU4989300A (de)
DE (1) DE60030278T2 (de)
WO (1) WO2000068813A1 (de)

Families Citing this family (134)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6378014B1 (en) 1999-08-25 2002-04-23 Apex Inc. Terminal emulator for interfacing between a communications port and a KVM switch
US20040015615A1 (en) * 1999-10-25 2004-01-22 Liu Cheng Kuo Method for performing data transfer of KVM switch
CA2310538A1 (en) * 2000-06-09 2001-12-09 Christopher Kirchmann Data line interrupter switch
TW559723B (en) * 2000-07-13 2003-11-01 Ibm System and method for establishing wireless connection
US7249167B1 (en) * 2000-11-09 2007-07-24 Raritan, Inc. Intelligent modular server management system for selectively operating a plurality of computers
US20020054029A1 (en) * 2000-11-28 2002-05-09 Glancy John Thomas Interactive display system
JP4693231B2 (ja) * 2000-11-30 2011-06-01 富士通コンポーネント株式会社 切替器および切替方法ならびにそのコンピュータシステム
KR100374611B1 (ko) * 2001-01-17 2003-03-03 삼성전자주식회사 케이블 매칭 방법 및 그 방법을 수행하는 모니터
US20020128041A1 (en) * 2001-03-09 2002-09-12 Parry Travis J. Methods and systems for controlling multiple computing devices
US7424551B2 (en) * 2001-03-29 2008-09-09 Avocent Corporation Passive video multiplexing method and apparatus priority to prior provisional application
US7293075B2 (en) * 2001-04-12 2007-11-06 Unisys Corporation Method and apparatus for operating a data processing system using multiple console views
JP2003076452A (ja) * 2001-09-05 2003-03-14 Nagano Fujitsu Component Kk コンピュータ切替器及びコンピュータシステム、並びにデータ交換用プログラム、これを記録した記録媒体及びこれを組み込んだコンピュータ本体
TW544617B (en) * 2001-11-08 2003-08-01 Aten Int Co Ltd Intelligent computer switch
US8176226B2 (en) * 2001-11-09 2012-05-08 Aten International Co., Ltd. KVMP switch allowing asynchronous and synchronous switching for console devices and peripheral devices among different computers
US6957287B2 (en) * 2001-11-09 2005-10-18 Aten International Co., Ltd. Asynchronous/synchronous KVMP switch for console and peripheral devices
US7330919B2 (en) * 2001-11-09 2008-02-12 Aten Technology, Inc. Television with integrated asynchronous/synchronous KVMP signal switch for console and peripheral devices
EP1734454A3 (de) 2001-11-09 2011-04-13 Aten International Co., Ltd. Signalschalter für Konsole und Peripheriegeräte
US20030126337A1 (en) * 2001-12-31 2003-07-03 Compaq Information Technologies Group, L.P. Method of connecting to a KVM transmitter using internal cables
GB0204035D0 (en) * 2002-02-21 2002-04-03 Adder Tech Ltd Interfacing devices
US20030184960A1 (en) * 2002-03-28 2003-10-02 Compaq Information Technologies Group, L.P. Enumeration, manageability, and security of a KVM extension device
US6961798B2 (en) * 2002-03-28 2005-11-01 Hewlett-Packard Development Company, L.P. KVM extension configuration including a USB-to-non-USB adapter to support transmission of USB signals from a host to KVM devices located outside of USB operating ranges
US20020097220A1 (en) * 2002-03-28 2002-07-25 Compaq Information Technologies Group, L.P. Method of supporting audio for KVM extension in a server platform
US20030196125A1 (en) * 2002-03-28 2003-10-16 Compaq Information Technologies Group, L.P. Method of powering on and off a computer using a standard keyboard
KR100461179B1 (ko) * 2002-04-15 2004-12-13 삼성전자주식회사 디스플레이장치
JP4527348B2 (ja) * 2002-05-29 2010-08-18 富士通コンポーネント株式会社 インタフェース装置、インタフェース装置におけるファームウェアの更新方法、及びそのプログラム
US7542299B2 (en) * 2002-07-08 2009-06-02 Aten International Co., Ltd Keyboard, video and mouse (KVM) switch
US7035112B2 (en) * 2002-07-08 2006-04-25 Aten International Co., Ltd. Automatic switch
US20090117777A1 (en) * 2002-07-08 2009-05-07 Kevin Chen Keyboard, video and mouse (kvm) switch
US7283375B2 (en) * 2002-07-08 2007-10-16 Aten International Co., Ltd. Automatic switch
US7502230B2 (en) 2002-07-08 2009-03-10 Aten International Co., Ltd. Keyboard, video and mouse (KVM) switch
US7818480B2 (en) * 2002-08-29 2010-10-19 Raritan Americas, Inc. Wireless management of remote devices
US20040162992A1 (en) * 2003-02-19 2004-08-19 Sami Vikash Krishna Internet privacy protection device
US7120724B2 (en) * 2003-04-14 2006-10-10 Hewlett-Packard Development Company, L.P. USB interface extension through split transaction protocol
US6915362B2 (en) * 2003-04-25 2005-07-05 Dell Products L.P. System to aggregate keyboard video mouse (KVM) control across multiple server blade chassis
US6993620B2 (en) * 2003-06-13 2006-01-31 Hewlett-Packard Development Company, L.P. User resource sharing through the USB interface
US20050015430A1 (en) 2003-06-25 2005-01-20 Rothman Michael A. OS agnostic resource sharing across multiple computing platforms
US20050010654A1 (en) * 2003-07-09 2005-01-13 Lin Tseng I peripheral community apparatus for computers output/input
US7259482B2 (en) * 2003-09-24 2007-08-21 Belkin International, Inc. Distance extender and method making use of same
US8427421B2 (en) * 2003-12-12 2013-04-23 Raritan Americas, Inc. Option menu for use with a computer management system
JP2005168863A (ja) * 2003-12-12 2005-06-30 Aruze Corp 遊技機
US7281067B2 (en) * 2003-12-22 2007-10-09 Aten International Co., Ltd. KVM switch cable for PS/2 and USB signaling
TWI260525B (en) * 2003-12-30 2006-08-21 Icp Electronics Inc Switch control system for multiple input devices and method thereof
CA2455043A1 (en) * 2004-01-09 2005-07-09 Digital Multitools Inc. Method and apparatus for facilitating control of a target computer by a remote computer
US20050172039A1 (en) * 2004-02-04 2005-08-04 C&C Technic Taiwan Co., Ltd. KVM switch
US7603498B2 (en) * 2004-03-19 2009-10-13 Dell Products L.P. System and method for managing multiple information handling systems using embedded control logic
US20050216620A1 (en) * 2004-03-26 2005-09-29 Francisc Sandulescu KVM and USB peripheral switch
US7585176B2 (en) * 2004-03-31 2009-09-08 Aten International Co., Ltd. Connector encompassing 15-pin high density D-SUB pinout having additional pin capacity
US7774523B2 (en) * 2004-03-31 2010-08-10 Aten International Co., Ltd. Interface switch system for simultaneously connecting multiple I/O devices
CN100351804C (zh) * 2004-03-31 2007-11-28 联想(北京)有限公司 多电脑测试切换器
US7415552B2 (en) * 2004-04-15 2008-08-19 Aten International Co., Ltd Keyboard video mouse switch for multiple chaining and the method thereof
US7613854B2 (en) * 2004-04-15 2009-11-03 Aten International Co., Ltd Keyboard video mouse (KVM) switch wherein peripherals having source communication protocol are routed via KVM switch and converted to destination communication protocol
US20060202964A1 (en) * 2004-05-03 2006-09-14 Yee Liaw Intelligent modular server management system with enhanced graphical user interface
US20050273312A1 (en) * 2004-06-03 2005-12-08 Francisc Sandulescu Distriubte USB KVM switch
US7426542B2 (en) * 2004-06-29 2008-09-16 Intel Corporation Providing a remote terminal capability
US8069239B2 (en) * 2004-07-20 2011-11-29 Beckman Coulter, Inc. Centralized monitor and control system for laboratory instruments
CN1324435C (zh) * 2004-10-20 2007-07-04 英业达股份有限公司 多任务式计算机周边装置联机切换接口
US7613927B2 (en) * 2004-11-12 2009-11-03 Raritan Americas, Inc. System for providing secure access to KVM switch and other server management systems
TWI253555B (en) * 2004-11-30 2006-04-21 Aten Int Co Ltd A keyboard-mouse-video switch with digital visual interface
TW200634545A (en) * 2005-03-22 2006-10-01 Wellsyn Technology Inc Method of initializing a peripheral device for operating a computer system
US7516255B1 (en) 2005-03-30 2009-04-07 Teradici Corporation Method and apparatus for providing a low-latency connection between a data processor and a remote graphical user interface over a network
US8560753B1 (en) 2005-03-30 2013-10-15 Teradici Corporation Method and apparatus for remote input/output in a computer system
US7676605B1 (en) 2005-04-06 2010-03-09 Teradici Corporation Methods and apparatus for bridging a bus controller
US8516171B2 (en) * 2005-04-06 2013-08-20 Raritan Americas Inc. Scalable, multichannel remote device KVM management system for converting received signals into format suitable for transmission over a command network
US8332523B2 (en) * 2005-04-06 2012-12-11 Raritan Americas, Inc. Architecture to enable keyboard, video and mouse (KVM) access to a target from a remote client
US7908335B1 (en) 2005-04-06 2011-03-15 Teradici Corporation Methods and apparatus for bridging a USB connection
US7240111B2 (en) * 2005-04-12 2007-07-03 Belkin Corporation Apparatus and system for managing multiple computers
US8639812B2 (en) * 2005-04-12 2014-01-28 Belkin International, Inc. Apparatus and system for managing multiple computers
US20060253639A1 (en) * 2005-05-05 2006-11-09 Aten International Co., Ltd. Control system for controlling a plurality of target computers through portable computer
US7202836B2 (en) * 2005-05-06 2007-04-10 Motorola, Inc. Antenna apparatus and method of forming same
US7584306B2 (en) * 2005-05-19 2009-09-01 Aten International Co., Ltd. KVM switch with on-screen-display and a computer switching method thereof
TWI289765B (en) * 2005-07-20 2007-11-11 Quanta Comp Inc Devices a methods for signal switching and processing
US7689704B2 (en) * 2005-08-05 2010-03-30 Global Serv Inc. Methods and arrangements for managing automated switching
US7886091B2 (en) * 2005-08-05 2011-02-08 Global Serv Inc. Methods and arrangements for performing desktop switching
US7546374B2 (en) * 2005-08-05 2009-06-09 Global Serv Inc. Methods and arrangements for managing and maintaining a switch environment
US20070094426A1 (en) * 2005-10-24 2007-04-26 Aten International Co., Ltd. KVM switch supporting IPMI communications with computing devices
US7441063B2 (en) * 2005-12-14 2008-10-21 Aten International Co., Ltd. KVM system for controlling computers and method thereof
US7737964B2 (en) * 2006-04-05 2010-06-15 Aten International Co., Ltd. On-screen display system
US20080123635A1 (en) * 2006-06-06 2008-05-29 Mortensen Keith Y Matrix switching system
US20070285394A1 (en) * 2006-06-08 2007-12-13 Aten International Co., Ltd. Kvm switch system capable of transmitting keyboard-mouse data and receiving video data through single cable
US20080024433A1 (en) * 2006-07-26 2008-01-31 International Business Machines Corporation Method and system for automatically switching keyboard/mouse between computers by user line of sight
US20080030331A1 (en) * 2006-08-04 2008-02-07 Aten International Co., Ltd. Anti-thief electronic device and method thereof
US8009173B2 (en) * 2006-08-10 2011-08-30 Avocent Huntsville Corporation Rack interface pod with intelligent platform control
WO2008020897A2 (en) * 2006-08-10 2008-02-21 Avocent Huntsville Corporation Rack interface pod with intelligent platform control
US8427489B2 (en) * 2006-08-10 2013-04-23 Avocent Huntsville Corporation Rack interface pod with intelligent platform control
US20080040527A1 (en) * 2006-08-14 2008-02-14 Filipov Metodi N Management module
US7783799B1 (en) * 2006-08-31 2010-08-24 American Megatrends, Inc. Remotely controllable switch and testing methods using same
CN101140558A (zh) * 2006-09-05 2008-03-12 深圳迈瑞生物医疗电子股份有限公司 嵌入式系统及其通信方法
US20080109227A1 (en) * 2006-11-06 2008-05-08 Aten International Co., Ltd. Voice Control System and Method for Controlling Computers
US7496697B2 (en) * 2006-12-01 2009-02-24 Belkin International, Inc. Apparatus for managing multiple computers by remote control
US8144160B2 (en) * 2007-02-16 2012-03-27 Emulex Corporation Methods and apparatus for non-intrusive capturing of frame buffer memory information for remote display
US8375115B2 (en) * 2007-02-16 2013-02-12 Emulex Corporation Methods, apparatus, and systems for integrated management, graphics and I/O control of server systems
US9024878B2 (en) * 2007-02-16 2015-05-05 Emulex Corporation Hardware cursor snooping
US8838856B2 (en) * 2007-02-16 2014-09-16 Emulex Corporation Virtual universal asynchronous receiver transmitter for server systems
US7730243B2 (en) * 2007-05-18 2010-06-01 Avocent Corporation KVM switch system with a simplified external controller
US20090063712A1 (en) * 2007-09-05 2009-03-05 Aten International Co., Ltd. Kvm switch identifying peripheral for computer and method thereof
US7783801B2 (en) * 2007-09-14 2010-08-24 Aten International Co., Ltd KVM console cable and multi-computer system using the same
US20090177901A1 (en) * 2008-01-08 2009-07-09 Aten International Co., Ltd. Kvm management system capable of controlling computer power
US7721028B2 (en) * 2008-02-04 2010-05-18 Aten International Co., Ltd. Keyboard video mouse (KVM) switch between plurality of internal USB hubs each associated with plurality of audio codecs connected to the downstream port of associated USB hub
US7769940B2 (en) * 2008-02-13 2010-08-03 Belkin International, Inc. Switching device configured to couple a first computer to a first peripheral device and one or more second peripheral devices and method of manufacturing same
WO2009114000A1 (en) * 2008-03-08 2009-09-17 Hewlett-Packard Development Company, L.P. Computer monitor with integral kvm switch
JP2009252172A (ja) * 2008-04-10 2009-10-29 Fujitsu Component Ltd 遠隔操作システム
TWI393008B (zh) * 2008-05-27 2013-04-11 多電腦之切換器系統轉換之方法及多電腦系統切換器設備
US20100011055A1 (en) * 2008-07-09 2010-01-14 Chih-Hua Lin Remote desktop control system using usb cable and method thereof
US20100013759A1 (en) * 2008-07-21 2010-01-21 June-On Co., Ltd. Kvm switch with separate on-screen display and control channels
US8650344B2 (en) 2008-07-21 2014-02-11 June-On Technology Co., Ltd. Method for operating KVM switch with independent on-screen display and control channels
JP5074326B2 (ja) * 2008-08-19 2012-11-14 富士通コンポーネント株式会社 情報処理装置、kvmスイッチ、遠隔システム及びプログラム
WO2010020991A2 (en) 2008-08-19 2010-02-25 High Sec Labs Isolated multi-network computer system and apparatus
JP2010067190A (ja) * 2008-09-12 2010-03-25 Konica Minolta Business Technologies Inc 情報共有化システムおよび中継機器
US20100095030A1 (en) * 2008-10-15 2010-04-15 Aten International Co., Ltd. Control management system
US8484403B2 (en) * 2009-03-03 2013-07-09 June-On Technology Co., Ltd. KVM switch apparatus with bridging function
US20100274936A1 (en) * 2009-04-24 2010-10-28 Aten International Co., Ltd. Osd image generating method in kvm switches
US8473651B1 (en) 2009-04-29 2013-06-25 Clisertec Corporation Isolated protected access device
US20110060849A1 (en) * 2009-09-04 2011-03-10 Aten International Co., Ltd. Monitoring method and keyboard video mouse switch
US20120162887A1 (en) * 2010-03-17 2012-06-28 Guy Purser Ruggedized emf shieldedlcd / pc combination system
US9542006B2 (en) * 2011-01-16 2017-01-10 High Sec Labs Ltd. Secure KM switch
US10133361B2 (en) 2011-06-06 2018-11-20 International Business Machines Corporation Device driver-level approach for utilizing a single set of interface input devices for multiple computing devices
US20130050222A1 (en) * 2011-08-25 2013-02-28 Dov Moran Keyboard with embedded display
EP2645234A1 (de) * 2012-03-27 2013-10-02 ASUSTeK Computer Inc. Elektronische Vorrichtung
CN104737150B (zh) * 2012-10-23 2017-10-17 阿沃森特亨茨维尔有限责任公司 使用在万维网浏览器中运行的HTML5 KVM/vMEDIA客户端访问盘镜像文件的系统和方法
US9363264B2 (en) * 2013-11-25 2016-06-07 At&T Intellectual Property I, L.P. Networked device access control
US9531126B2 (en) 2014-06-05 2016-12-27 Chatsworth Products, Inc. Electrical receptacle with locking feature
US9665525B2 (en) * 2014-06-09 2017-05-30 High Sec Labs Ltd. Multi-host docking device
CN104571581B (zh) * 2014-12-22 2017-04-26 渤海大学 一种用于多主机共享显示设备的切换装置及切换方法
US10162986B2 (en) * 2016-08-17 2018-12-25 American Megatrends, Inc. Techniques of improving KVM security under KVM sharing
US10467169B2 (en) 2016-10-11 2019-11-05 I/O Interconnect, Ltd. Human interface device switch with security function
US10657075B2 (en) * 2016-10-11 2020-05-19 I/O Interconnect, Ltd. Keyboard-video-mouse switch, and signal transmitting method
US10547145B2 (en) 2018-02-05 2020-01-28 Chatworth Products, Inc. Electric receptacle with locking feature
TWI708151B (zh) * 2018-12-25 2020-10-21 鎝羅斯科技有限公司 具擴充性之電子運算系統
US11150698B2 (en) * 2019-05-01 2021-10-19 Dell Products, L.P. Bypass pathway for providing auxiliary power from a docking station
US10928856B1 (en) * 2019-10-01 2021-02-23 Dell Products, L.P. Docking response time
IL275024B (en) 2020-05-31 2021-12-01 High Sec Labs Ltd Modular kvm system
US10922246B1 (en) 2020-07-13 2021-02-16 High Sec Labs Ltd. System and method of polychromatic identification for a KVM switch
US11334173B2 (en) 2020-07-13 2022-05-17 High Sec Labs Ltd. System and method of polychromatic identification for a KVM switch
CN112738422B (zh) * 2020-12-31 2022-08-16 威创集团股份有限公司 一种坐席画面显示系统及其显示方法

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW372294B (en) 1993-03-16 1999-10-21 Ht Res Inc Multiple computer system
US5499377A (en) 1993-05-03 1996-03-12 Designed Enclosures, Inc. Multi-computer access switching system
US5689641A (en) * 1993-10-01 1997-11-18 Vicor, Inc. Multimedia collaboration system arrangement for routing compressed AV signal through a participant site without decompressing the AV signal
US5721842A (en) 1995-08-25 1998-02-24 Apex Pc Solutions, Inc. Interconnection system for viewing and controlling remotely connected computers with on-screen video overlay for controlling of the interconnection switch
US6314479B1 (en) * 1997-08-04 2001-11-06 Compaq Computer Corporation Universal multi-pin plug and display connector for standardizing signals transmitted between a computer and a display for a PC theatre interconnectivity system

Also Published As

Publication number Publication date
US6671756B1 (en) 2003-12-30
EP1183614B1 (de) 2006-08-23
WO2000068813A1 (en) 2000-11-16
DE60030278D1 (de) 2006-10-05
ATE337585T1 (de) 2006-09-15
EP1183614A1 (de) 2002-03-06
EP1183614A4 (de) 2005-08-03
AU4989300A (en) 2000-11-21

Similar Documents

Publication Publication Date Title
DE60030278T2 (de) Tastatur-/video-/mausverteiler für mehrfachnutzer
US5255358A (en) Action bar processing on non-programmable workstations
DE68925474T2 (de) Verriegelungsrechnersysteme
DE69119432T2 (de) Benutzerschnittstelle mit simulierten vorrichtungen
DE69720015T2 (de) Emulator zur visualisierung von objektdateien und betriebsverfahren dazu
DE69836426T2 (de) Steuergerät für einen universellen seriellen Bus
DE69935234T2 (de) System zum fernzugriff auf personalcomputer
US6836885B1 (en) Method and apparatus for display of windowing application programs on a terminal
US7720672B1 (en) Method and apparatus for display of windowing application programs on a terminal
DE69032438T2 (de) Arbeitsunterlage mit flacher berührungsempfindlicher Anzeige für ein Datenverarbeitungssystem
US6813650B1 (en) Multimode non-standard universal serial bus computer input device
EP0458715B1 (de) Verfahren und Anordnung zur Unterstützung der Anzeige und Entfernung von Fenstern
JPH0816833B2 (ja) カーソルの移動を制御する方法及びカーソル移動キーストローク信号を処理する方法
JPH087661B2 (ja) 従属ワークステーションのマウスサポート
DE68923864T2 (de) Anordnung zur Speicher- und Peripherie-Bausteinauswahl.
CN201218931Y (zh) 一种智能型计算机外部设备接口切换控制器
CN1126337A (zh) 多显示屏/多触摸屏/多键盘微型计算机及其工作方式
EP2345966B1 (de) Anzeige von Anwendungsprogrammen mit Fenstertechnik auf einem Endgerät
DE60219919T2 (de) Verbesserungen für ein server system
DE19655400B4 (de) Terminal zum Kommunizieren mit einem Server
KR940012138A (ko) 단말장치를 제어 및 관리하는 시스템
GB2289785A (en) Supporting multiple NPT display sessions on a single address
AU750333B2 (en) Method and apparatus for display windowing application programs on a terminal
JPH0476656A (ja) マルチディスプレイシステム装置
JPH0670781B2 (ja) ワークステーションへの選択フィールド表示装置及び選択フィールド処理装置ならびに処理方法

Legal Events

Date Code Title Description
8364 No opposition during term of opposition