ATA (technologia) - Google

ATA (technologia)

Z Wikipedii

Skocz do: nawigacji, szukaj
Złącze ATA.
Złącze ATA.

ATA (ang. Advanced Technology Attachments) - interfejs systemowy w komputerach klasy PC i Amiga przeznaczony do komunikacji z dyskami twardymi zaproponowany w 1983 przez firmę Compaq. Używa się także skrótu IDE (zamiennie z ATA), od 2003 roku (kiedy wprowadzono SATA) standard ten jest określany jako PATA (od "Parallel ATA").

Standard ATA nie jest już rozwijany w kierunku zwiększania szybkości transmisji. Początkowo stosowano oznaczenia ATA-1, -2 itd., obecnie używa się określeń związanych z zegarem przepustowością interfejsu (ATA/33, ATA/66, ATA/100, ATA/133).

Spis treści

[edytuj] Opis złącz

Pin Oznaczenie Kierunek Opis Pin Oznaczenie Kierunek Opis
1 -RESET -> Sprzętowa inicjacja (RESET) dysku stałego 2 GND Masa
3 DD7 <-> Systemowa szyna danych dla dysku stałego 4 DD8 <-> Szyna dwukierunkowa do przesłań pomiędzy procesorem, a dyskiem stałym
5 DD6 <-> Szyna dwukierunkowa do przesłań pomiędzy procesorem, a dyskiem stałym 6 DD9 <-> Szyna dwukierunkowa do przesłań pomiędzy procesorem, a dyskiem stałym
7 DD5 <-> Szyna dwukierunkowa do przesłań pomiędzy procesorem, a dyskiem stałym 8 DD10 <-> Szyna dwukierunkowa do przesłań pomiędzy procesorem, a dyskiem stałym
9 DD4 <-> Szyna dwukierunkowa do przesłań pomiędzy procesorem, a dyskiem stałym 10 DD11 <-> Szyna dwukierunkowa do przesłań pomiędzy procesorem, a dyskiem stałym
11 DD3 <-> Szyna dwukierunkowa do przesłań pomiędzy procesorem, a dyskiem stałym 12 DD12 <-> Szyna dwukierunkowa do przesłań pomiędzy procesorem, a dyskiem stałym
13 DD2 <-> Szyna dwukierunkowa do przesłań pomiędzy procesorem, a dyskiem stałym 14 DD13 <-> Szyna dwukierunkowa do przesłań pomiędzy procesorem, a dyskiem stałym
15 DD1 <-> Szyna dwukierunkowa do przesłań pomiędzy procesorem, a dyskiem stałym 16 DD14 <-> Szyna dwukierunkowa do przesłań pomiędzy procesorem, a dyskiem stałym.
17 DD0 <-> Szyna dwukierunkowa do przesłań pomiędzy procesorem, a dyskiem stałym 18 DD15 <-> Szyna dwukierunkowa do przesłań pomiędzy procesorem, a dyskiem stałym
19 GND Masa 20 Złącze nie wykorzystane
21 DMARQ <- żądanie przesyłania w trybie DMA 22 GND Masa
23 -DIOW -> Przepisanie zawartości linii danych DDx do wybranego rejestru napedu 24 GND Masa
25 -DIOR -> Przepisanie zawartości wybranego rejestru napędu na line danych DDx 26 GND Masa
27 IORDY <- Sygnał gotowości urządzenia wejścia/wyjścia tylko w trybie PIO 3,4 28 CSEL -> wybór napędu master/slave za pomocą kabla (ustawia się to za pomocą zworki-z tyłu napędu)
29 -DMACK -> Sygnał przyjęcia żądania DMA przez hosta 30 GND Masa
31 INTRQ <- żądanie obsługi przerwania(znaczenie tylko jeśli jest wykorzystywany system przerwań) 32 IOCS16 obecnie pin przestarzały - był zdefiniowany w specyfikacji ATA-2
33 DA1 -> Linia adresowa używana do adresowania rejestrów napędu 34 -PDIAG <- Sygnalizuje zakończenie inicjacji drugiego dysku
35 DA0 -> Linia adresowa używana do adresowania rejestrów napędu 36 DA2 -> Linia adresowa używana do adresowania rejestrów napędu
37 -CS0 -> Umożliwia komunikację z rejestrami komend 38 -CS1 -> Umożliwia komunikację z rejestrami kontrolnymi
39 -DASP <- Informuje pierwszy dysk fizyczny(MASTER) o obecności drugiego dysku(SLAVE) 40 GND Masa

