(07-05-2016, 01:17 AM)Haïm a écrit : L'usb est asynchrone par rapport au système d'exploitation, à l'utilisation du processeur. Il y a une tâche d'écoute de l'usb. Elle n'a pas tout le temps la main. Des plus quand il y a plusieurs périphériques USB ils se partagentl'ecoute en se passant un jeton virtuel. Bref tout cela travaille quand ça en a envie. C'est pourquoi toute communication USB à un buffer pour temporiser. Pour nous en audio, il suffit que ce flux irregulier soit en moyenne suffisamment véloce pour que notre écoute ne soit pas interrompu et tout va bien.
Tu confonds l'asynchronisme lié au fonctionnement de l'USB, du protocole asynchrone Audio.
L'USB est toujours asynchrone par rapport au CPU. Les controleurs USB hardwares sont alimentés par des drivers en asynchrone, eux même alimentés par des taches asynchrones.
Mais ce n'est pas la definition de l'USB asynchrone en Audio.
En Audio tu trouves 2 familles de protocoles USB:
- Le synchrone: Le maitre (PC, Streamer, etc...) alimente l'esclave (le DAC) à la vitesse qu'il veut. L'esclave à interet à bufferiser un minimum pour palier aux defauts temporels du maitre. S'il vient à manquer de données lorsqu'il en a besoin, il va soit ne rien jouer, soit rejouer un de ces anciens buffers (c'est le cas quand l'alimentation des buffer est totalement decorelée de la lecture). Dans les deux cas, il y aura un defaut audible. Si le maitre est très occupé, par exemple un PC sur lequel on vient de lancer un logiciel lourd, ce genre de cas peut arriver. Si les buffers du DACs sont un peu juste pour des raisons de coûts, ça peut augmenter ce phénomène aussi. L'inverse peut arriver aussi: Le PC envoi trop de données d'un coup (après un lag par exemple), et le DAC a du mal a emmagasiner, voire peut en perdre une partie.
- L'asynchrone: L'esclave (le DAC) demande regulièrement au maitre (PC, ...) de lui envoyer des données. Ca permet au DAC de faire ses demande en fonction du taux de remplissage de ses buffers. C'est lui le maitre de la communication. Accessoirement, l'USB asynchrone utilise également le mecanisme de pré-allocation de bande passante, ce qui permet aux deux parties de s'assurer qu'aucun autre peripherique USB gourmand sur la ligne, ne peut venir perturber la liaison. En contre-partie de cette bande passante reservée, il n'a a pas de mecanisme de réémission en cas de paquet corrompu, contrairement au protocole synchrone. L'asynchrone apporte 2 avantages mais également un nouvel inconvenient. Ceci dit, tout le monde est d'accord pour dire que le protocole asynchrone donne de meilleur resultats et est moins dependant du maitre quant à la façon de fournir les données.
Maintenant, concernant la transmission des données elles mêmes (les bits), les communications sont toujours synchronisée sur une horloge (clock). Generalement, on a une horloge identique des deux coté, ou un signal d'horloge transmit sur une ligne speciale. Mais en USB c'est un peu particulier: L'horloge est transmise avec les données. En fait les changements d'états electriques refletants les données (les fronts) transmettent l'horloge avec. Transmettre un "1" forcera un changement, et generera un front, qui servira au recepteur à se resynchroniser. Transmettre un "0" ne provoque pas de changement, et le recepteur doit se fier à sa dernière resynchro. Pour eviter une desynchro, le protocole prévoit la transmission d'un front "à blanc" tous les 6 bits à 0.
De ce coté là, un "reclocker" est parfaitement inutile, car reclocker un signal qui s'auto-syrnchonise n'a pas beaucoup de sens. Mais ce reclocking est probablement inherents à la capacité de ces appareils à regenerer les fronts.
Pour les fronts, il ne s'agit plus d'informatique à ce niveau, mais d'electronique. Les fronts montants/descendants entre les 2 lignes datas permettent au controleur USB qui reçoit, de decoder correctement les 0 et les 1. En théorie, nul besoin que les front soient nets. Ils le sont d'ailleurs très rarement, car de fait, l'electronique n'aime pas les changements brutaux. Dans la pratique, il commence à y avoir des théories qui emettent l'idée que la qualité de ces fronts influent sur le "bruit" electrique qui circule dans l'electronique, et pourraient arriver jusqu'à la sortie audible.
Il y a aussi la théorie inverse, qui dit que des fronts trop nets vont provoquer des perturbations electro-magnetiques.
Qui a tort ou raison? Aucune idée, les deux théories se valent à mon sens. Dans tous les cas, c'est ici qu'on trouve l'explication des fameux "regens", même si j'ai toujours des doutes sur le fait que ce soit audible pour l'être humain
DAC: Fostex HP-A8 - HP-A4 - Furutech GT40 / DAP: Cayin N5
Casques: Grado PS1000e - Shure 1440 - AKG Q701- Sennheiser HD650 - Sharkk Bravo
Encientes actives: Advance Accoustic AIR 120
Casques: Grado PS1000e - Shure 1440 - AKG Q701- Sennheiser HD650 - Sharkk Bravo
Encientes actives: Advance Accoustic AIR 120