,
ATAPI-specyfikacja standardu. ...ATAPI-specyfikacja standardu. Sterowanie CD-ROM-ów i dysków twardych w praktyce, digital
[ Pobierz całość w formacie PDF ]
K U R S Sterowanie CD−ROM−ów i dysków twardych w praktyce, część 1 Od d³uøszego czasu obserwujÍ rosn¹ce zainteresowanie elektronikÛw wykorzystaniem napÍdÛw CD i†dyskÛw twardych we w³asnych projektach. NajczÍúciej s¹ to pomys³y zbudowania w³asnego odtwarzacza p³yt CD audio lub wykorzystanie dysku twardego jako noúnika dla plikÛw MP3. Niestety, aby tego dokonaÊ, trzeba przebrn¹Ê przez obszern¹†dokumentacjÍ standardu ATAPI oraz interfejsu IDE. ìPrzekopywanieî siÍ przez dostÍpn¹ dokumenta- cjÍ i†wybranie najwaøniej- szych zagadnieÒ zajͳo mi wiele dni. Niewiele przydat- nych informacji moøna znaleüÊ w†Internecie. Ta niekorzystna dla konstrukto- rÛw sytuacja sk³oni³a mnie do napisania tego artyku³u. Jest dla mnie pretekstem do usystematyzowania wczeúniej zdobytej wiedzy, niezbÍdnej do samo- dzielnego przygotowania programu dla mikrokontrolera steruj¹cego napÍdami CD-ROM lub HDD. Mam nadziejÍ, øe artyku³ bÍdzie pomocny wielu z†Was podczas projektowaniu uk³adÛw tego rodzaju. IDE ( Integrated Disc Electronics ) oznacza prosty interfejs umożliwiający dołączenie dysku twardego do magistrali ISA komputera PC. ATA ( AT − Attachment ) jest synonimem IDE, obecnie powszechnie stosowanym przez producentów dysków twardych. Standard ATA opisuje sposób wymiany danych pomiędzy sterownikiem i napędem. nich dostÍp poprzez stosun- kowo ³atwy w†obs³udze 16- bitowy interfejs IDE. W†zaleø- noúci od aplikacji (kompute- ry stacjonarne, przenoúne) i†rozmiaru dysku twardego (2,5î/3,5î) lub CD-ROM-u wyrÛøniamy dwa rodzaje z³¹- czy IDE ( rys. 2 ): - 40-pinowe o†rastrze 2,5mm, - 44-pinowe o†rastrze 2,0 mm (na pinach od 41 do 44 s¹ dodatkowe linie zasilania, sposÛb ich pod³¹czenia zaleøy od typu dysku). Maksymalna d³ugoúÊ kabla ³¹cz¹ce- go kontroler z†napÍdem moøe wynosiÊ 46 cm. Sygna³y steruj¹ce w†IDE Schemat blokowy ilustruj¹cy budo- wÍ typowego dysku twardego przedsta- wiono na rys. 1 . DziÍki temu, øe w†napÍdzie zintegrowano zaawansowane funkcjonalnie uk³ady steruj¹ce odczytem i†zapisem danych, uøytkownik ma do Funkcje sygna³Ûw w†IDE - CS0 - Chip Select 0†- s³uøy do wy- boru rejestrÛw Command Block Re- gisters . - CS1 - Chip Select 1†- s³uøy do wy- boru rejestrÛw Control Block Regis- ters . - DA1/2/3 - linie adresowe s³uø¹ do wyboru jednego z rejestrÛw z†grupy Command lub Control Block Registers - moøliwy jest wiÍc dostÍp do 16 rejestrÛw (osiem z†grupy Control i†osiem z†grupy Command ). - DASP - wyjúcie typu OC, do³¹czane zazwyczaj do VCC poprzez rezystor 10k (nie jest konieczny). Sygnalizu- je aktywnoúÊ urz¹dzenia IDE, lub obecnoúÊ urz¹dzenia pierwszego w†ka- nale IDE. Moøna pod³¹czyÊ diodÍ LED. - DD0...15 - dwukierunkowa szyna da- nych 8- lub 16-bitowa. Do wpisywa- nia danych 8-bitowych wykorzystywa- na jest mniej znacz¹ca czÍúÊ (tylko do wpisywania danych do rejestrÛw). Transmisja ìzwyk³ychî danych odby- wa siÍ tylko w†trybie 16-bitowym. - DIOR ( Device I/O Read ) - opadaj¹ce zbocze sygna³u na tej linii powoduje wyprowadzenie danych przez urz¹dze- Elektronika Praktyczna 7/2002 85 K U R S Tab. 1. Parametry statyczne IDE Opis Min Max wanie danej do dowolnego rejestru powoduje jednoczesne zapisanie rejes- trÛw w†obydwu urz¹dzeniach. Wynika to z†faktu, øe w†IDE nie wystÍpuj¹ specjalne linie adresowe do wyboru jednego z†urz¹dzeÒ Master/Slave , do lub z†ktÛrego chcemy odczytaÊ lub wpisaÊ dane. Adresowanie odbywa siÍ poprzez ustawienie lub wyzerowanie bitu DEV w†rejestrze Device/Head . Gdy DEV=0 , komunikacja odbywa siÍ z† Masterem , a†gdy DEV=1 to ze Sla- vem . I oL Prąd przyjmowany przez bufor wyjściowy (1) 4 mA I oH Prąd oddawany przez bufor wyjściowy 400 µ A V iH Poziom napięcia traktowany jako stan wysoki 2,0 V V iL Poziom napięcia traktowany jako stan niski 0,8 V V oH Napięcie wyjściowe w stanie wysokim (I oH = −400 A) 2,4 V V oL Napięcie wyjściowe w stanie niskim (I oL = 12 mA) 0,5 V Uwagi: 1. Prąd I oL dla DASP powinien wynosić min. 12 mA, aby zapewnić wymagane czasy narastania i opa− dania zboczy. 2. Prąd I oH o wartości 400 A jest niewystarczający w przypadku, gdy DMARQ jest typowo podłączo− ny do masy przez rezystor 5,6 k . Rejestry Rejestry naleø¹ce do tzw. bloku rejestrÛw poleceÒ ( Command Registers ) s³uø¹ do wysy³ania komend dla ste- rownika urz¹dzenia i†odczytywania statusu urz¹dzenia. Rejestry naleø¹ce do tzw. bloku rejestrÛw sterowania ( Control Registers ) s³uø¹ do kontroli parametrÛw urz¹dzenia, oraz do od- czytywania alternatywnego statusu. SposÛb adresowania rejestrÛw pokaza- no w† tab. 4 . Tab. 2. Parametry dynamiczne IDE Opis Min Max t rise Czasy narastania zboczy sygnałów na złączu IDE (1) 5 ns t fall Czasy opadania zboczy sygnałów na złączu IDE (1) 5 ns C in Pojemność wejść urządzenia sterującego (HOSTa) 25 pF C out Pojemność wyjść urządzenia sterującego (HOSTa) 25 pF C in Pojemność obwodów wejściowych 20 pF C out Pojemność obwodów wyjściowych 20 pF Uwagi: 1. t rise i t fall są mierzone pomiędzy 10...90% pełnej amplitudy sygnału przy sumarycznym obciążeniu pojemnościowym 40 pF. Rejestr Alternate Status Adres 6hCS 1h 7 6 5 4 3 2 1 0 BSY DRDY DF DSC DRQ CORR IDXERR DostÍp - tylko odczyt. Uwaga: gdy BSY = 0, moøna od- czytywaÊ resztÍ bitÛw. Uwagi dodatkowe: odczyt rejestru nie powoduje skasowania przerwania od urz¹dzenia IDE ani nie potwierdza przyjÍcia przerwania. Znaczenie poszczegÛlnych bitÛw - takie samo jak dla rejestru Statusu . nie IDE na magistralÍ DD0...15. Natomiast narastaj¹ce zbocze na linii powoduje akceptacjÍ danych po stro- nie hosta. Host nie powinien reago- waÊ na dane wystÍpuj¹ce na magist- rali pomiÍdzy zboczami tego sygna³u. - DIOW - ( Device I/O Write ) - narasta- j¹ce zbocze tego sygna³u powoduje zatrzaúniÍcie danych w†urz¹dzeniu. DopÛki dane nie zostan¹†zatrzaúniÍte sterownik napÍdu nie przywi¹zuje do nich øadnej wagi. - DMACK ( DMA Acknowledge ) - jest sygna³em wykorzystywanym przy transmisji danych z†udzia³em DMA. Jest pozytywn¹ odpowiedzi¹ (potwier- dzeniem) ze strony hosta na ø¹danie DMARQ ze strony CD-ROM-u lub HDD. - DMARQ ( DMA Request ) - sygna³ jest ustawiany przez CD-ROM lub HDD, gdy jest gotowy do transmisji danych w†trybie DMA. W†trybie DMA øaden z†sygna³Ûw CS0/1/2 nie powinien byÊ ustawiony. Dane s¹ transmitowane z†wykorzystaniem ca³ej szerokoúci ma- gistrali DD0...15 (w trybie 16-bito- wym). Kierunek transmisji danych jest ustalany za pomoc¹ sygna³Ûw DIOR, DIOW. - INTRQ ( Interrupt Request ) - zg³osze- nie ø¹dania obs³ugi przerwania. Syg- na³ ten jest ustawiony, gdy urz¹dze- nie jest wybrane i†gdy uk³ad steruj¹- cy (host) skasowa³ bit nIEN w†rejes- trze Device Control . Oczywiúcie, do- ³¹czony napÍd musi ø¹daÊ obs³ugi przerwania. عdanie przerwania na- stÍpuje w†wyniku zakoÒczenia wyko- nywania komendy i†gotowoúci do transmisji danych w†trybie PIO (z wyj¹tkiem pierwszego bloku). Wy- czyúciÊ ø¹danie przerwania moøna za pomoc¹ ustawienia (na ì1î) linii RE- SET , ustawienia bitu SRST w†rejest- rze Device Control , zapisanie do re- jestru Command przez hosta lub od- czytanie rejestru Status przez hosta. - IORDY - sygnalizuje brak gotowoúci urz¹dzenia do przes³ania danych do/ z rejestrÛw urz¹dzenia. Obs³uga tego sygna³u jest wymagana w†trybie pra- cy PIO3. - PDIAG - wyjúcie typu OC, ktÛre na- leøy ìpodpi¹Êî do +5V poprzez re- zystor 10 kΩ . Sygna³ na wyjúciu syg- nalizuje zakoÒczenie autodiagnostyki. - RESET - stan niski zeruje sterownik napÍdu. Rejestr Command Adres 7hCS 2h 7 6 5 4 3 2 1 0 DostÍp - tylko do zapisu. Gdy host prÛbuje odczytaÊ rejestr, odczytywany jest rejestr Statusu . Uwaga: gdy BSY = 0, DRQ = 0 i†DMACK nie jest ustawiony, moøna za- pisywaÊ do tego rejestru. Uwagi dodatkowe: zapis do rejestru powoduje skasowanie przerwania od urz¹dzenia IDE. Znaczenie poszczegÛlnych bitÛw - brak. Adresowanie urz¹dzeÒ IDE (Master/Slave) Gdy do jednego kabla IDE s¹ do- ³¹czone dwa urz¹dzenia (np. dysk twardy i†CD-ROM - rys. 3 ), to wpisy- Rys. 1. Budowa typowego dysku twardego 86 Elektronika Praktyczna 7/2002 K U R S Rys. 2. Sposób wyprowadzenia sygnałów na złącze IDC40 Rejestr Device/Head Adres 6hCS 2h 7 6 5 4 3 2 1 0 Tryb CHS 1 LBA 1 DEV HS3 HS2 HS1 HS0 Tryb LBA 1 LBA 1 DEV LBA(27:24) DostÍp - zapis/odczyt. Uwaga: rejestr moøe byÊ zapisywa- ny tylko, gdy BSY = 0, DRQ = 0 i†DMACK nie jest ustawiony. Uwagi dodatkowe: DEV jest bitem odpowiedzialnym za adres urz¹dzenia. Gdy DEV=0 wybrane jest urz¹dzenie Master , gdy DEV=1 wybrane jest urz¹- dzenie Slave . Gdy bit LBA=0 wybrany jest tryb adresowania CHS, w†przeciwnym wy- padku adresowanie odbywa siÍ za po- moc¹ LBA. Bit 5†powinien byÊ ustawiony ì1î - kompatybilnoúÊ. Rejestr Cylinder High Adres 5hCS 2h 7 6 5 4 3 2 1 0 CHS(Cylinder(15:8)) LBA(Cylinder(23:16)) DostÍp - zapis/odczyt. Uwaga: gdy BSY = 0, DRQ = 0 i†DMACK nie jest ustawiony, moøna za- pisywaÊ do tego rejestru. Uwagi dodatkowe: zapis do rejestru powoduje skasowanie przerwania od urz¹dzenia IDE. Jeøeli w†rejestrze Device/Head bit LBA = 0 (CD-ROM, HDD pracuje wte- dy w†trybie CHS - Cylinder, Head, Sec- tor ), to w†tym rejestrze znajduje siÍ startowy, starszy bajt adresu cylindra - podawany jest przy dostÍpie do da- nych. Jeøeli w†rejestrze Device/Head bit LBA = 1 (CD-ROM, HDD pracuje w†try- bie LBA - Logical Block Address , dane adresowane s¹ w†sposÛb liniowy), w†tym rejestrze znajduj¹ siÍ bity 23...16 adresu LBA. Port Danych Adres brak CS brak 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 Data(15:0) DostÍp - zapis/odczyt. Uwaga: zapis i†odczyt tego portu powinien odbywaÊ siÍ przy ustawionej linii DMACK . Uwagi dodatkowe: rejestr 16-bitowy. Rejestr Error Adres 1h CS 2h 7 6 5 4 3 2 1 0 r UNC MC IDNF MCR ABRT TK0NF AMNF DostÍp - rejestr tylko do odczytu, zapisywanie powoduje zapis do rejest- ru Features . Znaczenie poszczegÛlnych bitÛw: - UNC ( Uncorrectable Data Error ) - b³¹d niemoøliwy do skorygowania; - MC ( Media Change ) - nowy noúnik jest dostÍpny w†napÍdzie; - IDNF ( ID not found ) - ø¹dany sektor danych o†podanym ID nie zosta³ zna- leziony; - MCR ( Media Change Request ) - uøy- wany przez urz¹dzenia z†wymiennym noúnikiem. Ustawienie tego bitu syg- nalizuje, øe urz¹dzenie wykry³o ø¹- danie zmiany noúnika; - ABRT ( Aborted Command ) - wykony- Rejestr Device Control Adres 6hCS 1h 7 6 5 4 3 2 1 0 r r r r r SRST nIEN 0 DostÍp - rejestr tylko do zapisu, w†przypadku odczytu zwracana jest za- wartoúÊ rejestru Alternate Status . Uwaga: zapis powinien odbywaÊ siÍ, gdy DMACK nie jest ustawio- ny. Uwagi dodatkowe: SRST jest bitem, ktÛrego ustawienie powoduje programo- we zerowanie urz¹dzenia. Bit nIEN jest odpowiedzialny za w³¹czenie syg- nalizacji obs³ugi przerwania przez hosta. Rejestr Cylinder Low Adres 4hCS 2h 7 6 5 4 3 2 1 0 CHS(Cylinder(7:0)) LBA(Cylinder(15:8)) DostÍp - zapis/odczyt. Uwaga: gdy BSY = 0, DRQ = 0 i†DMACK nie jest ustawiony, moøna zapisywaÊ/odczytywaÊ do/z tego rejest- ru. Tab. 3. Zestawienie sygnałów interfejsu IDE Sygnał Źródło Typ Pull−up Pull−up Uwagi sterowania na wyjściu hosta przy urządzeniu (patrz uwaga 1) (patrz uwaga 2) (patrz uwaga 2) Uwagi dodatkowe: zapis rejestru po- woduje skasowanie przerwania od urz¹- dzenia IDE. Jeøeli w†rejestrze Device/Head bit LBA = 0†(CD-ROM, HDD pracuje wtedy w†trybie CHS - Cylinder, Head, Sector), to w†tym rejestrze znajduje siÍ starto- wy, m³odszy bajt adresu cylindra - po- dawany jest przy dostÍpie do danych. Jeøeli w†rejestrze Device/Head bit LBA = 1 (CD-ROM, HDD pracuje w†trybie LBA - Logical Block Address , dane s¹ adresowane liniowo), w†tym rejestrze znajduj¹ siÍ bity 15...8 adresu LBA. Reset Host TP DD(15:0) <−> TS 3 DMARQ Device TS 5,6 k Ω PD 4 !DIOR/!DIOW Host TS IORDY Device TS 1,0 k 5 CSEL Host GND 10 k 6 DMACK− Host TP INTRQ Device TS DA (2:0) Host TP !PDIAG Device TS 10 k !CS0 !CS1 Host TP !DASP Device OC 10 k Rejestr Danych Adres 4hCS 0h 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 Data (15:0) DostÍp - do zapisu i†do odczytu Uwaga: gdy BSY = 0, DRQ = 0 i†DMACK nie jest ustawiony, moøna zapisywaÊ/odczytywaÊ do/z tego rejest- ru. Uwagi: 1. TS = trójstanowy, OC = otwarty kolektor, TP = Totem−pole, PU = „podpięcie” do zasilania, PD = „podpięcie” do masy, VS = zależne od producenta. 2. Wszystkie wartości rezystorów są minimalnymi, dopuszczalnymi. 3. Urządzenia nie powinny posiadać rezystora pull−up na DD7. Poleca się by host posiadał rezystor o wartości 10 k Ω „podpięty” do masy. Pozwala to na wykrywanie braku urządzenia podczas inicjali− zacji po włączenia zasilania. 4. Standard ATA−3 definiuje tę linię jako trzystanową, gdy urządzenie nie jest wybrane lub, gdy nie obsługuje DMA. Gdy obsługuje transfer DMA linia powinna być ustawiana na poziomie wysokim lub niskim. 5. Sygnał powinien być używany tylko podczas cyklu DIOR/DIOW w aktualnie wybranym urządzeniu. 6. Linia wykorzystywana jako CSEL. Powinna być podłączona do masy przez hosta. Oba urządzenia (Master/Slave) wymagają rezystora o wartości 10 k Ω Uwagi dodatkowe: zawartoúÊ rejest- ru nie jest waøna, gdy urz¹dzenie jest w†trybie Sleep Mode . Rejestr jest 16- bitowy. (pull−up) dołączanego do zasilania. Elektronika Praktyczna 7/2002 87 K U R S Rys. 3. Możliwe sposoby dołączania napędów do sterownika naleøy zignorowaÊ wartoúÊ pozosta³ych bitÛw (z wyj¹tkiem BSY oczywiúcie). Gdy BSY=0 moøna odczytywaÊ pozosta- ³e wartoúci bitÛw. Uwagi dodatkowe: odczyt tego re- jestru zeruje przerwanie. - BSY - wskazuje na zajÍtoúÊ urz¹dze- nia. Przed zapisem lub odczytem wiÍkszoúci rejestrÛw powinniúmy sprawdzaÊ stan tego bitu. Do tego ce- lu zazwyczaj wykorzystywany jest re- jestr Alternate Status , ktÛry jest zwier- ciadlanym obrazem rejestru Status . Od- czyt tego pierwszego nie powoduje øadnych zmian w†urz¹dzeniu IDE. - DRDY ( Device Ready ) sygnalizuje, øe urz¹dzenie jest w†stanie przyjmowaÊ komendy. - DF ( Device Fault ) wskazuje na uszko- dzenie urz¹dzenia. - DSC ( Device Seek Complete ) g³owice urz¹dzenia zosta³y ustawione na wy- bran¹ úcieøkÍ. - DRQ ( Data Request ), urz¹dzenie jest gotowe do przes³ania porcji danych. - CORR ( Corrected Data ) - wskazuje na wyst¹pienie b³Ídu podczas transmisji da- nych, ktÛry jesteúmy w†stanie poprawiÊ (np. poprzez CRC). Ustawienie tego bitu nie powoduje zakoÒczenia transmisji. - IDX ( Index ) specyficzne dla produ- centa. - ERR ( Error ) wskazuje na wyst¹pienie b³Ídu. B³¹d wyst¹pi³ w†wyniku wy- konania poprzedniej komendy. Trans- misja danych zostanie przerwana. PrzyczynÍ wyst¹pienia tego b³Ídu do- datkowo pokazuje rejestr Error . Pawel Dienwebel pelos@pelos.pl wana komenda zosta³a przerwana z†powodu b³Ídnej instrukcji lub b³Íd- nego parametru - w†przypadku trans- misji danych, porcja danych powinna zostaÊ odrzucona; - TK0NF - úcieøka zerowa nie zosta³a znaleziona podczas rekalibracji urz¹- dzenia; - AMNF - Address Mark Not Found , znacznik adresu nie zosta³ znale- ziony po znalezieniu pola o†poda- nym ID. noúci od trybu - czy ustawiony, lub skasowany bit LBA w†rejestrze Device/ Head - w†rejestrze Sector Number ma- my 8†bitÛw danych CHS lub LBA. Rejestr Status Adres 7hCS 2h 7 6 5 4 3 2 1 0 BSY DRDY DF DSC DRQ CORR IDXERR DostÍp - tylko do odczytu, przy za- pisie zapisywany jest rejestr Command . Uwaga: gdy bit BSY jest ustawiony, Rejestr Features Adres 1h CS 2h 7 6 5 4 3 2 1 0 ZawartoúÊ zaleøna od komendy. Uwaga: rejestr ten nie jest obecnie wykorzystywany. Tab. 4. Funkcje rejestrów I/O oraz przypisane im adresy Adresy Funkcje rejestrów CS0 CS1 DA2 DA1 DA0 Magistrala danych dla Magistrala danych dla Read (DIOR) Write (DIOW) N N x x x Wysoka impedancja Nie używana Rejestr Sector Count Adres 2hCS 2h 7 6 5 4 3 2 1 0 DostÍp - zapis/odczyt. Uwaga: rejestr powinien byÊ zapi- sywany, gdy BSY = 0, DRQ = 0 i† DMACK nie jest ustawiony. Uwagi dodatkowe: rejestr zawiera liczbÍ sektorÛw, ktÛre maj¹ byÊ prze- s³ane/odczytane. Gdy rejestr = 0†wtedy bÍdzie przes³ane 256 sektorÛw. Gdy po transmisji danych w†rejestrze b³ÍdÛw s¹ b³Ídy - w†rejestrze Sector Count znaj- duje siÍ liczba sektorÛw potrzebnych do dokoÒczenia transmisji ø¹danej liczby sektorÛw. Rejestry Control Block N A 0 x x Wysoka impedancja Nie używana N A 1 0 x Wysoka impedancja Nie używana NA 1 1 0 Alternate Status Device Control N A 1 1 1 (uwaga 1) Nie używana Rejestry Command Block A N 0 0 0 Data Data A N 0 0 1 Error Features A N 0 1 0 Sector Count Sector Count A N 0 1 1 Sector Number LBA (7:0) Sector Number LBA (7:0) (uwaga 2) (uwaga 2) A N 1 0 0 Cylinder Low LBA (15:8) Cylinder Low LBA (15:8) (uwaga 2) (uwaga 2) Rejestr Sector Number Adres 3hCS 2h 7 6 5 4 3 2 1 0 Tryb CHS Sektor (7:0) A N 1 0 1 Cylinder High LBA (23:16) Cylinder High LBA (23:16) (uwaga 2) (uwaga 2) A N 1 1 0 Device/Head LBA (27:24) Device/Head LBA (27:24) Sektor (7:0) Tryb LBA LBA(7:0) (uwaga 2) (uwaga 2) LBA(7:0) DostÍp - zapis/odczyt. Uwaga: rejestr powinien byÊ zapi- sywany, gdy BSY = 0, DRQ = 0 i† DMACK nie jest ustawiony. Uwagi dodatkowe: rejestr zawiera pocz¹tkowy adres do medium. W†zaleø- A N 1 1 1 Status Command A A x x x Niedozwolony addres Niedozwolony addres Uwagi: 1. Ten rejestr nie jest stosowany we współczesnych sterownikach napędów. 2. Mapowanie rejestrów w trybie LBA. Oznaczenia stanów na liniach adresowych: A − sygnał ustawiony, N − sygnał zanegowany, x − bez znaczenia 88 Elektronika Praktyczna 7/2002 Sektor (7:0) LBA(7:0) [ Pobierz całość w formacie PDF ] |
Podobne
|