- oznacza negację pinów

->pin ustawia host

<-pin ustawia napęd

<-> pin dwukierunkowy: kierunek zależny od operacji

W dyskach dla notebooków stosowane są cztery dodatkowe piny:

Pin Funkcja Pin Funkcja
41 +5VDC (logic) 42 +5VDC (motor)
43 GND 44 Type (0==ATA)

Widok złącza PATA dysku dla notebooków. X oznacza pin nr 1

.....................x ..
............ ......... ..

[edytuj] Opis Rejestrów napędów ATA

Ogólnie można wyróżnić dwa rodzaje napędów ze złączem ATA:

  1) dyski twarde - czyli urządzenia które nie obsługują komend pakietowych
  2) napędy optyczne CD/DVD - czyli urządzenia które obsługują komendy pakietowe

Rejestry dla urządzeń 1)

Adres ----- ----- ----- ----- Funkcje -----
!CS0 !CS1 DA2 DA1 DA0 Odczyt  !DIOR Zapis  !DIOW
Rejestry kontrolne
N A N x x Zwolniony Nieużywany
N A A N x Zwolniony Nieużywany
N A A A N Alternate Status Device Control
N A A A A Przestarzały Nieużywany
Rejestry komend
A N N N N Data Data
A N N N A Error Features
A N N A N Sector Count Sector Count
A N N A A LBA Low LBA Low
A N A N N LBA Mid LBA Mid
A N A N A LBA High LBA High
A N A A N Device Select Device Select
A N A A A Status Command
A A x x x Zwolniony Nieużywany

Rejestry dla urządzeń 2)

Adres ----- ----- ----- ----- Funkcje -----
!CS0 !CS1 DA2 DA1 DA0 Odczyt  !DIOR Zapis  !DIOW
Rejestry kontrolne
N A N x x Zwolniony Nieużywany
N A A N x Zwolniony Nieużywany
N A A A N Alternate Status Device Control
N A A A A Przestarzały Nieużywany
Rejestry komend
A N N N N Data Data
A N N N A Error Features
A N N A N Interrupt Reason Sector Count
A N N A A * *
A N A N N Byte Count Low Byte Count Low
A N A N A Byte Count High Byte Count High
A N A A N Device Select Device Select
A N A A A Status Command
A A x x x Zwolniony Nieużywany

A= sygnał ustawiony (logiczna 1)

N=sygnał zanegowany (logiczne 0)

x=stan dowolny (0 lub 1)

Rejestrów o nazwie Zwolniony, Przestarzały, Nieużywany nie należy używać

!CS0,!CS1 – oznacza negację pinów to oznacza że w rzeczywistości (na interfejs ATA) należy podawać wartości zanegowane z tabeli (tam gdzie A podawać N,tam gdzie N podawać A)

" * " rejestr używany przez dyski twarde(urządzenia nie obsługujące komend pakietowych) Rejestr nie używany przez napędy CD/DVD (urządzenia obsługujące komendy pakietowe)


