ATA-Schnittstelle im Detail

04.12.1999 von Bernhard  Haluschak
Bis zu 100 MByte/s Datenrate verspricht der ATA-6-Standard über die IDE-Schnittstelle. Wer verstehen will, wie diese hohe Geschwindigkeit möglich ist, benötigt detaillierte Kenntnisse über die Anforderungen an den IDE-Port.

Innerhalb der letzten Jahre erfuhr die IDE-Schnittstelle eine Reihe von Neuerungen. Waren die Schlagwörter vor zwei Jahren noch ATA-4 und UltraDMA/33, so sind es heute ATA-6 und UltraDMA/100. Doch welchen Veränderungen die Schnittstelle unterzogen wurde, bleibt meist im Verborgenen. Nur die Spezifikation verrät auf mehreren Hundert Seiten umfassend die vorgenommenen Veränderungen. Sie beschreibt außerdem ausführlich alle mechanischen und elektrischen Anforderungen an das Interface.

Bei UltraDMA/66 und UltraDMA/100 fällt sofort auf: Es ist ein 80- statt bisher 40-poliges Flachbandkabel wie in Bild 1 zu sehen, das die Verbindung zwischen Laufwerk und Mainboard herstellt. Wer jetzt denkt: Performancesteigerung durch breiteren Datenbus, der liegt falsch.

Die Leistungssteigerung erreicht man durch Verkürzen der Zykluszeit, demzufolge hat sich die Frequenz auf dem Übertragungskabel erhöht. Dies erfordert ein spezielles, an die hohen Datenraten angepasstes Kabel. Dabei sind Leitungslängen, elektrische Eigenschaften und Pinbelegung exakt definiert. Erfüllt ein Kabel diese Vorgaben nicht, das heißt es befindet sich außerhalb der Spezifikation, ist ein hundertprozentiges Funktionieren nicht Gewähr leistet.

Für die Hersteller gilt: Erfüllen sie alle geforderten Spezifikationen, die für das Gerät festgelegt sind, ist das Produkt zu denen von anderen Herstellern voll kompatibel.

Die ATA-Spezifikationen werden ständig von einer Arbeitsgemeinschaft von namhaften Firmen weiterentwickelt und verfeinert. Sie passt sich dabei immer dem technologischen Fortschritt an.

ATA-Signalkabel und Stecker

Die IDE-Schnittstelle verwendet seit Einführung des ATA-Standards 1989 zwischen dem IDE-Kontroller und den zwei möglichen Laufwerken ein 40-poliges Flachbandkabel als Verbindung. Dies hat sich mit ATA-5 und UltraDMA/66 erstmals geändert. Auf Grund der nun höheren Datentransferraten, sind die elektrischen Anforderungen an die Signalqualität enorm gestiegen. Jetzt erfolgt der Datenaustausch über ein Kabel mit 80 Adern. Der Stecker und die Buchsen sind unverändert 40-polig. Die zusätzlichen 40 Leitungen sind Masse-Zuführungen und vermindern ein Übersprechen der Signale auf die Nachbarleitungen durch elektromagnetische Wellen. Diese entstehen besonders bei sehr hohen Frequenzen (Datentransfer). Die Abmessungen der Kabel sind im Bild 2 und Tabelle 1 zu sehen:

Länge

Millimeter

Inch

Tabelle 1: Die ATA-Spezifikationen legen die Kabellängen detailliert fest.

L1

457,20 max.

18,00 max.

L2

127,00 min.

5,00 min.

L3

152,40 max.

6,00 max.

Bild 3 zeigt einen nach ATA-5 standarisierten 40-poligen IDE-Stecker. Um beim Aufstecken des Kabels ein Verdrehen zu vermeiden, soll der Pin 20 im Gehäuse verschlossen und in der Steckerwanne entfernt sein. Pin 1 ist so gewählt, dass er wie im Bild 2 immer links ist. Dies soll unabhängig davon sein, wie die Steckerwanne auf der Platine (Oberseite oder Unterseite) aufgelötet ist.

Optional kann ein Verpolungsschutz in Form einer Kodiernase verwendet werden.

Elektrische Parameter

Ebenso wichtig wie die mechanischen sind die elektrischen Parameter der Schnittstelle. Die Vorgaben für das vorgeschriebene Verbindungskabel nach ATA-6 sehen Sie in den folgenden Tabellen:

Wichtige elektrische Parameter der IDE-Schnittstelle.

Parameter

Bedeutung

Min.

Max.

