Le S/PDIF : le signal, les circuits de décodage et d’encodage


Le SPDIF est une liaison série entre une source et un récepteur sonores numériques. Elle utilise un seul câble pour transporter successivement le signal des deux voies ( voire plus sur d’autres systèmes de son ).

NAD-C515BEE-14

Puisque le signal est numérique, le SPDIF transporte les échantillons successifs d’un ou plusieurs signaux analogiques ( voie droite et gauche dans le cas de la stéréo ) ce signal devra être traité par un DAC pour être converti en analogique.

La liaison SPDIF peut transporter des échantillons sonores à la fréquence de 44,1 k echantillons /seconde, ou 48 k , ou 96 k ( pour 192 k, j’attend la confirmation ).

Mais les échantillons sont une suite de bits à 0 ou à 1, et donc la fréquence de transmission est du domaine de la HF ( plusieurs MHz, aussi elle utilise du câble coax de type vidéo 75 ohms pour altérer le moins possible le signal qui au départ est une succession de carrés ( contrairement à ce que j’ai pu lire ici ou là : où on parle de belle sinusoïde !!!! Quand le carré du SPDIF est devenu un semblant de sinusoïde, c’est qu’il est déjà bien amoché par l’atténuation du câble ( cf la calibration des sondes d’oscillos ) ou qu’on est dans la limite de temps de réponse des composants de l’époque ou que la sortie SPDIF du lecteur a été traitée avec une certaine désinvolture.( je mettrais des oscillogrammes de TVC Audio, hélas c’est le cas de nombreux lecteurs, cette sortie étant rarement utilisée ).

Certains lecteurs de CD ne sont que des « CD tranport » ou « Drive », ils nécessitent donc un DAC externe et la liaison entre les deux se fait par une liaison SPDIF.

Bien que numérique le S/PDIF n’est pas la sortie de la tête de lecture laser. Ce dernier signala été purgé du code EFM sur 14 bits ( pour 8 ), les échantillons ont été remis dans l’ordre chronologique ( débrassage : à l’enregistrement il a été fait un brassage pour minimiser l’impact d’une rayure pour ne pas avoir une erreur de lecture sur un trop grand nombre d’échantillons successifs) les échantillons sont débarrassés des signaux de service et autres comme le channel P et le channel Q) par le décodeur inclus dans le « Drive ».

Plus rares sont les amplis équipés d’une entrée SPDIF, aussi les possesseurs de lecteurs de CD de la deuxième génération pendant longtemps, n’ont jamais pu utiliser leur sortie optique.

Depuis longtemps il existe des DACs externes, mais réservés au très haut de gamme et donc inaccessibles au commun des mortels. La marque Wadia par exemple a fait des DACs de très haute qualité : le x32, le x64 sur le marché de l’occasion ils coutent encore une petite fortune.

Aujourd’hui on trouve des DACs en kit à partir d’une centaine d’ euros, avec un chip ES9018 surnommé « Sabre » ( censé surclasser tous les autres ) et capable de convertir un signal audio échantillonné sur 32 bits à la fréquence de 192 kHz : le son en HD.

Note ! ce n’est pas parce que notre kit, va contenir le dernier chip du moment, utilisé par les grandes marques sur leurs derniers devant lequel se prosterne toute la presse audiophile, qu’on va pouvoir tomber en extase devant notre kit chinois à 100 roros fdp inclus. La qualité du son dépend beaucoup de la mise en oeuvre du chips ou de ces chips, de la qualité des composants annexes, etc.

Aujourd’hui , tous les PC pratiquement sont équipés en son HD, mais sont hélas affublés de cartes sons à la connectique désuette, pour ne pas dire calamiteuse ( avec ses jacks 3,5 mm pour les gadgets ). Quand aux convertisseurs ADC ou DAC d’un PC, on est pas franchement dans le haut de gamme de ce qui se fait actuellement. On peut avoir recours à des cartes son professionnelles, réservées à cet usage et fort onéreuses, mais à l’intérieur d’un PC elles sont soumises à tout un tas de signaux parasites à proximité ( difficile de faire pire ).On trouve aussi des cartes externes reliées par le Firewire ( plus rapide ) ou pour l’ USB ( pour l’ USB 3 il faut encore attendre ).

Par contre j’ai vu que mon PC était équipé d’une sortie SPDIF. J’ai bien relu la notice , ce n’est qu’une sortie, en entrée pas de salut hors USB2.

J ‘espère, car pour l’instant ce n’est qu’un projet, que le son sera de meilleure qualité que ce qui sort des jacks 3,5 en analogique. De quoi améliorer le son des DVD musicaux ( faute d’accrocher au home cinéma ).

Dac qui pourra éventuellement servir à raccorder sur la chaine HiFi un « Drive » non pourvu de DAC ou un lecteur de CD dont le DAC n’est pas terrible, voire en panne.

Revenons à notre signal SPDIF :

Le support : on trouve trois types de liaisons série :

– le coax 75 ohms sur une sortie RCA , qui devrait être avantageusement remplacée par une BNC le niveau du signal est de 0,5 V environ.

– la fibre optique ou TOSLINK ( inventée par Toshiba ). Hélas il s’agit de fibre plastique, et la longueur ne peut dépasser 10 mètres sans subir d’atténuation. Par contre elle est bien immunisée des parasites extérieurs. Les câbles optiques ne sont pas très chers, je m’attendais à pire.

TOSLINK

– l ‘AES/EBU : L ‘AES n’est pas à proprement parler une liaison S/PDIF, mais c’est une liaison série, elle est réservé au monde professionnel, où il peut y avoir de très longs cheminements de câbles sur les plateaux et dans les studios..

Le niveau du signal peut monter jusqu ‘à 10 V. Pour la liaison on utilise un câblage symétrique ( balanced : point chaud, point froid et masse ) si bien que les parasites externes qui auraient pu affecter les deux fils du signal, s’annulent à l’entrée du récepteur en AES. Seuls les lecteurs très haut de gamme sont équipés en AES avec de grosses prises type XLR. Il existe plusieurs types d’AES ( voir plus loin ). Il existe une certaine compatibilité SPDIF => AES/EBU, mais pas l’inverse.

Le format ( ou l’encodage ) des données SPDIF :

On a qu’un seul fil et la masse, aussi on ne transmet pas de signal d’horloge pour synchroniser le lecteur et le DAC.

Quand on a une longue suite de 0 ou de 1 comment savoir combien il y en a exactement, à quel moment précis il faut lire la valeur du signal.. ( pour le codage du CD ils ont utilisé l’encodage EFM pour éviter ces longues suites )pour le SPDIF ils ont utilisé un encodoge Bimark Phase, qui assure au moins une transition du signal pour chaque bit envoyé. ( on dit que l’horloge est contenue dans le signal liaison asynchrone ). Ainsi les horloges peuvent se synchroniser.

SPDIF

Bien sûr coté réception il faudra redécoder ça pour avoir les données envoyées et l’horloge du signal..

Exemple ici en hardware :

http://pdf.sumobrain.com/US5465268.pdf?AWSAccessKeyId=AKIAIBOKHYOLP4MBMRGQ&Expires=1395705600&Signature=Es4HUM2Z%2FM0AyXX7hahXZQCljNc%3D#view=FitH

Mais généralement c’est fait par software.

Ce n’est toutefois pas suffisant pour synchroniser les échantillons , d’autre part il faut savoir à quel canal ou voie appartient l’ échantillon qui va suivre.

Le S/PDIF est capable de transmettre 20 bits de données ( en option 24 bits comme l’ AES , mais pas plus , pas la peine de chercher 32 bits )

Ces 20 bits sont précédés d’un préambule ( qui va servir à la synchronisation ) et suivis de 4 bits particuliers, le tout forme une subframe

Frame_SPDIF

Normalement il y a une subframe par voie, donc seulement deux pour la stéréo, qui composent une frame..

Un ensemble de 192 frames , compose un datablock ( de la frame 0 à la frame 191).

La première frame d’un datablock est repérée par un préambule particulier le préambule « B » qui permet de se synchroniser sur le début du bloc.

Les premiers 4 bits d’une subframe de 32 bits forment le préambule

Ce pattern de synchro ne contient pas de données, mais équivaut à 4 bits de donnée en longueur.

Il n’utilise pas les « BMC » ( BMC =Bi Mark Code ), ainsi des patterns qui contiennent plus que 2 « 0 » ou « 1 » dans une rangée peuvent arriver à un point de rupture (« occur »).

Il y a 3 différents patterns de synchro, ils peuvent apparaître sous diverses formes, ceci dépendant du dernier élément du mot 32-bit précédent : le bit de parité.

Preambule_SPDIF

Préambule ordre ordre
(dernier élément= « 0 ») (dernier élément= « 1 »)
———————————————-
« B » 11101000 00010111
« M » 11100010 00011101
« W » 11100100 00011011

Ici on a des suites de 8 bits, mais le préambule en occupe que 4 ( au niveau temps ou longueur de transmission des données ), il faut placer les 0 et les 1 du préambule par 1/2 bits.

Les trois types de préambule.

type B: identifie le premier subframe(canal gauche) à l’intérieur un data-blockde 192
frames.
type M: identifie le canal gauche pour les autres subframesdu bloc de 192 frames.
type W: identifie le canal droit pour tous les subframes.

Les préambules sont reconnaissables ( et se distinguent des signaux musicaux ou autres dans la subframe par le fait qu’on a 3 demi temps de 1 ou de 0 consécutifs ( ils ne suivent donc pas le BMC code, qui a des 1 et des 0 qui durent au max deux demi-temps, pour avoir au moins une transition par bit de donnée. ).

Pour le préambule B qui marque la synchro début de bloc, ça se produit même deux fois, au début et à la fin.

Ainsi il se distingue des autres préambules début de subframe.

Chaque échantillon est transmis comme un mot de 32 bits (subframe). Ces bits sont utilisés de la manière suivante:

bits description
———————————————————-
0-3 Préambule (voir avant; structure spéciale)

4-7 bits de données audio auxiliaires( pour option 24 bits)

8-27 échantillon 20 bits .

Un lecteur CD utilise seulement 16 bits, ainsi, seulement les bits 13 (LSB) à 27 (MSB) sont mis à contribution.Les bits 4 à 12 sont mis à 0.

28 Validité

(Quand ce bit est activé , l’échantillon ne devrait pas être utilisé par le récepteur. Un lecteur CD met ce bit à 1 quand il y a des erreurs de lecture. Le convertisseur va couper le signal de sortie avec « Mute »

29 Subcode-data

30 information de status de canal

31 Parité (les bits de 0 à 3 ne sont pas inclus)

Status de canal et information de subcode

Ce sont seulement deux bits U et C, un peu léger pour transmettre des infos dans une subframe, mais on va mettre en série les 192 bits U et C du block data pour chaque canal d’info. Ou plutôt les ranger en une suite de 24 octets

Le bit U commue user est laissé libre.

Le bit C comme Channel status : ses 15 premiers bits sont utilisés et correspondent à ceci :

bit description
————————————————————-
bits 0-3 controlbits:

bit 0: 0 (à 1 pendant la transmission du canal 4)
bit 1: 0=Digital audio, 1=Non-audio (réservé pour être à 0sur les anciennes specs S/PDIF)
bit 2: protection contre copies.
bit 3: utilisé en présence de pre-emphasisis.

bit 4-7: 0 (réservé)

bit 9-15: code de catégorie:

0 = format 2 canaux commun
1 = format CD 2 canaux (établi par un lecteur CD quand un subcode est transmis)
2 = format 2canaux PCM-encodeur-décodeur

les autres valeurs ne sont pas utilisées

bits 19-191 0 (réservé)

Infos extraites de cette page : http://studiotrankilou.free.fr/numerique/formats.htm

Essayons de voir dans son block diagram ce que décode le chip qui traite ce signal et s’il nous sort un signal de synchro qq part ? ( ce qui permettrait de synchroniser les blocs ou les frames sur l’oscillo ).

Hélas ! non ! le décodeur de préambule B reste interne au chip décodeur;

Donc si on veut analyser un databloc, il faut bricoler un système de détection, pour synchroniser l’oscillo.

Qualité du signal S/PDIF :

quelques exemples relevés par le Lampizator.

IMG_5608

IMG_5612

IMG_5611

Le signal particulièrement mauvais obtenu par la liaison optique.

toslinktrace

D ‘autres exemples relevés par TVC Audio :

Ci dessous un Kenwood DP 1100 SG : le signal est bien carré mais a un peu trop de rebond.

KenwoodPD1100SG_SPDIF_1m50

MarantzCD75MkII_SPDIF_1m50

TeacP101m50

Le module sortie S/PDIF de TVC Audio.

TVC_SPDIF

à suivre

Autres liens :

http://www.epanorama.net/documents/audio/spdif.html


http://www.lampizator.eu/lampizator/TRANSPORT/CD_transport_DIY.html

Profitez en pour regarder la sale tronche de la sortie optique du SPDIF, ils en parlent également dans le lien ci- dessous. ( sur le PC où il n’ y a pas de sortie coax, uniquement optique et où il est impossible de changer l’émetteur, il faudra mettre un câble très court de la meilleure qualité optique et si possible coté récepteur un composant de haute qualité.

Surtout qu’un cable optique ce n’est pas très cher ( on est pas dans les délires de cables Hp ou de modulation ) : 30 € pour le meilleur de la liste en 50 cm. C’est pas le moment de mettre un cable à 3 € pour faire des économies.

http://www.audiophonics.fr/viablue-hflex-cable-numerique-optique-toslink-050m-p-107.html


http://www.bigbrownbus.com/mixerton/whitepapers/spdif/sp-dif.html

Ici le catalogue Toshiba : http://www.semicon.toshiba.co.jp/download/docs_pdf/SCA0004-05_catalog.pdf

On trouve des transmetteurs avec une portée de 5 m à 1 km, forcément sur un PC ils ont du mettre le minimum et le moins cher !

TVC Audio : qui fabrique et vend des entrées et sorties SPDIF de meilleure qualité ( équipées de BNC entre autres ).


http://tvcaudio.com/SPDIFInput/spdifInput.html

Mesures faites par TVC Audio sur la sortie S/PDIF de plusieurs lecteurs de marque !


http://tvcaudio.com/modules/SPDIF_HallOfFame.html

http://www.hardwarebook.info/S/PDIF

Durées et fréquences

Pour un CD la fréquence d’échantillonage est de 44,1 kHz, c’est à dire toutes les 22,675 µs.

pour les subframes la fréquence d’envoi est de 88,2 kHz

pour les frames la frequence d’envoi est de 44,1 kHz

pour les datablocs ( 192 frames ) la freq est de 44,1 Hz / 192 = 229,68 Hz. cad 1 datablock toutes les 4,35 ms

Chaque subframe aune longueur de 32 bits, donc un frame envoyée à 44,1kHz = 2 x 32 x 44,1 kHz

= > pour un CD le débit en bits par sec de la sortie S/PDIF = 2,8224 Mb/sec

La durée d’un bit de donnée est donc de 354 ns

La durée du plus petit créneau du codage BMC est de 177 ns ( et exige une bande passante de 6 MHz )

La durée des triplets de bits du préambule est de 3 x 177 ns = 531 ns

Coté DAC : comment est traité le signal S/PDIF

Je suis partie un peu à l’aventure, pour voir comment le siganl SPDIF était traité en reception dans un DAC.

Il doit sûrement y avoir des variantes.

Je suis tombée sur un schéma d’application du DAC AD 1853 qui ne semble pas adapté ( envoyant son block diagram ) à traiter un S/PDIF, l’entrée se fait en mode série.

AD1853

A la fin du datasheet, j’ai donc trouvé ce schéma intéressant :

SPDIF_vers_DAC

Les entrées S/PDIF attaquent un circuit CS8414-CS appelé : Digital Audio Receiver, qui transmet les données extraites du S/PDIF au DAC AD1853

Digital_Audio_receiver SPDIF

Effectivement dans son schéma bloc on reconnait ce qu’on a vu dans le S/PDIF.: le décodage bi mark Code etc..

CS8414_SPDIF_Decodeur

En général dans un lecteur de CD avec DAC intégré, on a pas besoin de ce circuit intermédiare, le signal sortant de la lecture après décodage EFM et débrassage est directement transmis en série au DAC. On a toujours que deux voies à transmettre, c’est toujours 16 bits, et toujours le même échantillonage 44,1 kHz. Pour un DAC externe qui peut être relié à divers appareils, c’est différent.

Puis la sortie S/PDIF du lecteur est codée en S/PDIF par un des chips, pour être envoyée à l’extérieur, mais pas vers le DAC interne. ( dans un autre paragraphe on cherchera qui fait ce codage sur divers lecteurs).

Il est accompagné d’un autre chip : PALCE2210 un système de portes programmables, pour traiter des équations complexes.

https://engineering.purdue.edu/ece362/Refs/Pld/palce22v10.pdf

Ce chip audio receiver CS8414 pourrait bien faire un système de test de sortie S/PDIF ( un peu universel )

On en apprend un peu plus.

The C output contains the channel status bits with CBL rising indicating the start of a new channel
status block.

CBL is high for the first four bytes of channel status (32 frames or 64 samples) and low for the last 20 bytes of channel status (160 frames or 320 samples).

The U output contains the User Channel data. The V bit is OR’ed with the ERF flag and output on the VERF pin. This indicates that the audio sample may be in error and can be used by interpolation filters to interpolate through the error.

ERF being high indicates a serious error occurred on the transmission line. There are three errors that
cause ERF to go high: a parity error or biphase coding violation during that sample, or an out of lock
PLL receiver.

Codes d  erreurSPDIF

freq SPDIF

Mais plein d’autres choses également.

Ce circuit est un peu ancien, il est dispo chez Littlediode pour 14 £ : http://www.littlediode.com/components/CS8414_CS.html

Mais il existe de nombreux circuits ( Philips, ST , Ti… ) avec des perfs différentes au niveau jitter et à l’implémentation plus ou moins facile.

DACs compatibles S/PDIF.

C ‘est bien ce qu’il me semblait après avoir vu un kit, à base de Sabre ES9018 : il y a très peu de composants autour et donc il décode le BMC et les frame du S/PDIF.

Sabre32

C ‘est très bien d’avoir moins de circuits pour un DAC, mais ça ne convient pas si on cherche à faire un contrôleur de sortie S/PDIF afin de voir les codes d’erreur.

Encodage S/PDIF

A part les premiers lecteurs en 14 bits Philips avec les CDM0 et CDM1, qui n’ont pas de sortie S/PDIF ( dommage ça pouvait faire un joli Drive, un projet que j’ai abandonné car trop complexe, quoi que cette incursion dans le codage S/PDIF me donne d’autres idées, puisque 14 bits de données ça rentrera dans une frame prévue pour 20 bits ), tous les lecteurs sont équipés de sortie S/PDIF.

Quels circuits font cet encodage ?

Le chip SAA7220 :

http://lampizator.eu/lampizator/TRANSPORT/SAA7220.pdf

Mais ce signal s’appelle DOBM Digital Output Bi Mark ???

SPDIF SAA7220

Sur le Kenwoood DP1100SG

C’est le chip CXD1125QZ de Sony : signal DOTX.

Ken_SPDIF

Le datasheet ne nous en apprendra pas plus.

Sur le Onkyo DX706

Idem un CXD2500 AQ

Sur le CD 63

C’est le décodeur SAA7345 de Philips appellée EBU Interface et le signal DOBM.

http://data.datasheetlib.com/pdf1/71/20/712059/nxp-semiconductors-saa7345_af1b21a4e2.pdf?take=binary

il n’y a pas à proprement parler d’interface d’encodage S/PDIF

il faut chercher avec « transmitter S/PDIF EBU » on trouve ceci par exemple.

AK4103


http://www.akm.com/akm/en/product/datasheet1/?partno=AK4103AVF

Et plus simple : le CS8402A un circuit étudier pour mettre à la suite d’un simple convertisseur A/D et sortir du S/PDIF.

CS8402A_titre

CS8402A_titre

Ici on a le schéma de la carte et le typon.

http://pdf.datasheetarchive.com/indexerfiles/Datasheet-017/DSA00291304.pdf

Remplacé par le CS8406

CS8406_resume

Là ça devient interessant, car ce chip coute 4 € chez Mouser et à la fin il est marqué qu’il fonctionne sans microprocesseur ( standalone mode )

Avec une carte d’évaluation : http://www.cirrus.com/en/pubs/rdDatasheet/CDB8416_DB3.pdf , hélas beaucoup plus chère 459 €

Les transfos :


http://pdf.datasheetarchive.com/datasheetsmain/Datasheets-3/DSA-59811.pdf

L’idée de rajouter une sortie AES ( tant qu ‘à faire) a mon CD54 avec sa CDM1, me semble de plus en plus simple, et ce ne devrait pas être très encombrant.

Publicités
Cet article, publié dans DAC, Technique Lecteurs de CD, est tagué , , , , , . Ajoutez ce permalien à vos favoris.

Un commentaire pour Le S/PDIF : le signal, les circuits de décodage et d’encodage

  1. Ottinger dit :

    J’ai trouvé dans votre article plus d’info que je n’en ai trouvé partout ailleurs. Merci
    Je désire dématérialiser ma discothèque. J’ai investi dans un MyDAC qui fonctionne fort bien, branché en digital sur un pc portable et en analogique sur mon ampli. LE PROBLEME est la copie des disques. J’en possède les originaux, mais certains sont protégés (je présume par SafeAudio, voir http://www.cnetfrance.fr/produits/les-technologies-de-protection-des-cd-audio-1001330.htm). Il en résulte que tout ordi les lisant ou les copiant produit des Clics insupportables. Tous les programmes de copie conseillés (Exact Audio Copy, dbPoweramp, Foobar2000…) et les compressions sans pertes Flac conservent ses clics, le problème étant en amont, lors de l’algorithme de correction des bits erronés sur le disque, qu’un lecteur CD fait de manière moins exigeante. Que faire? La sortie digitale optique d’un lecteur NAD (ou autre marque, je suis prêt à réinvestir) fournit-elle la copie digitale de la lecture du disque (alors l’ordi recréera les clics) ou un signal digital issu de son programme d’interpolation (J’ai cru comprendre dans votre article que c’est le cas et que le signal sera apuré des clics). Question 2, comment récupérer les données digitales optiques pour en faire les fichiers Flac?
    Je suis très étonné de voir que personne sur internet ne se plaint de cette protection SafeAudio, y a-t-il un autre moyen de la contourner?

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion / Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion / Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion / Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion / Changer )

Connexion à %s