REJESTRY KONTROLNE Alternate Status

  • ZASTOSOWANIE: odczyt podstawowych informacji o stanie urzÄ…dzenia bez kasowania obsÅ‚ugi przerwania
  • rejestr tylko do odczytu , w czasie zapisu dane trafiajÄ… do Device Control
  • kiedy bit BSY=1 wtedy inne bity z tego rejestru nie powinny być interpretowane,zawartość tego rejestru nie jest prawdziwa gdy urzÄ…dzenie jest w trybie uÅ›pienia
  • odczyt tego rejestru nie spowoduje skasowania obsÅ‚ugi przerwania
  • zawartość tego rejestru jest identyczna z zawartoÅ›ciÄ… rejestru Status

Device Control

  • ZASTOSOWANIE: rejestr ten umożliwia wykonanie programowego resetu oraz włączenie obsÅ‚ugi przerwania
  • rejestr jest tylko do zapisu, w czasie odczytu jest to Alternate Status
  • rejestr powinien być zapisywany tylko gdy DMACK=0
  • zawartość tego rejestru bÄ™dzie zinterpretowana przez napÄ™d od razu po jego zapisaniu
Bity 7 6 5 4 3 2 1 0
Opis HOB r r r r SRST nIEN 0

-HOB (HighOrderByte)znaczenie tylko w przypadku dysków twardych -adres LBA 48 bitowy- gdy HOB=0 to napęd interpretuje młodszą część (0-23) adresu LBA 48 bitowego, gdy HOB=1 część starszą (24-47)

-r(6:3)(reserved) zarezerwowane

-SRST (SoftwareReSeT) reset programowy napędu

-nIEN (notInterruptENable) bit włącza przerwanie(gdy nIEN=0 i urządzenie jest wybrane) lub wyłącza przerwanie(gdy nIEN=1 lub urządzenie nie jest wybrane)

-Bit 0 zawsze powinien mieć wartość 0


REJESTRY KOMEND Data

  • ZASTOSOWANIE: transfer danych(tylko w trybie PIO), dostÄ™p do rejestrów
  • rejestr ten sÅ‚uży do zapisu lub odczytu
  • dostÄ™p do rejestru powinien odbywać siÄ™ w czasie przesyÅ‚ania danych w trybie PIO, gdy DRQ=1 oraz BSY=0 oraz DMACK=0
  • rejestr 16 bitowy
  • dostÄ™p (odczyt/zapis) do rejestrów jest realizowany wÅ‚aÅ›nie poprzez ten rejestr tylko w trybie PIO; ponieważ rejestry sÄ… 8-bitowe to dane jakie chcemy zapisać(odczytać) do tych rejestrów ustawiamy na części mÅ‚odszej rejestru (Bity DD7-DD0), część starsza nie jest interpretowana; natomiast gdy transferujemy dane z napÄ™du to musimy korzystać z caÅ‚ej szerokoÅ›ci rejestru (Bity DD15-DD0) nie ma możliwoÅ›ci pracy w trybie 8-bitowym.
Bity 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
Opis DD15 DD14 DD13 DD12 DD11 DD10 DD9 DD8 DD7 DD6 DD5 DD4 DD3 DD2 DD1 DD0


Error

  • ZASTOSOWANIE: okreÅ›lenie przyczyny błędu
  • rejestr tylko do odczytu, gdy jest zapisywany dane trafiajÄ… do rejestru Features
  • zawartość rejestru jest poprawna gdy BSY=0 oraz DRQ=0 oraz ERR=1 lub SE=1, po włączeniu zasilania, wykonaniu sprzÄ™towego lub programowego resetu, po wykonaniu komend EXECUTE DEVICE DIAGNOSTICS lub DEVICE RESET zawartość rejestru jest niewÅ‚aÅ›ciwa w trybie uÅ›pienia
Bity 7 6 5 4 3 2 1 0
Opis # # # # # ABRT # #

-# zawartość tych bitów zależy od wykonanej operacji(komendy)

-ABRT (ABoRT) ABRT=1 gdy nastąpiło anulowanie wykonania komendy(na skutek nie właściwej komendy, niewłaściwego parametru w komendzie, błędu odczytu itd.)

