2

Click here to load reader

REALIZACIJA I2S/SPDIF PRETVARANJA PCM AUDIO TOKA NA 32, 44.1 ILI 48 KHZ U REALNOM VREMENU SA REGULACIJOM UČESTANOSTI

Embed Size (px)

Citation preview

Page 1: REALIZACIJA I2S/SPDIF PRETVARANJA PCM AUDIO TOKA NA 32, 44.1 ILI 48 KHZ U  REALNOM VREMENU SA REGULACIJOM UČESTANOSTI

8/14/2019 REALIZACIJA I2S/SPDIF PRETVARANJA PCM AUDIO TOKA NA 32, 44.1 ILI 48 KHZ U REALNOM VREMENU SA REGULACI…

http://slidepdf.com/reader/full/realizacija-i2sspdif-pretvaranja-pcm-audio-toka-na-32-441-ili-48-khz-u-realnom 1/2

 

REALIZACIJA I2S/SPDIF PRETVARANJA PCM AUDIO TOKA NA 32, 44.1 ILI 48 KHZ UREALNOM VREMENU SA REGULACIJOM UČESTANOSTI

Nikica Bandić ,Miroslav Novta, Fakultet Tehnič kih Nauka, Katedra za rač unarsku tehniku

Sadržaj - U radu je dat prikaz softverske realizacije

regulacije usklañ enosti ulazne I 2S serijske sprege sa

izlaznom SPDIF spregom prilikom pretvaranja PCM povorke

bita uč estanosti odabiranja 32, 44.1 ili 48 kHz u realnom

vremenu na digitalnom procesoru MAS 3587F.

1. UVODRešenje je razvijeno i ispitano u stvarnom radnom

okruženju gde ovaj procesor ima ulogu da u realnom

vremenu pretvara ulazni PCM tok koji stiže u obliku blokova

odbiraka na ulazni serijski port u neprekinuti izlazni. MAS

3587F treba da preko ulaznog I2S interfejsa prima audio tok i

pretvara ga u SPDIF izlazni audio tok. Problem koji se ovde javlja je to što kontroler koji šalje ulazni audio tok direktno

kontroliše rad ulazne I2S sprege u MAS procesor i samim tim

punjenje ulaznog memorijskog bafera. Sa druge strane

izlaznu SPDIF spregu kontroliše radni takt MAS procesora

čime se otvara mogućnost male, ali ipak dovoljne, razlike u

taktu izmeñu kontrolera i MAS procesora što će posle

izvesnog vremena dovesti do prepisivanja podataka u

ulaznom baferu. Zbog toga je implementirana softverska

realizacija nadgledanja rada sprege i finim podešavanjem

osnovnog radnog takta procesora MAS 3587F.

2. REALIZACIJA PROGRAMSKOG MODULA I

PRINCIP RADAMAS 3587F prihvata podatke preko I2S ulazne sprege u

blokovima podataka od po 64, 88.2 ili 96 PCM odbiraka na

svakih 1 ms pošto ulazni PCM audio tok može da dolaziodabiran na 32, 44.1 ili 48 kHz.

Slika 1.

SPDIF izlazna sprega se startuje kada se ulazni bafer

napuni sa 65% maksimalne vrednosti. Realizovani

programski modul nadgleda ispunjenost ulaznog bafera i

pokušava da ga drži ispunjenog izmeñu 35% i 65% njegovemaksimalne vrednosti. Kada je ulazni bafer ispunjen sa 35%

ili manje od maksimalne vrednosti ispunjenosti, program će

usporiti brzinu procesora što će kao posledicu imati usporenje

izlazne SPDIF sprege i sporije pražnjenje ulaznog bafera

čime će se ispunjenost ulaznog bafera vratiti u zahtevani

opseg. Sa druge strane, ako je ulazni bafer ispunjen sa 65% iliviše od njegove maksimalne vrednosti ispunjenosti, program

će povećati brzinu procesora što će za posledicu imati

ubrzanje izlazne SPDIF sprege a samim tim i brže pražnjenje

ulaznog bafera čime će se ispunjenost ulaznog bafera opet

vratiti u zahtevani opseg.

