Le site du constructeur de convertisseurs numérique analogique M2Tech a réalisé une page fort intéressante appelée "knowledge" (connaissance) sur tout ce qui entre en jeu dans le processus de traitement des fichiers audio numérique.

Comme souvent pour ce qui est technique, cette page est en anglais et sa lecture n'est pas facilitée par une présentation compacte sans aération.

Nous avons déjà réalisé la traduction de la partie traitant des modes de lecture par logiciel et vous proposons dans cette article la partie traitant de la liaison USB et de ses différents manières de fonctionner, qui, comme nous le verrons, ne sont pas toujours adaptés au mieux à l'audio.

Voici la traduction que nous avons réalisée de cette partie à votre intention.

¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤

L’interface USB est un canal très pratique pour transmettre de l’audio depuis un ordinateur à un DAC ou un autre élément Hi-Fi. Des ports USB sont disponibles sur de nombreux ordinateurs qu’on peut acquérir de nos jours et c’est un standard robuste et bien établi. Hélas, un sentiment répandu est que la qualité de l’audio transmise par USB est assez pauvre comparativement aux plus mauvaises connexions S/PDIF. Aussi, beaucoup d’utilisateurs ressentent une amélioration de performances en utilisant la connexion USB de leur DAC, comparée aux entrées S/PDIF du même équipement.

Cela est souvent vrai, mais cela ne dépend pas uniquement du standard USB par lui-même, plutôt du chemin par lequel l’audio est transférée sur le bus USB. Pour mieux comprendre ce qui se passe, une petite base de connaissance peut être utile.

Le standard USB permet des modes de transferts de données variés entre l’hôte (c’est-à-dire l’ordinateur) et le dispositif (c’est-à-dire le DAC ou l’interface numérique-numérique). Certains d’entre eux ne sont, pratiquement, pas utilisables en audio, tandis que d’autres le sont. Le mode le plus simple est le mode avec interruption, utilisé par les dispositifs qui ont besoin de communiquer de temps en temps de faibles quantités de données à l’hôte.

Pensez à une souris, par exemple : ce dispositif a besoin de communiquer quelques octets toutes les 50-100ms, avec de longues périodes d’attente. Donc, il n’est pas nécessaire d’allouer de la bande passante à ce dispositif, ni d’utiliser une grande vitesse de transmission.

Ce qui se passe, c'est que qu'à chaque fois que la souris a besoin de transmettre ses données, elle requiert l'attention de l'ordinateur en lui envoyant un signal d'interruption, alors l'ordinateur demande les données et la souris les lui envoie. Ce mode, naturellement, n'est pas applicable pour l'audio, à cause du long temps de latence et de la faible bande passante.

Les choses vont mieux avec le mode asynchrone. Ce mode a été étudié pour des applications où un flux constant de données doit être émis de l'ordinateur au dispositif. Le contrôleur USB alloue une bande passante appropriée au dispositif qui reçoit les données, en s'assurant que le taux moyen de données est le même que le besoin spécifié.

Les avantages de ce mode de transfert sont nombreux : bande passante garantie, faible latence et système CRC (Contrôle de Redondance Cyclique) pour détecter les erreurs.

Un standard de transmission audio isochrone (ou synchrone) est aussi disponible, appelé USB Audio 1.1, qui s'appuie sur les pilotes standards inclus dans tous les systèmes d'application. Cela signifie une capacité de plug and play pour tous les dispositifs audio qui respectent ce standard.

Hélas, ses limites aussi sont pertinentes : premièrement, même s'il travaille à pleine vitesse et haute vitesse, le circuit intégré spécialement étudié pour le streaming audio travaille seulement à pleine vitesse (12Mbps), ne permettant pas un transfert pour des fréquences d'échantillonnage supérieures à 96kHz.

De plus, le système de détection d’erreurs CRC est à peine utile, étant donné que le dispositif n’a pas suffisamment de bande passante pour solliciter l’ordinateur pour une nouvelle transmission des données erronées. Mais la pire limite en mode synchrone est l’instabilité de la latence à court terme qui mène à du jitter dans le signal transmis. Cela peut être réduit en utilisant un contrôle de transmission adaptatif. Mais la vitesse limite de transmission demeure.

Une alternative au mode synchrone est le mode "bulk" (charge, volume), quand l’hôte doit utiliser presque toute la bande passante pour transmettre les données au dispositif, cela signifie proche des 480Mbps sur un port s’accommodant du 2.0. C’est bien assez pour de l’audio en haute définition, bien au-delà de la limite des 192kHz.

Le mode bulk est difficile à utiliser puisqu’il n’existe aucun circuit intégré USB audio qui puisse le prendre en charge. Le seul moyen est de se servir d’un dispositif interface USB générique et de le programmer pour traiter une connexion en streaming utilisant le mode bulk. Cela nécessite également un pilote spécifique. L’effort de développement est significatif et l’utilisation d’un dispositif basé sur une transmission bulk n’est pas très facile, mais les résultats sont remarquables.

En mode bulk, il n’y a pas de contrôle du timing par le système l’utilisant : il envoie les données seulement quand il veut ou quand le dispositif les lui demande. Cela laisse au développeur la liberté de traiter le timing de transmission côté dispositif, plutôt que du côté ordinateur comme cela se passe en mode synchrone.

Le dispositif peut être muni d’horloges très précises et, étant maître de la transmission, isole virtuellement la variabilité de la latence du timing de sortie. Une interface utilisant le mode bulk avec une horloge locale précise peut atteindre un jitter extrêmement bas.

Un autre problème relatif à l’USB est le fait que le dispositif est souvent relié à la masse de l’ordinateur. Il utilise également souvent l’alimentation 5V, qui est aussi très pauvrement régulée et véhicule beaucoup de bruit numérique.

N’importe comment, une chose doit être comprise. La mauvaise qualité du "son USB" ne peut pas être due à la mauvaise qualité de l’alimentation 5V elle-même. Quelqu’un a dit que le jitter sur une transmission USB est du au bruit sur le bus et que, pour cette raison, un dispositif USB audio ne donnera jamais de hautes performances.

Cela n’est pas vrai. On peut transmettre des données audio numériques sur un bus USB en mode bulk en obtenant un très faible jitter, sans tenir compte de la qualité de l’alimentation du port USB. Le bruit de masse est une autre histoire : le découplage de la masse de l’interface USB de celle du dispositif (au moyen d’isolateurs magnétiques ou optiques) est une bonne méthode pour y remédier.

Les dispositifs M2Tech utilisent tous le mode bulk et ont les sorties qui sont isolées galvaniquement de la masse de l’ordinateur. Le mode bulk permet des transmissions de données jusqu’à 192kHz (hiFace et hiFace Evo) ou égales à 384kHz (Young).

¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤

Extrait du banc d'essai du M2Tech Young que nous avons réalisé et lors duquel nous avons effectivement remarqué l'utilisation d'isolateurs entre l'interface USB et le traitement interne du DAC :

Interface USB

L'interface USB est réalisée par un micro contrôleur Cypress CY7C68013A traitant l'USB haute vitesse.

Les signaux transitent par des isolateurs Analog Devices de types ADUM3441 et ADUM5403.

Assurément, une interface USB de course...