Web - Amazon

We provide Linux to the World


We support WINRAR [What is this] - [Download .exe file(s) for Windows]

CLASSICISTRANIERI HOME PAGE - YOUTUBE CHANNEL
SITEMAP
Audiobooks by Valerio Di Stefano: Single Download - Complete Download [TAR] [WIM] [ZIP] [RAR] - Alphabetical Download  [TAR] [WIM] [ZIP] [RAR] - Download Instructions

Make a donation: IBAN: IT36M0708677020000000008016 - BIC/SWIFT:  ICRAITRRU60 - VALERIO DI STEFANO or
Privacy Policy Cookie Policy Terms and Conditions
ATA (technologia) - Wikipedia, wolna encyklopedia

ATA (technologia)

Z Wikipedii

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 napedu na line danych DDx 26 GND Masa
27 IORDY <- Sygnał gotowości urządzenia wejścia/wyścia tylko w trybie PIO 3,4 28 CSEL -> wybór napędu master/slave za pomocą kabla (ustawia sie 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 napedy CD/DVD (urządzenia obsługujące komendy pakietowe)


REJESTRY KONTROLNE


Alternate Status

  • ZASTOSOWANIE: odzczyt 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łaczenie 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 odrazu 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 (odzczyt/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ęsci 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łedu
  • 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, nie własciwego 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 czsie odczytu i Sector Count w czsie 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: odzczyt 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 wejscie
          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       ;minelo 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



Zalążek artykułu To jest tylko zalążek artykułu związanego z informatyką. Jeśli potrafisz, rozbuduj go.

Our "Network":

Project Gutenberg
https://gutenberg.classicistranieri.com

Encyclopaedia Britannica 1911
https://encyclopaediabritannica.classicistranieri.com

Librivox Audiobooks
https://librivox.classicistranieri.com

Linux Distributions
https://old.classicistranieri.com

Magnatune (MP3 Music)
https://magnatune.classicistranieri.com

Static Wikipedia (June 2008)
https://wikipedia.classicistranieri.com

Static Wikipedia (March 2008)
https://wikipedia2007.classicistranieri.com/mar2008/

Static Wikipedia (2007)
https://wikipedia2007.classicistranieri.com

Static Wikipedia (2006)
https://wikipedia2006.classicistranieri.com

Liber Liber
https://liberliber.classicistranieri.com

ZIM Files for Kiwix
https://zim.classicistranieri.com


Other Websites:

Bach - Goldberg Variations
https://www.goldbergvariations.org

Lazarillo de Tormes
https://www.lazarillodetormes.org

Madame Bovary
https://www.madamebovary.org

Il Fu Mattia Pascal
https://www.mattiapascal.it

The Voice in the Desert
https://www.thevoiceinthedesert.org

Confessione d'un amore fascista
https://www.amorefascista.it

Malinverno
https://www.malinverno.org

Debito formativo
https://www.debitoformativo.it

Adina Spire
https://www.adinaspire.com