Features

  • ZASTOSOWANIE: zależnie od komendy
  • rejestr jest tylko do zapisu, w czasie odczytu jest to Error
  • rejestr powinien być zapisywany tylko gdy BSY=0 oraz DRQ=0 oraz DMACK=0
  • zawartość tego rejestru staje siÄ™ parametrem komendy po zapisaniu rejestru Command
Bity 7 6 5 4 3 2 1 0
Opis # # # # # # # #

-# zawartość tych bitów zależy od komendy


Sector Count / Interrupt Reason

  • ZASTOSOWANIE: zależnie od komendy
  • rejestr jest do zapisu lub odczytu
  • rejestr powinien być zapisywany tylko gdy BSY=0 oraz DRQ=0 oraz DMACK=0, zawartość rejestru jest niepoprawna gdy urzÄ…dzenie jest w trybie uÅ›pienia
  • zawartość tego rejestru staje siÄ™ parametrem komendy po zapisaniu rejestru Command
  • w przypadku dysku twardego jest to rejestr Sector Count ,w przypadku napÄ™du CD/DVD jest to Interrupt Reason w czasie odczytu i Sector Count w czasie zapisu (patrz tabela)
Bity 7 6 5 4 3 2 1 0
Opis # # # # # # # #

-# zawartość tych bitów zależy od komendy

LBA Low

  • ZASTOSOWANIE: zależnie od komendy
  • rejestr jest do zapisu lub odczytu
  • rejestr powinien być zapisywany tylko gdy BSY=0 oraz DRQ=0 oraz DMACK=0, zawartość rejestru jest niepoprawna gdy urzÄ…dzenie jest w trybie uÅ›pienia
  • zawartość tego rejestru staje siÄ™ parametrem komendy po zapisaniu rejestru Command
  • w przypadku napÄ™du CD/DVD rejestr ten nie jest używany
Bity 7 6 5 4 3 2 1 0
Opis # # # # # # # #

-# zawartość tych bitów zależy od komendy

LBA Mid / Byte Count Low

  • ZASTOSOWANIE: zależnie od komendy
  • rejestr jest do zapisu lub odczytu
  • rejestr powinien być zapisywany tylko gdy BSY=0 oraz DRQ=0 oraz DMACK=0, zawartość rejestru jest niepoprawna gdy urzÄ…dzenie jest w trybie uÅ›pienia
  • zawartość tego rejestru staje siÄ™ parametrem komendy po zapisaniu rejestru Command
  • w przypadku dysku twardego jest to rejestr LBA Mid ,w przypadku napÄ™du CD/DVD jest to Byte Count Low
Bity 7 6 5 4 3 2 1 0
Opis # # # # # # # #

-# zawartość tych bitów zależy od komendy

LBA High / Byte Count High

  • ZASTOSOWANIE: zależnie od komendy
  • rejestr jest do zapisu lub odczytu
  • rejestr powinien być zapisywany tylko gdy BSY=0 oraz DRQ=0 oraz DMACK=0, zawartość rejestru jest niepoprawna gdy urzÄ…dzenie jest w trybie uÅ›pienia
  • zawartość tego rejestru staje siÄ™ parametrem komendy po zapisaniu rejestru Command
  • w przypadku dysku twardego jest to rejestr LBA High ,w przypadku napÄ™du CD/DVD jest to Byte Count High
Bity 7 6 5 4 3 2 1 0
Opis # # # # # # # #

-# zawartość tych bitów zależy od komendy

Device Select

  • ZASTOSOWANIE: wybór urzÄ…dzenia master lub slave
  • rejestr jest do zapisu lub odczytu
  • rejestr powinien być zapisywany tylko gdy BSY=0 oraz DRQ=0 oraz DMACK=0, zawartość rejestru jest niepoprawna dla dysku twardego jest w trybie uÅ›pienia, dla napÄ™du CD/DVD jest poprawna w trybie uÅ›pienia
  • bit DEV jest interpretowany natychmiast po zapisaniu,reszta bitów tego rejestru staje siÄ™ parametrem komendy po zapisaniu rejestru Command
