-
Diese
Erfindung betrifft im allgemeinen die Verwendung und den Aufbau
von wechselbaren elektronischen Schaltungskarten und insbesondere die
Verbindungen zwischen Kartenmodulen auf entweder einer einzelnen
Karte oder individuellen Karten.
-
Verschiedene
kommerziell erhältliche
nichtflüchtige
Speicherkarten, die populär
werden, sind extrem klein und haben unterschiedliche mechanische
und/oder elektrische Interfaces. Beispiele sind die MultiMediaCard
("MMC") und Secure Digital ("SD") Speicherkarten,
die von SanDisk Corporation of Sunnyvale, Kalifornien, Anmelderin
der vorliegenden Erfindung, erhältlich
sind. Es gibt andere Karten, die den Standards der Internationalen
Organisation für
Normung ("ISO") und der Internationalen
elektrotechnischen Kommission ("IEC") entsprechen. Ein weit
verbreitetes Beispiel hierfür
ist der als ISO/IEC 7816 bekannte Standard.
-
Die
physikalischen und elektrischen Spezifikationen für die MMC
sind in den "The
MultiMediaCard System Specification" aufgeführt, die von Zeit zu Zeit von
der MultiMediaCard Association ("MMCA") of Cupertino, Kalifornien,
aktualisiert und veröffentlicht
werden. MMC Produkte, die unterschiedliche Speicherkapazitäten von
bis zu 128 Megabyte in einer einzelnen Karte haben, sind derzeit
von SanDisk Corporation erhältlich.
Diese Produkte sind in einem "MultiMediaCard
Product Manual," Revision
2, datiert April 2000, beschrieben, veröffentlicht von SanDisk Corporation.
Bestimmte Aspekte des elektrischen Betriebs der MMC Produkte werden
auch in der gleichzeitig anhängigen
US-Patentanmeldung Nummer 09/135,649 von
Thomas N. Toombs und Micky Holtzman, nun
US-Patent Nummer 6,279,114 und
09/186,064 , beide am
04.11.1998 angemeldet und
auf SanDisk Corporation übertragen,
beschrieben. Der physikalische Kartenaufbau und ein Verfahren zu
dessen Herstellung werden in
US-Patent Nummer
6,040,622 , übertragen
auf SanDisk Corporation, beschrieben.
-
Die
neuere SD Karte ist ähnlich
der MMC Karte, die abgesehen von einer größeren Dicke, die einen zusätzlichen
Speicherchip aufnimmt, hat die selbe Größe. Ein Hauptunterschied zwischen
diesen besteht darin, dass die SD Karte zusätzliche Datenanschlüsse hat,
um schnelleren Datentransfer zwischen der Karte und einem Host zu
ermöglichen.
Die anderen Anschlüsse
der SD Karte sind dieselben wie die der MMC Karte, damit Sockel,
die zum Aufnehmen der SD Karte ausgelegt sind, auch die MMC Karte
aufnehmen. Das elektrische und funktionale Interface mit der SD
Karte ist ferner derart hergestellt, dass die zum Aufnehmen der
SD Karte entworfenen Sockel auch hergestellt werden können, um
die MMC Karten aufzunehmen, wie in der am 21.02. 2002 veröffentlichten
PCT-Veröffentlichung
02/15020 von Yoram Cedar, Micky Holtzman und Yosi Pinto
beschrieben wird. Bestimmte Aspekte der SD Karte werden in
US-Patentanmeldung Nummer 02/15020 von
Yoram Cedar, Micky Holtzman und Yosi Pinto, veröffentlicht 21.02.2002, angemeldet
17.08.2000, nun Patent Nummer 6,820,148, beschrieben. (Die Spezifikationen
der SD Karte stehen Mitgliedsfirmen der SD Association (SDA) zur
Verfügung)
-
Gemäß dem ISO/IEC
7816 Standard hergestellte Karten haben eine andere Form, Oberflächenanschlüsse in unterschiedlichen
Positionen und ein anderes elektrisches Interface als die MMC und
SD Karten. Der ISO/IEC 7816 Standard hat den allgemeinen Titel "Identifcation cards-Integrated
Circuit(s) Cards with Contacts" und
besteht aus Teilen 1–10, die
unterschiedliche Jahreszahlen von 1994 bis 2004 tragen. Kopien dieses
Standards sind von der ISO/IEC in Genf, Schweiz, erhältlich.
ISO/IEC 7816 Karten sind insbesondere bei Anwendungen nützlich, bei
denen Daten in einer sicheren Art und Weise gespeichert werden müssen, die
es extrem schwierig oder unmöglich
macht, dass die Daten unbefugt gelesen werden. Die kleinen ISO/IEC
7816 Karten werden neben anderen Anwendungen allgemein in Mobiltelefonen
verwendet.
-
In
letzter Zeit wurden Karten beschrieben, die es ermöglichen,
dass mehrere Module, die unterschiedliche Funktionalitäten haben,
am Host angeschlossen werden können.
Diese enthalten eine einzelne Karte, die mehrere Module und Karten
hat, wobei die Module über
verschiedenen Karten verteilt sind, aber wobei eine erste Karte
direkt am Host befestigt ist und die anderen Karten eher mit der
ersten Karte als direkt mit dem Host verbunden werden, was zum Beispiel
in Dokument
WO-A-0219266 beschrieben
wird. Zum Beispiel könnten
die Module ein Speichermodul und ein Eingabe-Ausgabe Modul enthalten,
wobei sich beide Module in einer einzelnen, kombinierten Karte befinden
oder wobei eine Speicherkarte dazu ausgelegt ist, am Host an einem
Ende befestigt zu sein und an eine Eingabe-Ausgabe Karte am anderen
Ende befestigt zu sein. Derartige Multi-Modul Karten müssen derart gestaltet sein,
dass diese mit dem Host in einer schnellen, effizienten und komfortablen
Art und Weise arbeiten.
-
Gemäß der vorliegenden
Erfindung enthält eine
elektronische Schaltungskarte, die mit einem Hostsystem verbindbar
und davon trennbar ist, ein erstes Modul, das einen ersten Controller
enthält,
ein zweites Modul, das einen zweiten Controller enthält, eine
Busstruktur, die sowohl mit dem ersten Controller als auch dem zweiten
Controller parallel geschaltet ist, wobei Daten und Kommandos zwischen
dem Host und dem ersten und zweiten Modul ausgetauscht werden können, wenn
die Karte mit dem Host verbunden ist, und eine oder mehrere Kontrollleitungen,
die zwischen dem ersten Controller und dem zweiten Controller verbunden
sind, um Signale auszutauschen, wobei die zwei Module unabhängig mit dem
Host kommunizieren können,
wobei diese für den
Host als eine einzelne Einheit wirken. Ein elektronisches Schaltungskarten-System
gemäß der Erfindung
umfasst eine erste Karte, die mit einem Host verbindbar ist, wobei
die erste Karte einen ersten Controller enthält, eine zweite Karte, die
mit der ersten Karte verbindbar und davon trennbar ist, wobei die
zweite Karte einen Controller enthält, eine Busstruktur, die sowohl
mit dem ersten Controller als auch mit dem zweiten Controller parallel
geschaltet ist, wenn die erste und zweite Karte verbunden sind, wobei
Daten und Kommandos zwischen dem Host und dem ersten und zweiten
Controller ausgetauscht werden, wenn die Karten verbunden sind und
die erste Karte mit dem Host verbunden ist, und eine oder mehrere
Kontrollleitungen, die zwischen dem ersten Controller und dem zweiten
Controller verbunden sind, um Signale auszutauschen, wenn die erste
und zweite Karte verbunden sind, wobei die zwei Karten unabhängig mit
dem Host kommunizieren können, wobei
diese für
den Host als eine einzelne Karte wirken. Die Erfindung bezieht sich
auch auf eine erste Schaltungskarte, die mit einem Hostsystem verbindbar
und davon trennbar ist und zur Verwendung mit einer zweiten Karte,
wobei die erste Karte ein erstes Modul umfasst, das einen ersten
Controller enthält, eine
Verbindung zum Anschließen
einer zweiten elektronischen Schaltungskarte, wobei die zweite Karte
ein zweites Modul aufweist, das einen zweiten Controller enthält, eine
Busstruktur, die sowohl mit dem ersten Controller als auch mit der
Verbindung zum Parallelschalten des zweiten Controllers verbunden
ist, wobei Daten und Kommandos zwischen dem Host und dem ersten
und zweiten Modul ausgetauscht werden, wenn die erste Karte mit
dem Host und der zweiten Karte verbunden ist, und eine oder mehrere
Kontrollleitungen zwischen dem ersten Controller und der Verbindung
zum Verbinden des zweiten Controllers verbunden sind, um Signale
auszutauschen, wobei die zwei Module unabhängig mit dem Host kommunizieren
können,
wobei diese für den
Host als eine einzelne Einheit wirken.
-
In
einem ersten Satz von Ausgestaltungen gemäß der Erfindung befinden sich
das erste und zweite Modul auf einer einzelnen Karte, während in einem
zweiten Satz von Ausgestaltungen die Module über mehrere Karten verteilt
sind, wobei eine erste Karte am Host befestigt ist und andere Karten
eher an der ersten Karte befestigt sind als direkt am Host. In beiden
dieser Fälle
sieht der Host die mehrfachen Module als eine einzelne Karte, die
ein einzelnes Modul hat. In einem weiteren Aspekt der vorliegenden Erfindung
ist die Karte (oder Karten) in der Lage, mit dem Host mit mehr als
einem Protokoll zu kommunizieren.
-
Eine
besondere Ausgestaltung der Erfindung wird in Form eines SD-Typs
einer trennbaren elektrischen Schaltungskarte beschrieben, die sowohl
ein Speichermodul mit einem nichtflüchtigen Massenspeicher als
auch ein separates Eingabe-Ausgabe Modul aufweist. Jedes der Module
hat seinen eigenen Controller, wobei jeder parallel mit dem Hauptkartenbus
(dem SD-Bus) verbunden ist, mit dem der Controller Daten und Kommandos
mit dem Host austauschen kann. Typischerweise wird jedes der Module
einen unterschiedlichen Satz von gültigen Kommandos haben. Obwohl
diese einige gemeinsame Kommandos teilen, wie zum Beispiel ein Reset-Kommando,
wird jedes einen spezifischen Satz für sich alleine haben. Um diese
parallele Verbindung der Controller mit dem Bus zu verbinden, führt die
vorliegende Erfindung einen Satz Controller-zu-Controller Leitungen
ein. In der beispielhaften Ausgestaltung, basierend auf einer Karte,
die sowohl das SD oder MMC Protokoll als auch das SPI Protokoll
verwenden kann, werden drei derartiger Leitungen verwendet. Diese
Leitungen ermöglichen
einem Controller dem anderen Controller zu signalisieren, Daten
auf dem Bus zu ignorieren, dass es sich um eine akzeptable Zeitdauer
zum Ausgeben eines Interrupt-Signals handelt oder die Einstellungen
zu regeln und Löschen
von Flags, die mit ungültigen
Kommandos in Zusammenhang stehen. Diese ermöglichen auch einem Controller,
dem anderen Controller zu signalisieren, dass dieser angeschlossen
und aktiv ist, da die vorliegende Erfindung auch in einer Multi-Karten-Ausgestaltung
implementiert werden kann, wobei das andere Modul angeschlossen
oder nicht angeschlossen sein kann.
-
In
einer Einzelkarten-Ausgestaltung sind alle Module in einer einzelnen
Karte enthalten, die einen bestimmten Standart erfüllt, und
die am Host anschließbar
ist. In einer Multi-Karten-Ausgestaltung ist eine erste Karte (zum
Beispiel die Speicherkarte) am Host anschließbar, enthält aber auch eine Verbindung
zum Anschließen
einer oder mehrerer zusätzlicher
Karten, wie zum Beispiel eine Eingabe-Ausgabe Karte. Im Fall von
Multi-Karten würden sich
sowohl der Hauptkartenbus als auch das Controller-zu-Controller
Interface über
die Verbindungsinterfaces erstrecken, so dass, wenn die zweite Karte
angeschlossen ist, diese in der gleichen Art und Weise wie die Einzel-Karten
Ausgestaltung arbeiten würde.
-
Die
unten als Beispiel beschriebene Ausgestaltungen enthält Module,
die dazu in der Lage sind, mit dem Host mit mehreren Protokollen
zu kommunizieren, speziell das SD oder MMC und das SPI Protokoll,
obwohl andere verwendet werden können.
Die Controller-zu-Controller Leitungen können unterschiedliche Funktionen
haben, die davon abhängen, welches
Protokoll verwendet wird. Da die Controller-zu-Controller Leitungen
den parallel verbundenen Modulen ermöglichen, als eine vom Host
aus gesehen einzelne Einheit zu arbeiten, teilen alle Module im
SD und MMC Protokoll eine gemeinsame relative Kartenadresse (RCA)
und beim SPI Protokoll antworten alle Module auf das gleiche Chip
Select (CS) Signal. Es wird auf die beiliegenden Zeichnungen Bezug
genommen, wobei:
-
1a und 1b stellen
Systeme dar, in denen ein nichtflüchtiges Speichermodul und ein
Eingabe-Ausgabe Modul entweder in einer kombinierten Karten-Ausgestaltung
oder einer zwei Karten-Ausgestaltung verwendet werden.
-
2 zeigt
die Pin-Belegungen einer Beispielkarte und einen Systemsockel, in
den die Karte eingelegt ist.
-
3 ist
ein Blockdiagramm einer beispielhaften Kombination Speicher/Eingabe-Ausgabe Kartenkonfiguration.
-
4a ist
eine schematische Darstellung der Verwendung von Leitung [A] im
SPI Modus für den
E/A-Controller, um dem Speichercontroller zu signalisieren, Hostdaten
zu ignorieren.
-
4b ist
eine schematische Darstellung der Verwendung von Leitung [A] im
SPI Modus für den
Speichercontroller, um dem E/A-Controller zu signalisieren, Hostdaten
zu ignorieren.
-
5 ist
ein Bustimingdiagramm für
Leitung [A] im SPI Modus.
-
6 ist
eine Tabelle von Timingdiagramm-Symbolen.
-
7 ist
eine schematische Darstellung der Verwendung von Leitung [A] im
SD Modus für
den Speichercontroller, um dem E/A-Controller gültige Interruptzeitdauern zu
signalisieren.
-
8 ist
ein Bustimingdiagramm für
Leitung [A] im SD Wide Bus Modus.
-
9 ist
eine schematische Darstellung der Verwendung von Leitung [B] in
Nicht-Kommando Antwortzeiträumen, um
dem Controller der ersten Karte zu signalisieren, dass die zweite
Karte angeschlossen ist.
-
10a ist eine schematische Darstellung der Verwendung
von Leitung [B] für
den E/A-Controller, um dem Speichercontroller zu signalisieren,
dass dieser antwortet.
-
10b ist eine schematische Darstellung der Verwendung
von Leitung [B] für
den Speichercontroller, um dem E/A-Controller zu signalisieren, dass
dieser antwortet.
-
11 ist
ein Bustimingdiagramm für
Lese- und Steuer-Zeiträume
auf Leitung [B].
-
12 ist
ein Blockdiagramm, wie ein Controller Leitung [C] verwendet, um
einem anderen Controller zu signalisieren, das ungültiges-Kommando-Flag
zu setzen.
-
13 ist
ein Bustimingdiagramm für
ein ungültiges
Kommando zum Speichercontroller gefolgt von einem gültigen Kommando
auf Leitung [C].
-
14 ist
ein Bustimingdiagramm von Leitung [C], die zusammen mit Leitung
[B] verwendet wird, um die Karten-Detektions-Logik zu steuern.
-
15 ist
eine Tabelle beispielhafter Bustimingdiagramme.
-
16 ist
ein Timingdiagramm von Kontrollleitung [A] im SD Modus.
-
17 ist
ein Timingdiagramm von Kontrollleitungen [B, C] im SD und SPI Modus,
Leitung [A] im SPI Modus.
-
18 ist
eine Tabelle von Parametern für Leitung
[A] im SD Modus.
-
19 ist
eine Tabelle von Parametern für Leitungen
[B, C] im SD und SPI Modus, Leitung [A] im SPI Modus.
-
20 ist
eine Pin-Bezeichnung für
das Controller-zu-Controller Interface.
-
Mit
Bezug auf 1a ist ein elektronisches Hostsystem 31 dargestellt,
das einen Sockel 33 enthält, in den ein oder mehrere
Typen von kommerziell erhältlichen,
trennbaren elektronischen Schaltungskarten, wie zum Beispiel die
im Abschnitt Hintergrund der Erfindung oben zusammengefassten, vom
Anwender eingesetzt und davon getrennt werden. Der Sockel 33 kann
in den Host 31 eingebaut sein oder physikalisch davon getrennt
sein und mit einem Kabel oder kabellosen Mitteln verbunden sein.
Der Host 31 kann ein Personal Computer in Form eines Desktops
oder Notebooks sein, der den Sockel 33 enthält, der
eine derartige Karte aufnimmt. Andere Beispiele von Hostsystemen,
die derartige Kartensockel enthalten, beinhalten verschiedene tragbare
elektronische Geräte,
wie zum Beispiel tragbare Computer, Personal Organizer, andere Personal
Digitale Assistenten ("PDAs"), Mobiltelefone,
Musikabspielgeräte und
desgleichen. Zusätzlich
können
Autoradios und Globale Positionsbestimmungssystem-("GPS")Empfänger auch
derartige Kartensockel haben. Die Verbesserungen der vorliegenden
Erfindung haben Anwendung auf eine große Vielfalt von Hostsystemen, die
Speicherkartensockel enthalten.
-
In
den hierin beschriebenen Beispielen wird die SD Karte beschrieben,
aber es versteht sich, dass die Erfindung nicht auf Implementierungen
mit einem spezifischen Typ von trennbaren elektronischen Schaltungskarten
beschränkt
ist. In 2 ist die physikalische Konfiguration
einer SD Karte 35 und ein passender Sockel 33 gezeigt.
Die SD Karte hat eine rechteckige Form mit Abmessungen von 24 Millimeter
mal 32 Millimeter mit einer Dicke von 2,1 Millimeter und entlang
der längeren
Seiten der Karte schmale Schienen (in 2 nicht
gezeigt), die 1,4 Millimeter dick sind. Die vorliegende Erfindung
kann mit einer Karte implementiert werden, die eine Vielfalt von
Größen hat,
aber einen großen
Nutzen mit Karten hat, die weniger als 51 Millimeter lang, 40 Millimeter
breit und 3 Millimeter dick sind.
-
Die
SD Karte
35 hat neun elektrische Oberflächenkontakte
10–
18.
Kontakte
13,
14 und
16 sind mit Spannung
(V
SS, V
DD and V
SS2) verbunden, wenn diese in den Hostsystemkartensockel
33 eingesetzt ist.
Kartenkontakt
15 empfängt
ein Taktsignal (CLK) vom Host. Kontakt
12 empfängt Kommandos
(CMD) vom Host und sendet Antworten und Statussignale zurück zum Host.
Die verbleibenden Kontakte
10,
11,
17 und
18 (DAT2,
DAT3, DAT 0, beziehungsweise DAT1) empfangen parallel Daten zur
Speicherung in seinem nichtflüchtigen
Speicher und sendet parallel Daten vom Speicher zum Host. Eine kleine
Anzahl von Datenkontakten sind zur Verwendung auswählbar, wie
zum Beispiel ein einzelner Datenkontakt
17. Die maximale
Datentransferrate zwischen dem Host und der Karte ist von der Anzahl
von parallelen Datenwegen begrenzt, die verwendet werden (und der maximalen
Taktrate). Die in den Grundlagen oben beschriebene MMC Karte hat
ein ähnliches
Kontaktlayout und Interface, spart aber Datengins
10 und
18 und
verwendet nicht den Kontakt
11, der als eine Reserve zur
Verfügung
gestellt wird. Die MMC Karte hat die selben Abmessungen und arbeitet ähnlich zu
der SD Karte, außer,
dass die Karte nur 1,4 Millimeter dick ist und einen einzelnen Datenkontakt
17 hat.
Die Kontakte der Karte
35 sind durch zugehörige Pins
20–
28 des
Sockels
33 mit seinem Hostsystem verbunden. Andere Erweiterungen
von Speicherkarten, die mit der vorliegenden Erfindung kompatibel
sind, werden in
US-Patentanmeldung
Nummer 09/924,185 , eingereicht am 2.08. 2001, beschrieben.
-
Die
vorliegende Erfindung basiert auf trennbaren elektronischen Schaltungskarten,
wie zum Beispiel Karte 35 der Ausgestaltung von 1a,
die zusätzlich
zu Speichermodulen, wie zum Beispiel durch 36 angedeutet,
ein Eingabe-Ausgabe Modul 37 umfasst. Das Eingabe-Ausgabe
Modul 37 kann mit einem anderen System 39 direkt über einen
Kommunikationsweg 41 kommunizieren. Der Kommunikationsweg 41 kann
drahtlos, wie zum Beispiel durch Verwendung eines Infrarot- oder
Hochfrequenz-Signals sein, oder kann eine kabelgebundene Verbindung
haben. Im kabelgebundenen Fall enthält die Karte 35 einen
externen Sockel, um einen Stecker abnehmbar aufzunehmen, der an
den Kabeln befestigt ist. Im kabellosen Fall enthält die Karte 35 im
Innern eine Antenne, falls eine Hochfrequenz-Kommunikation verwendet
wird, oder ein Infrarot-Emitter und Detektor, falls eine Infrarot-Kommunikation
verwendet wird. Ein aufkommender Standard für Hochfrequenzkommunikation
wurde als die Bluetooth-Spezifikation veröffentlicht, die von Wilson
und Kronz in zwei Artikeln mit dem Titel "Inside Bluetooth Part I" und "Inside Bluetooth
Part II" besprochen
wird, die in den Ausgaben von Dr. Dobb's Journal März 2000 (beginnend auf Seite
62) und April 2000 (beginnend auf Seite 58) erschienen sind. Andere
drahtlose Systeme beinhalten die auf dem 802.11 Protokoll basierenden,
wie zum Beispiel WiFi und Ultra-Breitband-Technologien (UWB). Der
Datentransfer über den
Kommunikationsweg 41 erfolgt üblicherweise in zwei Richtungen
aber kann natürlich
für spezifische Anwendungen
auf eine Richtung oder die anderen begrenzt sein
-
In
einigen Anwendungen kann das eingehende Signal 41 nicht
explizit aus einem externen System 39 herstammen. Zum Beispiel
könnte
das Eingabe/Ausgabe Modul 37 einen Photosensor oder in
die Karte integrierte Linsen sein, um als ein Kameramodul zu arbeiten.
In diesem Fall würde
das Signal 41 die einfallende Strahlung sein und die Karte
würde eine
eigenständige
Einheit bilden und würde
nicht erfordern, mit einem Kabel oder einer Antenne mit einer Einheit
außer
dem Host zu interagieren.
-
In
der beispielhaften Ausgestaltung von
1a basiert
die kombinierte Karte
35, die das Eingabe/Ausgabe Modul
37 enthält, auf
der SD Karte und ist mit der SD Karte wie in den Grundlagen beschrieben,
kompatibel. Diese Kompatibilität
beinhaltet mechanische, elektrische, Spannung, Signale und Software.
Das Ziel der kombinierten Karte
35 besteht darin, Hochgeschwindigkeits-Daten
E/A mit niedrigem Energieverbrauch für mobile elektronische Geräte bereitzustellen.
Ein Hauptziel besteht darin, dass eine kombinierte Karte, die in
einen Host eingeführt wird,
der nicht kombinierte Karten erkennt, keine physikalische Beschädigung oder
Störung
dieses Gerätes
oder seiner Software verursachen wird. In diesem Fall sollte die
E/A Modul Funktionalität
einfach ignoriert werden. Sobald die Karte in einen Host eingeführt wird,
der kombinierte Karten erkennt, wird die Detektion der Karte über die
normalen Mittel erfolgen, die in Version 2.11 der MMC Spezifikation
oder
US-Patent Nummer 6,820,148 mit
einigen Erweiterungen beschrieben sind. In diesem Zustand wird die kombinierte
Karte untätig
sein und einen kleinen Strombetrag (15mA gemittelt über 1 Sekunde)
beanspruchen. Während
der normalen Initialisierung und Abfrage der Karte durch den Host
wird sich die Karte als ein kombiniertes Kartengerät selber
identifizieren. Die Hostsoftware wird dann die Karteninformationen in
einem Tupel-(verkettete Liste)Format erhalten und ermitteln, ob
die E/A Funktion(en) der Karte zum Aktivieren zulässig sind.
Diese Entscheidung wird auf solchen Parametern wie Energiebedarf
oder die Verfügbarkeit
geeigneter Softwaretreiber basieren. Falls die Karte akzeptabel
ist, wird es dieser ermöglicht, vollständig hochzufahren
und die E/A und die darin eingebauten Funktion(en) zu starten Weitere.
Details des Betriebs der beispielhaften Ausgestaltung von
1a sind
in der gleichzeitig anhängigen
US-Patentanmeldung Nummer 10/302,009 enthalten,
eingereicht am 21.11.2002.
-
Eine
alternative beispielhafte Ausgestaltung der vorliegenden Erfindung
ist in
1b gezeigt, wobei das Speichermodul
und Eingabe/Ausgabe Module sich auf separaten Karten befinden. Das
alternative Beispiel enthält
Modifikationen der Karte, wie zum Beispiel die Speicherkarte
35 durch
Hinzufügen
einer Verbindung, wie zum Beispiel an
36 in
2 angedeutet,
wobei die modifizierte Karte als
35' in
1b bezeichnet
ist. Die Verbindung
36 ist an einer passenden Verbindung
einer Eingabe-Ausgabe Karte
37 angeschlossen, um beide
Karten miteinander mechanisch und elektrisch zu verbinden. Unter
dieser Anordnung, obwohl die zweite Karte
37 funktional den
entsprechenden Standard erfüllt,
so wie in diesem Beispiel der SD oder SD IO Kartenstandard, braucht
diese nicht notwendigerweise mechanisch übereinstimmen, was der ersten
Karte
35' ermöglicht,
als ein physikalischer Adapter zu dienen. Die Eingabe-Ausgabe Karte
37 kommuniziert
direkt mit einigem anderen System
39 über einen Kommunikationsweg
41.
Weitere Details des Betriebs der beispielhaften Ausgestaltung von
1b,
beinhaltend die mechanischen Aspekte der Karte-zu-Karte Befestigung,
werden in der gleichzeitig anhängigen
US-Patentanmeldung Nummer 09/653,062 gegeben.
-
Obwohl
die beispielhaften Ausgestaltungen von 1a und 1b sowie
auch die meisten folgenden Erörterungen
auf zwei Modulen basieren, speziell einem Speichermodul und einem
Eingabe-Ausgabe Modul, können
allgemein mehrere Module über
einer einzelnen Karte, wie in 1a, oder mehrerer
Karten verteilt sein, wie in 1b. In
beiden Fällen
wird, wie auch immer, nur eine Karte am Host angeschlossen sein.
Zum Beispiel kann 35 von 1a mehrere
E/A Module enthalten oder in 1b kann
Karte 37 mehrere Eingabe/Ausgabe Module enthalten oder 35' kann mehrere
Eingabe/Ausgabe Karten daran angeschlossen haben. Allgemein werden
die verschiedenen Aspekte der vorliegenden Erfindung für eine einzelne
Karte, die an einem Host angeschlossen ist, beschrieben. Die Karte
wird entweder mehrere Module innerhalb der Karte (eine "Combo Karte") enthalten oder
eine oder mehrere Karten enthalten, die selbst Module enthalten, die
durch diese mit dem Host verbunden ist.
-
Die
beispielhaften Ausgestaltungen werden auch für den Fall beschrieben, bei
dem die Karte (oder Karten) in der Lage ist, mit dem Host über eine Vielzahl
von Protokollen zu kommunizieren, was wie zum Beispiel in
US-Patentanmeldung Nummer 09/186,064 beschrieben
ist. Speziell werden diese entweder das MMC oder SD Protokoll (beschrieben in
Version 2.1 der MMC Spezifikation oder in
US-Patent Nummer 6,820,148 ) und das
SPI Protokoll in der beispielhaften Ausgestaltung sein.
-
3 ist
ein Blockdiagramm einer beispielhaften Ausgestaltung einer kombinierten
Karte 35 entsprechend den dazugehörigen SD Kartenstandards, das
ein Speichermodul und ein Eingabe-Ausgabe Modul hat. Im Speichermodul
ist nur der Controller 301 explizit gezeigt und ebenso
ist nur der Controller 303 im E/A Modul gezeigt. Das E/A
Modul (das mehrere E/A Funktionen enthalten kann) ist hier dazu ausgelegt,
zusammen mit dem spezifischen ausgewählten Kartentyp zu arbeiten
und erfüllt
entsprechende Spezifikationen. Wie oben erwähnt ist die Ausgestaltung ausgewählt, um
sowohl den SD Bus und SPI Bus Modus zu unterstützen. Die Busstruktur, mit
dem die Module Daten und Kommandos mit dem Host austauschen, ist
bei 331 gezeigt. Im Wesentlichen stimmt der Bus mit dem
SD Standard überein und
enthält
eine Taktleitung CLK, eine Kommandoleitung CDM, Datenleitungen DAT0-3
und Spannungsversorgungsleitungen Vdd und Vss. Für eine Zwei-Karten Implementierung
zeigt die gestrichelte Linie 307 eine Grenze zwischen einer
Speicherkarte (35'),
die mit dem Host direkt verbunden ist, und eine Eingabe Ausgabe
Karte (37), die mit der Speicherkarte verbunden ist. Der
Bus 331 erstreckt sich wieder über beide Karten und verbindet
mit beiden Controllern.
-
Der
Rahmen der folgenden Erörterung
wird hauptsächlich
die funktionalen Eigenschaften der SD Karte mit dem E/A Erweiterungseinschub
zusammen mit dazugehörigen
elektrischen und Timing-Angelegenheiten erläutern. In der Ausgestaltung
von 3 sind beide Speichercontroller 301 und
der E/A Controller 303 zum Kommunizieren mit dem Host am
selben Bus verbunden. Auf diese Weise wäre jedes Modul in der Lage,
unabhängig
mit dem Host zu kommunizieren, aber der Host nimmt nur eine einzelne
Karte wahr. Für
die beispielhaften Protokolle resultiert dies in nur einer einzelnen
relativen Kar tenadresse (RCA), die für die Karte im SD oder MMC
Modus definiert ist, und es wird nur ein einzelnes Chip Select (CS)
Signal für
die Karte im SPI Modus verwendet, obwohl die Karte (oder Karten)
mehr als ein einzelnes Modul enthalten wird. Um den Betrieb von
mehreren Modulen, die parallel miteinander verbunden sind, zu vereinfachen,
während
es dem Host noch immer ermöglicht
wird, diese als eine einzelne Karte wahrzunehmen, ist die Verbindung 333 zwischen
beiden Controllern implementiert.
-
Die
beispielhafte Verbindung hat drei Kontrollleitungen A, B und C, über welche
die Controller Signale austauschen können, um es den Modulen zu ermöglichen,
auszusortieren, welche Kommandos und Daten vom Host für welches
Modul bestimmt sind. Da beide Module vom Host durch die selbe relative
Kartenadresse (RCA) oder Chip Select (CS) Signal identifiziert werden,
aber viele Kommandos nur für
ein Modul bestimmt sind, ermöglichen
die Kontrollleitungen den Modulen diese Hostinteraktionen zu erleichtern.
Wenn zum Beispiel der Host ein Kommando spezifisch für ein E/A
Modul gefolgt von einigen Daten sendet, würde das Speichermodul dieses Kommando
als ungültig
interpretieren. Dafür
ermöglichen
die Kontrollleitungen 333 dem E/A Controller 343 den
Speichercontroller 301 darüber zu informieren, dass das
Kommando nicht ungültig
ist, aber eigentlich für
das E/A Modul vorgesehen ist und dass das Speichermodul die folgenden
Daten ignorieren soll. In der beispielhaften Ausgestaltung wird
angenommen, dass die meisten Kommandos spezifisch für das eine
oder das andere Modul sind, wobei eine geringe Anzahl von Kommandos
gemeinsam verwendet wird. Beispiele derartiger gemeinsamer Kommandos
sind ein Karten Reset Kommando, Kommandos in Bezug ein RCA für die Karte
als ein Ganzes zu bilden, Kommandos in Bezug auf CS Signale und
andere Kommandos, die es den größtenteils
unabhängigen
Modulen ermöglichen,
vom Host aus gesehen als eine einzelne Karte zu arbeiten. Andere Kommandos
können
auch für
beide Module gemeinsam sein, wie zum Beispiel in Bezug auf DMA Typ Transfer
zwischen den Modulen, die weiter in Patentanmeldung Nummer 10/302,009
beschrieben werden.
-
Die
Interfacekontrollleitungen werden ausführlicher beschrieben, beginnend
mit Leitung [A]. Leitung [A] ist auch als INT_PER_IGNORE_DI in 3 bezeichnet
und hat eine doppelte Funktionalität, abhängig davon, ob die Kommunikation
im SD Modus erfolgt, wobei diese als eine VALID MEMORY INTERRUPT
PERIOD Leitung arbeitet, oder im SPI Modus, wobei diese als eine
IGNORE DI INPUTS Leitung arbeitet. Im SPI Modus werden Daten und Kommandos/Antworten
seriell übertragen,
wobei diese an der CMD (nun data in oder DI) Leitung ankommen und
auf der DAT0 (nun data out oder DO) Leitung austreten. Da beide
Module parallel verbunden sind, hören beide Module am SD Bus 331 und
zu einem Modul gesendete Daten/Kommandos könnten vom falschen Modul interpretiert
werden. Leitung [A] wird im SPI Modus als Controller verwendet,
um dem anderen Controller anzugeben, DI Input zu ignorieren. Die
Standardeinstellung ist als Pull-Up
Modus implementiert. Eine von einem der Controller (EA oder Speicher)
gesetzte "0" gibt dem anderen
Controller an, DI Input zu ignorieren. Der Grund für Kontrollleitung
[A] ist der, dass die Daten, die zu einem Controller gesendet wurden,
vom anderen Controller als ein Kommando interpretiert werden können. Da beide
Controller Daten nicht zur gleichen Zeit empfangen werden, wird
die gleiche Kontrollleitung [A] von E/A zu Speicher und Speicher
zu E/A verwendet.
-
4a ist
ein Beispiel für
eine Mitteilung des E/A Controllers zum Speichercontroller, DI zu
ignorieren. Der E/A Controller empfängt ein Kommando gefolgt von
einem DATA Empfang, so dass der E/A Controller beginnt, Leitung
[A] nach TARI Takten nach dem letzten Bit
der Kommandoantwort auf Null zu setzen. Der E/A Controller gibt
Leitung [A] TABS Takte (definiert in 5)
nach dem letzten Busy-Bit frei. Der Speichercontroller erkennt das "low" auf Leitung [A]
und der Speichercontroller wird von nun an Eingabe an DI ignorieren
bis der E/A Controller Leitung [A] freigibt.
-
4b ist
ein Beispiel dafür,
dass der Speichercontroller dem E/A Controller mitteilt, DI zu ignorieren.
Der Speichercontroller empfängt
ein Kommando gefolgt von einem DATA Empfang, so dass der Speichercontroller
beginnt, Leitung [A] TARI nach dem letzten
Bit der Kommandoantwort auf Null zu setzen. Der Speichercontroller
wird Leitung [A] TABS Takte nach dem letzten
Busy-Bit freigeben. Der E/A Controller erkennt das 'low' auf Leitung [A]
und von nun an wird der E/A Controller DI Eingabe ignorieren, bis
der Speichercontroller Leitung [A] freigibt. Ein Beispiel für Bustiming
der Leitung [A] im SPI Modus ist mit den in Tabelle 1 in 6 definierten
Diagrammsymbolen in 5 gezeigt. Im SD Modus wird
Leitung [A] zum Senden eines VALID MEMORY INTERRUPT PERIOD Signals
vom Speichermodul zum E/A Modul verwendet, wie in 7 gezeigt.
Dieses Kommando gibt an, dass der E/A Controller 303 ein
Interrupt zum Host gemäß des SD
Bus Protokolls senden kann, da, falls das E/A Modul ein Interrupt
auf dem Bus 331 zu einer nicht erlaubten Zeit zum Host
sendet, dies zwischen dem Speichermodul und dem Host ausgetauschte
Daten stören
kann. Der E/A Controller 303 muss diese Leitung prüfen, bevor
diese einen Interrupt zum Host sendet. "1" kennzeichnet eine
gültige
lnterruptzeitdauer und "0" kennzeichnet eine
ungültige
lnterruptzeitdauer. Wie in den verschiedenen einbezogenen Referenzen
oben beschrieben, wird in SPI und 1-Bit (oder niedrigen) SD Modus
PIN 8 (DAT1) als Interruptsignal verwendet. Im 4-Bit (oder
Wide) SD Modus wird Pin 8 (DAT1) zum Datentransfer und
als Interruptsignal verwendet. Leitung [A] wird dazu verwendet,
Konkurrenzsituation auf dem Bus an Pin 8 während des
Arbeitens im 4-Bit SD zu verhindern. Angabe von Leitung [A] vom Speicher
zum E/A hat spezielles Timing wie folgt:
- 1)
Im 1-Bit (oder niedrigen) SD Modus ist Leitung [A] immer 'high'.
- 2)Im 4-Bit (Wide) SD Modus wird die Interruptzeitdauer TAIP Takte nachdem Leitung [A] auf 'high' geht beginnen. Die
Interruptzeitdauer wird nach TASE Takten
beendet sein, nachdem Leitung [A] auf 'low' geht.
In den ersten 2 Takten wird der E/A Controller 'low' setzen,
beim 3. Takt wird der E/A Controller 'high' setzen,
beim 4. Takt wird der E/A Controller aufhören, das Interruptsignal zu
setzen. Das Leitungs-[A]Bustiming für ein Lesekommando im SD Modus
ist in 8 gezeigt. Der Speichercontroller unterstützt nicht
Interruptzeitdauern zwischen Datenblöcken im 4-Bit Datentransfermodus.
-
Leitung
[B] ist auch mit CMD RESP_IO_DET in 3 gekennzeichnet
und hat auch mehr als eine Funktionalität, abhängig davon, ob sich das Gerät sich in
einem Kommandoantwortzeitraum befindet, wobei diese als eine Command
Response Indication Leitung dient, oder befindet sich nicht in einem
Kommandoantwortzeitraum, wobei diese als eine I/O Kartendetektions-Leitung
arbeitet. Wie schematisch in 9 gezeigt,
befindet sich der Speichercontroller während Nicht-Kommando Antwortzeiträumen im
Input Modus auf Leitung [B], die vom E/A Controller verwendet wird,
um anzuzeigen, dass E/A Karte präsent
ist. In Einzel-Karten Ausgestaltungen wird das E/A Modul natürlich immer
vorhanden sein da sich dieses auf der gleichen Karte befindet; aber
in Fällen, bei
denen sich ein Modul auf einer separaten Karte befindet, so wie
in 1b gezeigt, ermöglicht dies, dass die Karte
direkt mit dem Host verbunden ist (d.h. 35') um zu wissen, dass die zweite
Karte (d.h. 37) angeschlossen ist. Andernfalls, falls auf
dem Bus 331 keine Antwort auf ein Kommando vorliegt, wäre es dem
Controller 301 nicht klar, ob die Karte 37 fehlt oder
ob Controller 303 nur nicht geantwortet hat. Der E/A Kartencontroller 303 setzt
Leitung [B] zu allen Zeiten auf 'low' mit Ausnahme eines
Taktes nach dem End-Bit vom Kommando bis zu einer Anzahl von Takten
nach dem Ende des Kommandos. Diese Zeitdauer wird im Folgenden als 'Antwortzeitraum' bezeichnet. Im Falle,
dass die E/A Karte nicht verbunden ist, wird die Leitung heraufgezogen.
Um marginale Timingprobleme zu beseitigen, wird der Speichercontroller
Leitung [B] als E/A Kartendetektionsindikation ein paar Takte nach
dem Ende des 'Antwortzeitraums' betrachten.
-
Während eines
Kommandoantwortzeitraumes wird Leitung [B] von einem Controller
dazu verwendet, dem anderen Controller mitzuteilen, dass dieser
antwortet und dass es nicht erforderlich ist, dass der andere Controller
antwortet. Dies hilft, Verkehr auf dem Systembus zu steuern und
hält beide Controller
davon ab, zur gleichen Zeit zu antworten. Während eines Kommandoantwortzeitraumes
zeigt Leitung [B] an, dass ein Kommando in beiden, SD und SPI Modi
beantwortet wurde. In der Voreinstellung sind der Speichercontroller
und E/A Controller im Eingabemodus. Durch Setzen von Leitung [B]
auf 'low' durch einen der
Controller (E/A oder Speicher) zeigt dies dem anderen Controller
an, dass der setzende Controller eine Kommandoantwort sendet. Dieser
Vorgang ist schematisch in 10a und 10b für
den antwortenden E/A Controller 343 beziehungsweise den
Speichercontroller 301 gezeigt. 11 zeigt
ein beispielhaftes Timingdiagramm für Lese- und Setzzeiträume auf
Leitung [B].
-
Ein
Controller, der eine Antwort zum Host sendet, löscht auch zuvor gesetzte Fehler-Flags
und ungültiges-Kommando-Flags
als Teil des Antwortvorgangs. Leitung [B] zeigt dem anderen Controller
an, dass dieser seine Fehler- und ungültiges-Kommando-Flags löschen soll,
so dass diese Kenntnis von beiden Controllern gemeinsam genutzt
werden kann. In einer beispielhaften Ausgestaltung ist eine [B]
Leitungsindikation für
eine Dauer von 4 Takten, beginnend ein halbes Bit vor dem Start-Bit
der Kommandoantwort (siehe 14). Die
Antwort des E/A Controllers kann dann in der Dauer von 2 Takten
nach dem End-Bit des Kommandos bis zu 32 Bit nach dem End-Bit des
Kommandos beginnen, und die Antwort des Speichercontrollers kann
in der Dauer von 2 Takten nach dem End-Bit des Kommandos bis 15
Bit nach dem End-Bit des Kommandos beginnen.
-
In
einer unten beschriebenen zusätzlichen Funktionalität kann Leitung
[B] zusammen mit Leitung [C] verwendet werden, um die Kartendetektions-Logik
zu steuern.
-
In 3 als
ILLEG_CMD bezeichnete Leitung [C] wird im SD Modus verwendet und
hat eine doppelte Funktionalität.
Gemäß der SD
Spezifikation, falls ein ungültiges
Kommando zu einem Controller gesendet wird, wird dieser beim nächsten Kommando
anzeigen, dass das vorherige Kommando ungültig war. Das ungültiges-Kommando-Flag
setzt auch ein Flag, so dass diese Information beim nächsten (gültigen)
Kommando gesendet werden kann. Allerdings kann dieses nächste Kommando
nicht zum gleichen Modul adressiert sein, so dass diese ungültiges-Kommando-Information
von den Controllern gemeinsam genutzt werden muss. Zum Beispiel
kann das ungültige
Kommando zum Speichermodul gelangen, wobei das nächste, gültige Kommando zum E/A Modul
gelangt, das andernfalls keine Kenntnis des vorausgehenden ungültigen Kommandos
haben würde.
Dieser Vorgang ist schematisch in 12 gezeigt (Das
Löschen
dieses ungültiges-Kommando-Flags wurde
oben mit Bezug auf Leitung [B] beschrieben).
-
Insbesondere
sind in der Voreinstellung der Speicher und E/A Controller im Eingabemodus. Wenn
einer der Controller einen Empfang eines ungültigen Kommandos detek tiert,
setzt der Controller das ungültiges-Kommando-Flag.
Leitung [C] wird nach TCEI Takten nach dem
End-Bit des ungültigen Kommandos
auf 'low gesetzt,
um dem anderen Controller zu signalisieren, sein ungültiges-Kommando-Flag
zu setzen. Wenn einer der Controller einen ungültigen Kommandoempfang detektiert,
wird der Controller Leitung [C] überprüfen: Wenn
Leitung [C] auf 'high' gesetzt ist, setzt
der Controller Leitung [C] auf 'low', falls Leitung [C]
auf 'low' ist (das heißt, dass der
andere Controller bereits die Leitung [C] setzt), wird der Controller
nicht die Leitung setzen.
-
Der
Controller, der Leitung [C] auf 'low' setzt, hört unter
zwei Bedingungen auf, Leitung [C] zu setzen:
- 1)
Während
des Vorgangs eine Antwort auf ein gültiges Kommando zu senden,
löscht
der Controller das ungültiges-Kommando-Flag.
Leitung [C] wird nach dem Empfang des gültigen Kommandos bis zu TCRS Takte nach dem Start-Bit der Antwort freigegeben, um zu signalisieren,
dass das ungültiges-Kommando-Flag gelöscht ist. 13 ist
ein Beispiel eines Speichercontrollers, der ein ungültiges Kommando
empfängt
und beginnt, Leitung [C] auf 'low' zu setzen. (Beispielhafte
Bustimingwerte von 13 und 14 sind
in Tabelle 2 von 15 gezeigt) Nach Empfangen eines gültigen Kommandos
hört der
Speichercontroller auf, Leitung [C] zu setzen. Der selbe Vorgang
ist von einem E/A Controllers gefolgt, der ein gültiges Kommando nach einem
ungültigen
Kommando empfängt.
- 2) Nach Empfangen eines ungültigen
Kommandos setzt der Controller das ungültiges-Kommando-Flag und setzt
Leitung [C] auf 'low'. Falls das nächste gültige Kommando
vom anderen Controller akzeptiert wird, setzt der andere Controller
Leitung [B] auf 'low', um dem ersten Controller
zu signalisieren, dass dieser die ungültiges-Kommando- und Fehler-Flags
löschen
soll. Der erste Controller wird Leitung [C] TCBS Takte
nach der fallenden Flanke von Leitung [B] freigeben und löscht das
Fehler-Flag. 14 ist ein Beispiel eines Speichercontrollers,
der ein ungültiges
Kommando empfängt
und beginnt, Leitung [C] auf 'low' zu setzen. Nach
Empfangen eines gültigen
Kommandos vom E/A Controller beginnt der E/A Controller Leitung
[B] zu setzen, und als Folge löscht der
Speichercontroller die Fehler-Flags
und hört auf,
Leitung [C] zu setzen. Der selbe Vorgang ist von einem Speichercontroller
gefolgt, der ein gültiges
Kommando nach einem ungültigen
Kommando empfängt,
das zum E/A Controller gesendet wurde.
-
Die
elektrischen Merkmale der Verbindungen von Controller-zu-Controller
sind in 16–20 detaillierter
beschrieben. 15 ist ein Timingdiagramm von
Kontrollleitung [A] im SD Modus, wobei Tabelle 3 von 18 die
verschiedenen Parameter in 16 angibt. 17 ist
ein Timingdiagramm von Kontrollleitungen [B, C] in SD und SPI Modus,
Leitung [A] im SPI Modus, wobei Tabelle 4 von 19 die
verschiedenen Parameter in 17 angibt. 20 ist
eine Beschreibung der Pins, die das Interface von Controller-zu-Controller zusammenfasst.
-
Obwohl
die verschiedenen Aspekte der vorliegenden Erfindung für den Fall
von zwei Modulen beschrieben wurden, speziell ein Speichermodul
und ein Eingabe-Ausgabe Modul, erstreckt sich die Erfindung auch über andere
Anzahlen und Typen von Modulen, deren Controller unabhängig mit
dem System parallel verbunden sind, wobei diese dem Host als eine
einzelne, Ein-Modul Karte erscheinen. Diese Module können sich
auch, wie bereits erwähnt
wurde, in einer einzelnen Karte befinden (wie in 1a) oder über mehrere
Karten verteilt sein (wie in 1b). In
Ausgestaltungen mit mehreren Karten erstrecken sich sowohl der Systembus
(331, 3) als auch das Controller-zu-Controller
Interface über
die Karte-zu-Karte Verbindung. Darüber hinaus erstreckt sich die
vorliegende Erfindung über
Fälle von
Mehrfach-Karten Ausgestaltungen, wie zum Beispiel in 1b,
wobei an der befestigenden Karte einen Controller fehlt. Wenn zum
Beispiel Karte 35' von 3 keinen
Controller 301 hat, werden die Leitungen [A–C] in Karte 35 auf
Vss gesetzt. Dies ermöglicht
der Karte 35' sich
als Adapter für
Karte 37 zum Befestigen am Host zu verhalten.
-
Weitere
Aspekte der vorliegenden Erfindung bestehen darin, dass das Kartensystem
unter mehreren Protokollen arbeiten kann. Die beispielhafte Ausgestaltung
ist für
zwei derartiger Protokolle beschrieben, obwohl allgemein entweder
mehrere Protokolle oder nur ein einzelnes Protokoll verwendet werden kann.
Die beispielhaften Protokolle sind das SD oder MMC Protokoll und
das SPI Protokoll, die detaillierter in Version 2.11 der MMC Spezifikationen
oder in der
US-Patentanmeldung
Nummer 09/641,023 beschrieben sind. In dieser beispielhaften
Ausgestaltung wird eine detaillierte Beschreibung der Erfordernisse
für den
Speichercontroller und die Verwendung der A, B und C Kontrollleitungen
in verschiedenen Fällen
gegeben. Die Erfordernisse für
den E/A Controller werden auch beschrieben, um die Betriebskonzepte
zu verdeutlichen.
-
Im
SPI Modus ist in den physikalischen Spezifikationen definiert, dass
eine Karte auf alle Kommandos antworten wird, sogar auf ungültige Kommandos.
In einer Kombination einer Speicher/Eingabe-Ausgabe Karte wird der
Speichercontroller die E/A spezifischen Kommandos ignorieren. In
gleicher Weise wird der E/A Controller Speicherspezifische Kommandos
ignorieren. Bei Multi-Karten-Ausgestaltungen, wobei der EA Controller
nicht verbunden ist (detektiert mit Leitung [B]), wird der Speichercontroller
nicht die zugehörigen
E/A Kommandos ignorieren, aber antwortet anstelle als ungültige Kommandos,
wenn diese ihm zugesendet werden. Im SPI Modus ist in den physikalischen
SD Spezifikationen definiert, dass die Karte 'high' am
DO Pin (DAT0) in dem Fall setzen soll, falls das CS festgestellt
wird. Im Multi-Modul Zustand ermöglicht
jeder Controller seinem eigenen DO die Ausgabe nur, wenn es erforderlich
ist (d.h. Antworten auf ein Kommando oder Senden von Daten), andernfalls
befindet sich dieser im Eingabemodus. Der Host hält, wie in den technischen
Spezifikationen beschrieben, die Leitung auf high. Aus der Perspektive
des Hosts verhält
sich die Karte/Bus gleichermaßen
wie es in den Spezifikationen für
eine Einzel-Modul Karte definiert ist.
-
Da
beide Controller mit dem Bus parallel verbunden sind, können die
Daten, die zu einem Controller gesendet werden, als ein Kommando
vom anderen Controller interpretiert werden. Die Wahrscheinlichkeit
für diese
Fehleinschätzung
wird sogar höher,
wenn die zyklische Blockprüfung
(CRC) nicht verwendet wird, was im SPI Modus gültig ist. (Wie zum Beispiel
in den referenzierten MMC Spezifikationen beschrieben ist, wird
jeder SD oder MMC Token, der auf dem SD Bus transferiert wird, von
CRC-Bit geschützt,
während
im SPI Modus ein nicht-geschützter
Modus verfügbar
ist, das Systemen mit zuverlässigen
Datenverbindungen ermöglicht,
die zum Implementieren der CRC Generierung und Prüfungsfunktionen
erforderliche Hardware oder Firmware auszuschließen). Dies ist der Grund für Kontrollleitung
[A] zwischen dem Speicher und E/A Controllern. In der beispielhaften
Ausgestaltung empfangen beide Controller keine Daten zur gleichen
Zeit und die selbe Kontrollleitung [A] wird vom E/A Controller zum Speicher
und vom Speichercontroller zum E/A Controller verwendet. Jede Seite
wird die Leitung ('low') im Fall von Datenempfang
mit einem Pull-Up Widerstand setzen, der die Leitung high in anderen
Zuständen
lässt.
-
Um
in den SPI Modus zu gelangen, sendet der Host CMDO+(CS=O) für sowohl
die E/A als auch Speichermodule, selbst wenn die RESET Kommandos
für die
Speicher und E/A Controller unterschiedlich sein können, wobei
zum Beispiel das E/A Modul ein anderes reset Kommando als CMD0 hat.
Der E/A Controller wird in den SPI Modus gelangen, wird aber nicht
auf ein CMD0 Kommando antworten. Das Kommando CRC_ON_OFF, um zyklische
Blockprüfung (CRC)
ein- und auszuschalten, wird vom Speichercontroller aber nicht vom
E/A Controller beantwortet, da dies für den Speicher ein gültiges Kommando
ist. Der E/A Controller sollte dieses Kommando identifizieren und
die CRC Prüffunktion
gemäß des Kommandoargumentes
anschalten oder ausschalten. Im Fall, dass ein Kommando CRC Fehler
detektiert wird (und CRC Erkennung eingeschaltet ist), dann wird
in beiden Controllern ein Fehler-Flag gesetzt. Falls beide Karten
initialisiert sind, würden
beide antworten wollen. Der E/A Controller wird nur antworten, falls eine
Antwort vom Speichercontroller nicht in einer spezifizierten Anzahl
von, angenommen 16 Takten, während
der E/A Controller auf Leitung [B] 'horcht', auftritt. Falls das E/A Modul eine
Antwort vom Speichercontroller während
der vorgegebenen Zeitdauer detektiert, dann wird dieser nur sein
CRC Fehler-Flag zurücksetzen
und wird seinerseits nicht antworten. In gleicher Weise, wenn einer
der Controller ein ungültiges
Kommando detektiert, wird dieser mit einer ungültiges-Kommando Antwort antworten.
-
Im
SD Modus, die Kombination Speicher/Eingabe-Ausgabe Karte, wird der
Speichercontroller die E/A spezifischen Kommandos ignorieren. Umgekehrt
wird der E/A Controller alle Kommandos ignorieren, die außerhalb
der E/A Kommandoklasse sind, es sei denn, dass diese für alle Controller
gleich sind (Klasse 9) bis auf die gemeinsamen Kommandos (wie zum
Beispiel reset (CMDO) und relativen Kartenadressen (CRA) und Chip
Select (CS) betreffende). Im Fall, in dem der Controller nicht verbunden ist
(mit Leitung [B] detektiert), wird der Speichercontroller die E/A
betreffenden Kommandos nicht ignorieren – mit anderen Worten, dieser
wird antworten als wären
ungültige
Kommandos zu ihm gesendet worden.
-
Der
Speichercontroller wird auf die Kommandos antworten, die in Bezug
zum Erstellen einer relativen Kartenadresse (RCA) stehen, wenn das
Kommando ungültig
ist. In diesem Fall wird der E/A Controller nach entsprechenden
Kommandoantworten auf der CMD Leitung 'horchen'. Falls eine zulässige Antwort (mit korrektem
CRC) innerhalb einer Anzahl von Takten detektiert wird (und das
Kommando ist für den
E/A Controller gültig
ist), wird der E/A Controller die RCA annehmen. Leitung [B] wird
dem E/A Controller signalisieren, dass der Speichercontroller antwortet.
-
Der
Speichercontroller wird auf ein RCA erstellendes Kommando reagieren,
wenn dieses gültig ist.
In diesem Fall wird der E/A Controller auf die Kommandoantwort auf
der CMD Leitung 'horchen'. Falls eine gültige Antwort
(mit korrektem CRC) in der vorgeschriebenen Anzahl von Takten (und
das Kommando für
den E/A Controller ungültig
ist) detektiert wird, wird der E/A Controller die RCA nicht annehmen
und wird nicht das ungültiges-Kommando-Flag setzen.
Leitung [B] wird dem E/A Controller signalisieren, dass der Speichercontroller
antwortet.
-
Falls
der Speichercontroller in der erlaubten Antwortzeit vom End-Bit
des RCA erstellenden Kommandos nicht antwortet und das Kommando
für den E/A
Controller gültig ist,
wird der E/A Controller antworten. Der Speichercontroller wird nach
der Antwort auf der CMD Leitung 'horchen'. Falls eine gültige RCA
resultiert, wird der E/A Controller falls erforderlich dann die
RCA annehmen. Leitung [B] wird dem Speichercontroller signalisieren,
dass der E/A Controller antwortet. Falls stattdessen der Speichercontroller
nicht innerhalb der erlaubten Antwortzeit antwortet und das Kommando
für den
E/A Controller ungültig
ist, wird der E/A Controller nicht antworten. Der E/A Controller
wird das ungültiges-Kommando-Flag setzen
und wird Leitung [C] dazu verwenden, dem Speichercontroller zu signalisieren,
dass ein ungültiges
Kommando detektiert wurde.
-
Der
Vorgang für
die Chip Select (CS) betreffenden Kommandos, die wieder für alle Module
gemeinsam sind, so dass diese aus vom Host gesehen als eine einzelne
Karte arbeiten, werden ähnlich
zu den im vorhergehenden Abschnitt beschriebenen für die Kommandos
behandelt, die dazu verwendet werden, eine relative Kartenadresse
(RCA) zu erstellen.
-
Wenn
der Host Daten zum/vom Speichermodul transferiert, kann ein Interrupt
vom E/A Modul auftreten. Um Übertragung
nur während
der gültigen Zeiträume zu ermöglichen,
signalisiert der Speichercontroller dem E/A Controller durch Leitung
[A] die zulässige
Speicherinterruptzeitdauer. Ein Anzeichen für eine Interruptzeitdauer wird
der 'tatsächlichen' Interruptzeitdauer
vorhergehen, was ermöglicht,
dass die Zeitdauer sehr präzise
ist. Dies wird durchgeführt, um
eine Berücksichtigung
für Pfadverzögerung zwischen
dem Speichercontroller zum E/A Controller (durch Pfadverzögerungen,
Verbindungsverzögerungen,
und so weiter) zur Verfügung
zu stellen.
-
Wenn
ein Kommando ein ungültiges-Kommando-Flag
hat, wird das zugehörige
Fehler-Flag in beiden Controllern gesetzt und keiner von beiden wird
antworten. Gemäß den SD
Spezifikationen zeigt die Antwort auf das folgende Kommando das
CRC Fehler-Bit an
und das CRC-Fehler-Flag reagiert mit der folgenden Kommandoantwort
der Karte. Das CRC-Fehler-Flag wird in einem vorgegebenen Controller
in beiden der folgenden Fälle
gelöscht:
1) Der Controller antwortet mit CRC-Fehler, oder 2) während den
Antwortzeiträumen
detektiert der Controller auf Leitung [B] einen Hinweis auf eine
Kommandoantwort vom Controller in der Karte.
-
Falls
ein ungültiges
Kommando von einem der Controller detektiert wird, setzt dieser
sein eigenes ungültiges-Kommando-Flag
und antwortet nicht. Gemäß der SD
Spezifikationen soll die Antwort zum folgenden Kommando den ungültiges-Kommando-Fehler
anzeigen. Daher wird der andere Controller sein ungültig-Flag
auch durch Verwendung von Leitung [C] setzten. Der Controller, dessen
ungültig-Flag
gesetzt wurde, wird Leitung [C] auf "0" setzen.
Der andere Controller wird sein ungültig-Flag im Fall setzten,
wenn Änderung
auf "0" auf Leitung [C] detektiert
wird. Danach verhalten sich beide Controller wie im letzten Abschnitt
beschrieben für
den Fall eines CRC-Fehlers. Auf das ungültiges-Kommando-Flag wird mit der folgenden
Kommandoantwort der Karte geantwortet. Das ungültiges-Kommando-Flag wird in
beiden der Fälle
gelöscht:
1) Der Controller antwortet mit ungültiges-Kommando-Flag oder 2)
Während
der Antwortzeiträume
detektiert Controller auf Leitung [B] einen Hinweis auf eine Kommandoantwort
vom anderen Controller in der Karte. Beide Karten setzen deren Treiber
der Leitung [C] in Eingabemodus, wann immer diese deren ungültiges-Kommando-Flag
löschen.
Ein Satz 'Regeln' für jeden
der Controller für
die Leitung [C] kann zusammengefasst werden wie folgt:
- a) Setze Leitung [C] auf 'low' im Fall, dass dieser sein
eigenes ungültig-Flag
setzt (nachdem ungültiges
Kommando empfangen wurde)
- b) Setze Leitung [C] zurück
(gehe in Eingabemodus), wenn dieser sein eigenes ungültiges Flag löscht.
- c) Setze ungültig-Flag
falls entweder ungültiges Kommando
detektiert wurde ODER Änderung
von "0" auf "1" in Leitung [C] detektiert wurde.
- d) Lösche
ungültig-Flag
falls entweder – Antworten
mit ungültiges-Kommando-Flag
(R1, R5 oder R6 in SD Modus oder R1, R2, R3, R4 oder R5 in SPI Modus)
ODER detektiert CMD RESPOND auf Leitung [B] während des Antwortzeitraumes.