I-OL

Treiberstrom Ausgang: Low

4 mA

--

I-OL DASP

Treiberstrom Ausgang: Low für DASP

12 mA

--

I-OH

Treiberleckstrom Ausgang: High

400 µA

--

I-OH DMARQ

Treiberleckstrom Ausgang: High für DMARQ

500 µA

--

V-iH

Eingangsspannung High

2,0 V

5,5

V-iL

Eingangsspannung Low

--

0,8 V

V-OH

Ausgangsspannung High bei IOH min

2,4 V

--

V-OL

Ausgangsspannung Low bei IOL min

--

0,5 V

S-RISE

Flankensteilheit steigend

--

1,25 V/ns

S-FALL

Flankensteilheit fallend

--

1,25 V/ns

C-host

Kapazitive Last Host

--

25 pF

C-device

Kapazitive Last Gerät

--

20 pF

Erweiterte elektrische Parameter für UltraDMA-Modes größer 4.

Parameter

Bedeutung

Min.

Max.

VDD

Versorgungsspannung der Datenleitungen

3,3 V-8%

3,3 V-8%

S-RISE2

Flankensteilheit steigend für DD und STROBE

0,4 V/ns

1,0 V/ns

S-FALL2

Flankensteilheit fallend für DD und STROBE

0,4 V/ns

1,0 V/ns

C-device2

Kapazitive Last Gerät

--

17 pF

Die Betriebsspannungen

Die Spannungsversorgung der Laufwerke ist im ATA-Standard exakt festgelegt. Es ist ein vierpoliger Stecker wie in Bild 4 zu verwenden, der verpolungssicher aufgebaut ist und die in Tabelle 3 gezeigte Pinbelegung hat:

Pin

Leitung

Tabelle 3: Pinbelegung des Power-Steckers.

1

+12V

2

Masse +12V

3

Masse +5V

4

+5V

Pinbelegung der ATA-Schnittstelle

