Rozhraní pro přenos digitalizovaného zvuku tvoří pět signálu uvedených v tabulce. V závislosti na nastavení přenosového protokolu mají některé signály odlišnou funkci.
signál |
směr |
funkce |
|
vstup, výstup |
časování |
|
vstup, výstup |
synchronizace zápisu |
|
vstup, výstup |
synchronizace čtení |
|
vstup |
datový vstup |
|
výstup |
datový výstup |
Tabulka : Digitální rozhraní kodeku.
Kodek může pracovat jako master nebo slave:
master - kodek si nastavuje BCLK, LRCIN, LRCOUT, ty se chovají jako výstup.
slave - kodek poslouchá BCLK, LRCIN, LRCOUT, které se chovají jako vstupy. Tyto signály musí nastavovat připojené zařízení. Protokol a časování musí korespondovat s konfigurací kodeku.
Rozhraní pro přenos digitálního zvuku podporuje čtyři komunikační protokoly, jejich výčet naleznete v dokumentaci TLV320AIC23B. Zde je popsán pouze DSP režim, protože ten je použit pro komunikaci s FPGA.
Jedná se o režim kompatibilní s McBSP porty DSP procesorů firmy Texas Instruments. Signály `signal:LRCIN`` a LRCOUT slouží jako synchronizace přenosu datových rámců. Sestupná hrana těchto signálů zahajuje přenos jednoho rámce. Každý rámec se skládá ze dvou slov. Jedno slovo odpovídá jednomu vzorku. Bitová šířka slova může být nastavena na 16b, 20b, 24b nebo 32b. V jednom rámci je nejdříve přenášeno slovo levého kanálu, které je okamžitě následováno vzorkem pravého kanálu. U obou slov je přenos zahájen nejvyšším významovým bitem. Přenos dalšího rámce musí být zahájen signály LRCIN nebo LRCOUT.
Obrázek 1.1: Časování signálů v DSP režimu. Diagram ukazuje časování pro LPR=1, které je použito při komunikaci s FPGA. To znamená, že první bit levého vzorku levého kanálu musí být dostupný na náběžné hraně BCLK až za sestupnou hranou signálů LRCIN a LRCOUT. Šířka slova je nastavena na 16 bitů.
Rychlost nastavování signálů LRCIN a LRCOUT závisí na použité vzorkovací frekvenci.
Komponenta aic23b_dsp_read
je implementována jako generická komponenta určená ke čtení digitalizovaného zvuku v DSP režimu kodeku. Je ji možné vysyntetizovat pro všechny šířky přenášeného slova - tedy 16b, 20b, 24b a 32b.
Rozhraní komponenty je uvedeno na obrázku 2.1.
Rozpis rozhraní komponenty:
RST : in std_logic
Signál, který nastavuje výchozí stav.
CLK : in std_logic
Hodinový signál, kterým je celá komponenta řízena.
ALRCOUT, ABLKC, ADOUT : in std_logic
Tyto signály jsou připojeny na piny kodeku LRCOUT, BCLK a DOUT.
LOUT, ROUT : out std_logic_vector(n-1 downto 0)
Hodnoty vzorků levého a pravého kanálu vyčtené z kodeku. Hodnota n v závislosti na požadované šířce slova může být 16, 20, 24 nebo 32.
DATA_VALID : out std_logic_vector
Signalizace vystavení dat na výstup. Je nastaven na 1 při vystavení přečtených dat. Po jednom hodinovém cyklu CLK spadne do 0.
VHDL popis komponenty naleznete v souboru fpga/ctrls/audio/aic23b_dsp_read.vhd.
Rozhraní kodeku pracuje na 12MHz. Signál CLK tedy musí být taktován alespoň na dvojnásobné frekvenci, aby byla data správně načítána.
Komponenta předpokládá, že je kodek nakonfigurován jako master v DSP režimu. V opačném případě nebude fungovat.
Komponenta aic23b_dsp_write
je implementována jako generická komponenta určená k zápisu digitalizovaného zvuku v DSP režimu kodeku. Je ji možné vysyntetizovat pro všechny šířky přenášeného slova - tedy 16b, 20b, 24b a 32b.
Rozhraní komponenty je uvedeno na obrázku 3.1.
Rozpis rozhraní komponenty:
RST : in std_logic
Signál, který nastavuje výchozí stav.
CLK : in std_logic
Hodinový signál, kterým je celá komponenta řízena.
ALRCIN, ABLKC: in std_logic
Tyto signály jsou připojeny na piny kodeku LRCIN a BCLK.
LIN, RIN : in std_logic_vector(n-1 downto 0)
Hodnoty vzorků levého a pravého kanálu zapisované do kodeku. Hodnota n v závislosti na požadované šířce slova může být 16, 20, 24 nebo 32.
READY : out std_logic
Signalizuje připravenost kodeku k přenosu dat. Je nahozen na 1 pokud se nepřenáší data do kodeku.
DATA_REQ : out std_logic
Signalizuje ukončený přenos dat. Po jednom taktu CLK je shozen do 0.
ADIN : out std_logic
Připojen na pin kodeku DIN.
VHDL popis komponenty naleznete v souboru fpga/ctrls/audio/aic23b_dsp_write.vhd.
Rozhraní kodeku pracuje na 12MHz. Signál CLK tedy musí být taktován alespoň na dvojnásobné frekvenci, aby byla správně rozpoznána synchronizace ALRCIN a data správně zapsána do kodeku.
Komponenta předpokládá, že je kodek nakonfigurován jako master v DSP režimu. V opačném případě nebude fungovat.
Stereo Audio CODEC, 8-to 96-KHz, With Integrated Headphone Amplifier [online] Dostupný na WWW: http://www.ti.com/lit/gpn/tlv320aic23b