USB Audio Simplificat

by donpedro

Expansiunea rapidă a standardului Universal Serial Bus (USB) în produse electronice de consum a extins utilizarea conectivității USB pentru difuzare și control audio digital. USB oferă lățime de bandă mare pentru a sprijini aplicații audio de înaltă calitate; ușurința de utilizare a fost bine acceptată de către consumatori și a făcut ca USB să fie o interfață audio binecunoscută. Cu toate acestea, extragerea de date audio de la un port USB nu este o sarcină simplă. USB în sine este un protocol complex, care necesită expertiză considerabilă în domeniu. În plus, alte provocări legate de audio, cum ar fi sincronizarea fluxurilor de date și de programare Codec și configurații de conversie digital-analogică (DAC), pot provoca chiar și cei mai experimentați designeri audio de produse încorporate. Dispozitivele USB punte sunt acum disponibile, iar aceasta nu numai că elimină complexitatea de dezvoltare software USB, dar, oferă, de asemenea, o nouă interfață de programare a configurației audio standard și metode pentru a sincroniza fluxuri de date audio cu o soluție într-un cip, low-cost, foarte integrat.

de Pedro Pachuca
Marketing Manager, MCU Interface Products
Silicon Laboratories

USB este o interfață versatilă, care oferă mai multe moduri de a propaga și de a controla domeniul audio digital; cu toate acestea, este important ca industria să urmeze un mecanism standardizat pentru transportul datelor audio prin USB, pentru a asigura interoperabilitatea, care a fost piatra de temelie pentru adoptarea USB. Pentru a răspunde la această cerere fundamentală, organizația USB a dezvoltat Clasa de Dispozitive Audio (Audio Devices Class) care definește un mecanism standardizat foarte robust pentru transportul datelor audio prin USB. Specificația pentru clasa audio USB este disponibilă pentru public de la USB Implementers Forum www.usb.org
Una dintre problemele majore la streaming audio prin USB este sincronizarea fluxurilor de date de la gazdă (sursă) și un dispozitiv (sarcină care absoarbe); aceasta a fost abordată prin dezvoltarea unei scheme de sincronizare robustă privind “transferurile izocrone”, care a fost încorporată în specificația USB. Definirea Audio Device Class aderă la această schemă de sincronizare pentru a transporta datele audio prin bus, în mod fiabil. Cu toate acestea, punerea în aplicare a acestui mecanism de sincronizare nu este o sarcină banală, iar implementările moștenite au cerut de sisteme embedded high-end cu convertoare de date complexe sau circuite Phase-Locked Loops (PLLs) scumpe pentru a asigura corectitudinea ceasului cerut de sistem.

Tabel 1: Moduri de sincronizare USB Audio

Într-un sistem cu o rată de eșantionare de 48kHz, gazda trimite o secvență cadru care conține 48 eșantioane de semnale de ieșire analogice în fiecare milisecundă. Dispozitivul ce reprezintă sarcina care absoarbe date, trebuie să păstreze datele audio de ieșire într-o memorie tampon (buffer), astfel încât să poată fi trimis la DAC un eșantion, la un moment dat. Orice asimetrie de ceas între gazdă și dispozitiv (oricât de mică), va duce la o stare de exces sau de lipsă de date. Specificația USB definește mai multe metode de acomodare în cazul de nepotrivire a ceasului gazdă/dispozitiv.
USB definește moduri care guvernează funcționarea surselor de date și dispozitivelor sarcină în conformitate cu Tabelul 1. (Pentru audio-out, gazda este sursă și dispozitivul este sarcină care absoarbe date. Pentru audio-in, dispozitivul este sursă și gazdă este sarcina.).

Mod Asincron

Pentru o funcționare asincronă, sarcina care absoarbe date oferă un feedback în mod explicit la sursa datelor. Pe baza acestui feedback, sursa ajustează numărul de eșantioane pe care îl trimite la sarcină. Figura 1 ilustrează modul asincron cu un dispozitiv cu ieșire analogică.
Acest mecanism de feedback acomodează asimetria de ceas sursă / sarcină, fără a necesita ca dispozitivul sarcină să pună în aplicare un hardware-PLL pentru a se sincroniza ceasul gazdei.

Figura 1: Mod Asincron

Figura 2: Sistem cu Buffer de date pentru a sprijini în Mod Asincron

Figura 2 prezintă un sistem cu buffer de date pentru o rată de eșantionare 48kHz. Inițial, gazda pornește curgerea de date (data streaming) la 48 de eșantioane la fiecare operație USB Start-Of-Frame (SOF), care apare în fiecare milisecundă. Cu toate acestea, dacă buffer-ul de date al dispozitivului începe să se apropie de condiția plin sau gol din cauza nepotrivirii de ceas, dispozitivul poate solicita ca gazda să trimită mai multe (49) sau mai puține (47) eșantioane, astfel încât bufferul nu are exces sau lipsă de date. Această metodă este pusă în aplicare în dispozitivul punte audio digital Silicon Labs CP2114 USB-to-I2S. Clasa de Dispozitive Audio este susținută de către dispozitivul de CP2114 fără nici un fel de dezvoltare de software suplimentar.

Mod Sincron

