background image

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.

background image

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 ModeSeek,
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 ReadRead
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
.