Protocolos Digitais: SPDIF/AES EBU
A Philips e a Sony se associaram para estabelecer uma interface/protocolo de comunicação para seus CD's e DAT's, o SPDIF - Sony-Philips Digital Interface Format. Na verdade o SPDIF é uma "consumer version" da interface/protocolo AES-EBU, que leva este nome por ter sido desenvolvida pela AES (Audio Engineering Society) com o suporte e participação da EBU (European Broadcasting Union).
As principais diferenças elétricas entre a SPDIF e a AES-EBU são:
SPDIF AES-EBU
Conexão: tipo video phono (RCA ) tipo XLR (Cannon)
Impedância: 75 Ohms 110 Ohms
Range de Sinal: 200 a 500 mVpp 3 a 10 Vpp
Comprimento
da Linha: até 10 metros até 100 metros
O Formato do Protocolo AES-EBU
O Formato AES-EBU estabelece um padrão para transmissão de dois canais de áudio periodicamente amostrados e uniformemente quantizados a até uma distância de 100 metros sem que se faça necessário qualquer equalização da linha de transmissão (cabo blindado ou par trançado). Os canais direito e esquerdo são multiplexados e o protocolo é do tipo self-clock e auto-sicronizável, ou seja, o clock e o sincronismo são obtidos do próprio trem de dados. Em virtude do formato ser independente da frequência de amostragem, pode ser utilizado em qualquer taxa, inclusive naquelas recomendadas pela AES para as aplicações PCM, que são 32kHz, 44.1kHz e 48kHz.
O formato define uma série de termos. Uma amostra de áudio é um sinal periodicamente amostrado, quantizado e digitalmente representado em complemento de dois. O bloco de dados é formado por um FRAMEque possui 64 bits. Um FRAME se subdivide em dois SUBFRAMES, um para cada canal. O primeiro Subframe é chamado de A e o segundo de B. Cada Subframe é composto da amostra de áudio mais dados auxiliares, perfazendo os 32 bits. Em transmissões stereo, o Subframe A contém o canal Esquerdo e o Subframe B, o canal Direito. Para transmissões Mono, como a taxa deve ser a mesma, a amostra de audio é enviada no Subframe A, deixando o B livre ou disponível para transmissão de outro tipo de informação (...). Um bloco de dados é definido como 192 Frames.
A transmissão serial de cada Frame é realizada na frequência de amostragem Fs, logo o bit rate será de 64 x Fs, o que representa, por exemplo, para Fs=44.1kHz, uma taxa de 2,8224 Mbits/s. A transmissão faz uso da forma biphase mark code uma variação self-clocking da codificação tipo Manchester. Esta forma de codificação naturalmente "carrega", junto com o sinal, o clock do sistema, que é o dobro do bit rate, por isto chamado self-clocking. A codificação é feita de forma que para cada estado lógico 1, o sinal de saída troca de estado duas vezes (inverte a polaridade, ou ainda cruza o eixo zero, zero crossing) , e, para o estado lógico 0 , troca de polaridade apenas uma vez..
As principais diferenças elétricas entre a SPDIF e a AES-EBU são:
SPDIF AES-EBU
Conexão: tipo video phono (RCA ) tipo XLR (Cannon)
Impedância: 75 Ohms 110 Ohms
Range de Sinal: 200 a 500 mVpp 3 a 10 Vpp
Comprimento
da Linha: até 10 metros até 100 metros
O Formato do Protocolo AES-EBU
O Formato AES-EBU estabelece um padrão para transmissão de dois canais de áudio periodicamente amostrados e uniformemente quantizados a até uma distância de 100 metros sem que se faça necessário qualquer equalização da linha de transmissão (cabo blindado ou par trançado). Os canais direito e esquerdo são multiplexados e o protocolo é do tipo self-clock e auto-sicronizável, ou seja, o clock e o sincronismo são obtidos do próprio trem de dados. Em virtude do formato ser independente da frequência de amostragem, pode ser utilizado em qualquer taxa, inclusive naquelas recomendadas pela AES para as aplicações PCM, que são 32kHz, 44.1kHz e 48kHz.
O formato define uma série de termos. Uma amostra de áudio é um sinal periodicamente amostrado, quantizado e digitalmente representado em complemento de dois. O bloco de dados é formado por um FRAMEque possui 64 bits. Um FRAME se subdivide em dois SUBFRAMES, um para cada canal. O primeiro Subframe é chamado de A e o segundo de B. Cada Subframe é composto da amostra de áudio mais dados auxiliares, perfazendo os 32 bits. Em transmissões stereo, o Subframe A contém o canal Esquerdo e o Subframe B, o canal Direito. Para transmissões Mono, como a taxa deve ser a mesma, a amostra de audio é enviada no Subframe A, deixando o B livre ou disponível para transmissão de outro tipo de informação (...). Um bloco de dados é definido como 192 Frames.
A transmissão serial de cada Frame é realizada na frequência de amostragem Fs, logo o bit rate será de 64 x Fs, o que representa, por exemplo, para Fs=44.1kHz, uma taxa de 2,8224 Mbits/s. A transmissão faz uso da forma biphase mark code uma variação self-clocking da codificação tipo Manchester. Esta forma de codificação naturalmente "carrega", junto com o sinal, o clock do sistema, que é o dobro do bit rate, por isto chamado self-clocking. A codificação é feita de forma que para cada estado lógico 1, o sinal de saída troca de estado duas vezes (inverte a polaridade, ou ainda cruza o eixo zero, zero crossing) , e, para o estado lógico 0 , troca de polaridade apenas uma vez..
Na figura 1, a primeira linha representa o clock, com o dobro do bit rate. A segunda linha é um trecho de um string de dados, e a terceira é o sinal transmitido. Cada data bit a ser transferido é representado por dois estados lógicos sequenciais, ou seja, dois bits, que em conjunto são tratados como uma célula, que corresponde ao chamado timeslot de cada bit de dados do sinal.
Na figura 2 apresentamos a definição de um Subframe. Para cada amostra, uma palavra de 32 bits (32 bit word) é transmitida, na qual os quatro primeiros bits (0, 1, 2 e 3) são o Preâmbulo de Sincronismo, responsável pela manutenção do sincronismo do sistema, a cada Subframe. Estes bits garantem o ajuste do sincronismo a cada amostra de audio. Os quatro bits a seguir (4, 5, 6 e 7) são chamados Auxiliary Audio Data e seguidos de 20 audio data bits (8 a 27, onde o bit 8 é o LSB, ou seja, o bit menos significativo, e o bit 27 o MSB, bit mais significativo). Podemos perceber que protocolo permite transmitirmos uma amostra com até 24 bits de resolução.
Os últimos quatro bits do Subframe são bits de Status. O bit 28 é o bit de Validade, que determina se a amostra deve ou não ser utilizada. No caso de um CD Player, quando detectado um erro no processo de leitura do CD, este bit é setado, ou seja, seu valor é 1. O bit 29, chamado User Bit Data, pode ser utilizado opcionalmente pelo usuário para transmissão de dados, como por exemplo, no caso de um CD player, poderia ser utilizado para texto ( título e letra da musica, informações sobre compositor, etc...). O bit 30, chamado Audio Channel Status, é utilizado para formar um bloco para transmitir informação com relação ao canal da interface e outros parâmetros do sistema. Este bloco é montado para cada canal a partir dos Channel Status Bits a cada 192 sucessivos Frames. O inicio de cada bloco é identificado por um Preâmbulo específico, garantindo assim a localização deste bloco de 192 bits. O ultimo bit do Subframe é a paridade do mesmo (par), através do qual pode-se monitorar a confiabilidade dos dados do canal. É interessante comentar que a Norma ANSI S4.40-1985, número pelo qual a AES-EBU foi estandardizada, até os dias de hoje é extremamente sub-utilizada .
A capacidade de enviar junto com o áudio dados auxiliares como textos ou sinais de controle e automação é simplesmente ignorada por 99% das aplicações. Vamos fazer uma conta simples: na frequência de amostragem de 48 kHz, temos um User bit por Subframe, logo o User bit rate será de 96kHz, permitindo transmitir um byte na taxa de 12 kHz, ou seja 12.000 bytes por segundo. O protocolo MIDI possui um bit rate de 31,25 kHz onde a cada byte de informação é associado um Start bit e um Stop bit, perfazendo 10 bits por byte de dado. Fazendo as contas, o protocolo MIDI permite transmitir, no máximo, um byte na taxa de 3,125 kHz, ou seja, quase quatro vezes menor, ocupando todo o canal de transmissão (no caso, a MIDI) , enquanto que no protocolo AES-EBU ou no SPDIF, apesar de quase quatro vezes maior, o "User byte rate" representa apenas 1/32 do fluxo total de dados! Note-se que eu nem aventei a possibilidade de utilizar os quatro bits de dados auxiliares (bits 4, 5, 6 e 7) existentes em cada Subframe! Dá para perceber que com um pouquinho de imaginação seria possível nos sintetizadores e processadores do futuro integralizar Audio Digital & MIDI (ou automação) em um único canal de transmissão sem precisar criar nenhum novo protocolo, ou conexões, ou novos integrados, etc... Uma das grandes limitações discutidas atualmente no protocolo MIDI reside no limite de 16 canais e 128 possíveis valores de parâmetros, limitações estas associadas ao fato da codificação ser feita por byte. No caso de uma implementação utilizando o protocolo acima, sem nenhum problema poderíamos passar a trabalhar com uma palavra de 16 bits, o que permitiria uma total reformulação do protocolo MIDI...
Porém tudo isto é viagem de imaginação, pois para se tornar realidade faz-se necessário que os grandes fabricantes se interessem pela idéia e forcem o mercado para esta direção. Retornando à Terra, continuemos a descrição do protocolo. Os 192 bits do bloco de Channel Status representam exatamente 24 bytes, cujo significado, para aqueles que desejem se aprofundar mais nos detalhes do protocolo AES-EBU, pode ser visto na tabela I no final deste artigo. Desde o inicio de nossa apresentação do protocolo, que estamos falando que o sistema é auto-sincronizável por Subframe, então, visto que é uma transmissão serial e todos os bits tem a mesma "cara" qual é o truque para que seja detectado o inicio de cada Subframe? O truque está no Preâmbulo, no qual a regra de duas transições para o estado lógico 1 e uma transição para o estado lógico 0 é propositalmente desrespeitada.
Os últimos quatro bits do Subframe são bits de Status. O bit 28 é o bit de Validade, que determina se a amostra deve ou não ser utilizada. No caso de um CD Player, quando detectado um erro no processo de leitura do CD, este bit é setado, ou seja, seu valor é 1. O bit 29, chamado User Bit Data, pode ser utilizado opcionalmente pelo usuário para transmissão de dados, como por exemplo, no caso de um CD player, poderia ser utilizado para texto ( título e letra da musica, informações sobre compositor, etc...). O bit 30, chamado Audio Channel Status, é utilizado para formar um bloco para transmitir informação com relação ao canal da interface e outros parâmetros do sistema. Este bloco é montado para cada canal a partir dos Channel Status Bits a cada 192 sucessivos Frames. O inicio de cada bloco é identificado por um Preâmbulo específico, garantindo assim a localização deste bloco de 192 bits. O ultimo bit do Subframe é a paridade do mesmo (par), através do qual pode-se monitorar a confiabilidade dos dados do canal. É interessante comentar que a Norma ANSI S4.40-1985, número pelo qual a AES-EBU foi estandardizada, até os dias de hoje é extremamente sub-utilizada .
A capacidade de enviar junto com o áudio dados auxiliares como textos ou sinais de controle e automação é simplesmente ignorada por 99% das aplicações. Vamos fazer uma conta simples: na frequência de amostragem de 48 kHz, temos um User bit por Subframe, logo o User bit rate será de 96kHz, permitindo transmitir um byte na taxa de 12 kHz, ou seja 12.000 bytes por segundo. O protocolo MIDI possui um bit rate de 31,25 kHz onde a cada byte de informação é associado um Start bit e um Stop bit, perfazendo 10 bits por byte de dado. Fazendo as contas, o protocolo MIDI permite transmitir, no máximo, um byte na taxa de 3,125 kHz, ou seja, quase quatro vezes menor, ocupando todo o canal de transmissão (no caso, a MIDI) , enquanto que no protocolo AES-EBU ou no SPDIF, apesar de quase quatro vezes maior, o "User byte rate" representa apenas 1/32 do fluxo total de dados! Note-se que eu nem aventei a possibilidade de utilizar os quatro bits de dados auxiliares (bits 4, 5, 6 e 7) existentes em cada Subframe! Dá para perceber que com um pouquinho de imaginação seria possível nos sintetizadores e processadores do futuro integralizar Audio Digital & MIDI (ou automação) em um único canal de transmissão sem precisar criar nenhum novo protocolo, ou conexões, ou novos integrados, etc... Uma das grandes limitações discutidas atualmente no protocolo MIDI reside no limite de 16 canais e 128 possíveis valores de parâmetros, limitações estas associadas ao fato da codificação ser feita por byte. No caso de uma implementação utilizando o protocolo acima, sem nenhum problema poderíamos passar a trabalhar com uma palavra de 16 bits, o que permitiria uma total reformulação do protocolo MIDI...
Porém tudo isto é viagem de imaginação, pois para se tornar realidade faz-se necessário que os grandes fabricantes se interessem pela idéia e forcem o mercado para esta direção. Retornando à Terra, continuemos a descrição do protocolo. Os 192 bits do bloco de Channel Status representam exatamente 24 bytes, cujo significado, para aqueles que desejem se aprofundar mais nos detalhes do protocolo AES-EBU, pode ser visto na tabela I no final deste artigo. Desde o inicio de nossa apresentação do protocolo, que estamos falando que o sistema é auto-sincronizável por Subframe, então, visto que é uma transmissão serial e todos os bits tem a mesma "cara" qual é o truque para que seja detectado o inicio de cada Subframe? O truque está no Preâmbulo, no qual a regra de duas transições para o estado lógico 1 e uma transição para o estado lógico 0 é propositalmente desrespeitada.
Como podemos ver pela figura 3, existem duas transições "suprimidas" que permitem ao sistema reconhecer como sendo um Preâmbulo e fazer um ajuste no sincronismo caso necessário. Existem três tipos de Preâmbulos, ou seja: B, W e M. O Preâmbulo do tipo B identifica o inicio de um novo bloco de 192 Frames, o Preâmbulo Midentifica um Subframe de canal A (Left, se transmissão stereo e não inicio de bloco) e o Preâmbulo tipo W caracteriza um Subframe de canal B (Right, se transmissão stereo) .
A Philips e a Sony se associaram para estabelecer uma interface/protocolo de comunicação para seus CD's e DAT's, o SPDIF - Sony-Philips Digital Interface Format. Na verdade o SPDIF é uma "consumer version" da interface/protocolo AES-EBU, que leva este nome por ter sido desenvolvida pela AES (Audio Engineering Society) com o suporte e participação da EBU (European Broadcasting Union).
As principais diferenças elétricas entre a SPDIF e a AES-EBU são:
SPDIF AES-EBU
Conexão: tipo video phono (RCA ) tipo XLR (Cannon)
Impedância: 75 Ohms 110 Ohms
Range de Sinal: 200 a 500 mVpp 3 a 10 Vpp
Comprimento
da Linha: até 10 metros até 100 metros
O Formato do Protocolo AES-EBU
O Formato AES-EBU estabelece um padrão para transmissão de dois canais de áudio periodicamente amostrados e uniformemente quantizados a até uma distância de 100 metros sem que se faça necessário qualquer equalização da linha de transmissão (cabo blindado ou par trançado). Os canais direito e esquerdo são multiplexados e o protocolo é do tipo self-clock e auto-sicronizável, ou seja, o clock e o sincronismo são obtidos do próprio trem de dados. Em virtude do formato ser independente da frequência de amostragem, pode ser utilizado em qualquer taxa, inclusive naquelas recomendadas pela AES para as aplicações PCM, que são 32kHz, 44.1kHz e 48kHz.
O formato define uma série de termos. Uma amostra de áudio é um sinal periodicamente amostrado, quantizado e digitalmente representado em complemento de dois. O bloco de dados é formado por um FRAMEque possui 64 bits. Um FRAME se subdivide em dois SUBFRAMES, um para cada canal. O primeiro Subframe é chamado de A e o segundo de B. Cada Subframe é composto da amostra de áudio mais dados auxiliares, perfazendo os 32 bits. Em transmissões stereo, o Subframe A contém o canal Esquerdo e o Subframe B, o canal Direito. Para transmissões Mono, como a taxa deve ser a mesma, a amostra de audio é enviada no Subframe A, deixando o B livre ou disponível para transmissão de outro tipo de informação (...). Um bloco de dados é definido como 192 Frames.
A transmissão serial de cada Frame é realizada na frequência de amostragem Fs, logo o bit rate será de 64 x Fs, o que representa, por exemplo, para Fs=44.1kHz, uma taxa de 2,8224 Mbits/s. A transmissão faz uso da forma biphase mark code uma variação self-clocking da codificação tipo Manchester. Esta forma de codificação naturalmente "carrega", junto com o sinal, o clock do sistema, que é o dobro do bit rate, por isto chamado self-clocking. A codificação é feita de forma que para cada estado lógico 1, o sinal de saída troca de estado duas vezes (inverte a polaridade, ou ainda cruza o eixo zero, zero crossing) , e, para o estado lógico 0 , troca de polaridade apenas uma vez..
Na figura 1, a primeira linha representa o clock, com o dobro do bit rate. A segunda linha é um trecho de um string de dados, e a terceira é o sinal transmitido. Cada data bit a ser transferido é representado por dois estados lógicos sequenciais, ou seja, dois bits, que em conjunto são tratados como uma célula, que corresponde ao chamado timeslot de cada bit de dados do sinal.
Na figura 2 apresentamos a definição de um Subframe. Para cada amostra, uma palavra de 32 bits (32 bit word) é transmitida, na qual os quatro primeiros bits (0, 1, 2 e 3) são o Preâmbulo de Sincronismo, responsável pela manutenção do sincronismo do sistema, a cada Subframe. Estes bits garantem o ajuste do sincronismo a cada amostra de audio. Os quatro bits a seguir (4, 5, 6 e 7) são chamados Auxiliary Audio Data e seguidos de 20 audio data bits (8 a 27, onde o bit 8 é o LSB, ou seja, o bit menos significativo, e o bit 27 o MSB, bit mais significativo). Podemos perceber que protocolo permite transmitirmos uma amostra com até 24 bits de resolução.
Os últimos quatro bits do Subframe são bits de Status. O bit 28 é o bit de Validade, que determina se a amostra deve ou não ser utilizada. No caso de um CD Player, quando detectado um erro no processo de leitura do CD, este bit é setado, ou seja, seu valor é 1. O bit 29, chamado User Bit Data, pode ser utilizado opcionalmente pelo usuário para transmissão de dados, como por exemplo, no caso de um CD player, poderia ser utilizado para texto ( título e letra da musica, informações sobre compositor, etc...). O bit 30, chamado Audio Channel Status, é utilizado para formar um bloco para transmitir informação com relação ao canal da interface e outros parâmetros do sistema. Este bloco é montado para cada canal a partir dos Channel Status Bits a cada 192 sucessivos Frames. O inicio de cada bloco é identificado por um Preâmbulo específico, garantindo assim a localização deste bloco de 192 bits. O ultimo bit do Subframe é a paridade do mesmo (par), através do qual pode-se monitorar a confiabilidade dos dados do canal. É interessante comentar que a Norma ANSI S4.40-1985, número pelo qual a AES-EBU foi estandardizada, até os dias de hoje é extremamente sub-utilizada .
A capacidade de enviar junto com o áudio dados auxiliares como textos ou sinais de controle e automação é simplesmente ignorada por 99% das aplicações. Vamos fazer uma conta simples: na frequência de amostragem de 48 kHz, temos um User bit por Subframe, logo o User bit rate será de 96kHz, permitindo transmitir um byte na taxa de 12 kHz, ou seja 12.000 bytes por segundo. O protocolo MIDI possui um bit rate de 31,25 kHz onde a cada byte de informação é associado um Start bit e um Stop bit, perfazendo 10 bits por byte de dado. Fazendo as contas, o protocolo MIDI permite transmitir, no máximo, um byte na taxa de 3,125 kHz, ou seja, quase quatro vezes menor, ocupando todo o canal de transmissão (no caso, a MIDI) , enquanto que no protocolo AES-EBU ou no SPDIF, apesar de quase quatro vezes maior, o "User byte rate" representa apenas 1/32 do fluxo total de dados! Note-se que eu nem aventei a possibilidade de utilizar os quatro bits de dados auxiliares (bits 4, 5, 6 e 7) existentes em cada Subframe! Dá para perceber que com um pouquinho de imaginação seria possível nos sintetizadores e processadores do futuro integralizar Audio Digital & MIDI (ou automação) em um único canal de transmissão sem precisar criar nenhum novo protocolo, ou conexões, ou novos integrados, etc... Uma das grandes limitações discutidas atualmente no protocolo MIDI reside no limite de 16 canais e 128 possíveis valores de parâmetros, limitações estas associadas ao fato da codificação ser feita por byte. No caso de uma implementação utilizando o protocolo acima, sem nenhum problema poderíamos passar a trabalhar com uma palavra de 16 bits, o que permitiria uma total reformulação do protocolo MIDI...
Porém tudo isto é viagem de imaginação, pois para se tornar realidade faz-se necessário que os grandes fabricantes se interessem pela idéia e forcem o mercado para esta direção. Retornando à Terra, continuemos a descrição do protocolo. Os 192 bits do bloco de Channel Status representam exatamente 24 bytes, cujo significado, para aqueles que desejem se aprofundar mais nos detalhes do protocolo AES-EBU, pode ser visto na tabela I no final deste artigo. Desde o inicio de nossa apresentação do protocolo, que estamos falando que o sistema é auto-sincronizável por Subframe, então, visto que é uma transmissão serial e todos os bits tem a mesma "cara" qual é o truque para que seja detectado o inicio de cada Subframe? O truque está no Preâmbulo, no qual a regra de duas transições para o estado lógico 1 e uma transição para o estado lógico 0 é propositalmente desrespeitada.
Como podemos ver pela figura 3, existem duas transições "suprimidas" que permitem ao sistema reconhecer como sendo um Preâmbulo e fazer um ajuste no sincronismo caso necessário. Existem três tipos de Preâmbulos, ou seja: B, W e M. O Preâmbulo do tipo B identifica o inicio de um novo bloco de 192 Frames, o Preâmbulo Midentifica um Subframe de canal A (Left, se transmissão stereo e não inicio de bloco) e o Preâmbulo tipo W caracteriza um Subframe de canal B (Right, se transmissão stereo) .
A forma destes três tipos de Preâmbulo são apresentadas na figura 4. É importante comentar que o projetista/usuário não precisa se preocupar em analisar e identificar Preâmbulos, extrair bits de Status e etc... os integrados transmissores e receptores dedicados a este protocolo já realizam todo o trabalho para nós, o que nos poupa um imenso esforço de processamento.
Os parâmetros elétricos do formato AES-EBU, seguem as normas de circuitos digitais balanceados definidas pela CCITT (International Telegraph and Telephone Consultative Committee) na Recomendação V.11. Os integrados de transmissão (drivers) e recepção (receivers) seguem a norma RS-422A definida pela EIA (Electronic Industries Association) . A especificação da EBU exige a utilização de transformador de acoplamento. O circuito de transmissão emprega sinal simétrico diferencial sobre par trançado, normalmente blindado, sendo neste exigida uma impedância característica de 90 à 120 Ohms na taxa de transmissão (cerca de 64 vezes a frequência de amostragem). A amplitude do sinal, medida sobre um resistor de 110 Ohms com a linha desconectada, deve estar entre 3 a 10 Volts pico à pico e as transições no sinal devem ocorrer no máximo em 20 nanosegundos, sobre a mesma carga. O circuito receptor deve prover rejeição para interferências de modo comum através do uso de transformadores, capacitores ou interface ótica e apresentar impedância nominal de 250 Ohms no range de 0.1 a 6 MHz. Um máximo de quatro receptores podem ser conectados através de uma mesma linha. Os conectores de entrada (fêmea) e de saída (macho) são do tipo XLR com o Signal GND no pino 1 e os sinais não polarizados nos pinos 2 e 3.
O Formato do Protocolo SPDIF
Como foi dito no inicio do artigo, o protocolo SPDIF é derivado do AES-EBU a menos de algumas diferenças, que na maioria dos equipamentos, dependendo da utilização/interpretação ou não dos Channel Status Bits, permite até a interligação dos mesmos sem problemas. As diferenças, além daquelas elétricas já mencionadas anteriormente, se encontram basicamente nos Status & User bits. Os Status Bits são arranjados como 12 palavras de 16 bits, onde as duas primeiras têm significado bem definido, sendo em via de regra, zeradas as restantes. O significado destes Status bits são apresentados na Tabela II, no fim do artigo.
Com relação às características elétricas, esta interface não requer uma linha balanceada de baixa impedância como sua irmã AES-EBU. Ao contrário, um cabo simples é utilizado, com 0.5 Volts pico à pico de amplitude de sinal. Para garantir a largura de banda (bandwidth) cabos do tipo phono/video são recomendados. Alternativamente alguns equipamentos fazem uso de drivers e receptores óticos e fibra ótica.
A categoria de CD players define a estrutura do Subframe com 16 bits por amostra, taxa de 44.1kHz, bits de controle derivados do subcode Q do CD, onde estes mesmos subcodes são encontrados nos Channel Status User Bits. O Subcode é transmitido assim que obtido do disco, um subcode channel bit por amostra, através de 98 CD Frames. Entretanto, o subcode P, usado para identificar diferentes áreas do disco, não é transmitido. O inicio de um bloco de Subcode Data é determinado por no mínimo 16 zeros seguidos por um start bit alto (1) . São enviados então sete subcodes bits (Q~W). A seguir podem ser enviados até oito zeros com o propósito de temporização ou então seguidos imediatamente do próximo start bit e outro campo de subcode. O processo se repete 98 vezes até todo o subcode ser transmitido. Os blocos de subcode de um CD têm uma taxa de 75 Hz. Existe um User bit para cada amostra de audio, porém existem menos subcode bits que amostras (12 x 98 = 1.176), logo os bits restantes são transmitidos como zero.
Na categoria que define o uso de adaptadores PCM o feature de subcode pode ser suprimido (visto que não existem subcodes), porém prevê o uso de Copy-prohibit e Pre-Emphasis.
Na categoria DAT , encontra-se as informações convencionais e mais as de Track Number & Editing. Nos bits 12 a 27 encontra-se o dado de audio, com o MSB por ultimo e nos bits 4 à 11 encontra-se o Subcode. Somado a estas, informações de sincronismo com o propósito de edição são transmitidas. Quando a primeira amostra de um bloco é apresentada, um User bit alto é transmitido para cada volta da cabeça do DAT. Um Start ID bit é transmitido quando o gravador localiza um código gravado; um Skip ID bit é transmitido quando o gravador localiza um Skip-begin code e um Skip-end bit é transmitido quando encontrado um End-of-skip code. Desta maneira gravadores DAT podem ser sincronizados para edição da mesma forma que máquinas de video. Está claro que apenas os DAT's profissionais fazem uso operacional destes features do protocolo, porém todos implementam e gravam estes comandos, para que posteriormente seja possível utilizá-los em máquinas que o permitam.
TABELAS
Tabelas AES_EBU / SPDIF
TABELA I
Especificação dos 24 bytes de Channel Status Data usados no Protocolo AES-EBU
Byte 0 Data Application, Sampling Rate & Emphasis
Bit 0 Estado: 0 - Consumer use
1 - Professional use
Bit 1 Estado: 0 - Normal audio mode
1 - Non audio mode (por exemplo, CD data mode, master synch...)
Bits 2 3 4
Estado: 0 0 0 - No Emphasis, manual override enabled
1 0 0 - No Emphasis, manual override disabled
1 1 0 - 50/15 S (CD type), manual override disabled
1 1 1 - CCITT J17 emphasis (6.5dB insertion loss at 800Hz), manual override disabled
Obs.: Os outros possíveis status destes bits são, até o presente momento indefinidos porém reservados. É através do significado dos bits de 0 à 4 que uma transmissão do tipo CD Consumer pode ser reconhecida e devidamente recebida por um receptor que apenas reconheça o formato CD.
Bit 5 Estado: 0 - Default and source sampling frequency locked
1 - Source sampling frequency unlocked
Bits 6 7 Seleção da frequência de amostragem
Estado: 0 0 - Frequência de amostragem não definida. Default: 48 kHz. Manual Override ou Auto Set habilitados.
0 1 - Frequência de amostragem: 48 kHz. Manual Override ou Auto Set desabilitados.
1 0 - Frequência de amostragem: 44.1 kHz. Manual Override ou Auto Set desabilitados.
1 1 - Frequência de amostragem: 32 kHz. Manual Override ou Auto Set desabilitados.
Byte 1 Signal Type & Mode
Bits 0 1 2 3 Modo
Estado: 0 0 0 0 - Modo não indicado. Default: Dois canais. Manual Override habilitado.
0 0 0 1 - Modo: dois canais. Manual override desabilitado.
0 0 1 0 - Modo: um canal (monofônico). Manual override desabilitado.
0 0 1 1 - Modo: Primário/Secundário (Subframe A = Primário). Manual override desabilitado.
0 1 0 0 - Modo: Estereofônico (Subframe A é o canal esquerdo). Manual override desabilitado. Os Status de 0101 à 1110 são indefinidos e reservados.
1 1 1 1 - Vetor para o byte 3 para futuras aplicações.
Bits 4 à 7 - Gerenciamento dos User Bits. Reservados e não definidos até o momento. É importante notar que caso o Channel Status for implementado, então todos os dados relativos aos bytes 0 e 1 no Channel Status Block devem ser transmitidos. No caso de não ser implementado, todos os bits no Channel Status Block devem ser iguais a zero caracterizando uma situação default onde frequência de amostragem de 48 kHz, dois canais, 20 bits audio data sem Emphasis. Nesta situação podemos perceber que não existe comunicação de controle entre receptor e transmissor.
Byte 2 Word Length
Bits 0 1 2
Estado: 0 0 0 - Auxiliary Sample Bits não definidos. Audio Sample Data = 20 bits.
0 0 1 - Auxiliary Sample Bits usados com os dados principais logo, 24 bits. Os estados 010 à 111 são reservados e ainda não definidos.
Bits 3 à 7 - Reservados e ainda não definidos.
Byte 3 Multi channel applications
Byte-destino vetorizado reservado para futura descrição de função multi-canal.
Valor default: 0000 0000
Bytes 4 e 5 - Reservados e não definidos. Valor default: 0000 0000
Bytes 6 à 9 - 7 bits ASCII Alphanumeric Channel Origin Data (with Odd parity bit)
Bytes 10 à 13 - 7 bits ASCII Alphanumeric Channel Destination Data (with Odd parity bit)
Byte 14 à 17 - Código binário de endereço (32 bits - LSB first) referente à primeira amostra do bloco corrente. Tem a mesma função que um contador indexador de gravação.
Byte 18 à 21 - Código binário de Tempo (32 bits - LSB first) referenciado à primeira amostra do bloco corrente. Este tempo-horário é aquele registrado durante a codificação do sinal analógico e deve permanecer inalterado durante as subseqüentes operações sobre os dados. Note-se
que uma codificação com todos os bits a zero representa meia-noite ou zero hora ( ou seja, 00 horas, 00 minutos, 00 segundos e 00 frames). A transcodificação deste numero binário para qualquer outro Time code convencional precisará, para que se estabeleça um sincronismo absoluto com relação a cada amostra, de apenas a informação da frequência de amostragem e, evidentemente, o sinal de Frame Sync.
Byte 22 Channel Status Validity Flag Byte
Contém informações a cerca deste Channel Status Data transmitido.
Bit 0 à 3 - Reservados e não definidos. Normalmente setados à zero.
Bit 4 - Estado: 0 - Caso os bytes 0 à 5 devam ser considerados.
1 - Bytes 0 à 5 inválidos.
Bit 5 - Estado: 0 - Caso os bytes 6 à 13 devam ser considerados (Source and Destination data).
1 - Bytes 6 à 13 inválidos.
Bit 6 - Estado: 0 - Caso os bytes 14 à 17 devam ser considerados (Local sample address code).
1 - Bytes 14 à 17 inválidos.
Bit 7 - Estado: 0 - Caso bytes 18 à 21 devam ser considerados (Time-of-Day sample address code).
1 - Bytes 18 à 21 inválidos.
Byte 23 Channel Status Data Cyclic Redundancy Check Character (CRCC)
Contém informação para testar a validade de todo o Channel Status Data Block ( bytes 0 à 22).
O polinômio gerador é:
TABELA II
Especificação dos 192 bits (12 words) de Channel Status Data usados no Protocolo SPDIF
Bit 0 - Estado: 1 - Uso profissional
0 - Consumer
Bit 1 - Estado: 1 - Audio
0 - Non audio data
Bit 2 - Estado: 1 - Cópia digital permitida
0 - Cópia digital inibida
Bits 3 4 5
Estado: 0 0 0 - No Emphasis
1 0 0 - 50/15 S Emphasis
0 1 0 - Reservado (2 ch emp.)
1 1 0 - Reservado (2 ch emp.)
x x 1 - Reservado (4 ch)
Bits 6 7
Estado: 0 0 - Modo 0 (demais estados reservados)
Bits 8 à 15 - Código de Categoria
0000 0000 - Formato geral para dois canais
1000 0000 - 2 canais Compact Disc Player
0100 0000 - 2 canais PCM Encoder/Decoder
1100 0000 - 2 canais DAT
bit 15: 0 - Consumer/Professional mode
1 - Program transfer mode ( se o bit 0 = 0 )
Bits 16 à 19 - Source Number
0000 - Don't care
1000 - Source 1
0100 - Source 2
1100 - Source 3
.
.
1111 - Source 15
Bits 20 à 23 - Channel Number
0000 - Don't care
1000 - A (Canal esquerdo no formato 2 ch)
0100 - B (Canal direito no formato 2 ch)
1100 - C
0010 - D
.
.
1111 - O
Bits 24 à 27 - Sampling Frequency
0000 - 44.1kHz
0100 - 48kHz
1100 - 32kHz (demais estados são reservados e não definidos até o momento)
Bits 28 e 29 - Clock Accuracy
00 - Normal
01 - Variável
10 - Alta
11 - Reservado
As principais diferenças elétricas entre a SPDIF e a AES-EBU são:
SPDIF AES-EBU
Conexão: tipo video phono (RCA ) tipo XLR (Cannon)
Impedância: 75 Ohms 110 Ohms
Range de Sinal: 200 a 500 mVpp 3 a 10 Vpp
Comprimento
da Linha: até 10 metros até 100 metros
O Formato do Protocolo AES-EBU
O Formato AES-EBU estabelece um padrão para transmissão de dois canais de áudio periodicamente amostrados e uniformemente quantizados a até uma distância de 100 metros sem que se faça necessário qualquer equalização da linha de transmissão (cabo blindado ou par trançado). Os canais direito e esquerdo são multiplexados e o protocolo é do tipo self-clock e auto-sicronizável, ou seja, o clock e o sincronismo são obtidos do próprio trem de dados. Em virtude do formato ser independente da frequência de amostragem, pode ser utilizado em qualquer taxa, inclusive naquelas recomendadas pela AES para as aplicações PCM, que são 32kHz, 44.1kHz e 48kHz.
O formato define uma série de termos. Uma amostra de áudio é um sinal periodicamente amostrado, quantizado e digitalmente representado em complemento de dois. O bloco de dados é formado por um FRAMEque possui 64 bits. Um FRAME se subdivide em dois SUBFRAMES, um para cada canal. O primeiro Subframe é chamado de A e o segundo de B. Cada Subframe é composto da amostra de áudio mais dados auxiliares, perfazendo os 32 bits. Em transmissões stereo, o Subframe A contém o canal Esquerdo e o Subframe B, o canal Direito. Para transmissões Mono, como a taxa deve ser a mesma, a amostra de audio é enviada no Subframe A, deixando o B livre ou disponível para transmissão de outro tipo de informação (...). Um bloco de dados é definido como 192 Frames.
A transmissão serial de cada Frame é realizada na frequência de amostragem Fs, logo o bit rate será de 64 x Fs, o que representa, por exemplo, para Fs=44.1kHz, uma taxa de 2,8224 Mbits/s. A transmissão faz uso da forma biphase mark code uma variação self-clocking da codificação tipo Manchester. Esta forma de codificação naturalmente "carrega", junto com o sinal, o clock do sistema, que é o dobro do bit rate, por isto chamado self-clocking. A codificação é feita de forma que para cada estado lógico 1, o sinal de saída troca de estado duas vezes (inverte a polaridade, ou ainda cruza o eixo zero, zero crossing) , e, para o estado lógico 0 , troca de polaridade apenas uma vez..
Na figura 1, a primeira linha representa o clock, com o dobro do bit rate. A segunda linha é um trecho de um string de dados, e a terceira é o sinal transmitido. Cada data bit a ser transferido é representado por dois estados lógicos sequenciais, ou seja, dois bits, que em conjunto são tratados como uma célula, que corresponde ao chamado timeslot de cada bit de dados do sinal.
Na figura 2 apresentamos a definição de um Subframe. Para cada amostra, uma palavra de 32 bits (32 bit word) é transmitida, na qual os quatro primeiros bits (0, 1, 2 e 3) são o Preâmbulo de Sincronismo, responsável pela manutenção do sincronismo do sistema, a cada Subframe. Estes bits garantem o ajuste do sincronismo a cada amostra de audio. Os quatro bits a seguir (4, 5, 6 e 7) são chamados Auxiliary Audio Data e seguidos de 20 audio data bits (8 a 27, onde o bit 8 é o LSB, ou seja, o bit menos significativo, e o bit 27 o MSB, bit mais significativo). Podemos perceber que protocolo permite transmitirmos uma amostra com até 24 bits de resolução.
Os últimos quatro bits do Subframe são bits de Status. O bit 28 é o bit de Validade, que determina se a amostra deve ou não ser utilizada. No caso de um CD Player, quando detectado um erro no processo de leitura do CD, este bit é setado, ou seja, seu valor é 1. O bit 29, chamado User Bit Data, pode ser utilizado opcionalmente pelo usuário para transmissão de dados, como por exemplo, no caso de um CD player, poderia ser utilizado para texto ( título e letra da musica, informações sobre compositor, etc...). O bit 30, chamado Audio Channel Status, é utilizado para formar um bloco para transmitir informação com relação ao canal da interface e outros parâmetros do sistema. Este bloco é montado para cada canal a partir dos Channel Status Bits a cada 192 sucessivos Frames. O inicio de cada bloco é identificado por um Preâmbulo específico, garantindo assim a localização deste bloco de 192 bits. O ultimo bit do Subframe é a paridade do mesmo (par), através do qual pode-se monitorar a confiabilidade dos dados do canal. É interessante comentar que a Norma ANSI S4.40-1985, número pelo qual a AES-EBU foi estandardizada, até os dias de hoje é extremamente sub-utilizada .
A capacidade de enviar junto com o áudio dados auxiliares como textos ou sinais de controle e automação é simplesmente ignorada por 99% das aplicações. Vamos fazer uma conta simples: na frequência de amostragem de 48 kHz, temos um User bit por Subframe, logo o User bit rate será de 96kHz, permitindo transmitir um byte na taxa de 12 kHz, ou seja 12.000 bytes por segundo. O protocolo MIDI possui um bit rate de 31,25 kHz onde a cada byte de informação é associado um Start bit e um Stop bit, perfazendo 10 bits por byte de dado. Fazendo as contas, o protocolo MIDI permite transmitir, no máximo, um byte na taxa de 3,125 kHz, ou seja, quase quatro vezes menor, ocupando todo o canal de transmissão (no caso, a MIDI) , enquanto que no protocolo AES-EBU ou no SPDIF, apesar de quase quatro vezes maior, o "User byte rate" representa apenas 1/32 do fluxo total de dados! Note-se que eu nem aventei a possibilidade de utilizar os quatro bits de dados auxiliares (bits 4, 5, 6 e 7) existentes em cada Subframe! Dá para perceber que com um pouquinho de imaginação seria possível nos sintetizadores e processadores do futuro integralizar Audio Digital & MIDI (ou automação) em um único canal de transmissão sem precisar criar nenhum novo protocolo, ou conexões, ou novos integrados, etc... Uma das grandes limitações discutidas atualmente no protocolo MIDI reside no limite de 16 canais e 128 possíveis valores de parâmetros, limitações estas associadas ao fato da codificação ser feita por byte. No caso de uma implementação utilizando o protocolo acima, sem nenhum problema poderíamos passar a trabalhar com uma palavra de 16 bits, o que permitiria uma total reformulação do protocolo MIDI...
Porém tudo isto é viagem de imaginação, pois para se tornar realidade faz-se necessário que os grandes fabricantes se interessem pela idéia e forcem o mercado para esta direção. Retornando à Terra, continuemos a descrição do protocolo. Os 192 bits do bloco de Channel Status representam exatamente 24 bytes, cujo significado, para aqueles que desejem se aprofundar mais nos detalhes do protocolo AES-EBU, pode ser visto na tabela I no final deste artigo. Desde o inicio de nossa apresentação do protocolo, que estamos falando que o sistema é auto-sincronizável por Subframe, então, visto que é uma transmissão serial e todos os bits tem a mesma "cara" qual é o truque para que seja detectado o inicio de cada Subframe? O truque está no Preâmbulo, no qual a regra de duas transições para o estado lógico 1 e uma transição para o estado lógico 0 é propositalmente desrespeitada.
Como podemos ver pela figura 3, existem duas transições "suprimidas" que permitem ao sistema reconhecer como sendo um Preâmbulo e fazer um ajuste no sincronismo caso necessário. Existem três tipos de Preâmbulos, ou seja: B, W e M. O Preâmbulo do tipo B identifica o inicio de um novo bloco de 192 Frames, o Preâmbulo Midentifica um Subframe de canal A (Left, se transmissão stereo e não inicio de bloco) e o Preâmbulo tipo W caracteriza um Subframe de canal B (Right, se transmissão stereo) .
A forma destes três tipos de Preâmbulo são apresentadas na figura 4. É importante comentar que o projetista/usuário não precisa se preocupar em analisar e identificar Preâmbulos, extrair bits de Status e etc... os integrados transmissores e receptores dedicados a este protocolo já realizam todo o trabalho para nós, o que nos poupa um imenso esforço de processamento.
Os parâmetros elétricos do formato AES-EBU, seguem as normas de circuitos digitais balanceados definidas pela CCITT (International Telegraph and Telephone Consultative Committee) na Recomendação V.11. Os integrados de transmissão (drivers) e recepção (receivers) seguem a norma RS-422A definida pela EIA (Electronic Industries Association) . A especificação da EBU exige a utilização de transformador de acoplamento. O circuito de transmissão emprega sinal simétrico diferencial sobre par trançado, normalmente blindado, sendo neste exigida uma impedância característica de 90 à 120 Ohms na taxa de transmissão (cerca de 64 vezes a frequência de amostragem). A amplitude do sinal, medida sobre um resistor de 110 Ohms com a linha desconectada, deve estar entre 3 a 10 Volts pico à pico e as transições no sinal devem ocorrer no máximo em 20 nanosegundos, sobre a mesma carga. O circuito receptor deve prover rejeição para interferências de modo comum através do uso de transformadores, capacitores ou interface ótica e apresentar impedância nominal de 250 Ohms no range de 0.1 a 6 MHz. Um máximo de quatro receptores podem ser conectados através de uma mesma linha. Os conectores de entrada (fêmea) e de saída (macho) são do tipo XLR com o Signal GND no pino 1 e os sinais não polarizados nos pinos 2 e 3.
O Formato do Protocolo SPDIF
Como foi dito no inicio do artigo, o protocolo SPDIF é derivado do AES-EBU a menos de algumas diferenças, que na maioria dos equipamentos, dependendo da utilização/interpretação ou não dos Channel Status Bits, permite até a interligação dos mesmos sem problemas. As diferenças, além daquelas elétricas já mencionadas anteriormente, se encontram basicamente nos Status & User bits. Os Status Bits são arranjados como 12 palavras de 16 bits, onde as duas primeiras têm significado bem definido, sendo em via de regra, zeradas as restantes. O significado destes Status bits são apresentados na Tabela II, no fim do artigo.
Com relação às características elétricas, esta interface não requer uma linha balanceada de baixa impedância como sua irmã AES-EBU. Ao contrário, um cabo simples é utilizado, com 0.5 Volts pico à pico de amplitude de sinal. Para garantir a largura de banda (bandwidth) cabos do tipo phono/video são recomendados. Alternativamente alguns equipamentos fazem uso de drivers e receptores óticos e fibra ótica.
A categoria de CD players define a estrutura do Subframe com 16 bits por amostra, taxa de 44.1kHz, bits de controle derivados do subcode Q do CD, onde estes mesmos subcodes são encontrados nos Channel Status User Bits. O Subcode é transmitido assim que obtido do disco, um subcode channel bit por amostra, através de 98 CD Frames. Entretanto, o subcode P, usado para identificar diferentes áreas do disco, não é transmitido. O inicio de um bloco de Subcode Data é determinado por no mínimo 16 zeros seguidos por um start bit alto (1) . São enviados então sete subcodes bits (Q~W). A seguir podem ser enviados até oito zeros com o propósito de temporização ou então seguidos imediatamente do próximo start bit e outro campo de subcode. O processo se repete 98 vezes até todo o subcode ser transmitido. Os blocos de subcode de um CD têm uma taxa de 75 Hz. Existe um User bit para cada amostra de audio, porém existem menos subcode bits que amostras (12 x 98 = 1.176), logo os bits restantes são transmitidos como zero.
Na categoria que define o uso de adaptadores PCM o feature de subcode pode ser suprimido (visto que não existem subcodes), porém prevê o uso de Copy-prohibit e Pre-Emphasis.
Na categoria DAT , encontra-se as informações convencionais e mais as de Track Number & Editing. Nos bits 12 a 27 encontra-se o dado de audio, com o MSB por ultimo e nos bits 4 à 11 encontra-se o Subcode. Somado a estas, informações de sincronismo com o propósito de edição são transmitidas. Quando a primeira amostra de um bloco é apresentada, um User bit alto é transmitido para cada volta da cabeça do DAT. Um Start ID bit é transmitido quando o gravador localiza um código gravado; um Skip ID bit é transmitido quando o gravador localiza um Skip-begin code e um Skip-end bit é transmitido quando encontrado um End-of-skip code. Desta maneira gravadores DAT podem ser sincronizados para edição da mesma forma que máquinas de video. Está claro que apenas os DAT's profissionais fazem uso operacional destes features do protocolo, porém todos implementam e gravam estes comandos, para que posteriormente seja possível utilizá-los em máquinas que o permitam.
TABELAS
Tabelas AES_EBU / SPDIF
TABELA I
Especificação dos 24 bytes de Channel Status Data usados no Protocolo AES-EBU
Byte 0 Data Application, Sampling Rate & Emphasis
Bit 0 Estado: 0 - Consumer use
1 - Professional use
Bit 1 Estado: 0 - Normal audio mode
1 - Non audio mode (por exemplo, CD data mode, master synch...)
Bits 2 3 4
Estado: 0 0 0 - No Emphasis, manual override enabled
1 0 0 - No Emphasis, manual override disabled
1 1 0 - 50/15 S (CD type), manual override disabled
1 1 1 - CCITT J17 emphasis (6.5dB insertion loss at 800Hz), manual override disabled
Obs.: Os outros possíveis status destes bits são, até o presente momento indefinidos porém reservados. É através do significado dos bits de 0 à 4 que uma transmissão do tipo CD Consumer pode ser reconhecida e devidamente recebida por um receptor que apenas reconheça o formato CD.
Bit 5 Estado: 0 - Default and source sampling frequency locked
1 - Source sampling frequency unlocked
Bits 6 7 Seleção da frequência de amostragem
Estado: 0 0 - Frequência de amostragem não definida. Default: 48 kHz. Manual Override ou Auto Set habilitados.
0 1 - Frequência de amostragem: 48 kHz. Manual Override ou Auto Set desabilitados.
1 0 - Frequência de amostragem: 44.1 kHz. Manual Override ou Auto Set desabilitados.
1 1 - Frequência de amostragem: 32 kHz. Manual Override ou Auto Set desabilitados.
Byte 1 Signal Type & Mode
Bits 0 1 2 3 Modo
Estado: 0 0 0 0 - Modo não indicado. Default: Dois canais. Manual Override habilitado.
0 0 0 1 - Modo: dois canais. Manual override desabilitado.
0 0 1 0 - Modo: um canal (monofônico). Manual override desabilitado.
0 0 1 1 - Modo: Primário/Secundário (Subframe A = Primário). Manual override desabilitado.
0 1 0 0 - Modo: Estereofônico (Subframe A é o canal esquerdo). Manual override desabilitado. Os Status de 0101 à 1110 são indefinidos e reservados.
1 1 1 1 - Vetor para o byte 3 para futuras aplicações.
Bits 4 à 7 - Gerenciamento dos User Bits. Reservados e não definidos até o momento. É importante notar que caso o Channel Status for implementado, então todos os dados relativos aos bytes 0 e 1 no Channel Status Block devem ser transmitidos. No caso de não ser implementado, todos os bits no Channel Status Block devem ser iguais a zero caracterizando uma situação default onde frequência de amostragem de 48 kHz, dois canais, 20 bits audio data sem Emphasis. Nesta situação podemos perceber que não existe comunicação de controle entre receptor e transmissor.
Byte 2 Word Length
Bits 0 1 2
Estado: 0 0 0 - Auxiliary Sample Bits não definidos. Audio Sample Data = 20 bits.
0 0 1 - Auxiliary Sample Bits usados com os dados principais logo, 24 bits. Os estados 010 à 111 são reservados e ainda não definidos.
Bits 3 à 7 - Reservados e ainda não definidos.
Byte 3 Multi channel applications
Byte-destino vetorizado reservado para futura descrição de função multi-canal.
Valor default: 0000 0000
Bytes 4 e 5 - Reservados e não definidos. Valor default: 0000 0000
Bytes 6 à 9 - 7 bits ASCII Alphanumeric Channel Origin Data (with Odd parity bit)
Bytes 10 à 13 - 7 bits ASCII Alphanumeric Channel Destination Data (with Odd parity bit)
Byte 14 à 17 - Código binário de endereço (32 bits - LSB first) referente à primeira amostra do bloco corrente. Tem a mesma função que um contador indexador de gravação.
Byte 18 à 21 - Código binário de Tempo (32 bits - LSB first) referenciado à primeira amostra do bloco corrente. Este tempo-horário é aquele registrado durante a codificação do sinal analógico e deve permanecer inalterado durante as subseqüentes operações sobre os dados. Note-se
que uma codificação com todos os bits a zero representa meia-noite ou zero hora ( ou seja, 00 horas, 00 minutos, 00 segundos e 00 frames). A transcodificação deste numero binário para qualquer outro Time code convencional precisará, para que se estabeleça um sincronismo absoluto com relação a cada amostra, de apenas a informação da frequência de amostragem e, evidentemente, o sinal de Frame Sync.
Byte 22 Channel Status Validity Flag Byte
Contém informações a cerca deste Channel Status Data transmitido.
Bit 0 à 3 - Reservados e não definidos. Normalmente setados à zero.
Bit 4 - Estado: 0 - Caso os bytes 0 à 5 devam ser considerados.
1 - Bytes 0 à 5 inválidos.
Bit 5 - Estado: 0 - Caso os bytes 6 à 13 devam ser considerados (Source and Destination data).
1 - Bytes 6 à 13 inválidos.
Bit 6 - Estado: 0 - Caso os bytes 14 à 17 devam ser considerados (Local sample address code).
1 - Bytes 14 à 17 inválidos.
Bit 7 - Estado: 0 - Caso bytes 18 à 21 devam ser considerados (Time-of-Day sample address code).
1 - Bytes 18 à 21 inválidos.
Byte 23 Channel Status Data Cyclic Redundancy Check Character (CRCC)
Contém informação para testar a validade de todo o Channel Status Data Block ( bytes 0 à 22).
O polinômio gerador é:
TABELA II
Especificação dos 192 bits (12 words) de Channel Status Data usados no Protocolo SPDIF
Bit 0 - Estado: 1 - Uso profissional
0 - Consumer
Bit 1 - Estado: 1 - Audio
0 - Non audio data
Bit 2 - Estado: 1 - Cópia digital permitida
0 - Cópia digital inibida
Bits 3 4 5
Estado: 0 0 0 - No Emphasis
1 0 0 - 50/15 S Emphasis
0 1 0 - Reservado (2 ch emp.)
1 1 0 - Reservado (2 ch emp.)
x x 1 - Reservado (4 ch)
Bits 6 7
Estado: 0 0 - Modo 0 (demais estados reservados)
Bits 8 à 15 - Código de Categoria
0000 0000 - Formato geral para dois canais
1000 0000 - 2 canais Compact Disc Player
0100 0000 - 2 canais PCM Encoder/Decoder
1100 0000 - 2 canais DAT
bit 15: 0 - Consumer/Professional mode
1 - Program transfer mode ( se o bit 0 = 0 )
Bits 16 à 19 - Source Number
0000 - Don't care
1000 - Source 1
0100 - Source 2
1100 - Source 3
.
.
1111 - Source 15
Bits 20 à 23 - Channel Number
0000 - Don't care
1000 - A (Canal esquerdo no formato 2 ch)
0100 - B (Canal direito no formato 2 ch)
1100 - C
0010 - D
.
.
1111 - O
Bits 24 à 27 - Sampling Frequency
0000 - 44.1kHz
0100 - 48kHz
1100 - 32kHz (demais estados são reservados e não definidos até o momento)
Bits 28 e 29 - Clock Accuracy
00 - Normal
01 - Variável
10 - Alta
11 - Reservado