3. PROGRAMSKI TOKPodaci primljeni preko ulazne I2S sprege se smeštaju u

ulazni bafer. Veličina ulaznog bafera je 3584 (E00 hex) reči.

Odgovarajući memorijski pokazivač se povećava svaki put

kada stigne nova reč (audio odbirak). Ulazni bafer je

konfigurisan kao kružni bafer što znači da kada se ispuni do

kraja, tj. pokazivač dostigne maksimalnu vrednost, ponovo se

popunjava od početka.

Podaci se na izlazu šalju preko izlazne SPDIF i DACsprege. Izlazni podaci se smeštaju u izlazni bafer veličine 768

(300 hex) reči što odgovara veličini dva SPDIF okvira

(192x2x2=768). Izlazne sprege su konfigurisane da koriste

DMA (Direct memory access) sa odgovarajućim pointerima i

podešene da odgovaraju brzini ulaznog audio toka. Izlaznibafer je takoñe konfigurisan kao kružni bafer i inicijaliziran

sa nulama.

Nakon inicijalizacije MAS program čeka da kontroler

podesi frekvenciju odabiranja ulaznog audio toka i aktivira

kontrolni START bit u za to predviñenoj memorijskoj

lokaciji. Nakon postavljanja START bita MAS program će

podesiti procesor na odgovarajući radni takt, zatim i brzine za

ulazne i izlazne sprege da odgovaraju predstojećem ulaznom

audio toku i na kraju resetovati START bit. Nakon ove

početne inicijalizacije na unapred definisane vrednosti u

zavisnosti od postavljanja kontrolera MAS program

započinje proces neprestanog nadgledanja ispunjenenosti

ulaznog bafera tako što se startuje ulazna sprega i čeka da se

ulazni bafer napuni do 65% ispunjenosti. Kada se to desi,

kopiraju se prva dva SPDIF okvira, sa podešenim statusnim i

kanalnim bitima, iz ulaznog u izlazni bafer, startuju se izlazne

sprege čime se ulazi u glavnu petlju programa za

nadgledanje ispunjenosti ulaznog bafera a samim time i

regulacije usklañenosti rada sprege prilikom pretvaranja

audio toka u realnom vremenu.

Za pravilno prosleñivanje audio odbiraka neophodno je

da se podaci poravnaju u levu stranu pošto ulazna serijskasprega automatski poravnava 16-bitne audio odbirke u desnu

stranu. MAS procesor raspolaže sa 20-bitnim memorijskim

rečima te je potrebno ulazne 16-bitne audio reči smestiti 4

bita pomerene u levo prilikom kopiranja u izlazni memorijski

bafer.

Izlazna sprega čita reč po reč iz izlaznog bafera. Umomentu kada ilazni SPDIF DMA pointer dostigne sredinu

izlaznog bafera, kopira se sledeći SPDIF okvir (192x2 reči) iz

ulaznog bafera u prvu polovinu izlaznog bafera. U moment

kada se izlazni SPDIF DMA pointer ponovo vrati na početnu

vrednost (kružni bafer), sledeći SPDIF okvir sa podešenimstatusnim bitima se kopira u drugu polovinu izlaznog bafera.Ovim je obezbeñeno izlaznoj spregi da uvek ima na

raspolaganju pravilno rasporeñene audio odbirke.

I2S S/PDIF

1ms blok 

Neprekinuti izlaz

DACAnalogni audio 

Page 2: REALIZACIJA I2S/SPDIF PRETVARANJA PCM AUDIO TOKA NA 32, 44.1 ILI 48 KHZ U  REALNOM VREMENU SA REGULACIJOM UČESTANOSTI

8/14/2019 REALIZACIJA I2S/SPDIF PRETVARANJA PCM AUDIO TOKA NA 32, 44.1 ILI 48 KHZ U REALNOM VREMENU SA REGULACI…

http://slidepdf.com/reader/full/realizacija-i2sspdif-pretvaranja-pcm-audio-toka-na-32-441-ili-48-khz-u-realnom 2/2

MAS procesor radi u tzv. slave režimu rada što znači da

mu ulazni audio odbirci stižu diktirani od strane kontrolera,