Bity 7 6 5 4 3 2 1 0
Opis przestarzały # przestarzały DEV # # # #

-zapis do bitów przestarzałych będzie ignorowany przez napęd

-DEV (DEVice) DEV=0 wybór urządzenia Master, DEV=1 wybór urządzenia Slave

-# zawartość tych bitów zależy od komendy

Status

  • ZASTOSOWANIE: odczyt podstawowych informacji o stanie urzÄ…dzenia oraz kasowanie obsÅ‚ugi przerwania
  • rejestr jest do odczytu, gdy jest zapisywany dane trafiajÄ… do rejestru Command
  • kiedy bit BSY=1 wtedy inne bity z tego rejestru nie powinny być interpretowane,zawartość tego rejestru nie jest prawdziwa gdy urzÄ…dzenie jest w trybie uÅ›pienia
Bity 7 6 5 4 3 2 1 0
Opis BSY DRDY DF/SE # DRQ przestarzały przestarzały ERR/CHK

-BSY (BuSY) informuje, że urządzenie jest zajęte(gdy BSY=1)

-DRDY (DeviceReaDY) informuje o gotowości(gdy DRDY=1) urządzenia

-DF/SE (DeviceFault/StreamError) informuje o błędzie(gdy DF/SE=1); nie wszystkie komendy obsługują(ustawiają) ten bit

-# zawartość zależna od komendy

-DRQ (DataReQuest) informuje o żądaniu(DRQ=1) przesyłania danych z/do napędu

-ERR/CHK (ERRor/CHecK) informuje o wystąpieniu(ERR/CHK=1) błędu

Command

  • ZASTOSOWANIE: rejestr zawiera kod komendy,rejestr ten zapisuje siÄ™ na koÅ„cu(po zapisaniu wszystkich innych rejestrów),po zapisaniu tego rejestru urzÄ…dzenie przystÄ™puje do wykonania komendy a pozostaÅ‚e rejestry przeznaczone do zapisu mogÄ… stać siÄ™ parametrami komendy(zależnie od rodzaju komendy)
  • rejestr jest do zapisu ,gdy jest odczytywany dane reprezentujÄ… zawartość rejestru Status
  • rejestr powinien być zapisywany tylko gdy BSY=0 oraz DRQ=0 oraz DMACK=0
Bity 7 6 5 4 3 2 1 0
Opis # # # # # # # #

-# zawartość tych bitów reprezentuje kod komendy np kod A0(hex) jest komendą identyfikacji urządzenia

[edytuj] Przykłady obsługi urządzenia

Sprzętowy reset

Sprzętowy reset powinien być wykonany co najmniej raz po włączeniu zasilania

Przykład w języku asembler dla mikrokontrolerów AVR:

    Resetdrive:                      
       cbi porte,RESET_              ;ustaw reset(czyli !RESET=0)
         sbi portd,c0                  ;!C0=1->C0=0
         sbi portd,c1                  ;!C1=1->C1=0
         cbi portd,a0                  ;A0=0
         cbi portd,a1                  ;A1=0
         cbi portd,a2                  ;A2=0
         sbi portd,dmack               ;!DMACK=1->DMACK=0
         sbi Porte,dior                 ;!DIOR=1->DIOR=0
         sbi Porte,diow                 ;!DIOW=1->DIOW=0
           Ddra = 0                     ;porta podłączony do pinow DD8-DD15
           Ddrc = 0                     ;portc podłączony do pinów DD0-DD7
             rcall czekaj25us              ;minimum 25us
      sbi porte,RESET_               ;wyzeruj reset(czyli !RESET=1)
             rcall czekaj2ms               ;minimum 2ms
                rcall Read_status_register_bsy0       ;czekaj na BSY=0
    Ret

