-
HINTERGRUND DER ERFINDUNG
-
1. Gebiet der Erfindung
-
Diese
Erfindung betrifft das Gebiet der Elektronik und insbesondere eine
Vorrichtung, welche die Verbindung zwischen Vorrichtungen unter
Verwendung einer I2C-Schnittstelle ermöglicht.
-
2. Beschreibung des Standes
der Technik
-
Der
von der Philips Corporation entwickelte "Inter Integrated Circuit" (I2C)-Bus ermöglicht es
integrierten Schaltkreisen, direkt über einen einfachen bidirektionalen
2-Draht (plus Erdung)-Bus
miteinander zu kommunizieren. Eine Vorrichtung wird mit jedem der
beiden Drähte
an dem Bus verbunden: ein Draht (SData) für die Übermittlung von Daten und der andere
Draht (SClk) für
die Steuerung und Synchronisation der Übermittlung von Daten zwischen
den Vorrichtungen. Jede Vorrichtung ist parallel mit jeder der anderen
Vorrichtungen verbunden, und jede der Busleitungen – SData
und SClk – fungiert
als ein verdrahtetes UND aller Leitungen an dem Bus. Der Ausgang
jeder Vorrichtung ist als eine Vorrichtung mit offenem Kollektor/offenem
Abzug konfiguriert, und einer oder mehrere Pull-up-Widerstände halten
einen hohen "Soft"-Logikwert an dem
Bus aufrecht, während
sich der Bus im Ruhezustand befindet. Wenn eine Vorrichtung auf
den Bus zugreifen will, so zieht die Vorrichtung den Bus über die
Vorrichtung mit offenem Kollektor/offenem Abzug, die sich in einem leitfähigen Zustand
zum Erdungspotenzial befindet, auf einen niedrigen Logikwert.
-
Um
eine Hochgeschwindigkeitsdatenübertragung
zu ermöglichen,
begrenzt die I2C-Spezifikation die maximale
kapazitive Last am Bus, wodurch die maximale Länge des Busses begrenzt wird.
Die maximale kapazitive Nennlast beträgt 400 pf, wodurch die Buslänge auf
einige wenige Meter begrenzt wird. Der integrierte Schaltkreis 82B715
von Philips Semiconductors ist ein I2C-Buserweiterer,
der ein Routen des Busses über
die maximale Nennlänge
hinaus ermöglicht.
Der 82B715 bietet eine Stromverstärkung von zehn vom Eingang
zum Ausgang, wodurch eine kapazitive Verringerung von zehn für den Bus
auf der Eingangsseite des Buserweiterers entsteht. Durch Anordnen
eines Buser weiterers an jedem Ende eines langen Drahtabschnitts
erscheint lediglich ein Zehntel der Kapazitanz des Drahtes als eine
Last für
den I2C-Bus oder die I2C-Vorrichtung
an jedem Ende des langen Drahtabschnitts. Die Strompufferung bewahrt auch
die bidirektionale Charakteristik des offenen Kollektors/offenes
Abzugs des I2C-Busses.
-
Ein
Hub unterscheidet sich von einem Erweiterer insofern, als ein Hub
herkömmlicherweise
als eine Vorrichtung definiert ist, die ein Signal an mehrere Vorrichtungen
verteilt. Zum Beispiel kann ein Hub auf einer gedruckten Leiterplatte
zentral zwischen einer Vielzahl verschiedener Vorrichtungen angeordnet
sein, die über
den Bus kommunizieren. Von dieser zentralen Stelle aus zweigt der
Bus zu jeder Vorrichtung ab – vorzugsweise über einen
Treiber an jedem Port des Busses, der ein entsprechendes Segment
des Busses ansteuert. Auf diese Weise wird die Länge jedes Segments des Busses
vom Hub zu den Vorrichtungen im Vergleich zu einer durchgängigen Drahtlänge, die
zu allen Vorrichtungen verläuft,
verkürzt,
und die Buslast wird zwischen den Hub-Treibern verteilt.
-
In
einer bidirektionalen Konfiguration, wo derselbe Draht sowohl zum
Senden als auch zum Empfangen verwendet wird, erscheint ein Hub
als eine Ansammlung von Eingangsports, die jeweils zu einem Treiber
an jedem anderen Port ausfächern. Weil
der Ausgang des Treibers an einem Port denselben Knoten benutzt
wie der Eingang von den Vorrichtungen an dem Bussegment jenes Ports
und der Eingang zu jedem anderen Treiber ausfächert, muss ein bidirektionaler
Hub dafür
konfiguriert sein, ein extern erzeugtes Ereignis an den Bussegmenten
von einem intern erzeugten Ereignis zu unterscheiden, um ein sogenanntes "Latch-up" zu verhindern. Ein
solches Latch-up wird verursacht, wenn ein Eingangsereignis, das
von einem Port ausgesendet wird, als ein Eingangsereignis von einem
anderen Port interpretiert wird und von dem anderen Port zum Absender-Port
zurückgesendet
wird. Wenn der Absender des Ereignisses das Ereignis beendet, so
muss diese Beendigung allen Ports mitgeteilt werden.
-
Herkömmliche
bidirektionale Hubs enthalten in der Regel eine Steuerlogik, die
feststellt, welcher Port ein Ansteuersignal empfängt, und danach verhindert,
dass Eingangssignale von allen anderen Ports zu allen anderen Ports
gesendet werden. Das heißt,
der herkömmliche
Hub aktiviert selektiv nur einen einzigen Port als einen Empfangsport
und zwingt alle anderen Ports in einen Sendezustand, wobei diese
anderen Ports die Daten, die an dem Empfangsport empfangen werden,
zu ihren entsprechenden Bussegmenten senden. Weil immer nur ein
einziger Port auf einmal für
das Empfangen und Senden eines Signals aktiviert ist, wird die Möglichkeit
eines Latch-up vermieden. Es ist jedoch zu beachten, dass dieses
selektive Aktivieren jeweils eines einzelnen Port voraussetzt, dass
jeweils immer nur ein einziger Port aktiv sein darf, oder, wenn
zwei Ports aktiv sind, der erste Port, der aktiv sein soll, Vorrang
hat.
-
Ein
Hub ist vorzugsweise für
die Vorrichtungen an dem Bus "transparent". Das heißt, auch
wenn ein Hub eine verbesserte Busleistung ermöglicht, sollte sein Vorhandensein
an dem Bus nicht erkannt werden können. Wenn zum Beispiel der
Bus ohne den Hub ein verdrahteter UND-Bus ist, so wird, wenn eine
Vorrichtung den Bus in den Low-Zustand zieht, die gesamte Länge des
Busses in den Low-Zustand versetzt. Wenn mehrere Vorrichtungen den
Bus in den Low-Zustand ziehen, so bleibt der Bus im Low-Zustand, bis die
letzte Vorrichtung aufhört,
die geringe Spannung anzulegen. Ein herkömmlicher Hub, der jeweils immer
nur auf einen einzigen Port reagiert, bringt oft ein Übergangsverhalten
hervor, weil er den momentanen Empfangsport deaktiviert und dann
einen anderen Port als den Empfangsport aktiviert. Weil jeweils
immer nur ein einziger Port als ein Empfangsport aktiviert ist,
weiß der
Hub nicht, dass ein anderes Segment des Busses ebenfalls in den
Low-Zustand gesteuert wird, bis er versucht, den Bus in einen High-Zustand
zu versetzen. Das Segment, das in den Low-Zustand gesteuert wird,
bleibt im Low-Zustand, aber anderen Segmenten wird es gestattet,
in den High-Zustand aufzusteigen, bis der Port, der in den Low-Zustand
gesteuert wird, als der alleinige Empfangsport aktiviert ist. Einige
Spezifikationen, und insbesondere die I2C-Spezifikation,
stützen
sich auf eine gleichbleibende Leistung bei Vorliegen eines gleichzeitigen
Aufdrückens
des aktiven Zustandes durch mehrere Vorrichtungen. In der I2C-Spezifikation zum Beispiel wird die Synchronisation
des Taktsignals zwischen mehreren Vorrichtungen durch den Zeitpunkt,
an dem eine erste Vorrichtung den Bus in den Low-Zustand zieht,
und den Zeitpunkt, an dem eine letzte Vorrichtung aufhört, den Bus
in einen Low-Zustand zu ziehen, bestimmt.
-
US 5345447 offenbart einen
Mehrfachanschluss-Hub, wie er für
CSMA-Netze verwendet
wird.
-
KURZDARSTELLUNG DER ERFINDUNG
-
Es
ist eine Aufgabe dieser Erfindung, eine Mehrfachanschluss-Vorrichtung
bereitzustellen, die eine Mehrfachausfächerung eines Busses mit einem offenen
Kollektor/offenen Abzug bei gleichzeitiger Beibehaltung einer Hochgeschwindigkeitsdatenübertragung
ermöglicht.
Es ist eine weitere Aufgabe dieser Erfindung, eine Mehrfach anschluss-Vorrichtung bereitzustellen,
die das Bussteuerungsprotokoll eines I2C-Busses
beibehält.
Es ist eine weitere Aufgabe dieser Erfindung, eine Mehrfachanschluss-Vorrichtung
bereitzustellen, die Ausbreitungsverzögerungen minimiert.
-
Dieses
und weitere Aufgaben werden durch Bereitstellen einer Mehrfachanschluss-Vorrichtung erfüllt, die
dafür konfiguriert
ist, jedes aktive Segment an dem Bus zu erkennen. Die Ausbreitung
von Signalen von jedem Port zu jedem anderen Port wird durch den
Zustand jedes Segments gesteuert. Eine optimale Signalausbreitung
erreicht man durch Aktivieren der Steuerung der Ausbreitung von
Signalen erst nach einem ersten Aktiv-Übergang
an dem Bus. Anfängliche Übergänge werden
unbedingt ausgebreitet, um eine Ausbreitungsverzögerung zu minimieren, und anschließende Signalausbreitungen werden
bedingt gesteuert, um Latch-up zu vermeiden. Jedem Port ist ein
Signalspeicher zugeordnet. Der Signalspeicher wird jedes Mal gesetzt,
wenn der Port aktiv durch eine Vorrichtung an jenem Port angesteuert
wird. Der Signalspeicher wird zurückgesetzt, wenn alle Vorrichtungen
im Ruhezustand sind oder wenn ein anderer Port aktiv bleibt, wenn
der momentan aktive Port inaktiv wird. Der Zustand des Signalspeichers
jedes Ports steuert die Ausbreitung von intern erzeugten Signalen
zu dem Port. Wenn der Signalspeicher gesetzt ist, so werden intern
erzeugte Signale nicht zu dem Port gesendet, wodurch ein Latch-up
verhindert wird. Wenn der Signalspeicher nicht gesetzt ist, so werden
sowohl intern erzeugte Signale als auch extern erzeugte Signale
zu dem Port gesendet, wodurch Ausbreitungsverzögerungen minimiert werden.
-
KURZE BESCHREIBUNG DER
ZEICHNUNGEN
-
Die
Erfindung wird nun beispielhaft und unter Bezug auf die begleitenden
Zeichnungen näher
beschrieben. In den Zeichnungen ist Folgendes dargestellt:
-
1 veranschaulicht
ein beispielhaftes Blockschaubild eines I2C-Systems
mit einem Mehrfachanschluss-Hub gemäß dieser Erfindung.
-
2 veranschaulicht
ein beispielhaftes Blockschaubild eines Mehrfachanschluss-Hub gemäß dieser
Erfindung.
-
3 veranschaulicht
ein beispielhaftes Blockschaubild einer Mehrfachanschluss-Hubsteuerung
gemäß dieser
Erfindung.
-
4 veranschaulicht
ein beispielhaftes Blockschaubild einer Verbindungssteuerzelle einer Mehrfachanschluss-Hubsteuerung
gemäß dieser
Erfindung.
-
5 veranschaulicht
ein beispielhaftes Blockschaubild eines Steuerblocks zum Bestimmen eines
Hub-Logik-Gesamtzustandes eines Mehrfachanschluss-Hub gemäß dieser
Erfindung.
-
In
allen Zeichnungen bezeichnen die gleichen Bezugszahlen ähnliche
oder entsprechende Merkmale oder Funktionen.
-
DETAILLIERTE BESCHREIBUNG
DER ERFINDUNG
-
1 veranschaulicht
ein beispielhaftes Blockschaubild eines I2C-Systems 100 mit
einem Mehrfachanschluss-Hub (4-Port-Hub) 150 gemäß dieser
Erfindung. Obgleich der I2C als ein Paradigma für ein bidirektionales
Bussystem verwendet wird, und obgleich der I2C-Bus
eine verdrahtete UND-Logikstruktur zum Kommunizieren auf dem Bus
verwendet, erkennt der Durchschnittsfachmann, dass diese Erfindung
weder auf eine verdrahtete UND-Konfiguration noch auf eine I2C-Busstruktur beschränkt ist. Für den Durchschnittsfachmann
sind komplementäre
Strukturen zur Verwendung in einer verdrahteten ODER-Konfiguration
offensichtlich.
-
In
der I2C-Busstruktur kommunizieren externe
Vorrichtungen 110 über
zwei Busse: einen Datenbus und einen Taktbus. In einem Ruhezustand
werden die Busse auf einem "hohen" Spannungswert, nominal
+3 bis +10 Volt, gehalten. Diese hohe, oder inaktive, oder Ruhe-Spannung
wird über "Pull-up"-Widerstände 120 zugeführt, die
den Bus mit einer positiven Versorgungsspannung 125 verbinden. 1 veranschaulicht
vier Segmente des Busses, die mit dem 4-Port-Hub 150 verbunden
sind, wobei jedes Segment als Port A, B, C und D an dem Hub 150 identifiziert
ist. Im vorliegenden Text ist ein 4-Port-Hub zur Veranschaulichung dargestellt,
doch es kann jede beliebige Anzahl von Ports in einem Mehrfachanschluss-Hub
gemäß den Prinzipien
dieser Erfindung verkörpert
sein. Die Vorrichtungen an dem Bus sind als Vorrichtungen 110a,
b, c und d entsprechend dem Port, an den sie angeschlossen sind, bezeichnet.
Die Kommunikation über
den Bus erfolgt durch Ansteuern des Busses in einen niedrigen Spannungszustand,
um den aktiven Zustand zu bezeichnen, und Freigeben des Busses,
wodurch er in den hohen Spannungszustand aufsteigen kann, um den
inaktiven Zustand zu bezeichnen. Jede der Vorrichtungen an dem Bus
ist als Vorrichtung mit offenem Kollektor oder offenem Abzug konfiguriert,
die einen Pfad mit hoher Impedanz (vorzugsweise unendlicher Impedanz)
für die
positive Spannung 125 bereitstellt und einen schaltbaren
Pfad mit niedriger Impedanz zur Erde bereitstellt. Wenn eine Vorrichtung 110 den
Bus auf eine niedrige Spannung zieht, so werden alle Vorrichtungen
an demselben Segment des Busses auf die gleiche niedrige Spannung gebracht.
Der Hub 150 ist so ausgelegt, dass er diese niedrige Spannung
zu den Vorrichtungen an den anderen Segmenten des Busses verteilt.
Wenn – und nur
wenn – alle
Vorrichtungen 110 sich in einem inaktiven Zustand befinden,
in dem sie den Bus nicht in einen Low-Zustand steuern, ist es allen
Segmenten des Busses gestattet, zu der hohen Spannung 125 aufzusteigen.
Der Hub 150 ist praktisch dafür konfiguriert, den aktiven
Zustand von einer Vorrichtung zu jeder anderen Vorrichtung zu übermitteln
und es dem Bus zu gestatten, in den inaktiven Zustand zurückzukehren,
wenn keine Vorrichtung den aktiven Zustand aufdrückt.
-
2 veranschaulicht
ein beispielhaftes Blockschaubild eines Mehrfachanschluss-Hub 200 gemäß dieser
Erfindung. In einer I2C-Umgebung bilden
ein Paar Hubs 200 den Hub 150 von 1,
um unabhängig
eine Hub-Funktion für
den Datenbus und den Taktbus bereitzustellen.
-
Jeder
Port des Mehrfachanschluss-Hub 200 hat einen zugehörigen Port-Handler 210a, 210b usw. In 2 sind
vier Port-Handler veranschaulicht, obgleich eine beliebige Anzahl
von Ports vorhanden sein kann. Jeder Port-Handler 210 enthält einen
Treiber 220, der ein zugehöriges Segment des Busses – üblicherweise über eine
Kontaktinsel oder ein anderes Verbindungsmittel zu dem Hub 200 – ansteuert. Der
Treiber 220 ist auch – über die
bidirektionale Verbindung des Ports zu externen Vorrichtungen (110 in 1) – mit einem
Detektor 240 verbunden, der den Logikzustand des zugehörigen Segments
des Busses erfasst, und zwar unabhängig davon, ob der Bus durch
den Treiber 220 oder eine externe Vorrichtung angesteuert
wird. Weil intern erzeugte Signale (von dem Treiber 220) über dieselben
Medien übermittelt werden
wie extern erzeugte Signale (von Vorrichtungen 110), muss
der Detektor 240 zwischen intern und extern erzeugten Signalen
unterscheiden, um ein Latch-up zu vermeiden, wenn intern erzeugte
Signale zu dem absendenden Treiber zurückgesandt werden, wie oben
beschrieben.
-
Der
Detektor 240 an jedem Port unterscheidet zwischen einem
intern erzeugten Signal und einem extern erzeugten Signal. Es stehen
eine Vielzahl verschiedener, einschlägig bekannter Techniken zum Unterscheiden
zwischen intern und extern erzeugten Signalen zur Verfügung. Der
oben angesprochene Buserweiterer 82B715 zum Beispiel verwendet Stromsenken
und Stromerfassung zum Unterscheiden der Quelle eines Signals. Die
gleichzeitig anhängige
US-Patentanmeldung "Bidirectional
repeater using high and low threshold detection", Seriennummer 09/641179, eingereicht
am 17.08.2000 für
Alma Anderson und Paul Andrews, Anwaltsregister Nummer US008052,
offenbart eine Technik zum Unterscheiden zwischen intern und extern
erzeugten Signalen auf der Grundlage einer Unterscheidungsschwellenspannung
und wird durch Bezugnahme in den vorliegenden Text aufgenommen.
Gemäß dieser gleichzeitig
anhängigen
Anmeldung ist der Treiber 220 dafür konfiguriert, seinen Ausgangsspannungspegel
auf einen niedrigen Wert zu beschränken, der einem logischen Low-Zustand
entspricht, aber über dem
Spannungspegel liegt, den die externen Vorrichtungen 110 hervorzubringen
konfiguriert sind. Eine Schwellenspannung wird so eingestellt, dass
sie zwischen dem Spannungspegel des Treibers 220 in dem logischen
Low-Zustand und dem Spannungspegel der externen Vorrichtungen 110 in
dem logischen Low-Zustand liegt. Der Detektor 240 stellt
in diesem Beispiel einen "LState" bereit, der dem
Logikzustand des Ports entspricht, und stellt einen "EState" bereit, der einem
logischen Low-Zustand entspricht, wenn – und nur wenn – die Spannung
an dem Port unterhalb der Schwelle liegt. Auf diese Weise gibt ein
LState mit logischem "Low" und ein EState oder
logisches "High" an, dass die niedrige
Spannung an dem Port durch den internen Treiber 220 und
nicht durch eine externe Vorrichtung 110 hervorgerufen
wird. Dementsprechend gibt ein EState mit logischem "Low" an, dass die niedrige
Spannung an dem Port durch die externe Vorrichtung 110 hervorgerufen
wird. Die gleichzeitig anhängige
US-Patentanmeldung "Voltage
stabilized low level driver",
Seriennummer 09/642181, eingereicht am 17.08.2000 für Alma Anderson
und Paul Andrews, Anwaltsregister US008045, offenbart eine Ausführungsform
für einen Treiber 220,
der die benötigte
gesteuerte niedrige Spannung mit einer Spannung bereitstellt, die über einen
weiten Bereich von Bedingungen hinweg stabil ist, und wird durch
Bezugnahme in den vorliegenden Text aufgenommen.
-
Bei
jeder der bekannten Techniken zum Unterscheiden eines intern angesteuerten
Ereignisses von einem extern angesteuerten Ereignis ist die Zeit, die
benötigt
wird, um festzustellen, dass das Ereignis tatsächlich von einer externen Vorrichtung
ausgeht, länger
als die Zeit, die benötigt
wird, um den Logikwert an einem Knoten zu bestimmen. Zum Beispiel kann
man bei einer verdrahteten UND-Konfiguration – sobald die Spannung an einem
Knoten von der Ruhespannung abzufallen beginnt – davon ausgehen, dass die
Abnahme entweder eine Änderung
des Logikzustandes oder ein Rauschen darstellt. Unter der Annahme
einer maximalen Größenordnung
eines erwarteten Rauschens kann man – sobald die Spannung um die
maximale Größenordnung
des Rauschens unter die Ruhespannung abfällt – einen logischen "Low"-Wert annehmen. Umgekehrt
wird der Unterschied zwischen einem intern erzeugten Signal und
einem extern erzeugten Signal, die beide den logischen Low-Zustand
hervorrufen können,
in der Regel so bestimmt, dass man wartet, bis der Knoten ein bestimmtes
Unterscheidungsverhalten aufweist, oder nicht. Darum ist die Mindestverzögerungszeit zum
Bestimmen, ob ein Knoten intern oder extern angesteuert wird, in
der Regel mindestens so lang wie die maximale Übergangszeit entweder der internen oder
der externen Vorrichtung. Um eine ordnungsgemäße Bestimmung zu gewährleisten,
ob der Knoten intern oder extern angesteuert wird, wird in der Regel eine
maximale Schlimmstfall-Übergangszeit
als eine Designbeschränkung
verwendet, wodurch das Problem noch verschärft wird.
-
Wie
oben angemerkt, kann es, wenn das intern erzeugte Signal zu dem
Knoten, der das intern erzeugte Signal absandte, zurückgeleitet
wird, zu einem Latch-up kommen. Das Verteilen nur des extern erzeugten
Signals beseitigt die Wahrscheinlichkeit eines Latch-up, aber es
erzeugt – wie
oben besprochen – eine
erhebliche Ausbreitungsverzögerung, um
dem Detektor 240 die Zeit zu geben, zwischen intern und
extern erzeugten Signalen zu unterscheiden. Gemäß dieser Erfindung wird, um
die Ausbreitungsverzögerung
zu minimieren, der ermittelte Logikzustand weitergeleitet, sobald
ein erstes logisches "Low" detektiert wird,
und zwar ungeachtet der Quelle dieses logischen "Low"-Signals.
Danach steuert der Port, der das erste logische "Low" erzeugte,
den Logikzustand des Hub "HLState", und die Verbindung dieses
Logikzustandes mit dem absendenden Port wird unterbrochen, wodurch
ein Latch-up verhindert wird.
-
Eine
Steuerung 300 steuert einen Schalter 230 in jedem
Port-Handler 210, um die Verbindung zu dem entsprechendes
Treiber 220 zu steuern. Im Ruhezustand wird die Steuerung
zu jedem der Schalter 220 abgeschaltet, und jeder Treiber 220 wird
mit dem Hub-Logikzustand "HLState" verbunden. Die Steuerung 300 bestimmt
diesen Hub-Logikzustand anhand
des Logikzustandes LState jedes Port-Handlers 210, dergestalt,
dass, sobald ein logischer "Low"-Zustand an einem
Port detektiert wird, diese Änderung über den
HLState an alle Port-Treiber 220 weitergemeldet wird. Die
Steuerung 300 drückt
auch das Steuersignal für
den Schalter 230 dieses Ports auf, wodurch die Verbindung
des Hub-Logikzustandes
HLState zu dem Treiber 220 dieses Ports getrennt wird.
Durch Trennen des Hub-Logikzustandes HLState von dem absendenden
Port wird ein Latch-up vermieden.
-
Gemäß einem
weiteren Aspekt dieser Erfindung wird, wenn das Steuersignal für den Schalter 230 eines
Ports aufgedrückt
wird, der Treiber 220 mit einem Hub-externen Zustand HEState
verbunden. Bei einer verdrahteten UND-Konfiguration ist der Hubexterne
Zustand HEState das logische UND jedes externen Zustands EState
des Ports. Durch Verbinden des Hub-externen Zustands HEState mit
dem absendenden Port wird eine echte verdrahtete UND-Konfiguration
aufrecht erhalten. Wenn eine andere externe Vorrichtung (110 in 1)
zum Beispiel ein anderes Bussegment in den Low-Zustand steuert,
während
der absendende Port in den Low-Zustand gesteuert wird, so wird der
absendende Port so lange in einem Low-Zustand gehalten, wie einer
der Ports in den Low-Zustand
gesteuert ist. In der gleichen Weise – wie weiter unten noch besprochen
wird – drückt die
Steuerung ebenfalls das Steuersignal für den Port auf, der durch die
andere externe Vorrichtung angesteuert wird, so dass sein Treiber 220 mit dem
Hub-externen Zustand HEState verbunden wird, wodurch dieser Port
in einem logischen Low-Zustand gehalten wird, bis beide Ports nicht
mehr durch externe Vorrichtungen angesteuert werden.
-
3 veranschaulicht
ein beispielhaftes Blockschaubild einer Mehrfachansehluss-Hubsteuerung 300 gemäß dieser
Erfindung. Die Logikblöcke 310 und 320 bestimmen
den Hub-Logikzustand und den Hub-externen Zustand HLState bzw. HEState auf
der Grundlage des logischen und des externen Zustandes LState bzw.
EState jedes Ports. Der Hub-Logiksteuerblock 310 wird weiter
unten in Bezug auf 5 besprochen. Wie oben angesprochen,
ist in einer verdrahteten UND-Konfiguration der Logikblock 320 ein
logisches UND der einzelnen externen Zustände EState (i) jedes der Ports
(i) in dem Hub. Wie dem Durchschnittsfachmann einleuchtet, würde, wenn
eine verdrahtete ODER-Konfiguration
für eine I2C-Ausführungsform
verwendet wird, das UND-Gatter 320 durch ein ODER-Gatter
ersetzt werden.
-
Ein
Verbindungssteuerblock 350 empfängt jedes der LState(i)- und
EState(i)-Signale sowie die Hub-Signale HLState und HEState und
verwendet diese Signale zum Setzen oder Rücksetzen der Steuersignalspeicher 330,
die jedem Port zugeordnet sind. Jeder Signalspeicher 330 ermittelt
das entsprechende Steuersignal, das zum Steuern des Schalters (230 in 2)
an jedem Port-Handler (210 in 2) verwendet
wird, um den entsprechenden Hub-Logikzustand oder Hub-externen Zustand
mit dem entsprechenden Treiber (220 in 2)
zu verbinden oder von ihm zu trennen, wie oben besprochen.
-
4 veranschaulicht
ein beispielhaftes Blockschaubild einer Verbindungssteuerzelle 400 und
eines entsprechenden gesteuerten Signalspeichers 330 einer
Mehrfachanschluss-Hubsteuerung (300 in 3)
gemäß dieser
Erfindung. Der Verbindungssteuerblock 350 von 3 umfasst
funktional eine Verbindungssteuerzelle 400 für jeden
der Ports, obgleich einige der Logikelemente, wie beispielsweise
das ODER-Gatter 430, das unten noch besprochen wird, für mehrere
Ports dieselben sein können.
-
Wie
oben besprochen, wird das Steuersignal Control(i), das jedem Port
(i) zugeordnet ist, abgeschaltet, wenn sich der Bus im Ruhezustand
befindet. Dies geschieht mittels Rücksetzen oder Löschen des
Steuersignalspeichers (i) jedes Ports, wenn der Hub-Logikzustand ein
logischer "High"-Wert ist, über den
HLState-Eingang zu dem ODER-Gatter 460.
-
Wie
ebenfalls oben besprochen, wird jedes Mal, wenn festgestellt wird,
dass ein Port durch eine externe Vorrichtung in einen Low-Zustand
gesteuert wird, das Steuersignal Control(i) aufgedrückt. Dies geschieht
mittels Setzen des Steuersignalspeichers (i) eines Ports (i) jedes
Mal, wenn der externe Zustand EState (i) des Ports einen logischen "Low"-Wert anzeigt, über das
NUND-Gatter 410.
-
Das
Steuersignal Control(i) wird ebenfalls abgeschaltet, wenn festgestellt
wird, dass der bestimmte Port nicht mehr durch eine externe Quelle (110 in 1)
in einen Low-Zustand gesteuert wird. Wenn dieser Port der einzige
Port ist, der extern in einen Low-Zustand gesteuert wird, so erfolgt
diese Abschaltung, wenn sich der Logikzustand des Ports ändert und
der Hub-Logikzustand zu einem logischen "High" wird,
wodurch der Signalspeicher (i) 330 gelöscht wird, wie oben besprochen.
Wenn alternativ der externe Zustand EState (i) des Ports zu einem
logischen "High" wird, während der
Hub-externe Zustand in einem logischen Low-Zustand bleibt, so zeigt dies
an, dass eine andere Vorrichtung den Bus in einem Low-Zustand hält, und
der Signalspeicher (i) dieses Ports kann zurückgesetzt werden. Diese Rücksetzung
erfolgt über
das Logik-Gatter 470 und das ODER-Gatter 460.
-
Wie
oben besprochen, wird ein Übergang aus
dem Ruhezustand an einem Port (i) von dem ersten Port, der diesen Übergang
detektiert, an alle Ports weitergemeldet. Um ein Latch-up zu vermeiden,
ist dieser erste Port (i) dafür
konfiguriert, den Hub-Logikzustand
HLState über
das Steuersignal Control(i) von seinem Treiber zu trennen. Dies
erfolgt durch Setzen des Signalspeichers (i) 330 jedes
Mal, wenn der detektierte Logikzustand LState (i) des Ports (i)
niedrig wird und noch keiner der anderen Ports über die ODER-Gatter 430 und 420 und
das NUND-Gatter 410 gesetzt wurde, was anzeigt, dass dies
der erste Port ist, der das logisches "Low"-Signal detektiert
hat, und darum extern angesteuert sein muss.
-
5 veranschaulicht
ein beispielhaftes Blockschaubild des Logiksteuerblocks 310 zum
Bestimmen des Hub-Logik-Gesamtzustandes HLState des Mehrfachanschluss-Hub 200 von 2 gemäß dieser
Erfindung. Die Logik-Gatter 510 stellen jeweils fest, ob
der zugehörige
Port ein Steuerport ist, und das UND-Gatter 520 erzeugt
einen Hub-Logikzustand,
der dem Logikzustand LState des einen oder der mehreren Steuerports
entspricht. In dem Ruhe- oder logischen "High"-Zustand
ist der Logikzustand LState jedes Ports hoch, wodurch der Hub-Logikzustand
HLState hoch ist. Wenn der HLState hoch ist, so wird jeder der Steuersignalspeicher 330 der 3 und 4 über die
ODER-Gatter 460 in 4 zurückgesetzt,
wodurch jede der Verbindungssteuerleitungen, die jedem Port zugeordnet
sind, auf einen logischen "Low"-Pegel gebracht wird.
Dieser logische "Low"-Pegel an dem umgekehrten Steuereingang
zu dem Logikgatter 510 entsensibilisiert jedes Gatter 510 auf
den Logikzustand LState jedes entsprechenden Ports, indem der Ausgang
des Gatters 510 ungeachtet des LState-Eingangs in einen
logischen "High"-Zustand gezwungen
wird.
-
Wenn
ein erstes logisches "Low"-Ereignis an einem
Port (i) eintritt, so gibt der Detektor 240 des Ports (2)
einen logisch-niedrigen LState (i) aus. Dieser logisch-niedrige LState (i)
setzt das entsprechende Portsteuersignal Control(i) über die
Gatter 420 und 410 von 4 in einen
logischen "High"-Zustand. Es ist
zu beachten, dass, wie oben angemerkt, im Ruhezustand alle Steuersignale
auf ein logisches "Low" zurückgesetzt
werden, so dass sich auch der Ausgang des Logikgatters 430 auf
einem logischen "Low"-Wert befindet, wodurch das Gatter 420 auf
den LState (i) sensibilisiert wird. Der anfängliche logisch-niedrige LState
(i) und das anschließende
logisch-hohe Control(i), die dem absendenden Port (i) entsprechen,
veranlassen das entsprechende Hub-Logiksteuergatter 510,
in einen logischen Low-Zustand zu gehen, wodurch der Hub-Logikzustand
HLState über
das Gatter 520 in einen logischen Low-Zustand gezwungen
wird. Dieser logisch-niedrige Hub-Logikzustand HLState wird über den
gesteuerten Schalter 230 und den Treiber 220 jedes
Ports an sämtliche
Ports, mit Ausnahme des absendenden Ports, übermittelt.
-
Es
ist zu beachten, dass, obgleich der Detektor 240 an jedem
Port anschließend
einen logisch-niedrigen LState (i) detektier, diese Logikzustände keine
Auswirkung auf den Hub-Logikzustand HLState haben, weil jedes der
Gatter 510 auf den LState des entsprechenden Ports entsensibilisiert
ist, bis das entsprechendes Steuersignal für diesen Port aufgedrückt wird.
Wenn ein zweiter Port anschließend über eine
externe Quelle (110 in 1) auf einen
logischen "Low"-Wert angesteuert
wird, so reflektiert – wie
oben angemerkt – der
externe Zustand EState dieses Ports diesen logischen Low-Zustand, und der
Steuersignalspeicher des Ports wird über das Gatter 410 in 4 gesetzt.
Dadurch wird das entsprechende Gatter 510 auf den Logikwert
LState des Ports sensibilisiert, und das Gatter 520 bleibt
in dem Hub-Logikzustand HLState im logischen "Low", bis
alle angesteuerten Ports in den logischen "High"-Zustand
zurückkehren.
Auf diese Weise entspricht der Hub-Logikzustand HLState einem echten verdrahteten
UND der Logikwerte LState eines jeden der angesteuerten Ports. Ein
entsprechendes Komplement der Logik der 3–5,
womit der Durchschnittsfachmann ohne Weiteres vertraut ist, führt bei
Bedarf zu einer verdrahteten ODER-Ausführungsform.
-
Das
oben Dargelegte veranschaulicht lediglich die Prinzipien der Erfindung.
Es versteht sich deshalb, dass der Fachmann in der Lage sind, verschiedene
Anordnungen zu ersinnen, die, obgleich sie im vorliegenden Text
nicht ausdrücklich
beschrieben oder gezeigt sind, die Prinzipien der Erfindung verkörpern und
somit unter den Geist und den Geltungsbereich der Erfindung fallen.
Zum Beispiel können
die konkrete Logickonfiguration und die konkreten Logikparameter
verändert
werden, ohne von den Arbeitsprinzipien der Erfindung abzuweichen.
Zum Beispiel kann der Detektor 240 jedes Port-Handlers 210 so
konfiguriert sein, dass er anzeigt, ob der Logikzustand LState von
einer externen Vorrichtung stammt oder nicht, anstatt den externen
Zustand direkt anzuzeigen. Gleichermaßen ist die Steuerung 300 als
ein Block veranschaulicht, der von den Port-Handlern getrennt ist, um das Verständnis zu
erleichtern, doch ihre Funktion könnte auch auf die einzelnen
Port-Handler 210 aufgeteilt sein. Das heißt, dass
zum Beispiel jeder Port-Handler 210 die
Steuerlogikzelle 400 und den Signalspeicher 330,
die jedem Port zugeordnet sind, enthalten könnte. Diese und weitere Systemkonfigurations-
und -optimierungsmerkmale werden für den Durchschnittsfachmann vor
dem Hintergrund dieser Offenbarung offensichtlich sein und fallen
unter den Geltungsbereich der folgenden Ansprüche.
-
Legende der Zeichnungen
-
1
-
- 110a, b, c, d: Vorrichtung
- 150: 4-Port-Hub
-
2
-
- Pad: Kontaktinsel
- Detector: Detektor
- Driver: Treiber
- (Alles andere bleibt, weil im Text erklärt)
-
3
-
- 310: Hub-Logiksteuerung
- 330: Steuersignalspeicher
- 350: Verbindungssteuerung
- (Alles andere bleibt, weil im Text erklärt)
-
4 und 5
-
- (bleibt, weil im Text erklärt)