dok sa druge strane izlazna SPDIF spregu kontroliše on sam

zbog čega ulazna i izlazne sprege ne mogu biti potpuno

usaglašene. Naime, izvori osnovno takta za kontroler i MAS

procesor nisu isti, te je upravo iz tog razloga potrebnonadgledati tok pretvaranja audio toka. U ovoj implemetaciji

rešenje je dato u nadgledanju ispunjenosti ulaznog bafera

koga, preko ulazne serijske I2S sprege, direktno puni

kontroler koji šalje audio odbirke. Na ovaj način dobija se

veza izmeñu kontrolera i MAS procesora koji radi na

poznatoj ušestanosti iz koje se generiše potrebna brzinaizlaznih sprega.

Implementirani MAS program nadgleda ispunjenost

ulaznog bafera i nastoji da ga drži u granicama ispunjenosti

od 35-65%. Ako je ulazni bafer ispunjen sa 35% ili manje,

program će usporiti brzinu MAS procesora što će automatski

usporiti izlaznu spregu čime će se ulazni bafer sporije prazniti

i samim tim će se njegova ispunjenost vratiti u željeni opseg.

Slično tome, kada se izlazni bafer napuni do 65%

maksimalne vrednosti, program ubrzava procesor čime seubrzava i izlazna sprega koja direktno diktira brzinu

pražnjenja ulaznog bafera i samim tim on se brže prazni pa se

vraća u željeni opseg ispunjenosti.

Na kraju, ako je ulazni bafer ispunjen sa manje od 384

reči, što je manje od jednog SPDIF okvira, program će izaći

iz glavne petlje za nadgledanje ulaznog bafera i ući u završnu

fazu gde priprema poslednji okvir za kopiranje u izlazni

bafer. Da uradi to, program će formirati poslednji SPDIFokvir sa preostalim audio odbircima iz ulaznog bafera i

dodati potreban broj nula do veličine okvira (broj nula = 384

– broj preostalih audio odbiraka u ulaznom baferu) a zatim

ga iskopirati u izlazni bafer i sačekati izlaznu SPDIF spregu

da prosledi i poslednji okvir audio odbiraka iz izlaznogbafera. Nakon toga program će ponovo startovatiinicijalizaciju gde će resetovati sprege, memorijske bafere i

čekati novi audio tok podataka.

4. SPREGE I PODEŠAVANJE RADNOG TAKTA

Podešavanje radnog takta MAS 3587F procesora sepostiže postavljanjem vrednosti u odreñene registre

predviñene za tu namenu. Sadržaj registara CLKC_1 i

DeltaF_1 se računa prema potrebi a u zavisnosti od

frekvencije odabiranja ulaznog audio toka. Parametri za fino

podešavanje brzine procesora, a u cilju regulacijeusklañenosti rada sprege su izabrani tako da zadovoljavaju

odreñeni standard za SPDIF spregu i to SPDIF Level II-

Normal accurancy mode koji definiše da svaki prijemnik 

treba da prima signal od ±1000 ppm nominalne učestanosti

odabiranja.

5. ZAKLJUČAK Ispitivanje realizovanog programskog modula za

pretvaranje audio toka iz I2S serijske u izlaznu SPDIF spregu

sa regulacijom usklañenosti rada sprega je izvedeno u

stvarnom radnom okruženju i u relanom vremenu. Ispitivanje

  je pokazalo da je za sve vreme trajanja audio toka procesor

MAS 3587F uspešno kontrolisao i usklañivao rad sprega

pobuñivanih radnim taktom iz dva nezavisna izvora.

LITERATURA[1]  Micronas Intermetall, DataSheet MAS 3587F, 1999.

[2]  Micronas, SPDIF Interface, 2001.

Abstract - The article describes download module for the

which allows I2S to S/PDIF conversion of PCM data. At the

same time the digital input (PCM) is sent to the embedded

DAC. Speed of output interfaces is regulated by internal

software PLL that locks itself to the incoming digital source

(slave mode).

SOFTWARE REALIZATION FOR I2S TO S/PDIFCONVERSION OF PCM DATA FOR DSP MAS 3587F.

Nikica Bandić, Miroslav Novta