Po wykonaniu tej procedury można założyć, że urządzenie jest prawidłowo "zresetowane"


Odczyt rejestru Status i oczekiwanie na BSY=0

Po zresetowaniu urządzenie ustawia domyślnie tryb pracy na PIO0. Tryb pracy można zmienić(na PIO0-4,MWDMA0-2 lub UDMA 0-6 ) za pomocą komendy SET FEATURES

Niezbędne opóźnienia są generowane za pomocą instrukcji nop i są poprawne dla trybu PIO0

      Read_status_register_bsy0:
        push GPR
          ldi GPR,0
           Out ddrc , Gpr       ;1 cykl
           Out ddra , Gpr       ;1 cykl;ustawia port danych DD15-DD0 jako wejście
          ldi GPR,0b10111100
           Out portd , Gpr ;bity=>|7-!CS1|6-!CS0|5-DA2|4-DA0|3-DA1|2-!DMACK|1-IORDY|0-DMARQ|
             Petla_stat:
               nop;---czekaj--------------------------70ns min--nop=ok.62,5ns dla zegara 16MHz 
               nop
                  cbi porte,DIOR
               nop;---czekaj---------------------------230ns min
               nop
               nop
               nop
                     in GPR,pinc       ;minęło co najmniej 230ns dane gotowe do odczytu
                     sts Status,GPR
               nop;---czekaj--------------------------- dane muszą być "ustawione" min 60ns 
                  sbi porte,DIOR
               nop;---czekaj---------------------------dane muszą być "przytrzymane" min 30ns 
                   sbrc GPR,7                 ;BSY=? w tej chwili GPR jako STATUS
                     rjmp petla_stat          ;BSY=1
                                              ;BSY=0
        pop GPR
      Ret


[edytuj] Bibliografia

T13/Project 1532D Volume 1 Revision 4b 21 April 2004

T13/Project 1532D Volume 2 Revision 4b 21 April 2004

T13/Project 1532D Volume 3 Revision 4b 21 April 2004


[edytuj] Zobacz też

[edytuj] Linki zewnętrzne


Tomasz Majewski drugi w Dubnicy
Mistrz olimpijski Tomasz Majewski (AZS AWF Warszawa) wynikiem 20,86 zajął drugie miejsce w konkursie pchnięcia kulą w permit mityngu EAA w słowackiej miejscowości Dubnica nad Vahom. Zwyciężył srebrny medalista pekińskich igrzysk Amerykanin Christian Cantwell rezultatem 21,39.
MEJ: złoty medal dla Francuzów
W finałowym meczu mistrzostw Europy w siatkówce juniorów Francuzi pokonali w Brnie Niemców 3:1. Brązowy medal przypadł Rosji po zwycięstwie nad Holandią 3:1.
Seria kontuzji w reprezentacji Włoch
Pomocnik piłkarskiej reprezentacji Włoch, zawodnik AC Milan Gennaro Gattuso doznał podczas niedzielnego treningu kontuzji nadgarstka i nie będzie mógł zagrać w środę w meczu eliminacji mistrzostw świata z Gruzją w Udine.
Puchar Åšwiata w trialu rowerowym: Karol Serwin piÄ…ty
Karol Serwin z Championa Świdnik zajął czwarte miejsce w zakończonej w niedzielę w szwajcarskiej miejscowości Moutier czwartej rundzie Pucharu Świata w trialu rowerowym w kategorii elite 20'. W końcowej klasyfikacji uplasował się na piątej pozycji.
Tour de l'Avenir: Paterski drugi na drugim etapie
Maciej Paterski zajął drugie miejsce na drugim etapie kolarskiego wyścigu Tour de l'Avenir we Francji prowadzącym z Vezelay do Commentry o długości 195,5 km. Zwyciężył Holender Coen Vermeltfoort, a trzeci był Włoch Damiano Caruso.
Linki: Strona g³ówna