35 37 (2)


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


Wyszukiwarka

Podobne podstrony:
357 364
357 Prowadzenie ksiąg rachunkowych po przekształceniu spólki cywilnej w jawną
02 (357)
2013 2014 Informacje ogólne znak wodnyid(357
354 357
357,23,artykul
357 359
356 357

więcej podobnych podstron