ATA (technologia): Różnice pomiędzy wersjami

[wersja przejrzana][wersja przejrzana]
Usunięta treść Dodana treść
Mały błąd rzeczowy.
Linia 90:
== Opis Rejestrów napędów ATA ==
Ogólnie można wyróżnić dwa rodzaje napędów ze złączem ATA:
# dyski twarde – czyli urządzenia, które nie obsługują komend pakietowych
# napędy optyczne CD/DVD – czyli urządzenia, które obsługują komendy pakietowe
 
Linia 185:
x = stan dowolny (0 lub 1)
 
Rejestrów o nazwienazwach ''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)
 
Linia 230:
* 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-DD0DD7‒DD0), część starsza nie jest interpretowana; natomiast gdy transferujemy dane z napędu to musimy korzystać z całej szerokości rejestru (Bity DD15-DD0DD15‒DD0) nie ma możliwości pracy w trybie 8-bitowym.
{| class="wikitable"
! Bity
Linia 255:
'''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
{| class="wikitable"
Linia 341:
* 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'''
{| class="wikitable"
! Bity
Linia 362:
* 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'''
{| class="wikitable"
! Bity
Linia 379:
 
'''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
{| class="wikitable"
! Bity
Linia 405:
* 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
{| class="wikitable"
! Bity
Linia 428:
-# 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
{| class="wikitable"
Linia 449:
|Opis||#||#||#||#||#||#||#||#
|}
-# zawartość tych bitów reprezentuje kod komendy np. kod A0(hex)0xA0 jest komendą identyfikacji urządzenia
 
== Przykłady obsługi urządzenia ==
''Sprzętowy reset''