Der ATA-Standard legt die Signal-Bezeichnung größtenteils durch Akronyme in Großbuchstaben fest. Die standardisierten Kürzel ersetzen den langen Signalnamen, der im technischen Bereich unüblich ist. In Bild 5 sind alle Signale nach dem ATA-/ATAPI -5 Standard aufgelistet. Die mit einer Raute (#) gekennzeichneten Signale sind low-aktiv . Die Datenrichtung, Eingang (E), Ausgang (A) oder bidirektional (E/A) ist vom Laufwerk als Quelle aus gesehen.

Jumper der ATA-Schnittstelle

Zwischen dem Stromversorgungsstecker und der 40-poligen Schnittstelle befinden sich Konfigurations-Jumper. Diese Steckbrücken ermöglichen es, die Festplatte als Master oder Slave im System zu konfigurieren. Die SSF-Organisation hat die Funktionen der Jumper in zwei verschiedenen Standards SSF8057 und SSF8058 festgelegt.

Die Tabelle 4 zeigt die Jumperfunktion einer Festplatte nach SSF8057:

Jumper

Funktion

Tabelle 4: Jumperfunktionen nach SSF8057.

E-F

CSEL

G-H

Master

G-H und E-F

Master mit Slave

kein Jumper

Slave

A bis D

herstellerspezifisch

I

reserviert

J

nicht vorhanden

Die zweite Möglichkeit einer Jumperbelegung ist im SSF8058-Standard festgelegt. Die Tabelle 5 zeigt die Funktion der Jumper nach dieser Norm.

Jumper

Funktion

Tabelle 5: Jumperfunktion nach SSF8058

A-B

CSEL

C-D

Slave

E-F

Master

Auf den folgenden drei Seiten ist eine detaillierte Übersicht über die Funktion der einzelnen Signalleitungen zu sehen. Die mit einer Raute (#) versehenen Signale sind low-aktiv. Die Klammern beinhalten den vollständigen Namen, die Nummer des Pins und die Datenrichtung.

ATA-Signalübersicht Teil I

#CBLID

[Cable Identifier / Pin34 / Laufwerk->Host]

Mit dieser Leitung kann der Host in der Einschaltphase erkennen, ob ein 80-poliges Kabel für den UltraDMA/66-Modus angeschlossen ist. Er fragt dazu den Status der Leitung nach dem Einschalten der Laufwerke ab. Liegt das Signal auf Masse, so geht der Host davon aus, dass ein 80-poliges Kabel angeschlossen ist. Voraussetzung: Das Gerät muss mindestens den ATA-3-Standard erfüllen.

#CS0, #CS1

[Chip Select 0,1 / Pin 37,38 / Host->Laufwerk]

Diese Signale werden direkt aus den ISA-Busadressen über eine Decoderschaltung erzeugt. Das #CS0-Signal steuert das Command-Block-Register und das #CS1-Signal das Control-Block-Register.

Die Befehlseinheit sendet Kommandos zum Laufwerk und erhält den Status des Eintrages zurück. Folgende Register bilden den Commando-Block: Cylinder High, Cylinder Low, Device Head, Head, Sector Count, Sector Number, Command, Status, Features, Error und Daten.

Die Kontrolleinheit übernimmt die Laufwerksansteuerung und meldet den aktuellen Status an den Host zurück. Der Block beinhaltet das Laufwerks-Control- und das Alternate-Status-Register.

CSEL

[Cable Select / Pin28 / Laufwerk->Host]

Mit der Cable-Select-Leitung kann der Host erkennen, ob zwei angeschlossene Laufwerke als Master oder Slave arbeiten. Um diese Funktion zu nutzen, ist ein spezielles Kabel mit kodierter CSEL-Leitung notwendig. Falls CSEL am Laufwerk ist, fungiert es als Master. Ist CSEL nicht angeschlossen (high), arbeitet es als Slave angesprochen. Voraussetzung für diese automatische Erkennung ist, dass die Laufwerke die Jumperstellung CSEL unterstützen.

DA(2:0)

[Device Address / Pin 33, 35, 36 / Host->Laufwerk]

Auf diesen Leitungen werden 3-Bit-Adressen verschickt, mit denen der Host Zugriff auf den Steuer- oder Kommandoregisterblock des Gerätes hat.

#DASP

[Device Active Slave Present / Pin 39 / Laufwerk->Host]

Das #DASP-Signal ist für zwei Funktionen zuständig. Mit einem Low-Pegel zeigt es an, ob ein Slave-Laufwerk am Host angeschlossen ist. Das Erkennen des zweiten Laufwerkes erfolgt nach dem Einschalten des Hosts oder einem Reset. Das Slave-Laufwerk muss dann innerhalb von 400 ms die #DASP-Leitung aktivieren, um dem Host seine Anwesenheit mitzuteilen.

Das Setzen des Signals im laufenden Betreib bedeutet dagegen, dass ein Laufwerk (Master oder Slave) aktiv ist. Die Auswertung dieser Leitung nutzt man, um Festplattenaktivität über eine HDD-Status-LED an der Gehäusefrontseite anzuzeigen.

ATA-Signalübersicht Teil 2

DD0-DD15

[Device Data / Pin 3-18 / bidirektional]

Diese Leitungen bilden ein 16-Bit-breites bidirektionales Daten-Interface zwischen dem Host und dem angeschlossenen Laufwerk. Ein Registertransfer zum Kommando- oder Steuerregister nutzt dabei nur die ersten 8 Bit (Low Byte), während ein Datentransfer alle 16 Leitungen benötigt.

#DDMARDY, DSTROBE

[Device DMA Ready , Device Strobe / Pin27 / Laufwerk->Host]

#DDMARDY ist eine Leitung zur Datenflusskontrolle während eines UltraDMA-Data-Out-Bursts. Ist die Leitung gesetzt, signalisiert das Gerät dem Host, dass es bereit ist, Daten zu empfangen. Das Gerät kann die Leitung während eines Datenbursts auf Low legen, um eine Übertragungspause zu erzwingen.

DSTROBE ist ein Trigger-Signal des Laufwerks für einen UltraDMA-Data-In-Burst. Der Host veranlasst das Gerät, mit beiden Signalflanken die Daten zu lesen. Schickt das Laufwerk keine Strobe-Signale, initiiert es damit eine Pause.

#DIOR

[Device I/O Read / Pin 25 / Host->Laufwerk]

Mit #DIOW zeigt der Host an, dass er Daten aus den Registern liest. Diese Handshake -Leitung wird im UltraDMA-Modus zu #HDMARDY oder HSTROBE.

#DIOW

[Device I/O Write / Pin 23 /Host->Laufwerk]

Mit dem #DIOW-Strobe-Signal kann der Host Daten zu den Datenregistern schicken. Diese Leitung dient vorwiegend zur Datenflusskontrolle für einen Schreibzugriff zwischen Host und Gerät. Wie beim IORDY-Signal, ändert sich die Signalbedeutung im UltraDMA-Modus von #DIOW zu STOP.

#DMACK

[Direct Memory Access Acknowledge / Pin 29 / Host->Laufwerk]

Der Host benutzt dieses Handshake-Signal in Verbindung mit DMARQ, um ein DMA-Datentransfer zu bestätigen.

DMARQ

[Direct Memory Access Request / Pin 21 / Laufwerk->Host]

Die Leitung wird für den DMA-Datentransfer zwischen Host und Laufwerk benutzt. Das Gerät setzt die Signalleitung, wenn es bereit ist, Daten von oder zum Host zu übertragen. DMARQ steuert in Verbindung mit #DMACK den Datenaustausch im DMA-Modus.

#HDMARDY, HSTROBE

[Host DMA Ready , Host Strobe / Pin25 / Host->Laufwerk]

#HDMARDY ist eine Leitung zur Datenflusskontrolle während eines UltraDMA-Data-In-Bursts. Ist die Leitung gesetzt, signalisiert der Host dem Gerät, dass er bereit ist, Daten zu empfangen. Der Host kann das Signal während eines Datenbursts auf Low legen, um eine Übertragungspause zu erzwingen.

HSTROBE ist ein Trigger-Signal des Hosts für einen UltraDMA-Data-Out-Burst. Der Host veranlasst das Gerät, mit beiden Signalflanken die Daten zu lesen. Schickt der Host keine Strobe-Signale, initiiert er damit eine Pause.

ATA-Signalübersicht Teil 3

INTRQ

[Interrupt Request / Pin 31 / Laufwerk->Host]

Ein ATA-Laufwerk kann mit diesem Signal einen Interrupt beim Host auslösen. Bei Datenübertragungen geschieht es vor jedem Blocktransfer. Die Festplatte zwingt den Host so, die Daten zu empfangen. Bei einem DMA-Transfer verwendet das Laufwerk die Interrupt-Leitung lediglich zur Bestätigung der Übertragung.

#IOCS16

[I/O Cable Select 16 Bit / Pin 32 / Laufwerk->Host]

Dieses Signal meldet dem Host, dass ein 16-Bit-Datentransfer auf den Datenleitungen DD0 bis DD15 erfolgt, andernfalls findet ein 8-Bit-Datentransfer auf DD0 bis DD7 statt. Eine DMA-Übertragung kann nur in 16-Bit-Breite ausgeführt werden.

IORDY

[I/O Ready / Pin 27 / Laufwerk->Host]

Das optionale Leitungssignal zeigt dem Host mit einem Low-Pegel an, dass für den aktuellen I/O-Zyklus zusätzliche Taktzyklen notwendig sind. Viele IDE-Laufwerke besitzen diese Signalleitung nicht und legen sie deshalb ständig auf einen High-Pegel.

Bei einem UltraDMA-Zugriff ändert sich die Bedeutung des Signals. Je nach Zugriffsart lautet dann der Signalname #DDMARDY oder DSTROBE.

KEYPIN

[Keypin / Pin 20]]

Der KEYPIN ist eine Kodierung des Steckers, um den IDE-Port vor Verpolung zu schützen. Beim Stecker fehlt der Stift für Pin 20 und auf der Buchsenseite ist die Öffnung auf Position 20 verschlossen.

#PDIAG

[Passed Diagnostic / Pin 34 / Laufwerk->Laufwerk]

Dieses Signal wird für den Selbsttest der Festplatte(n) verwendet. Sind zwei Laufwerke im Rechner eingebaut, liefern beide die Informationen über das Ende des Selbsttests an den Host. Im Host findet eine Oder-Verknüpfung dieser beiden Laufwerkssignale statt. Erst wenn der Selbsttest erfolgreich abgeschlossen ist, dürfen die Festplatten Daten senden oder empfangen.

#RESET

[Reset / Pin 1 / Host->Laufwerk]

Das Reset-Signal muss mindestens 25µs auf der Leitung aktiv sein und setzt das Laufwerk in den Einschaltzustand zurück. Alle Datentransfers werden unterbrochen und die Datenregister der Festplatte gelöscht.

Nach dem Reset und anschließender Initialisierungsphase ist das Laufwerk wieder betriebsbereit.

STOP

[Stop / Pin23 / Host->Laufwerk]

Bevor der Host einen UltraDMA-Datentransfer durchführt, muss die Leitung auf Low liegen. Setzt der Host das Signal während eines UltraDMA-Zugriffs auf High, leitet er somit das Ende dieses Burstzyklus ein. (hal)