Jste zde

Výběr zvukového kodeku pro zpracování audio souborů

V integrovaných systémech se často používá reálný zvuk pro zpětnou vazbu, signalizaci alarmů a výstrah místo bzučáků. V minulosti bylo dostačující nějaké pípnutí či hlasitý zvuk sirény, ale teď uživatelé očekávají přehrávání souboru MP3. To přidává do systému složitost a s tím souvisí i správná volba mikrokontroleru a kodeku.

Tento článek se bude věnovat náhradou bzučáků za systémy, které jsou schopny přehrát zvukový záznam ze souboru MP3. K tomu je nutné vybrat správný mikrokontroler a k němu vhodný kodek. Představíme si roli zvukového kodeku v systému a jeho hlavní charakteristiky, které je vzít v potaz při jeho výběru. Jako příklad si uvedeme řešení od společnosti AKM SemiconductorTexas InstrumentsMaxim Integrated a další. Na závěr si uvedeme nějaké tipy pro zrychlení vývoje aplikací s přehráváním zvukového souboru.

Co jsou to zvukové kodeky?

Zvukový kodek je hardwarová součást systému, která je schopna kódovat nebo dekódovat digitální datový tok obsahující zvukovou informaci. Zvukový kodek umožňuje off-line zpracování zvuku z mikrokontroleru. To výrazně snižuje složitost software a také umožňuje použit levnějšího mikrokontroleru s nižším výkonem.

Typický zvukový kodek obsahuje několik funkčních bloků:

  • Rozhraní I2S pro přenos nebo příjem kódovaných digitálních zvukových dat
  • Rozhraní I2C pro konfiguraci a čtení řídicích registrů zvukového kodeku
  • Mikrofonní vstup, který je připojen k analogově-digitálnímu převodníku (ADC)
  • Alespoň jeden zvukový výstupní kanál, například výstup pro reproduktor
  • Digitální blok, který obsahuje horní propust, dolní propust, pásmovou zádrž a ekvalizéru pro vyladění přehrávaného zvuku

Příkladem velmi oblíbeného zvukového kodeku je 24bitový kodek AK4637EN od společnosti AKM Semiconductor (obrázek 1). AK4637EN kromě přehrání zvukového souboru umožňuje generování pípnutí pomocí PWM na požadované frekvenci.

Obrázek 1: AK4637EN je zvukový kodek s výstupem pro mono reproduktor. Obsahuje také interní zvukový blok, který lze použít k filtrování zvuku za účelem zlepšení reálnosti zvuku. (Zdroj obrázku: AKM Semiconductor)

Zvukové kodeky se liší hlavně výstupem. Zda se jedná o mono či stereo výstup. Dále je nutné se podívat jaké funkce nabízí digitální blok. Například AK4637EN nabízí horní propust, dolní propust, čtyřpásmový ekvalizér, funkci automatického vyrovnávání kanálu a jednopásmový ekvalizér. To, jak se nastaví tyto digitální filtry, může dramaticky ovlivnit zvuk systému.

Zatímco AK4637EN je jednoduchý zvukový kodek, rychlé prozkoumání datového listu ukazuje, že má 64 konfigurovatelných registrů. To se na první pohled může zdát hodně, ale většina z těchto registrů se používá k nastavení konfiguračních parametrů filtru. Jen několik registrů jsou určeny přímo pro správné generování zvukového signálu. Takže vývoj ovladače pro zvukový kodek je mnohem jednodušší, než si začátečník dokáže představit.

Jak vybrat zvukový kodek

Cena je sice jeden z důležitých parametrů, ale první je nutné vzít v potaz požadovaný výstup. Existuje několik různých možností. Například AK4637EN má výstup pro mono reproduktor nebo výstup Line-out. Ke stereofonnímu kodeku TLV320AIC3110IRHBR od Texas Instruments lze připojit dva reproduktory s výkonem 1,29 W (obrázek 2).

Obrázek 2: TI TLV320AIC3110IRHBR je zvukový kodek se stereofonním výstupem a zesilovačem pro mikrofon. Ke kodeku lze připojit dva reproduktory s výkonem 1,29 wattů. K dispozici je také programovatelný digitální blok (Zdroj obrázku: Texas Instruments)

Kodek MAX9867 od Maxim Integrated je navržen pro sluchátka (obrázek 3). Model MAX9867 disponuje digitálním rozhraním I2S a I2C, stereofonními mikrofonními vstupy a vstupy Line-in.

Obrázek 3: Zvukový kodek Maxim Integrated MAX9867 je určen pro stereofonní sluchátka (Zdroj obrázku: Maxim Integrated)

Jaký vstup či výstup je vhodný pro danou aplikaci je důležitým rozhodnutím, které se musí uskutečnit na počátku vývoje. Dalším kritériem pro výběr kodeku je výkon výstupu. Je rozdíl, zda ke kodeku připojíme sluchátka, jeden reproduktor nebo pár reproduktorů. Není mnoho kodeků pro vestavěné systémy, který zvládne dodat energii pro reproduktor o výkonu 5 W. Místo toho lze vybrat vystup Link-out a použít samostatný zesilovač třídy D připojeného přímo k reproduktoru.