Pentru o funcționare sincronă, sursa de date și sarcina care absoarbe date folosesc feedback-ul implicit, și ceasurile sunt blocate la USB SOF. Dispozitivul sarcină trebuie să se sincronizeze cu USB SOF așa cum se arată în Figura 3.

Figura 3: Mod Sincron

O implementare simplă, dar robustă, de mod sincron poate fi realizată printr-un control în buclă închisă, care poate corecta eventualele nepotriviri între USB SOF și oscilatorul intern al dispozitivului sarcină care absoarbe date. Această punere în aplicare este prezentată în figura 4.

Figura 4: Control cu buclă închisă ce sprijină Mod Sincron folosind un Oscilator Intern

USB SOF care este trimis de gazdă la fiecare milisecundă este folosit pentru a calibra oscilatorul intern. Pentru ca această metodă să funcționeze corect, oscilatorul intern al dispozitivului sarcină trebuie să fie reglabil prin intermediul unui registru de calibrare, care poate deplasa frecvența oscilatorului intern în sus sau în jos în pași foarte mici. Puntea audio digitală CP2114 este capabilă să pună în aplicare această opțiune, datorită capacității de ajustare dinamică a oscilatorului său intern.
Puntea audio digitală CP2114 permite dezvoltatorului de a selecta între modurile sincron și asincron, în funcție de capabilitățile disponibile în gazdă la proiectarea sistemului.
Toate platformele curente (Windows, Linux, Mac OS și iOS pentru Apple iPad) suportă acum modul asincron.

Interfaţă de programare a configuraţiei Standard Codec / DAC

Furnizorii Codec și DAC ce conduc azi în piață, oferă modalități unice de a configura capabilitățile dispozitivelor lor. Însă, această variabilitate în configurarea dispozitivului crește complexitatea de proiectare de software pentru dezvoltatorii care au nevoie pentru a sprijini mai multe platforme Codec / DAC pe liniile de produse ale acestora.

Tabel 2: CP2114 Interfața de programare a configurației audio standard

O soluție la această provocare de proiectare este de a oferi o interfață de programare a configurației standard Codec / CAD, care poate grupa capabilitățile cele mai tipice pentru a configura un Codec sau DAC. Această interfață ar permite o tranziție lină între Codec-uri și DAC, și ar permite o evaluare rapidă a mai multor opțiuni Codec / DAC.
Un exemplu al acestei interfețe poate fi găsit în dispozitivul de trecere audio CP2114, care suportă o gamă largă de Codec-uri/DAC folosind o interfață de configurație standard. Tabelul 2 enumeră o parte din interfața de programare a configurației audio standard pentru CP2114.
Interfața de programare a configurației standard a dispozitivului CP2114 autorizează capabilitățile cele mai frecvente găsite în Codec-uri și DAC, cum ar fi dimensiuni ale registrului DAC, format audio, control al volumului și raport ceas audio.
În plus, interfața oferă câmpuri deschise de programare particularizată și un nivel de abstractizare, încapsulând capacitățile cele mai tipice de configurare într-un format ușor de înțeles. Odată ce dezvoltatorul este familiarizat cu această interfață, comutarea între Codec și dispozitive DAC devine o sarcină simplă.
Dispozitivul punte audio digital CP2114 oferă acces la această interfață prin USB, pentru a aloca toate valorile necesare pentru a configura Codec-uri sau DAC.
Configurația se aplică o singură dată și se află în memoria EPROM. Schimbări dinamice sunt de asemenea permise de gazdă pentru a accesa dinamic Codec / CAD și a schimba valorile sale de configurare.

CP2114 este primul dispozitiv fără cristal din industrie de tip punte audio USB-to-I2S proiectat pentru a sprijini o gamă largă de aplicații audio Codec și DAC bazate pe USB. CP2114 simplifică transferul datelor audio de la USB la I2S fără dezvoltarea de programe cod, micșorând timpul de lansare pe piață a accesoriilor USB audio precum difuzoare, căști și boxe muzicale, dar și sisteme VoIP.
Dispozitivul CP2114 include: controler USB 2.0 full-speed, USB transceiver, oscilator, memorie ROM OTP, interfața I2S (audio), interfața I2C (control) și interfața UART într-o capsulă compactă 5 × 5 mm QFN-32, ideală pentru constrângeri de spațiu în aplicații portabile.

Concluzie
Popularitatea USB extinde utilizarea sa la aplicații pentru propagare și control audio. Cu toate acestea, streaming-ul audio prin USB este o sarcină complexă și consumatoare de timp de proiectare. Probleme majore de proiectare, cum ar fi sincronizarea de fluxuri de date audio și configurații Codec/DAC, pot provoca chiar și mai mulți proiectanți audio experți în dispozitive embedded. Punți audio digitale, cum ar fi dispozitivul CP2114, reduc această complexitate, oferind o solutie plug-and-play, care nu are nevoie de dezvoltare de software.
Ultima generație de soluții de punți audio digitale pune în aplicare metode noi de a sprijini o gamă largă de Codec-uri și DAC printr-o interfață de configurare standard, ce sprijină modurile de operare asincron și sincron, cu componente externe minime, eliminând nevoia de componente externe, cum ar fi oscilatoare cu cristale și EEPROM.

www.silabs.com

Adaugă un comentariu