Odtwarzacz MP3 z układem STA013
45
Elektronika Praktyczna 9/2003
P R O J E K T Y
Odtwarzacz MP3
z układem STA013,
część 2
Opis komunikacji
z†napÍdem CD-ROM
Komunikacja z†napÍdem CD-
ROM odbywa siÍ poprzez rejestry
I/O adresowane przez sygna³y
CS0#, CS1# oraz DA0, DA1, DA2.
عdanie odczytu czy zapisu od-
bywa siÍ odpowiednio za pomoc¹
linii DIOR# i†DIOW#. Wszystkie
sygna³y z³¹cza IDE nie s¹ po-
trzebne, aby odczytaÊ dane z†p³y-
ty. W†odtwarzaczu wykorzystano
te, ktÛrych opisy znajduj¹ siÍ
w†tab. 1.
Sygna³ CS0# aktywuje bank
rejestrÛw komend. Poprzez te re-
jestry wysy³ane s¹ komendy do
napÍdu CD (np. odczyt sektora
czy wysuniÍcie tacki).
Przerobienie komputerowego
napÍdu CD-ROM na
odtwarzacz audio nie jest
zadaniem bardzo trudnym.
Bardziej skomplikowane jest
odtwarzanie plikÛw MP3, ale
przyk³ad YamppÛw dowodzi,
øe jest to takøe moøliwe.
W†artykule przedstawiamy
interesuj¹ce rozwi¹zanie
konstrukcyjne odtwarzacza
MP3, o†doúÊ nietypowej - jak
na polskie warunki -
budowie. W†drugiej czÍúci
artyku³u przedstawiamy
skrÛtowo sposÛb komunikacji
mikroprocesora steruj¹cego
prac¹ odtwarzacza z†napÍdem
CD-ROM.
Rekomendacje: w projekcie
zaprezentowano niebanalne
rozwi¹zanie konstrukcyjne
urz¹dzenia elektronicznego,
g³Ûwnie dziÍki zastosowaniu
oryginalnego zestawu
elementÛw. Jest to projekt
pogl¹dowy, st¹d†pewne
uproszczenia w†jego opisie.
Sygna³ CS1# aktywuje bank
rejestrÛw kontrolnych. Aby stero-
waÊ napÍdem CD, nie ma potrze-
by korzystania z†tych rejestrÛw.
CS1# moøe byÊ ìpodci¹gniÍtyî do
VCC.
Sygna³y DA0...DA2 s¹ sygna³a-
mi adresowymi. Za ich pomoc¹
wybieramy numer rejestru, ktÛry
chcemy odczytaÊ lub zapisaÊ.
Sygna³ INTRQ jest ø¹daniem
przerwania. Jest on aktywowany
m.in. w†momencie np. odczytania
sektora danych z†napÍdu. Aby
korzystaÊ z†napÍdu CD-ROM, syg-
na³ ten nie musi byÊ niewyko-
rzystany.
Sygna³y DD0...DD15 tworz¹ ma-
gistralÍ danych. Kaødy zapis czy
odczyt danych z†CD-ROM-u odby-
wa siÍ poprzez te linie.
Sygna³ DIOR# s³uøy do akty-
wacji odczytu z†magistrali da-
nych, natomiast sygna³ DIOW#
s³uøy do aktywacji zapisu przez
magistralÍ danych. Jednoczeúnie
tylko jeden z†tych sygna³Ûw moøe
byÊ aktywowany.
RESET# jest sygna³em zeruj¹-
cym sterownik.
Adresowanie rejestrÛw CD-
ROM-u odbywa siÍ podobnie do
adresowania oúmiobajtowej pamiÍ-
ci SRAM. W†tab. 2 opisano po-
Tab. 1. Sygnały interfejsu ATA
wykorzystane w odtwarzaczu
Opis sygna³u
Opis sygna³u
Opis sygna³u
Opis sygna³u
Opis sygna³u
Symbol
Symbol
Symbol
Symbol
Symbol
Wybór bloku rejestrów komend
CS0
Wybór bloku rejestrów kontrolnych
CS1
Szyna danych D0...D15
DD0...DD15
Linia adresowa 0
DA0
Linia adresowa 1
DA1
Linia adresowa 2
DA2
¯¹danie przerwania
INTRQ
Odczyt z rejestru
DIOR#
Zapis do rejestru
DIOW#
Sygna³ zeruj¹cy urz¹dzenie
RESET#
Uwaga! Sygna³y ze znakiem # na koñcu s¹
aktywne przy poziomie niskim.
Odtwarzacz MP3 z układem STA013
Elektronika Praktyczna 9/2003
46
szczegÛlne rejestry Bloku Rejest-
rÛw Komend.
Ustawiaj¹c liniÍ CS0# na po-
ziomie niskim oraz podaj¹c adres
na linie DA2...DA0, moøemy od-
czytaÊ lub zapisaÊ dane z/do
dowolnego rejestru poprzez ma-
gistralÍ danych DD15...DD0.
Wszystkie rejestry s¹ 8-bitowe
za wyj¹tkiem rejestru Data, ktÛry
jest 16-bitowy. Podczas operacji
na rejestrach 8-bitowych do prze-
sy³ania danych wykorzystywana
jest tylko mniej znacz¹ca czÍúÊ
magistrali adresowej tzn. DD7...DD0.
Wykrywanie urz¹dzeÒ
ATAPI
Aby wykryÊ, czy do z³¹cza jest
pod³¹czone urz¹dzenie ATAPI, na-
leøy odczytaÊ sygnaturÍ ATAPI.
Gdy BSY=0, moøna odczytaÊ re-
jestry ATAPI Byte Count MSB
i†ATAPI Byte Count LSB. Jeúli
zawartoúÊ pierwszego bÍdzie wy-
nosiÊ 0xEB, a†drugiego 0x14, to do
interfejsu jest pod³¹czone urz¹dze-
nie zgodne ze standardem ATAPI
(w naszym przypadku CD-ROM).
Opis wybranych komend
ATAPI
W†standardzie ATAPI wydawa-
nie komendy odbywa siÍ poprzez
przes³anie do urz¹dzenia tzw. pliku
zadaniowego Task File (8 rejestrÛw
powyøej funkcyjnych, szczegÛ³owo
opisanych w†EP10 i†11/02). Jednak
8†bajtÛw to zbyt ma³o, aby przes³aÊ
dane zwi¹zane z†niektÛrymi ko-
mendami, wiÍc przesy³a siÍ je
w†postaci tzw. pakietÛw. Najpierw
ustawia siÍ rejestry Task File,
a†pÛüniej wysy³a siÍ pakiet danych,
tj. 12 bajtÛw opisuj¹cych czynnoúÊ
do wykonania.
Pakiety wysy³a siÍ wskutek
przes³ania do Task File komendy
ATAPI Packet Command, gdyø za
jej pomoc¹ moøemy odczytywaÊ
sektory z†p³yty. Opis wszystkich
rodzajÛw pakietÛw wykracza³by
poza ramy artyku³u, wiÍc skupi-
my siÍ tylko na najwaøniejszych
z†punktu widzenia odtwarzacza
Tab. 2. Funkcje rejstrów komend
CS1#
CS1#
CS1#
CS1#
CS1#
CS0#
CS0#
CS0#
CS0#
CS0#
DA2
DA2
DA2
DA2
DA2
DA1
DA1
DA1
DA1
DA1
DA0
DA0
DA0
DA0
DA0
DIOR#
DIOR#
DIOR#
DIOR#
DIOR#
DIOW#
DIOW#
DIOW#
DIOW#
DIOW#
1
1
x
x
x
Stan wysokiej impedancji
Nie u¿ywany
1
0
0
0
0
Data
Data
1
0
0
0
1
ATAPI Error
ATAPI Features
1
0
0
1
0
ATAPI Interrupt Reason
1
0
0
1
1
Secztor Number
1
0
1
0
0
ATAPI Byte Count Low
1
0
1
0
1
ATAPI Byte Count High
1
0
1
1
0
ATAPI Drive Select
1
0
1
1
1
ATAPI Status
ATA Command
Tab. 3. Format komendy READ
Offset
Offset
Offset
Offset
Offset
WartoϾ
WartoϾ
WartoϾ
WartoϾ
WartoϾ
Opis
Opis
Opis
Opis
Opis
D³ugoœæ w bajtach
D³ugoœæ w bajtach
D³ugoœæ w bajtach
D³ugoœæ w bajtach
D³ugoœæ w bajtach
0
0xA8
Kod operacji odczytu sektora z p³yty
1
(2048 bajtów danych u¿ytkownika)
1
0
zarezerwowane
1
2
Adres
Logiczny adres sektora do odczytu pocz¹wszy od 0
4
(w formacie
Big Endian)
6
D³ugoæ Liczba sektorów do odczytu
4 (jw.)
10
0
zarezerwowane
2
Tab. 4. Format komendy Read TOC
Offset
Offset
Offset
Offset
Offset
WartoϾ
WartoϾ
WartoϾ
WartoϾ
WartoϾ
Opis
Opis
Opis
Opis
Opis
D³ugoœæ w bajtach
D³ugoœæ w bajtach
D³ugoœæ w bajtach
D³ugoœæ w bajtach
D³ugoœæ w bajtach
0
0x43
Kod operacji odczytu Table Of Contents (TOC)
1
1
0
zarezerwowane
6
7
0x10
1
8
0
zarezerwowane
1
9
0x40
1
10
0
zarezerwowane
2
Tab. 5. Format danych zwracanych przez komendę Read TOC
Offset
Offset
Offset
Offset
Offset
WartoϾ
WartoϾ
WartoϾ
WartoϾ
WartoϾ
Opis
Opis
Opis
Opis
Opis
D³ugoœæ w bajtach
D³ugoœæ w bajtach
D³ugoœæ w bajtach
D³ugoœæ w bajtach
D³ugoœæ w bajtach
0
0x0A
D³ugoæ danych o TOC
2 (pierwszy MSB)
2
?
Numer pierwszej sesji
1
3
?
Numer ostatniej sesji
2
4
0
zarezerwowane
1
5
nieu¿ywane przez oprogramowanie odtwarzacza
6
nieu¿ywane przez oprogramowanie odtwarzacza
7
0
zarezerwowane
1
8
?
Pocz¹tkowy sektor ostatniej sesji
4 (LBA,
pierwszy MSB)
MP3. WyrÛøniamy m.in. dwa ro-
dzaje komend pakietowych: prze-
sy³anie danych do napÍdu i†prze-
sy³anie danych z†napÍdu.
Przesy³anie danych do napÍdu
jest uøywane w†takich komendach
pakietowych jak Set Mode, Seek,
Start/Stop Unit itp. Dane s¹ prze-
kazywane przez kontroler do na-
pÍdu. W†odtwarzaczu nie wyko-
rzystano tego typu komend.
Przesy³anie danych z†napÍdu
do kontrolera nastÍpuje po ko-
mendach takich jak Read, Read
TOC itp. Komendy te przedsta-
wiono poniøej:
komenda READ (12)
Umoøliwia odczyt sektora (lub
kilku sektorÛw) z†napÍdu CD-
ROM. Format komendy przedsta-
wiono w†tab. 3.
komenda Read TOC
Za pomoc¹ tej komendy moøna
odczytaÊ informacje o†liczbie sesji
na p³ycie oraz numer sektora, od
ktÛrego zaczyna siÍ ostatnia sesja.
Format komendy Read TOC przed-
stawiono w†tab. 4.
Komenda Read TOC zwraca
dane w†formacie pokazanym
w†tab. 5.
Leszek Bednarz
Krzysztof Lenard
Wzory p³ytek drukowanych w for-
macie PDF s¹ dostÍpne w Internecie
pod adresem: http://www.ep.com.pl/
?pdf/wrzesien03.htm.