Posledním kritériem je porovnání funkcí digitálního bloku. Například kodek TLV320AIC311IRHBR má funkce de-pop a soft start, které eliminují praskání reproduktorů a umožňují plynulé přehrávání zvuku. Má také interní směšovač pro každý výstupní kanál a digitální ovládání hlasitosti.

Přehrávání zvukového souboru

Při práci se zvukovým kodekem je důležité si uvědomit, že mimo samostatný zvukový kodek existuje několik různých bloků, které jsou nezbytné pro dosažení úspěšného přehrávání zvukového souboru. Obecný diagram celého řetězce přehrávání je na obrázku 4.

Obrázek 4: Obecné blokové schéma systému pro přehrávání zvuku. (Zdroj obrázku: Beningo Embedded Group)

Nejprve musí existovat nějaká metoda pro ukládání zvukových souborů. Existují dvě možnosti. Ukládat soubory interně do flash paměti mikrokontroleru nebo do externí flash paměti. Volba závisí na velikosti zvukového souboru a jak velká je interní paměť mikrokontroleru.

Důležité je také zvážit, jaký formát bude mít zvukový soubor. Nejběžnějším formátem je MP3. V takovém případě musí mít mikrokontroler softwarový stack, který podporuje dekódování MP3. Tento stack umožňuje otevření souboru MP3 a jeho následné odeslání pomocí řadiče DMA přes rozhraní I2S do kodeku. Nesmíme zapomenout na konfiguraci správné rychlosti rozhraní I2S, aby nedocházelo k problémům.

Zvukový kodek má výstup přibližně 1 až 1,5 W. To je dostačující pro připojení malého reproduktoru. Pro připojení reproduktoru o výkonu 3 W nebo větším je nutné použít externí zesilovač. Nejpoužívanější jsou zesilovače třídy D. Tento zesilovač nemusí mít proměnný zisk, jelikož zvukový kodek může digitálně upravovat hlasitost a zajistit tak širokou škálu výstupního výkonu.

Jednou z oblastí, která je často přehlížena je tzv. bulk capacitance. Při přehrávání zvuku může nastat situace, kdy není dostatek energie z napájení. Tím může být dramaticky ovlivněna kvalita výstupu a může nastat hlučný nepříznivý zvuk. Tuto nepříjemnou záležitost lze odhalit při testování během vývoje.

Tipy pro výběr a použití zvukového kodeku

Zvukové kodeky se mohou zdát složité, pokud s nimi vývojář nemá dřívější zkušenosti. Pro úspěšné použití zvukového kodeku je třeba mít na paměti několik zásad, které by vývojáři měli mít na paměti:

  • Pomocí funkce DMA lze ulehčit práci mikrokontroleru
  • Pokud se zvuk nepřehrává, je vhodné použít v kodeku funkci ztlumení k zabránění nízko úrovňovému šumu, aby se dostal do reproduktoru.
  • Při deaktivaci nebo povolení přehrávání je vhodné použít funkce „měkkého“ ztlumení (soft mute) k zabránění praskání reproduktorů a jiným nežádoucím zvukům.
  • Využijte interní digitální filtrační mechanismy obsažené v kodeku. Digitální filtry umožňují vyrovnat výstup, odfiltrovat nežádoucí vysoké a nízké frekvence a zvýšit celkovou kvalitu zvukového systému.
  • Vyladění zvuku je možné jen při kompletní sestavě připojených reproduktorů. Skříň a způsob montáže reproduktoru mají obrovský vliv na kvalitu zvuku.

Pro vývoj aplikací je vhodné použít vývojovou sadu MAX9867EVKIT+ pro MAX9867 Maxim Integrated (obrázek 5).

Obrázek 5: Sada MAX9867EVKIT+ pro MAX9867 se připojuje k počítači pomocí USB rozhraní a je vybavena vstupy RCA, sluchátkovými výstupy a optickými vysílacími a přijímacími moduly. (Zdroj obrázku: Maxim Integrated)

Sada obsahuje desku a související software a je konfigurována pro odesílání a příjem zvukových dat pomocí digitálního rozhraní Sony / Philips (S / PDIF). Má dva vstupní konektory RCA, dva 3,5 mm analogové výstupní konektory pro sluchátka a optické přijímací a vysílací moduly. Přiložený software je kompatibilní se systémem Windows a při připojení k počítači pomocí kabelu USB se ovládá pomocí grafického uživatelského rozhraní (GUI), pomocí kterého lze experimentovat s nastavením MAX9867 (obrázek 6).

Obrázek 6: Pomocí grafického uživatelského rozhraní lze experimentovat s širokou škálou nastavení MAX9867 (Zdroj obrázku: Maxim Integrated)

Závěr

Doba, kdy stačilo při alarmu pípnout reproduktorem je již za námi. Teď se očekává, že zařízení přehraje uživatelem definovaný zvukový soubor MP3. O vše se postará vhodně vybraný typ zvukového kodeku a mikrokontroleru.

Článek vyšel v originále na webu DigiKey.com, autorem je Jacob Beningo.

 

Hodnocení článku: