Click here to load reader
Upload
miroslav-novta
View
219
Download
0
Embed Size (px)
Citation preview
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
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