35_37.PDF
(
281 KB
)
Pobierz
Sterownik napędu CD-ROM, część 3 - AVT-5078
Sterownik napędu CD−ROM
P R O J E K T Y
Sterownik napędu
CD−ROM, część 3
AVT−5078
W†trzeciej - przedostatniej
- czÍúci artyku³u
przedstawiamy zagadnienia
zwi¹zane z protoko³em
sterowania prac¹ kontrolera
w†napÍdach
CD-ROM.
Rekomendacje:
prezentacja
o niebagatelnych walorach
praktycznych - na podstawie
tego artyku³u moøna
zaprojektowaÊ w³asny
sterownik HDD/CD-ROM na
mikrokontrolerze AVR.
Zazwyczaj mÛwi siÍ, øe ste-
rownik lub napÍd wyposaøono
w†interfejs ATAPI. Jest to jednak
uproszczenie. ATAPI jest bowiem
protoko³em wymiany danych po-
miÍdzy sterownikiem zintegrowa-
nym na p³ycie komputera a ste-
rownikiem wbudowanym w†na-
pÍd. Z†elektrycznego punktu wi-
dzenia, sterowniki ATAPI i†ATA
s¹ identyczne.
Co to jest ATAPI?
Wymiana danych nastÍpuje tak,
øe po wydaniu specjalnej komen-
dy PACKET musimy wpisaÊ do
rejestru danych 12 bajtÛw plece-
nia ATAPI. W†
tab. 4
przedstawio-
no funkcje rejestrÛw w†urz¹dze-
niu z ATAPI.
Jak widaÊ czÍúÊ rejestrÛw nie
zmieni³a swoich funkcji, ale ca³-
kowicie identyczne z†ATA s¹ tyl-
ko: rejestr kontroli napÍdu, rejestr
danych oraz rejestr wyboru napÍ-
du (bity wyboru g³owicy i†LBA s¹
zastrzeøone).
Rejestr b³ÍdÛw
7
6
5
4
3
2
1
0
Sense key
− ABRT EOM −
Tab. 4. Funkcje rejestrów ATAPI
!CS0 !CS1 Adres Odczyt
Zapis
W†standardzie ATAPI jest bar-
dzo rozbudowany system obs³ugi
b³ÍdÛw. Kody b³ÍdÛw pogrupowa-
no w†3†zestawy -
Sense Key
,
Additional Sense Code
oraz
Ad-
ditional Sense Code Qualifier
.
Dwa ostatnie s¹ dostÍpne poprzez
komendÍ
Request Sense
. Kod b³Í-
du
Sense Key
znajduje siÍ
w†4†starszych bitach rejestru b³Í-
dÛw. W†
tab. 5
zawarto opis ko-
dÛw
Sense Key
.
Rejestr kontrolny
0 1
6 Alternatywny rejestr statusu
Rejestr kontroli napędu
Rejestry komend i danych
1 0
0 Rejestr danych
Rejestr danych
1 0
1 Rejestr błędów
−
1 0
2 Rejestr kontroli przesyłu danych −
1 0
3 −
−
1 0
4 Licznik bajtów (7:0)
Licznik bajtów (7:0)
1 0
5 Licznik bajtów (15:8)
Licznik bajtów (15:8)
1 0
6 Wybór aktywnego napędu
Wybór aktywnego napędu
1 0
7 Rejestr statusu
Rejestr komend
Elektronika Praktyczna 10/2002
35
Sterownik napędu CD−ROM
Licznik bajtÛw
Rejestr ten zawiera informacje
o†liczbie bajtÛw przekazanych z/do
napÍdu. Jeúli nie chcemy okreúliÊ
limitu danych, MUSIMY wpisaÊ
do rejestru wartoúÊ 0. W†innym
przypadku napÍd moøe wykorzys-
taÊ do nastÍpnej komendy wartoúÊ,
jak¹ sam zapisa³ przy wykonywa-
niu poprzedniej (w†specyfikacji nie
ma informacji na ten temat -
sprawdzono to praktycznie).
Tab. 5. Kody Sense Key
Kod Opis
0h Brak dodatkowych informacji
o błędzie/brak błędu
1h Podczas wykonywania komendy
wystąpiły naprawialne błędy
danych
2h Nie gotowy do wykonania tej
operacji
3h Błąd nośnika
4h Błąd sprzętu
5h Błąd w komendzie
6h Ostrzeżenie o zmianie nośnika
lub zerowaniu urządzenia
7h Próba dostępu do danych
chronionych
Bh Komenda anulowana przez
napęd
Rejestr statusu
7 6 5 4 3 2 1 0
BSY DRDY − − DRQ CORR − ERR
Znaczenie poszczegÛlnych bi-
tÛw:
- BSY - znaczenie identyczne jak
w†przypadku ATA,
- DRDY - jw. ale po uruchomie-
niu urz¹dzenia flaga ta ma
wartoúÊ 0 - s³uøy to odrÛønieniu
napÍdu ATA od ATAPI,
- DRQ - ø¹danie transferu danych,
- CORR - wykryto naprawialny
b³¹d danych,
- ERR - b³¹d podczas wykonywa-
nia komendy.
komendÍ ATAPI. Po jej wydaniu
zapisujemy do rejestru danych 12
bajtÛw (6 s³Ûw 2-bajtowych). Oto
przyk³ad komendy
Play
:
Bajt 7 6
4
3
2
1
0
0 47h
1 −
2−
3 początkowe M
4 początkowe S
5 początkowe F
6 końcowe M
7 końcowe S
8 końcowe F
9−
10 −
11 −
Rys. 5. Przykładowy algorytm
wykonywania komendy
Komendy ATAPI
Interfejs ATAPI dopuszcza tyl-
ko kilka komend wykonywanych
w†klasycznym trybie ATA. S¹ to:
Kaøda komenda ma swÛj ze-
staw rekomendowanych kodÛw
b³ÍdÛw: SK, ASC oraz ASCQ.
W†przypadku ostrzeøenia (6h) ko-
menda takøe nie zostaje wyko-
nana:
- ABRT: znaczenie identyczne
jak w ATA - komenda nie
wykonana,
- EOM: wykryto koniec noúnika.
ATAPI Soft reset
Komenda jest odpowiednikiem
bitu SRST w†rejestrze kontrolnym.
NapÍd CD posiada ten bit w†re-
jestrze kontrolnym, ale nie zaleca
siÍ uøywania go.
Kod komendy: 08h
Jak widaÊ w standardzie ATAPI
nie ma ograniczenia liczby para-
metrÛw komendy. Zawsze pierw-
szy bajt zawiera kod komendy.
Dalej panuje znaczenie bajtÛw jest
zaleøne od konkretnej komendy.
Zanim jednak przejdÍ do ich
opisu, omÛwiÍ sposÛb sk³adowa-
nia danych na p³ytach CD-ROM.
Na
rys. 5
przedstawiono przyk³a-
dowy algorytm wykonania ko-
mendy. Waøne jest, aby nie
wydaÊ kolejnej komendy zanim
nie odczytamy/zapiszemy wszyst-
kich bajtÛw, ktÛre wymaga³a po-
przednia.
Identify ATAPI device
Odpowiednik komendy ECh.
WiÍkszoúÊ s³Ûw nie jest wykorzys-
tywana. Zwraca informacje o†ty-
pie urz¹dzenia, moøliwych try-
bach pracy (PIO, DMA itp.) oraz
nazwÍ i†wersjÍ firmware'u (infor-
macje te maj¹ taki sam uk³ad jak
w†ATA). Szerszych informacji mo-
øe dostarczyÊ komenda ATAPI
Inquiry
.
Kod komendy: A1h
Rejestr kontroli
przesy³ania danych
7 6 5 4 3 2 1 0
− IO CoD
S³uøy do programowej kontroli
wymiany danych. Istotne s¹
w†nim dwa najm³odsze bity:
- IO - wskazuje czy transfer da-
nych ma odbyÊ siÍ do napÍdu
(0) czy z†napÍdu (1)
- CoD -
Command_or_Data
-
wskazuje czy napÍd oczekuje na
bajty komendy (1), czy na prze-
s³anie danych (0).
W†rzeczywistoúci nie korzysta
siÍ z†tego rejestru - do poprawnej
komunikacji wystarczy kontrola
flag DRQ oraz BSY.
Organizacja danych na
p³ytach CD
Organizacja danych na p³ytach
nie jest taka sama, jak w†przypad-
ku dyskÛw twardych. Standard
dopuszcza kilka moøliwych typÛw
sektorÛw. W†CD uøywa siÍ dwÛch
sposobÛw adresowania sektorÛw -
LBA oraz MSF. LBA jest jedn¹
32-bitow¹ liczb¹ (w rzeczywistoú-
Standby
Dzia³anie identyczne jak
w†ATA.
Kod komendy: E0h
Packet Command
Jest to ta komenda, dziÍki
ktÛrej moøemy wys³aÊ do napÍdu
36
Elektronika Praktyczna 10/2002
5
Sterownik napędu CD−ROM
Tab. 6. Zestawienie poleceń ATAPI
wraz z kodami
Komendy statusu i informacji
1 TEST UNIT READY
00h
2 REQEST SENSE
03h
3INQUIRY
12h
4 MECHANISM STATUS
BDh
5 READ CDROM CAPACITY
25h
6 READ TOC
43h
7 MODE SENSE
5Ah
Komendy Audio
8 PLAY AUDIO
45h
9 PLAY AUDIO MSF
47h
10 PLAY CD
BCh
Rys. 6. Schemat organizacji zapisu na płycie
11 STOP PLAY
4Eh
12 PAUSE/RESUME
4Bh
ci w†CDROM-ach wykorzystuje
siÍ tylko 24 bity), ktÛra okreúla
numer sektora. Adres MSF sk³a-
da siÍ z†3†liczb: Minut, Sekund
i†Ramek (
Frames
). Na jedn¹ se-
kundÍ przypada 75 ramek, a†na
minutÍ oczywiúcie 60 sekund.
Standard ten pochodzi z†czasÛw,
gdy p³yty uøywa³o siÍ wy³¹cznie
do przechowywania düwiÍku.
Adres fizycznie zapisany w†na-
g³Ûwku kaødego sektora ma for-
mat MSF, a†nie LBA. Dopiero
napÍd przelicza tÍ wartoúÊ.
WiÍkszoúÊ komend operuj¹cych
na adresie sektora posiada znacz-
nik, dziÍki ktÛremu moøemy wy-
braÊ jakiego rodzaju adresowania
chcemy uøywaÊ. Na
rys. 6
przed-
stawiono blokow¹ budowÍ przy-
k³adowej p³yty.
Wszystkie dane s¹ zawarte po-
miÍdzy znacznikami pocz¹tku
i†koÒca p³yty, tzn.
LeadIn
oraz
LeadOut
. Ca³a p³yta jest podzie-
lona na úcieøki. Numer úcieøki
musi siÍ zawieraÊ miÍdzy 1 a 99.
Minimalna d³ugoúÊ úcieøki to 300
sektorÛw.
LeadIn
jest úcieøk¹
0†i†zawiera tzw. TOC (
Table of
Contents
) - tabelÍ zawartoúci. Nie
jest ona dostÍpna z†poziomu ad-
resowania sektorÛw. TOC moøemy
odczytaÊ za pomoc¹ komendy
Read TOC
. Zawsze pierwsze 150
sektorÛw jest pauz¹. W†adresie
LBA pozycjÍ 0 ma pierwszy sek-
tor po obowi¹zkowej pauzie.
W†MSF jest ona uwzglÍdniona,
wiÍc adres pocz¹tkowy to
00:02:00. Zawsze przed zmian¹
typu úcieøki musi wyst¹piÊ pauza.
W†przypadku úcieøek tego samego
typu pauza jest nieobowi¹zkowa
i†zazwyczaj jest zawarta w†koÒ-
cÛwce lub pocz¹tku úcieøki. W†ta-
beli zawartoúci nie ma informacji
o†pauzach. Kaødy sektor posiada
kilka subkana³Ûw. Na 24 bajty
przypada 1†bajt informacji subka-
na³owych, Najwaøniejszy jest ka-
na³ Q†zawieraj¹cy informacje o†ak-
tualnej pozycji oraz pozycji rela-
tywnej do pocz¹tku úcieøki.
W†subkanale P†jest flaga informu-
j¹c¹ o†pauzie. Inne raczej nie s¹
bezpoúrednio przydatne uøytkow-
nikowi.
Najwaøniejsze formaty sektorÛw
to:
Audio
,
Mode 1
oraz
Mode 2
.
Ten ostatni jest rzadko uøywany.
W†trybie 1†sektor sk³ada siÍ z:
- 12-bajtowej ramki synchronizacji,
- 4-bajtowego nag³Ûwka zawieraj¹-
cego informacje o†typie sektora
i†pozycji (MSF),
- 2048 bajtÛw danych,
- oraz 288 bajtÛw zawieraj¹cych
informacje do korekcji b³ÍdÛw
oraz subkana³y.
Tryb drugi jest podobny, ale
nie zawiera ostatnich 288 bajtÛw
- do dyspozycji mamy teoretycz-
nie 2336 bajtÛw danych.
Istniej¹ jeszcze tryby:
Mode 2
Form 1
oraz
Mode 2†Form 2
,
o†ktÛrych dostÍpna dokumentacja
milczy. Pierwszy posiada 2048
bajtÛw, drugi 2324 + 4†wolne.
Oba tryby posiadaj¹ takøe 8-
bajtowy dodatkowy nag³Ûwek, ktÛ-
rego zastosowania nie potrafi³em
rozszyfrowaÊ. W†trybie audio sek-
tor ma 2352 bajty. KolejnoúÊ
bajtÛw jest nastÍpuj¹ca:
- lewy kana³ - m³odszy bajt,
- lewy kana³ - starszy bajt,
- prawy kana³ - m³odszy bajt,
- prawy kana³ - starszy bajt.
W†
tab. 6
zawarto zestawienie
wszystkich komend - zarÛwno
tych narzuconych przez standard
jak i†opcjonalnych. Nie bÍdÍ opi-
sywa³ wszystkich, poniewaø czÍúÊ
Komendy sterujące
13MODE SELECT
55h
14 PREVENT/ALLOW MEDIUM
1Eh
REMOVAL
15 SEEK
2Bh
16 START/STOP UNIT/EJECT
1Bh
Komendy danych
17 READ
28h
18 READ CD
BEh
19 READ CD MSF
B9h
READ HEADER
44h
20 READ SUB−CHANNEL
42h
Komendy opcjonalne
LOAD/UNLOAD CD
A6h
SCAN
BAh
SET CD SPEED
BBh
z†nich jest ma³o przydatna. Opis
pÛl zarezerwowanych w†komen-
dach takøe zostanie pominiÍty -
powinny zawsze mieÊ wartoúÊ 0.
Naleøy pamiÍtaÊ, øe bez wzglÍ-
du na liczbÍ bajtÛw nios¹cych
informacjÍ, polecenie musi za-
wsze mieÊ 12 bajtÛw. Ustawiony
na ì1î bit MSF oznacza, øe
bÍdziemy dokonywaÊ adresowania
w†systemie MSF. Adres zapisuje
siÍ w†miejsce adresu LBA z†tym,
øe najstarszy bajt jest w†tym wy-
padku nieuøywany. RÛwnieø zwra-
cane dane bÍd¹ mia³y postaÊ
MSF. Nie wszystkie komendy pod-
porz¹dkowuj¹ siÍ tej regule -
niektÛre, jak np.
Play MSF
, maj¹
w³asny uk³ad bajtÛw. Ich znacze-
nie i†realizowane funkcje przed-
stawimy w†artykule za miesi¹c.
Micha³ Wysocki
mwsoft@satkabel.com.pl
Wzory p³ytek drukowanych w for-
macie PDF s¹ dostÍpne w Internecie
pod adresem:
http://www.ep.com.pl/
?pdf/pazdziernik02.htm
oraz na p³ycie
CD-EP10/2002B w katalogu
PCB
.
Elektronika Praktyczna 10/2002
37
Plik z chomika:
IZOPROPYL
Inne pliki z tego folderu:
Wentylatory.pdf
(1666 KB)
Star Wars. Katalizator. Wprowad - James Luceno.pdf
(1665 KB)
Gordon R. Dickson - Smoczy rycerz T2.pdf
(1663 KB)
LOKOMOTYWA TOWAROWA EMD JT42CWRM(Class66).pdf
(1662 KB)
Greer Luanshya - Kto sieje wiatr 02 - Po burzy spokój.pdf
(1660 KB)
Inne foldery tego chomika:
- - 2025--FULL---
- - 2024 FILMY NOWE
- WIN DROID IOS - HASŁO ARHIWÓW I FOLD - 1111
█ DUŻY MIX █
12.000 FILMÓW
Zgłoś jeśli
naruszono regulamin