[prev] [up] [next] [main index] [back home]

7. Was beim Entwurf von PCMCIA-Komponenten zu beachten ist


Eine Reihe von Anforderungen an PCMCIA-Komponenten sind recht spezifisch für die PCMCIA-Umgebung. Sie resultieren im wesentlichen aus den Annehmlichkeiten, die der Standard dem Anwender bieten möchte.
Als wichtigste sind zu nennen:


Was nun den Entwurf von PCMCIA-Karten angeht, so gliedern sich die Informationen in drei Gruppen. Es sind dies die allgemeinen, die hardwarebezogenen und die Informationen zur CIS, der inhärenten Beschrei-bung der Karte. Zu allen Gruppen können an dieser Stelle nur schlaglichtartig einige zentrale Aspekte beleuchtet werden, während vieles, was auf dem Wege einer spezifischen Implementation läge (und dann von großer Bedeutung sein könnte) unberücksichtigt bleibt. Wer ein Tabellenwerk für den konkreten Entwurf sucht, ist mit [Mor95] sehr gut beraten; an dieser Stelle möchte ich mich jedoch im wesentlichen den allgemeingültigen Teilen des Standards widmen, um im nächsten Kapitel einen kurzen Überblick über die Leistungen dieser Standardisierung gewinnen zu können.


7.1 Allgemein


Vor Beginn der Entwicklung ist es wichtig festzustellen, mit welchen Hostrechnern die Karte einmal laufen soll. Hiervon können physische (Größe!), elektronische und logische Eigenschaften des Gerätes abhängen.

Weiterhin steht am Beginn des Entwurfes die Feststellung, ob es sich um eine reine Speicherkarte oder um ein I/O-Gerät handeln soll. Während die Nur-Speicher-Karten lediglich zwei Adreßbereiche benötigen (Attribut-speicher und allgemeinen Speicher), müssen I/O-Karten oft drei Adreßbereiche unterstützen - die zwei genannten sowie den I/O-Bereich. Mitunter können Ein-/Ausgabe-Karten auch ohne allgemeinen Speicher auskommen, dann benötigen auch sie wiederum nur zwei Adreßbereiche. Der Attributspeicher jedoch wird (als logischer Adressbereich) jedenfalls immer benötigt.

Um zur PCMCIA Spezifikation 1.0, die einen Standard nur für Speicherkarten definierte, kompatibel zu sein, müssen alle Geräte (auch I/O-Karten) nach einem RESET als Speicherschnittstelle konfiguriert sein.


7.2 Hardware


Stromaufnahme: Folgt man der PCMCIA-Spezifikation, in der beide Vcc -Pins mit 500 mA angegeben sind, so kommt man auf einen "garantierten" Strom von wenigstens 1A. Eine Reihe von Hostsystemen jedoch bleibt in der Stromversorgung weit hierhinter zurück; der "Casio Zoomer" z.B. stellt dem Steckplatz ein Maximum von 50mA zur Verfügung. Um diesem Problem zu begegnen, wurde in PCMCIA '95 die Bestimmung eingeführt, daß eine Karte beim ersten Start nicht mehr als 70mA bei 3,3V bzw. 100mA bei 5V aufnehmen darf. Dies muß genügen, um die CIS auszulesen, die auch Informationen über die Leistungsaufnahme des Gerätes enthält. Host mit geringer Kapazität können so Karten mit zu hoher Leistungsaufnahme erkennen und zurückweisen, ohne daß es zu einem Schaden an Host oder Karte kommt.


7.3 CIS


CIS steht für "Card Information Structure", für jene Datenstruktur also, die möglichst viele für den Einsatz der Karte relevante Informationen enthalten sollte. Die (üblicherweise im Attribut-Speicherbereich der Karte untergebrachte) CIS besteht in der ersten Ebene aus einer einfach verknüpften Liste von sogenannten "Tupeln", die im PCMCIA-Metaformat die Eigenschaften und Fähigkeiten der Karte unter verchiedenen Gesichtspunkten beschreiben. Die PCMCIA hat eine ganze Reihe von Tupel-Typen definiert; einige dienen der Aufnahme von sehr allgemeinen oder herstellerspezifischen Angaben, andere der Beschreibung erweiterter (I/O-) Funktionen, wieder andere werden zur Organisation komplexerer CISs benötigt und eine vierte Gruppe von Tupeln beschreibt sehr detailliert einige Eigenschaften, die für gewisse Gerätetypen (z.B. Modems) spezifisch sind.
Häufig genutzte Tupel-Typen sind z.B.:
Zur exemplarischen Betrachtung folgen hier einige (kurze) Tupelstrukturen...
Die allgemeine Form der Tupelstrukturen ist:

Offset Länge Inhalt
0 1 Tupel-Typ-Code (CISTPL_XXX)
1 1 n: Verknüpfung zum nächsten Tupel (TPL_LINK)
2.. n+2 n [Daten]

Konkrete Beispiele:

Offset Länge Inhalt (Function-ID-Tupel)
0 1 21h: CISTPL_FUNCID = Function-ID-Tupel
1 1 02h: TPL_LINK (Offset d. Folgetupels von d. nächsten Adr. aus)
2 1 06h: TPFID_FUNCTION = LAN-KARTE
3 1 00h: TPFID_SYSINIT = Systeminitialisierungs-Bits - k. Initialg.

Die bisher definierten TPFID_FUNCTION-Codes umfassen folgende Funktionen:

00h - Herstellerspezifische Karte mit mehr als einer Funktion
01h - Speicher
02h - Serielle I/O
03h - Parallele I/O
04h - Laufwerk
05h - Video
06h - LAN
07h - AIMS
08h - SCSI
09h .. FDh - Reseviert
FEh - Herstellerspezifische Funktion
FFh - Reseviert (unzulässig)

Weitere (einfache) Beispiele:

Offset Länge Inhalt (Endemarkierung der Tupelkette)
0 1 14h: CISTPL_NO_LINK = keine weitere Verknüpfung
1 1 00h

Offset Länge Inhalt (Zielmarkierung einer "langen" Verknüpfung)
0 1 13h: CISTPL_LINKTGT = Ziel einer langen Verknüpfung
1 1 03h
2 3 "CIS"

Interessant ist in diesem Zusammenhang noch die Betrachtung der Beschreibung von Multifunktionskarten, die ja für den funktionellen Teil eigentlich pro Funktion jeweils eine gesonderte CIS bereitstellen müssen.
PCMCIA sieht für diesen Fall ein spezielles Tupel zur Kaskadierung von Unterlisten vor; das sogenannte "Langtupel für Mehrfachfunktionskarten" (CISTPL_LONGLINK_MFC) :

Offset Länge Inhalt (Beschreibung von Multifunktionskarten)
0 1 06h: CISTPL_LONGLINK_MFC = Langtupel f. Mehrfachfunktionen
1 1 n: Verknüpfung zum nächsten Tupel (TPL_LINK)
2 1 m: Anzahl der Funktionen [-1] (TPLMFC_NUM)
3 1 Zieladressbereich der ersten Funktion (TPLMFC_TAS1):
0Attributspeicher
1Herkömmlicher Speicher
2..FFhReserviert (unzulässig)
4 4 Zieladr. d. die erste Funkt. beschreibenden CIS (TPLMFC_ADDR1)
8 1 TPLMFC_TAS2
9 4 TPLMFC_ADDR2
... ... ...
5m+3 1 TPLMFC_TASm
5m+4 4 TPLMFC_ADDRm

[prev] [up] [next] [main index] [back home]