-
Gebiet der Erfindung
-
Die
vorliegende Erfindung bezieht sich allgemein auf ein schnelles Verfahren
und eine Vorrichtung zur Identifizierung von Medienkarten und insbesondere
auf die Erhöhung
der Geschwindigkeit der Identifizierung solcher Medienkarten, die
in Multimediakarten- (MMC) oder universellen seriellen Bus-Anwendungen
(USB) mit nicht flüchtigem
Speicher verwendet werden.
-
Beschreibung des Stands
der Technik
-
Bei
derzeitigen Multimediakartensystemen (MMC-Systemen) kommuniziert
ein Host mit einer oder mehreren mit ihm verbundenen Medienkarten auf
verschiedene Weise, je nach der Anforderung für die Anzahl der benutzten
Datenbits. 1 und 2 zeigen
zwei getrennte Beispiele solcher MMC-Systeme nach dem Stand der
Technik.
-
In 1 ist
ein MMC-System 10 mit einen Host 12 gezeigt, der
mit zwei Medienkarten 14 und 16 verbunden ist.
Während
nur zwei Medienkarten als mit dem Host 12 verbunden gezeigt
sind, kann in gleicher Weise eine beliebige Anzahl von Karten verbunden
sein. Die Medienkarten sind Speichermedienkarten, zum Beispiel digitale
Filmkarten, oder andere Arten von elektronischen Speichermedien.
-
Der
Host 12 weist einen Datenport 18, einen Taktport 20 und
einen Befehlsport 22 auf, die mit einem seriellen Datenein/ausgabeport
(SDIO-Port) 24 der Medienkarte 14, einem Taktport 26 der
Medienkarte 14 bzw. einem Befehlsport 28 der Medienkarte 14 verbunden
sind. Der Host 12 kommuniziert über seinen Datenport 18,
Taktport 20 und Befehlsport 22 auch mit der Medienkarte 16.
Das heißt,
der Datenport 18 ist mit einem SDIO-Port 30 der
Medienkarte 16 verbunden, der Taktport 20 ist
mit dem Taktport 32 der Medienkarte 16 verbunden,
und der Befehlsport 22 ist mit dem Befehlsport 34 der
Medienkarte 16 verbunden.
-
Der
Datenport 18, der SDIO-Port 24 und der SDIO-Port 30 sind
jeweils Ein-Bit-Ports,
das heißt zwischen
dem Host 12 und den Medienkarten 14 und 16 wird
jeweils ein Datenbit übertragen.
Dies wird allgemein als serielle Bitübertragung bezeichnet. Der Host
gibt über
den Befehlsport 22 eine Anweisung an den Befehlsport 28 oder 34 aus,
je nachdem, welche Medienkarte angesprochen wird, und überträgt dann alle
mit der jeweiligen vom Host ausgegebenen Anweisung verbundenen Daten
seriell über
den Datenport 18. Der Taktport 20, in Kommunikation
mit den Ports 26 und 32, wird verwendet, um Daten
und eventuell auch zwischen dem Host und den Medienkarten 14 und 16 ausgetauschte
Befehlsinformationen zu synchronisieren, so dass diese Informationen exakt
zwischen diesen übertragen
werden können.
-
Das
Problem bei dem System 10 ist seine begrenzte Datenübertragungsrate
zwischen den Karten 14 und 16 und dem Host 12 aufgrund
der Übertragungsbeschränkung von
einem Datenbit.
-
In 2 ist
ein Beispiel eines weiteren Systems nach dem Stand der Technik gezeigt.
Ein MMC-System 40 weist einen Host 42 auf, der
mit einer alten Medienkarte 44 und einer neuen Medienkarte 46 über den
Datenport 48 des Hosts, den Taktport 50 und den
Befehlsport 52 mit verschiedenen Ports auf den Karten 44 und 46 verbunden
ist, wie nachstehend ausführlich
beschrieben. Die alte Medienkarte 44 ist den Medienkarten 14 und 16 in 1 ähnlich und
wird deshalb als „alt" bezeichnet, weil das
System nach dem Stand der Technik in 2 eine Verbesserung
gegenüber
dem System nach dem Stand der Technik in 1 darstellt,
die nachstehend beschrieben wird. Die neue Medienkarte 46 wird
als „neu" bezeichnet, weil
sich ihr Betrieb etwas von dem der Karte 44 unterscheidet.
-
Der
Datenport 48 ist mit einem SDIO-Port 54 der Karte 44 sowie
mit einem DIO-Port 60 der Karte 46 verbunden.
In gleicher Weise ist der Taktport 50 mit einem Taktport 56 der
Karte 44 und einem Taktport 62 der Karte 46 verbunden.
Der Befehlsport 52 ist, wie gezeigt, mit einem Befehlsport 58 der
Karte 44 und einem Befehlsport 64 der Karte 46 verbunden.
-
Der
Betrieb zwischen dem Host 42 und der Karte 44 ist
dem Betrieb zwischen dem Host 12 und den Karten 14 und 16 in 1 ähnlich.
In 2 werden die Daten zwischen dem Datenport 48 des
Hosts 42 und dem SDIO-Port 54 der Karte 44 in
serieller Weise übertragen.
-
Die
Kommunikation zwischen dem Host 42 und der Karte 46 unterscheidet
sich jedoch darin, dass der Datenport 60 Daten entweder
in Ein-Bit-Form oder seriell oder in Vier-Bit-Form oder parallel
empfangen und/oder senden kann. Über
den Befehlsport 64 informiert die Medienkarte 46 den Host 42,
dass sie Daten zu je vier Bit oder, falls gewünscht, zu je einem Bit empfangen
kann, und der Host antwortet danach dementsprechend. Faktisch kann
auch die Karte 44 über
eine zwischen den Ports 58 und 52 kommunizierte
eigene Anweisung den Host über
ihre Datenübertragungsfähigkeit
informieren, in diesem Fall ist dies jedoch die Ein-Bit- oder serielle Übertragung
zu jeder Zeit. Das heißt,
die Karte 44 verfügt
nicht über
den Luxus der Umschaltung zwischen Ein-Bit- und Vier-Bit-Datenübertragung, während die
Karte 46 eine solche Möglichkeit
aufweist, und letztere tut dies durch Kommunikation zwischen dem
Host 42 und der Karte 46. Der Taktport 50,
im Zusammenspiel mit den Taktports 56 und 62, dient
zum Synchronisieren der Daten, wie anhand von 1 beschrieben.
-
Im
Betrieb fordert der Host 42 über seinen Befehlsport 52 von
jeder der Karten 44 und 46 die Anzahl der Datenleitungen
an, die sie unterstützen können. Nachdem
dies durch den Host 42 festgestellt ist, sendet er über seinen
Port 52 eine weitere Anweisung, die das Umschalten auf
die neue Anzahl von Datenleitungen angibt.
-
Das
System 40 in 2 wird von vielen Standardgremien
in der Industrie benutzt, so zum Beispiel von der Personal Computer
Memory Card International Association (PCMCIA), wobei der Host ein
Attributregister an einer Offsetadresse von 0D2 (in Hexadezimalschreibweise)
liest, um festzustellen, ob die Karte 8 Bit oder 16 Bit unterstützt. Danach setzt
der Host ein Bit im Konfigurationsregister, um die Medienkarte zum
Beispiel nur auf 8 Bit einzustellen.
-
Das
in 2 gezeigte System nach dem Stand der Technik weist
gegenüber
dem in 1 gezeigten System nach dem Stand der Technik
einen zweifachen Vorteil auf. Erstens wird mit der Vier-Bit-Datenübertragung
offensichtlich eine höhere Datenübertragungsrate
erzielt. Jedem Fachmann sollte klar sein, dass zur Erhöhung der
Leistung eine Parallelverarbeitung nötig ist. Zweitens kann die
Karte 46, auch wenn sie eine neue Medienkarte ist, das heißt Daten
entweder im Ein- oder Vier-Bit-Format übertragen
kann, in die gleiche Art von Kartensteckplatz eingesteckt werden
wie die alte Medienkarte 44, wobei letztere keine Daten
im Vier-Bit-Format übertragen
kann. Darüber
hinaus können
zahlreiche Karten außer
den beiden in 2 gezeigten Medienkarten in
dem System 40 in beliebiger Kombination von alter Medienkarte
und neuer Medienkarte eingesetzt werden.
-
Das
Problem bei dem System nach dem Stand der Technik in 2 besteht
darin, dass der Host zuerst eine Anweisung zur Anforderung der Anzahl
von Datenleitungen, die unterstützt
werden können,
und danach eine weitere Anweisung zur Aufforderung für das Umschalten
auf eine andere Anzahl von Datenleitungen senden muss, falls so
entschieden wird. Dies ist besonders aufwändig, wenn eine große Anzahl
von Medienkarten vorliegt, da dies den Verwaltungs- oder Initialisierungsaufwand
erhöht
und den Betrieb des Systems verlangsamt.
-
In 2(a) ist noch ein weiteres System 41 nach
dem Stand der Technik gezeigt, das einen Host 51 mit einer
Hoststeuerung 53 aufweist, die mit einem Multiplexer (MUX) 65 verbunden
ist. Über
den MUX 65 und die Steuerung 53 ist der Host 51 mit
den Steckplätzen 53, 55 und 57 verbunden,
wobei es sich um eine beliebige Anzahl von Steckplätzen handeln kann.
Diese Steckplätze
dienen zur Aufnahme von Medienkarten für die elektronische Speicherung
von Daten. Die Karten (nicht gezeigt), die in die Steckplätze eingesteckt
werden können,
enthalten ein relatives Kartenadressregister (RCA-Register) zur
Identifizierung jeder Karte gegenüber dem Host. Diese Adressen
sind eindeutig für
jede einzelne Karte und können
durch die Karte oder durch den Host gewählt werden, je nach dem verwendeten
Setup.
-
Die
Datenübertragung
zwischen der Hoststeuerung 53 und den in die Steckplätze 53 bis 57 eingesteckten
Karten kann seriell (ein Bit) oder mit 4 Bit oder 8 Bit (mehrere
Bits) für
jede Karte in den Steckplätzen
erfolgen. Ein Beispiel für
eine Vier-Bit-Datenübertragung
für das
System 41 ist in 2(b) gezeigt.
Bei der Mehr-Bit-Übertragung
wird ein MUX 105 zwischen die Hoststeuerung 53 und
die vier Schalt logikschaltungen 11, 111, 113 und 115 geschaltet,
zu denen vier Datenleitungen DAT 0 bis 3 von der Hoststeuerung 53 über den
MUX 105 führen. Die
Schaltlogikschaltungen sind mit den Steckplätzen 1-n 117 bis 121 verbunden.
In die Steckplätze sind
Medienkarten eingesteckt, wie anhand von 2(a) beschrieben.
-
Die
vom System 41 ausgeführten
Schritte bewirken, dass eine eindeutige relative Adresse in das
RCA-Register jeder Karte geschrieben wird, die in die Steckplätze des
Systems 41 eingesteckt wird. Zuerst wird der Inhalt des
RCA-Registers der in die Steckplätze 117, 119 und 121 eingesteckten
Karten von der Hoststeuerung 53 gelesen. Der Inhalt des Registers
jeder Karte enthält
Informationen dazu, welche Art von Übertragung die Karte unterstützen kann,
das heißt
1 Bit oder seriell oder 4 Bit oder 8 Bit. Nachdem der Inhalt des
RCA-Registers gelesen ist, wird ein Bit in der Karte von der Hoststeuerung 53 gesetzt,
um die Anzahl der von der Karte unterstützten Datenleitungen zu aktivieren.
Bei dem Beispiel in 2(b) wäre dies
eine Vier-Bit-Datenübertragung, weshalb
ein Bit gesetzt wird, um eine Vier-Bit-Übertragung
anzugeben. Daher müssen
zur Vorbereitung für
die Datenübertragung
zwei Ereignisse eintreten. Erstens wird das RCA-Register gelesen,
um sicherzustellen, dass zum Beispiel die Vier-Bit-Datenübertragung
von der Karte unterstützt
wird, und zweitens wird ein Bit in der Karte gesetzt, damit diese
im Vier-Bit-Modus arbeiten kann.
-
Daher
ergibt sich die Notwendigkeit für
ein Hochgeschwindigkeits-MMC-System
und -Verfahren mit einer oder mehreren MMCs zum Umschalten zwischen
verschiedenen Anzahlen von Datenleitungen für jede MMC, die mit einem Host
verbunden ist, so dass ein minimale Anzahl von Anweisungen zwischen
den MMCs und dem Host übertragen
werden muss, während
gleichzeitig das Umschalten zwischen einer beliebigen Anzahl von
Datenleitungen für
so viele MMCs wie nötig
möglich
ist, wodurch die Systemdurchsatzleistung durch Verringerung von Verzögerungen
erhöht
wird.
-
Aus
SANDISK „SD
Card Specification (SDIO)" [Online]
vom 31. Oktober 2001 (2001-10-31 ), SANDISK, INTERNET, XP002291857,
abgerufen aus dem Internet unter der URL http://www.sandisk.com/pdf/oem/SD_SDIO_specsv1.pdf > [am 10. August 2004],
ist bekannt, eine sog. „Secure
Digital Input/Output Card" (sichere
digitale Ein/Ausgabekarte) vorzusehen. Ein Bereich auf der Karte,
als allgemeiner Informationsbereich bezeichnet, wird vom Host gelesen,
um Informationen über
alle Funktionen der Karte zu erhalten.
-
Aspekte
der vorliegenden Erfindung sind in den anliegenden unabhängigen Ansprüchen festgelegt.
-
Kurz
gesagt, eine Ausführungsform
der vorliegenden Erfindung umfasst ein Hochgeschwindigkeitsmultimediakartensystem
zur automatischen Erfassung von Hochgeschwindigkeitskommunikation mit
einem Host und einer oder mehreren Medienkarten, die mit dem Host über eine
oder mehrere Datenleitungen, von denen mindestens eine eine serielle Datenleitung
ist, verbunden sind. Die eine oder die mehreren Medienkarten weisen
jeweils eine zugehörige
eindeutige Kartenidentifikationsnummer (CID) auf. Auf eine erste
Anweisung hin von dem Host zur Anforderung der eindeutigen CID jeder
Karte senden die eine oder die mehreren Medienkarten ihre jeweilige
CID über
die serielle Datenleitung an den Host, und wenn die gesendete CID
mit der vom Host erwarteten übereinstimmt, überträgt der Host
eine zweite Anweisung zum Zuschreiben einer relativen Kartenadresse
(RCA) an die Karte, deren CID die Übereinstimmung aufweist. Die
eine oder die mehreren Medienkarten betreiben einen vorgegebenen
Wert auf allen oder einem Teil der einen oder der mehreren Datenleitungen,
und der Host überprüft automatisch den
vorgegebenen Wert, der den Betrieb mit hohen Geschwindigkeiten durch
die Karten anzeigt, die den vorgegebenen Wert auf den Datenleitungen
betreiben. Der Hast kommuniziert im Hochgeschwindigkeitsmodus mit
den Karten, die den vorgegebenen Wert auf den Datenleitungen betrieben
haben.
-
Die
vorstehenden und weitere Ziele, Merkmale und Vorteile der vorliegenden
Erfindung werden aus der nachstehenden ausführlichen Beschreibung der bevorzugten
Ausführungsformen
ersichtlich, die auf verschiedene Abbildungen in den Zeichnungen Bezug
nimmt.
-
Kurzbeschreibung der Zeichnungen
-
1 zeigt
ein Beispiel für
ein MMC-System 10 nach dem Stand der Technik.
-
2 zeigt
ein weiteres Beispiel für
ein MMC-System 40 nach dem Stand der Technik.
-
2(a) und 2(b) zeigen
noch ein weiteres Beispiel für
ein System 41 nach dem Stand der Technik.
-
3 zeigt
ein MMC-System 70 nach einer Ausführungsform der vorliegenden
Erfindung.
-
4 zeigt
ein weiteres MMC-System 200 nach einer weiteren Ausführungsform
der vorliegenden Erfindung.
-
5 zeigt
ein Ablaufdiagramm 300 zur Beschreibung der von den Systemen 70 und 200 in 4 ausgeführten Schritte.
-
Ausführliche Beschreibung der bevorzugten
Ausführungsformen
-
In 3 ist
ein Hochgeschwindigkeits-MMC-System 70 mit einem Host 72 gezeigt,
der mit einer alten Medienkarte 74 und einer neuen Medienkarte 76 nach
einer Ausführungsform
der vorliegenden Erfindung verbunden ist.
-
Der
Host 72 weist eine Medienadapterschnittstelle 78 mit
einem Taktport 112, einem Befehlsport 114 und
einem Datenport 116 auf. Der Datenport 116 akzeptiert
Signale auf Signalleitungen, die bei einer Ausführungsform der vorliegenden
Erfindung entweder eine Ein-Bit-Datenleitung oder mehrere parallele
(Mehr-Bit-) Daten leitungen zur Ermöglichung einer parallelen Datenübertragung
umfassen. Bei der speziellen Ausführungsform in 3 ist
die Anzahl der Signalleitungen oder Datenleitungen zu und von dem
Port 116 mit vier gezeigt, aber bei anderen Ausführungsformen
kann eine andere Anzahl von Datenleitungen verwendet werden oder
es kann eine Auswahl von mehreren Bits verwendet werden, zum Beispiel
1, 4 oder 8 Bit. Darüber
hinaus kann, auch wenn in 3 zwei Medienkarten 74 und 76 gezeigt
sind, die mit dem Host 72 verbunden sind und mit diesem
kommunizieren, eine beliebige Anzahl von Karten verwendet werden,
ohne vom Umfang der vorliegenden Erfindung abzuweichen.
-
Die
Medienkarte 74 umfasst einen Mikroprozessor 80,
eine Hostschnittstellensteuerlogik 82, eine Steuerungs/Zustandsmaschine 84 und
eine Flash-Array 86. Darüber hinaus weist die Medienkarte 74 einen
Taktport 106, einen Befehlsport 108 und einen
Ein-Bit-Datenport 110 auf. Der Mikroprozessor ist mit der
Hoststeuerlogik 82 verbunden, die mit der Steuerungs/Zustandsmaschine 84 verbunden
ist, die wiederum mit der Flash-Array 86 verbunden ist.
Der Taktport 106 empfängt
ein Taktsignal vom Host 72 zur Synchronisation der ankommenden
Daten. Der Befehlsport 108 wird zum Empfangen von Anweisungen
von und der Datenport 110 zur bitweisen Übertragung
von Daten zwischen dem Host 72 und der Medienkarte 74 verwendet.
Die Medienkarte 74 wird als „alt" bezeichnet, um anzugeben, dass sie
der Medienkarte 44 in 2 entspricht.
-
Die
drei Ports 106 bis 110 sind mit dem Mikroprozessor 80 verbunden,
der die Software ausführt
und damit den Prozessablauf in der Medienkarte 74 und insbesondere
unter den verschiedenen darin enthaltenen Blöcken steuert. Der Mikroprozessor 80 ist
mit der Hoststeuerlogik 82 zum Decodieren der über den
Befehlsport 108 vom Host 72 empfangenen Anweisungen
und zum Senden von Anweisungen von dort verbunden.
-
Die
Hoststeuerlogik 82 ist mit der Steuerungs/Zustandsmaschine 84 verbunden,
die das Speichern und Abrufen von Daten in der Flash-Array 86 steuert.
Die Flash-Array 86 besteht aus Flash-Speicherzellen, die
nicht flüchtig
sind und letztlich für
die Speicherung der vom Datenport 110 empfangenen Daten
verwendet werden. Wie bereits mit Bezug auf 2 ausgeführt, ist
die Datenübertragungsrate
zwischen dem Host 72 und der Medienkarte 74 zum
großen
Teil aufgrund der seriellen Ein-Bit-Datenleitung
zwischen dem Host und der Medienkarte 74 begrenzt.
-
Die
neue Medienkarte 76 umfasst eine Hostschnittstellensteuerlogik 88,
die mit einem Mikroprozessor 90, einem Puffer 92 und
einer Steuerungs/Zustandsmaschine 94 verbunden ist. Der
Puffer 92 und die Steuerungs/Zustandsmaschine 94 sind
mit der Flash-Speicherarray 96 verbunden. Die Medienkarte 76 umfasst
auch vier Transistoren 98, 100, 102 und 104,
die jeweils für
eine andere Datenleitung verwendet werden. Wenn mehr als vier Datenleitungen
verwendet werden, erhöht
sich daher dementsprechend die Anzahl der Transistoren oder umgekehrt.
Jeder der Transistoren 98 bis 104 weist einen
Source-Port, einen Gate-Port und einen Drain-Port auf, wie sie dem Fachmann bekannt
sind. Diese Transistoren sind n-Transistoren, aber es können auch
andere Arten von Transistoren verwendet werden, ohne vom Umfang
und Gedanken der vorliegenden Erfindung abzuweichen.
-
Der
Hostschnittstellensteuerung 88 umfasst einen Taktport 118,
einen Befehlsport 120, einen Steueraktivierungsport 122 und
einen Datenport 124, wobei der Taktport 118 mit
dem Taktport 112 des Hosts 72 verbunden ist. Der
Befehlsport 120 ist mit dem Befehlsport 114 des
Hosts 72 verbunden, und der Datenport 124 ist
mit den Source-Ports der Transistoren 98 bis 104 verbunden.
Die Gates (Gatter) der Transistoren 98 bis 104 sind
mit dem Steueraktivierungsport 122 der Hostschnittstellensteuerlogik 88 verbunden.
Die Drains (Senken) der Transistoren 98 und 102 sind
mit Vcc oder der Entsprechung einer hochpegeligen Gleichspannung
(DC) wie zum Beispiel 5 Volt verbunden, und die Drains der Transistoren 100 und 104 sind
mit Erde oder einem niederpegeligen Spannungspegel von im Wesentlichen
0 Volt verbunden.
-
Die
Sources (Quellen) der Transistoren 98 bis 104 sind
ebenfalls mit dem Datenport 116 des Hosts 72 verbunden.
Bei der Ausführungsform
in 3 sind die Datenports des Hosts 72 und
die Medienkarte 76 so gezeigt, dass sie vier Datenleitungen, das
heißt
vier Bit, empfangen. Eine andere Anzahl von Bits oder Datenleitungen
kann jedoch verwendet werden, wie vorstehend erwähnt. Die Datenleitungen, die
die Datenports 116 und 124 verbinden, sind auch
mit Pull-up-Widerständen 130 verbunden.
Das heißt,
jede der Datenleitungen D0 132, D1 134, D2 136 und
D3 140 ist jeweils mit einem bestimmten Widerstand verbunden,
dessen andere Seite mit Vcc oder einer hochpegeligen Spannung verbunden
ist. Für
den Fachmann ist ersichtlich, dass die Datenleitungen D0, D1, D2
und D3 132 bis 140 jeweils mit Pull-up- oder Pull-down-Widerständen verbunden sein
können.
Im Falle von Pull-up-Widerständen würde der
Widerstand auf einer Seite mit der Datenleitung und auf der anderen
Seite mit Vcc verbunden, während
im Falle eine Pull-down-Widerstands der Widerstand auf der einen
Seite mit einer Datenleitung und auf der anderen Seite mit Erde
verbunden wäre. Im
Falle eines Pull-up-Widerstands, wenn die betreffende Datenleitung,
die auf einen hohen Pegel gezogen wird, nicht mit einem Signal betrieben
wird, hätte die
Datenleitung einen Logikzustand von '1',
und im Falle eines Pull-down-Widerstands, wenn die betreffende Datenleitung,
die auf einen niedrigen Pegel gezogen wird, nicht mit einem Signal
betrieben wird, hätte
die Datenleitung einen Logikzustand von '0'.
-
Die
Datenleitungen werden hochgezogen oder auf einen bekannten Spannungspegel
eingestellt, wenn sie nicht betrieben oder vom Steueraktivierungsport 122 eingestellt
werden. Der Steueraktivierungsport 122 umfasst vier Leitungen,
die jeweils mit einem der Gates der Transistoren 98 bis 104 verbunden
sind.
-
Ähnlich wie
bei der Karte 74 ist die Hostschnittstellensteuerlogik 88 der
Karte 76 mit der Steuerungs/Zustandsmaschine 94 verbunden,
die das Speichern und Abrufen von Daten in der Flash-Array 86 steuert.
Die Hoststeuerlogik 88 empfängt Anweisungen vom Host 72 unter
Verwendung der Ports 118, 120 und 124,
um mit den Ports 112, 114 und 116 des
Hosts 72 zu kommunizieren. Die Flash-Array 96 besteht
aus Flash-Speicherzellen, die nicht flüchtig sind und letztlich für die Speicherung der
vom Datenport 124 empfangenen Daten verwendet werden. Im
Gegensatz zu der Karte 74 ist die Datenübertragung zwischen dem Host 72 und
der Karte 76 nicht auf eine serielle Ein-Bit-Übertragung
beschränkt,
sondern der Host 72 und die Medienkarte 76 übertragen
Daten zwischen ihnen zu jeweils vier Bit parallel, wie nachstehend
erläutert
wird. Bei Verwendung einer anderen Anzahl von Datenleitungen wäre die Datenübertragung
zwischen dem Host und der Karte dementsprechend anders.
-
Der
Mikroprozessor 90 führt
die Software aus und steuert damit den Prozessablauf in der Medienkarte 76 und
insbesondere unter den verschiedenen darin enthaltenen Blöcken. Der
Mikroprozessor 90 ist mit der Hoststeuerlogik 88 zum
Decodieren der über
den Befehlsport 120 vom Host 72 empfangenen Anweisungen
und zum Senden von Anweisungen von dort verbunden.
-
Die
Hoststeuerlogik 88 ist mit der Steuerungs/Zustandsmaschine 94 verbunden,
die das Speichern und Abrufen von Daten in der Flash-Array 96 steuert.
Die Flash-Array 96 besteht aus Flash-Speicherzellen, die
nicht flüchtig
sind und letztlich für
die Speicherung der vom Puffer 92 empfangenen Daten verwendet
werden. Der Puffer 92 empfängt vom Host 72 gesendete
Daten über
den Datenport 124 und speichert diese für die Übertragung und die permanente
Speicherung in der Array 96.
-
Im
Betrieb nimmt der Host nach Initialisierung des Systems 70 an,
dass alle damit verbundenen Medienkarten, zum Beispiel die Karten 74 und 76,
Daten unter Verwendung einer Datenleitung oder seriell übertragen.
Praktisch stellen sich alle mit dem Host verbundenen Karten selbst
auf einen seriellen Ein-Bit-Übertragungsmodus
ein. Während
der Initialisierung sendet der Host 72 jedoch eine anwendungsspezifische
Anweisung an jede der Karten 74 und 76, um anzuzeigen,
dass der Host 72 den Hochgeschwindigkeitsmodus mit vier
oder acht oder noch mehr Datenleitungen unterstützt. Wenn die Karten 74 und 76 eine
solche Anweisung erkennen, schalten sie jeweils automatisch auf
den Hochgeschwindigkeitsmodus und betreiben die Datenleitungen mit
einem vorgegebenen Wert.
-
Das
heißt,
bei der Ausführungsform
in 3, wenn die Karte 76 eine anwendungsspezifische
Anweisung vom Host 72 auf ihrem Port 120 erfasst,
betreibt sie automatisch die vier Datenleitungen, die den Datenport 124 mit
dem Datenport 116 verbinden, zu einem vorgegebenen Wert,
in diesem Beispiel 5 in Hexadezimalschreibweise. Hierzu setzt sie
die Steueraktivierungsportleitungen, die vom Port 122 kommen
und zu den Gates der Transistoren 98 bis 104 gehen,
auf „ein" oder einen hohen
Spannungspegel, um die Transistoren 98 bis 104 einzuschalten.
Dadurch betreibt der Transistor 98 die Datenleitung D0 132 (dies
ist das niedrigstwertige Bit der vier Datenleitungen 132 bis 140)
mit einem hohen Spannungspegel oder Vcc, weil die Senke des Transistors 98 mit Vcc
verbunden ist, und weil der Transistor jetzt eingeschaltet ist,
ist auch die Datenleitung 132 in einem Vcc-Zustand oder '1' in Binärschreibweise. Wenn der Steueraktivierungsport 122 den
Transistor 100 durch Betreiben des Gates des Transistors 100 mit
einem hohen Spannungspegel einschaltet, betreibt der Transistor 100 die
Datenleitung D1 134 mit einem niedrigen Spannungspegel
oder Erde oder im Wesentlichen 0 Volt, weil die Senke des Transistors 100 mit
Erde verbunden ist. Wird das Gate des Transistors 102 durch
den Port 122 auf einen hohen Spannungspegel gesetzt, wird
der Transistor 102 eingeschaltet, und die Datenleitung
D2 136 befindet sich auf einem hohen Spannungspegel oder
Vcc. Wird das Gate des Transistors 104 auf einen hohen
Spannungspegel gesetzt, wird der Transistor 104 eingeschaltet,
und die Datenleitung D3 140, das höchstwertige Bit der Datenleitungen 132 bis 140,
wird aus demselben Grund wie vorstehend für den Transistor 100 ausgeführt zu Erde
betrieben. Damit haben die Datenleitungen 132 bis 140 den
Binärzustand '0101', was dem Wert '5' in Hexadezimalschreibweise entspricht.
Dieser Wert, der bei weiteren Ausführungsformen der vorliegenden
Erfindung auch einen anderen Wert als '5' haben
kann, zeigt dem Host 72 an, dass die Karte 76 mit
jeweils vier Bit kommunizieren kann, und von da an erfolgt alle
Kommunikation zwischen dem Host und der Karte 76 mit 4
Bit parallel. Während
dieser Kommunikation werden die Datenleitungen 132 bis 140,
wie vorstehend beschrieben, mit den Widerständen 130 terminiert
oder auf einen hohen Pegel gezogen. Der Grund für die Einbeziehung der Widerstände 130 ist
der, dass mehr als eine Medienkarte die Datenleitungen 132 bis 140 betreiben
oder steuern könnten.
-
Wenn
die Karte 76 zum Beispiel eine Acht-Bit-Datenleitung unterstützt und
der Host gleichermaßen
die Acht-Bit-Datenübertragung
unterstützt,
würde die
Karte 76 die acht Datenleitungen mit einem Wert von '55' in Hexadezimalschreibweise
betreiben, und der Host würde
von da an mit der Karte 76 unter Verwendung der Acht-Bit-Datenübertragung kommunizieren.
Unterstützt
die Karte 76 aber nur die Vier-Bit-Datenübertragung und könnte der
Host 72 entweder die Vier- oder Acht-Bit-Datenübertragung unterstützen, würde die
Karte nur im Vier-Bit-Modus antworten, und der Host würde durch
Auswertung des Werts auf den Datenleitungen 132 bis 140 mit der
Karte 76 unter Verwendung der Vier-Bit-Datenübertragung
kommunizieren.
-
Weil
die Karte 74 nicht in der Lage ist, eine Datenübertragung
mit mehr als einem Bit zu unterstützen, weist sie die vom Host
gesendete anwendungsspezifische Anweisung zurück und kommuniziert weiter
im Modus mit einer Datenleitung. Der Host 72 erkennt dies,
da er keinen vorgegebenen Hexadezimalwert wie zum Beispiel '5' oder '55' auf
den Datenleitungen von der Karte 74 erfasst. Der Host 72 sendet
eine anwendungsspezifische Anweisung, zum Beispiel eine Herstelleranweisung,
an jede Medienkarte, die mit ihm kommuniziert, und daraufhin betreiben
die Medienkarten einzeln die Datenleitungen zu einem vorgegebenen
Zustand (wie zum Beispiel dem Wert '5')
oder aktivieren den Bus in dieser Weise. Während dieser Zeit prüft der Host 72 den Bus
oder die Datenleitungen und stellt die Anzahl der Datenleitungen
fest, die jede Medienkarte unterstützen kann. Von da an kommuniziert
der Host entsprechend mit jeder Medienkarte.
-
Bei
einer alternativen Ausführungsform
der vorliegenden Erfindung werden unterschiedliche anwendungsspezifische
Anweisungen für
die unterschiedliche Anzahl benutzter Datenleitungen verwendet.
Eine vorgegebene Anweisung 'AcmdX0' wird zum Beispiel
vom Host 72 an die Karten 74 und 76 gesendet,
um eine parallele Vier-Bit-Datenübertragung
anzuzeigen. Wird diese Anweisung von irgendeiner der Karten zurückgewiesen,
kommuniziert der Host weiter mit der Karte, die diese Anweisung zurückgewiesen
hat, im Standardzustand, der die serielle Ein-Bit-Übertragung ist. Hat jedoch
eine der Karten die Anweisung 'AcmdX0' akzeptiert, sendet der
Host 72 eine weitere Anweisung wie zum Beispiel 'AcmdX1', die eine parallele
Acht-Bit-Datenübertragung
anzeigt, um zu sehen, ob die Karte in der Lage ist, die Kommunikation
in einem Acht-Bit-Datenübertragungsmodus
zu führen.
Akzeptiert die Karte die Anweisung 'AcmdX1', starten der Host 72 und die Karte
automatisch die Kommunikation im Acht-Bit-Modus.
-
Wenn
bei der Ausführungsform
in 3 eine Anweisung 'AcmdX0' vom Host 72 an die Karte 74 gesendet
wird, wird sie zurückgewiesen,
wodurch die Kommunikation wieder mit der seriellen Ein-Bit-Übertragung
aufgenommen wird. Wird dieselbe Anweisung jedoch an die Karte 76 gesendet,
wird die Anweisung von der Karte 76 akzeptiert, und der
Host sendet danach eine Anweisung 'AcmdX1' an die Karte 76, die dann
zurückgewiesen
wird, wodurch der Host weiß,
dass er mit der Karte 76 im Vier-Bit-Modus kommunizieren
kann. Der Host 72 erkennt, dass die Anweisung zurückgewiesen
wird, indem er den Status der Datenleitungen oder des Busses wie
vorstehend beschrieben überprüft.
-
Bei
noch einer weiteren Ausführungsform der
vorliegenden Erfindung sendet der Host eine Anweisung zur Anzeige,
dass er entweder vier Bit oder acht Bit unterstützen kann, an jede der Karten 74 und 76.
Da die Datenleitungen 132 bis 140 normalerweise
zu einem hochpegeligen Zustand oder Vcc betrieben werden, wenn sie
nicht von einer Medienkarte angesteuert werden, betreibt jede Karte
in Antwort auf die Anweisung vom Host die Anzahl der Datenleitungen,
die sie unterstützen
kann, wodurch der Host die Anzahl der von jeder Medienkarte unterstützten Leitungen
weiß und
von da an mit jeder Karte entsprechend kommuniziert. Empfängt die
Karte 76 zum Beispiel die Anweisung vom Host, betreibt
sie alle vier Leitungen, und der Host weiß dann, dass er mit der Karte 76 unter
Verwendung von vier parallelen Datenleitungen kommunizieren kann,
während
die Karte 74, wenn sie die Anweisung vom Host erhält, nur
eine Datenleitung betreibt, so dass der Host mit der Karte 74 seriell
oder mit nur einem Datenbit kommuniziert.
-
Daher
erfolgt bei den Ausführungsformen eine
automatische Erfassung durch den Host und die Medienkarte für die Hochgeschwindigkeitskommunikation
zwischen ihnen.
-
In 4 ist
ein weiteres Hochgeschwindigkeits-MMC-System 200 nach einer
weiteren Ausführungsform
der vorliegenden Erfindung gezeigt. Das System 200 umfasst
viele der Strukturen und Verbindungen aus 3, wobei
es Änderungen
am Host und der neuen Medienkarte gibt. Praktisch sind alle Strukturen
und Verbindungen mit denselben Bezugszeichen wie in 3 identisch.
Der Host 72' und
die neue Medienkarte 76' sind
jedoch modifiziert, wie nachstehend ausführlich beschrieben wird. Alle Punkte,
die nachstehend bezogen auf 4 nicht
erwähnt
sind, sind identisch mit denen in Bezug auf 3.
-
In 4 umfasst
der Host 72' den
Datenport 116, wobei die Leitung D1 des Datenports 116 mit
einem Transistor 202 verbunden ist, dessen Source-Port
mit Vcc verbunden ist und dessen Gate-Port mit einem Aktivierungssignal
verbunden ist.
-
Die
Leitung D2 des Datenports 116 ist mit einem Pull-down-Widerstand 204 verbunden,
dessen eines Ende mit Erde verbunden ist und dessen anderes Ende
mit der Leitung D2 und auch mit einem Aktivierungssignal verbunden
ist.
-
In 3 umfasst
die neue Medienkarte 76' weiter
den Datenport 124, ist aber dahingehend modifiziert, dass
D0 nicht mehr mit einem Transistor verbunden ist, sondern stattdessen
von Port 124 mit D0 132' verbunden ist. D1 134' ist mit einem
Widerstand 208 verbunden, der auf einen niedrigen Pegel
oder Null- oder Erdspannungspegel auf der einen Seite gezogen wird,
und mit D1 134' auf
der anderen Seite und wird auch durch den Port 122 gesteuert.
D2 136 ist mit dem Transistor 102 in derselben
Weise verbunden, wie in 3 gezeigt und beschrieben, und D3 140' ist mit einem
Widerstand 206 in 4 verbunden,
im Gegensatz zu einem Transistor, wie in 3 gezeigt.
Der Widerstand 206 ist ein Pull-down-Widerstand, der mit
D3 140' auf
der einen Seite und im Wesentlichen einem Null- oder Erdspannungspegel
auf der anderen Seite verbunden ist.
-
Im
Betrieb sieht die Ausführungsform
in 4 die automatische Erfassung der Hochgeschwindigkeitskommunikation
durch den Host 72' und
die Medienkarte 76' vor.
Der Host 72' gibt über seinen
Port 114 eine Anweisung an alle mit ihm verbundenen Karten
aus, wobei dies bei dem Beispiel in 4 die Karten 74 und 76' sind, um die
eindeutige Kartenidentifikationsnummer (CID) jeder Karte anzufordern.
Alle nicht identifizierten Karten senden gleichzeitig seriell ihre
CID auf ihrer jeweiligen Datenleitung D0, im Falle der Karte 74 ist
dies D0 110, und im Falle der Karte 76' ist dies D0 132', während sie ihren
ausgehenden Bitstrom bitweise überwachen. Das
heißt,
die Karten überwachen
gleichzeitig auch die Leitung D0. Die Leitung D0 ist eine offene
Senke, so dass die Leitung D0, wenn sie nicht betrieben wird, auf
einem hohen Pegel oder dem Wert '1' bleibt, aber wenn
ein anderes Gerät
die Leitung D0 betreibt, kann sie einen niedrigen Pegel oder den
Wert '0' annehmen, abhängig von
dem Gerät,
das sie betreibt. Im letzteren Fall würde sich die Leitung D0 bis
zur nächsten
Phase selbst aus dem Prozess herausnehmen.
-
Jene
Karten, deren ausgehende CIDs in einer der Bitperioden nicht mit
entsprechenden Bits auf den Befehlsports 108 und 120 übereinstimmen,
nehmen sich selbst von der Datenbusleitung (die Datenleitungen D0
bis D3) und gehen in einen Bereit-Zustand. In diesem Fall ist die
Karte, bei der der Inhalt auf ihrer Leitung D0 mit der Anweisungsleitung übereinstimmt,
bereit, in einen Identifikationszustand zu gehen, in dem der Host 72' eine Anweisung
CMD3 (oder set_relative_addr) ausgibt, um der Karte eine relative
Kartenadresse (RCA) zuzuschreiben, indem die Daten über den
Port D0 seriell an die Karte gesendet werden.
-
Zu
diesem Zeitpunkt sind einige Leitungen D1 und D2 nicht aktiv. Der
Host, der die Hochgeschwindigkeitskommunikation unterstützt, betreibt seine
Leitung D1 mit einem hohen Pegel, indem er den Transistor 202 und
den Pull-down-Widerstand 204 aktiviert.
-
Während der
Anweisung CMD3 aktiviert die Medienkarte, die den Hochgeschwindigkeitsmodus unterstützt, auch
den Transistor 102 auf der Leitung D1 und den Pull-down-Widerstand
auf der Leitung D1 134. Gleichzeitig überwachen der Host 72' und die Medienkarte 76' auch die Datenleitungen
D1 und D2 auf den Zustand, in dem diese sind. Das heißt, wenn die
Leitungen D1 und D2 beide hoch sind, erkennt der Host 72' automatisch;
dass die Karte, zum Beispiel die Karte 76', durch Mehr-Bit-Übertragung anstelle der seriellen
Datenübertragung
höhere
Geschwindigkeiten unterstützen
oder mit höheren
Geschwindigkeiten arbeiten kann. Im letzteren Fall ändert der
Host 72' den
Modus auf hohe Geschwindigkeit. Die Karte 76' erkennt oder erfasst dann einen hohen
Wert oder Zustand auf den Datenleitungen D1 134' bzw. D2 136.
Daher schaltet die Karte 76' in
den Hochgeschwindigkeitsmodus. Wenn jedoch festgestellt wird, dass
der Wert auf einer der Leitungen D1 oder D2 nicht im hohen Zustand
ist, arbeiten die Karte 76' und
der Host 72' weiter
im Ein-Bit- oder
seriellen Modus.
-
Bei
Geräten
oder Medienkarten wie zum Beispiel der Karte 76', die mehr als
vier Bit unterstützen, zum
Beispiel acht Bit, werden die oberen Bits auf der Datenleitung,
das heißt
die vier höchstwertigen
Bits, decodiert, um einen Betrieb mit einem Bit, vier Bit, acht
Bit oder noch mehr Bits auszuwählen.
Für höhere Datenraten
ermöglicht
dieses Verfahren es außerdem
dem Host und der Medienkarte, automatisch den richtigen Modus zu
wählen.
Natürlich
bewirkt die parallele Verwendung einer höheren Anzahl von Datenleitungen
auch eine schnellere Datenübertragung und
damit eine höhere
Systemleistung.
-
Zu
beachten ist, dass die Ausführungsformen
in 3 und 4 und die vorliegende Erfindung
allgemein es dem Host und den damit verbundenen Medienkarten ermöglichen,
einen beliebigen Betriebsmodus auszuwählen und/oder in einem solchen
zu arbeiten, zum Beispiel mit einer, vier, acht oder einer beliebigen
anderen Anzahl von Datenleitungen oder Bits zwischen dem Host und
den Medienkarten. Natürlich
gilt, je höher
die Anzahl der benutzten parallelen Datenleitungen, desto schneller der
Betrieb des Systems insgesamt. Darüber hinaus kann die vorliegende
Erfindung in einer Vielzahl von Anwendungen eingesetzt werden, zum
Beispiel als MMC-Schnittstellen, wie vorstehend beschrieben, oder
als USB-Knoten oder jede andere Art von Anwendung, die für den Fachmann
denkbar ist.
-
In 5 ist
ein Ablaufdiagramm 300 zur Beschreibung der von den Systemen 70 und 200 in 3 bzw. 4 ausgeführten Verarbeitungsschritte
gezeigt. Im Standardzustand sind alle Medienkarten im Bereit-Zustand.
In Schritt 302 wird eine Leseoperation gestartet. Danach
gibt der Host in Schritt 304 eine Anweisung „CMD2" an alle Medienkarten aus,
die mit ihm kommunizieren. Sodann betreiben in Schritt 306 alle
Medienkarten die Leitung D0 zum Host mit CID-Informationen. Als
Nächstes überwachen
in Schritt 308 alle Medienkarten die Leitung D0 und vergleichen
die CID auf der Leitung D0 mit ihrer eigenen CID. Sodann wird in
Schritt 310 bestimmt, ob eine Übereinstimmung zwischen der
CID, die auf der Leitung D0 erscheint, und der eigenen CID der Medienkarten
vorliegt oder nicht.
-
Wenn
in Schritt 310 festgestellt wird, dass eine Übereinstimmung
vorliegt, wird der Prozess mit Schritt 314 fortgesetzt;
zu diesem Zeitpunkt geht der Prozess in eine Identifikationsphase.
Wenn in Schritt 310 festgestellt wird, dass keine Übereinstimmung vorliegt,
fährt der
Prozess mit Schritt 312 fort, wo die Leitung D0 sofort
freigeschaltet (nicht mehr länger betrieben)
wird.
-
Nach
Schritt 314 gibt der Host in Schritt 316 eine
Anweisung „CMD3" oder eine Anweisung 'set_relative_address' aus. Danach wird
in Schritt 318 bestimmt, ob eine der Medienkarten, die
mit dem Host kommunizieren, eine Hochgeschwindigkeitskarte ist oder
nicht. Ist in Schritt 318 mindestens eine Medienkarte eine
Hochgeschwindigkeitskarte, aktiviert die betreffende Hochgeschwindigkeitsmedienkarte
danach den Pull-down-Widerstand auf der Leitung D1 und betreibt
die Leitung D2 in Schritt 320 auf einen hohen Pegel. Wenn
in Schritt 322 auch der Host mit hoher Geschwindigkeit
arbeitet, betreibt der Host danach die Leitung D1 auf einen hohen
Pegel und aktiviert den Pull-down-Widerstand auf der Leitung D2.
Als Nächstes
wird in Schritt 324 bestimmt, ob der Wert auf den Leitungen
D1 und D2 ein vorgegebener Wert wie zum Beispiel '11' ist oder beide einen
hohen Pegel haben oder nicht. Wenn ja, schalten in Schritt 326 der
Host und die Hochgeschwindigkeitsmedienkarte auf einen Vier-Bit-Modus
und arbeiten ab dann entsprechend. Wird jedoch in Schritt 324 festgestellt,
dass der Wert auf diesen Leitungen D1 und D2 nicht '11' ist, fährt der
Prozess mit Schritt 328 fort, wo die Medienkarte, für die in
Schritt 318 festgestellt wurde, dass sie eine Hochgeschwindigkeitskarte
ist, und der Host weiter im Ein-Bit-Modus arbeiten. Es ist zu beachten,
dass der Host und die Medienkarten in Schritt 302 oder
anfangs im Ein-Bit-Modus arbeiten.
-
Wenn
in Schritt 318 keine Hochgeschwindigkeitsmedienkarten vorhanden
sind, fährt
der Prozess mit Schritt 330 fort, wo bestimmt wird, ob
der Host ein Hochgeschwindigkeitshost ist oder nicht; wenn ja, betreibt
der Host in Schritt 332 die Leitung D1 auf einen hohen
Pegel, aktiviert den Pull-down-Widerstand auf der Leitung D2 und
prüft den
Wert auf den Leitungen D1 und D2. Dieser Wert ist nicht '11', weshalb in Schritt 334 die
Karte und der Host weiter im Ein-Bit-Modus arbeiten. Wenn in Schritt 330 festgestellt
wird, dass der Host nicht mit hoher Geschwindigkeit arbeitet, läuft der
Prozess weiter zu Schritt 336, wobei die Medienkarte(n)
und der Host weiter im Ein-Bit-Modus arbeiten.
-
Obwohl
die vorliegende Erfindung anhand von bestimmten Ausführungsformen
beschrieben worden ist, ist zu erwarten, dass für den Fachmann ohne Zweifel Änderungen
und Modifikationen daran ersichtlich werden. Daher sollen die nachstehenden Ansprüche so interpretiert
werden, dass sie alle solchen Änderungen
und Modifikationen abdecken, soweit diese in den Umfang der Erfindung
fallen.