FR 2891974 A1 20070413 FR 0510415 A 20051012 L'invention concerne un circuit d'interfaçage pour le pré- et le post-traitement de signaux audio avant ou après exécution de traitements logiciels sur ces signaux par un processeur. Elle vise en particulier des applications mettant en jeu à la fois des si- gnaux audio haut débit, numérisés à une fréquence d'échantillonnage élevée correspondant à une reproduction de qualité musicale, et des signaux audio bas débit, numérisés à une fréquence d'échantillonnage faible correspondant à une reproduction de qualité vocale et adaptée à l'exécution de traitements logiciels par le processeur. Une telle situation se présente notamment avec les équipements électroniques utilisés à bord des véhicules automobiles et destinés à être couplés à un téléphone portable de manière à assurer un fonctionnement "mains-libres" de ce téléphone (on notera que cette application, particulièrement représentative des possibilités de l'invention, n'est donnée qu'à titre d'exemple non limitatif, le circuit d'interfaçage de l'invention pouvant être utilisé dans une très grande variété d'autres équipements électroniques, fixes ou mobiles). Les adaptateurs "mains-libres" peuvent être réalisés sous la forme d'un boîtier intégré à demeure au véhicule, en première monte ou ultérieure- ment. Mais ils peuvent aussi se présenter sous la forme d'un module lui-même incorporé à un appareil de type autoradio, installé dans la planche de bord du véhicule automobile. Le fonctionnement mains-libres met alors en oeuvre un microphone incorporé à l'autoradio ou relié à celui-ci et utilise les haut-parleurs du véhicule, avec un mécanisme permettant de met- tre en veille le fonctionnement radio ou audio pendant une communication téléphonique. Par ailleurs, les premières générations de ces adaptateurs "mains-libres" comprenaient un berceau fixé à la planche de bord du véhicule, recevant le téléphone portable et permettant de relier celui-ci via un câble à un adaptateur spécifique ou "car-kit" assurant le fonctionnement mains-libres. Les dispositifs de nouvelle génération permettent, notamment par intégration de la technologie Bluetooth (marque déposée du Bluetooth SIG, Inc) aux téléphones portables, de coupler le téléphone à l'adaptateur mains-libres non plus par un câble, mais par une liaison radio, sans fil. Les spéci- fications Bluetooth offrent en effet la possibilité de piloter à distance par une liaison sans fil bidirectionnelle toutes les fonctions d'un téléphone tel-les que décrochage, raccrochage, numérotation, navigation dans les me-nus, navigation dans les répertoires, etc. en prenant intégralement, à dis-tance, le contrôle du téléphone portable et en se substituant entièrement au clavier de celui-ci. En outre, la présence du téléphone portable dans le rayon d'action de l'adaptateur est détectée de manière entièrement automatique, et il n'est donc pas nécessaire pour l'utilisateur de sortir le télé-phone portable pour le poser sur un berceau. Le téléphone peut rester dans une poche de veste, dans un sac, un porte-documents ... sans que l'utilisateur n'ait aucune manipulation à faire pour activer l'adaptateur, qui devient immédiatement opérationnel dès que l'utilisateur pénètre avec son téléphone dans le véhicule. Dans une telle installation combinant autoradio et circuits de téléphonie, les signaux audio peuvent ainsi provenir de sources très diverses : con-versation téléphonique, source audio (récepteur radio ou lecteur CD), un ou plusieurs microphones, etc. et doivent faire l'objet de traitements très divers, allant de la simple reproduction sonore (radio, CD) à des traitements complexes de commande vocale impliquant une numérisation des signaux captés par un ou plusieurs microphones et l'application d'algorith- mes complexes de filtrage du bruit et de reconnaissance d'empreintes vocales. Lorsqu'il s'agit de reproduire des signaux musicaux par les haut-parleurs de l'autoradio, une qualité élevée, ci-après désigné "qualité musicale" est requise, qui correspond à des signaux numérisés à une fréquence d'é- chantillonnage de 44,1 ou 48 kHz, fréquences utilisées dans toutes les techniques de traitement sonore multimédia de type CD ou DAT. En revanche, pour les fonctions de téléphonie, un tel niveau de qualité n'est ni nécessaire ni souhaitable. En premier lieu, la qualité des signaux audio transmis sur les réseaux té- léphoniques, tant filaires que mobiles, est volontairement limitée pour tenir compte de la bande passante réduite de ces réseaux. D'autre part, dans une conversation téléphonique, ce n'est pas l'agrément d'écoute qui est recherché, mais l'intelligibilité des conversations échangées, et pour cela un signal de moindre qualité (étendue de la bande passante, distorsion, etc.) est largement suffisant. Il est également nécessaire de limiter la ban- de passante pour neutraliser certaines composantes de bruit qui autre-ment pourraient masquer le signal utile et en diminuer l'intelligibilité. Les liaisons radio sans fil de type Bluetooth utilisées en téléphonie mobile sont ainsi opérées avec codage PCM (Pulse-Coded Modulation) de signaux échantillonnés à 8 kHz, qui en pratique se révèlent tout à fait satisfaisants du point de vue des utilisateurs. De plus et surtout, lorsque les signaux vocaux doivent faire l'objet de traitements par logiciel (filtrage des bruits, reconnaissance vocale, etc.) l'augmentation de la qualité, c'est-à-dire de la fréquence d'échantillonnage, entraînerait une augmentation proportionnelle du nombre des échantillons à traiter et conduirait donc pour le processeur à une charge de calcul excessive. Pour cette raison, en téléphonie les signaux audio numérisés sont généralement limités à une qualité correspondant à une fréquence d'échantillon- nage de 8 kHz, ou 16 kHz tout au plus. Ce niveau de qualité sera dénommé ci-après "qualité vocale". Il existe donc un besoin d'une interface pour un équipement électronique nécessitant le traitement de signaux audio numériques, qui puisse être adaptée à une très grande diversité à la fois de sources audio et de sor- ties audio. Cette diversité de sources se traduit notamment par une diversité des fréquences d'échantillonnage des signaux numériques, correspondant à des niveaux de qualité et à des contraintes techniques différentes, typique-ment des fréquences d'échantillonnage de : û 8 kHz pour des signaux en qualité vocale transmis par les réseaux téléphoniques, et les signaux compatibles avec le codage Bluetooth, û 16 kHz pour des signaux de qualité vocale captés par des microphones et destinés à être traités par des algorithmes de filtrage de bruit et de reconnaissance vocale (ces traitements étant plus efficaces lors- qu'ils sont effectués sur des signaux échantillonnés à 16 kHz plutôt qu'à 8 kHz), 44,1 kHz ou bien 48 kHz pour des signaux destinés à une restitution audio numérique de qualité musicale. L'un des buts de l'invention est de proposer un tel circuit d'interfaçage qui soit universel et aisément configurable, de manière à permettre le pré- et le post-traitement de signaux audio : û provenant d'une source indifféremment analogique ou numérique, 5 û provenant d'une source numérique indifféremment à haut débit ou à bas débit, - provenant d'une source numérique à haut débit à fréquence d'échantillonnage indifféremment 44,1 kHz ou bien 48 kHz, û provenant d'une source numérique bas débit à fréquence d'échantil-10 tonnage indifféremment 8 kHz ou 16 kHz, - et qui puisse assurer ces divers interfaçages non seulement en entrée, mais également en sortie. Un autre but de l'invention est de proposer un circuit d'interfaçage qui, du point de vue de la charge de calcul, ne soit pas pénalisant pour le proces- 15 seur numérique de traitement des signaux, c'est-à-dire un circuit d'interfaçage dont les traitements de conversion nécessaires ne fassent pas, ou très peu, appel aux ressources logicielles de l'unité de traitement du dis-positif. Un autre but de l'invention est de proposer un tel circuit d'interfaçage qui 20 puisse en outre compenser les légères différences de fréquence d'horloge entre le processeur du dispositif et les modules externes qui lui sont re-liés, lorsque ces derniers produisent une fréquence d'horloge propre de même fréquence nominale que le processeur, mais non synchronisée avec celle-ci (plésiochronisme). 25 Un exemple typique d'une telle situation est celui d'un module externe Bluetooth, qui est asservi à l'horloge de l'appareil distant (le téléphone) : le très léger défaut de synchronisme entre les horloges des deux appareils (celle du téléphone et celle de l'adaptateur mains-libres) produit un glissement entraînant une perte ou un excès d'échantillons qui peut se ta- 30 duire, au niveau de la restitution audio, par des "clics" ou des blancs se produisant à intervalles réguliers, qui peuvent être perceptibles et dégradent la qualité de la restitution des signaux vocaux. De façon caractéristique, le circuit d'interfaçage de l'invention, qui est un circuit réalisé en technologie matérielle, comprend : û un circuit de couplage à un bus de liaison au processeur ; û un circuit de conversion d'entrée, comprenant : une mémoire d'échantillons formant tampon d'entrée, un circuit de sous-échantillonnage, apte à recevoir des signaux haut débit appliqués en entrée du circuit d'interfaçage, à convertir ces signaux haut débit en échantillons de signaux bas débit, et à charger le tampon d'entrée à partir de ces signaux bas débit, et des moyens de lecture, par le circuit de couplage au bus, des échantillons du tampon d'entrée ; û un circuit de conversion de sortie, comprenant : une mémoire d'échan- tillons formant tampon de sortie, des moyens de chargement, par le circuit de couplage au bus, du tampon de sortie, un circuit de sur-échantillonnage, apte à lire des échantillons de signaux bas débit dans le tampon de sortie, à convertir ces échantillons en signaux haut débit, et à délivrer ces signaux haut débit en sortie du circuit d'interfaçage ; et û un circuit de commande, pour coordonner la gestion des tampons d'entrée et de sortie et le séquencement du sous-échantillonnage et du sur-échantillonnage, et pour contrôler la réception et la délivrance des signaux en entrée et en sortie du circuit d'interfaçage. Très avantageusement, le circuit de sur-échantillonnage et/ou le circuit de sous-échantillonnage sont des circuits opérant sur une pluralité de taux de sur- ou sous-échantillonnage, sélectionnables par ledit circuit de commande en fonction du rapport entre lesdites fréquence d'échantillonnage faible et élevée. Le circuit de l'invention peut également comprendre au moins un circuit de liaison à un module délivrant ou recevant des signaux audio bas débit, ce circuit de liaison comprenant : û un circuit de couplage à un bus de liaison au processeur ; un circuit d'entrée, comprenant : une mémoire d'échantillons formant tampon d'entrée, un circuit apte à charger le tampon d'entrée à partir de signaux en provenance dudit module, des moyens de lecture, par le circuit de couplage au bus, du tampon d'entrée ; un circuit de sortie, comprenant : une mémoire d'échantillons formant tampon de sortie, des moyens de chargement, par le circuit de cou- plage au bus, du tampon de sortie, un circuit apte délivrer en sortie audit module les signaux lus dans le tampon de sortie ; et û un circuit de commande, pour coordonner la gestion des tampons d'entrée et de sortie et pour contrôler la réception et la délivrance des signaux appliqués en entrée et délivrés en sortie audit module. Selon un aspect particulièrement avantageux de l'invention, ce circuit de commande est également apte à : synchroniser sans intervention logicielle le niveau de remplissage des mémoires tampon travaillant sur une même source d'échantillonnage, pour en unifier les interruptions ; compa- rer la cadence d'horloge du processeur à la cadence d'horloge dudit module ; et, en fonction du résultat de cette comparaison, modifier le flux de chargement ou de lecture des échantillons du tampon d'entrée ou de sortie de manière à compenser I'asynchronisme, dans un sens ou dans l'autre, entre les cadences d'horloge du processeur et du module. Il peut no- tamment opérer en modifiant le flux de chargement ou de lecture par commande de l'exécution d'un algorithme de rééchantillonnage par le processeur, qui peut notamment être un algorithme de type sur-échantillonnage N/N+1 ou sous-échantillonnage N/N-1, ou bien un algorithme de ré-échantillonnage à fréquence variable, fonction de l'écart entre les caden- ces d'horloge du processeur et du module. Enfin, il peut être prévu, sur la même puce de composant, des circuits convertisseurs analogique/numérique et numérique/analogique et de cou-plage desdits circuits de conversion d'entrée et de sortie à des entrées/ sorties audio analogiques. 0 On va maintenant décrire un exemple de mise en ceuvre du dispositif de l'invention, en référence aux dessins annexés où les mêmes références numériques désignent d'une figure à l'autre des éléments identiques ou fonctionnellement semblables. La figure 1 illustre, sous forme de schémas par blocs, le circuit d'interfaçage de l'invention dans son environnement, avec les différents éléments fonctionnels auxquels il est relié. La figure 2 est un schéma par blocs montrant les différents éléments 35 constitutifs du circuit de l'invention. La figure 3 montre les différents éléments constitutifs de l'interface multi-média du circuit de la figure 2. La figure 4 montre les différents éléments constitutifs de l'interface PCM du circuit de la figure 2. Les figures 5 et 6 sont des chronogrammes illustrant la constitution des signaux échangés par le circuit d'interfaçage de l'invention. 0 Sur la figure 1, la référence 10 désigne de façon générale un dispositif tel que par exemple un adaptateur "mains-libres" de voiture, notamment un adaptateur incorporé à un appareil de type autoradio intégrable dans la planche de bord d'un véhicule automobile. Cet adaptateur 10 est architecturé autour d'un circuit 12 formant micro- contrôleur et processeur numérique de signaux (DSP), par exemple réalisé à partir des ASICs conçus et commercialisés par la société Parrot SA, qui présentent notamment la particularité d'intégrer un certain nombre de fonctions de reconnaissance vocale. Le circuit 12 est relié à un circuit d'interfaçage audio 14, caractéristique de l'invention, par un bus approprié, notamment un bus de type APB (Advanced Peripheral Bus), qui est un bus générique dont les performances con-viennent aux signaux de qualité vocale et aux traitements de filtrage numérique, reconnaissance vocale, . typiques des applications de téléphonie de voiture...DTD: Le circuit d'interfaçage 14 est par ailleurs relié à un module Bluetooth 16, avantageusement un module interne, intégré aux circuits de l'adaptateur 10. Les échanges avec ce module Bluetooth sont réalisés, en entrée et en sortie, par une liaison série PCM (Pulse Code Modulation), conformément aux spécifications Bluetooth. Ce circuit 16 permet de gérer une liaison sans fil avec un téléphone portable compatible Bluetooth. Comme on l'a indiqué plus haut, l'interface Bluetooth permet de détecter automatique-ment la présence d'un téléphone portable compatible dans le rayon d'action du dispositif et d'en piloter à distance toutes les fonctions (décrochage, raccrochage, numérotation, navigation dans les menus, navigation dans les répertoires, etc.) par une liaison sans fil bidirectionnelle, en pre- nant intégralement, à distance, le contrôle du téléphone portable et en se substituant entièrement au clavier de celui-ci. Le circuit d'interfaçage 14 est également relié à des entrées et sorties audio analogiques, chacune avec deux voies droite + gauche. II peut être prévu un module externe 20 relié également au circuit d'interfaçage 14 par une liaison de type PCM, par exemple un circuit GSM spécifique, intégré au véhicule automobile, permettant d'établir des communications téléphoniques indépendamment d'un éventuel téléphone Blue-tooth présent dans le champ d'action de l'adaptateur. Outre les entrées et sorties audio analogiques directement interfacées au circuit 14, ce dernier peut recevoir en entrée, et délivrer en sortie, des signaux audio numériques série synchrones, par exemple des signaux selon la spécification l2S (Inter-IC Sound), qui décrit un protocole adapté à l'échange de signaux audio numériques stéréo. Ces signaux numériques peuvent notamment être échangés avec un convertisseur analogique-numérique/numérique-analogique 22 relié au circuit 14. La figure 5 illustre un exemple d'un tel signal audio numérique I2S, échantillonné à 44,1 ou 48 kHz au rythme de l'horloge CLK. Les mots de signal audio droit et gauche se succèdent en alternance, le signal de synchroni- sation SYNC changeant d'état à chaque transition de mot gauche/droit. Enfin, le circuit d'interfaçage 14 peut être relié à un circuit de traitement audio numérique de haut niveau 24 tel qu'un contrôleur MOST (Media-Oriented System Transport), utilisé notamment dans les réseaux multimédia pour automobiles et échangeant des signaux selon un protocole de type MediaLB (Media Local Bus). La figure 2 montre plus précisément les différents éléments constitutifs du circuit d'interfaçage 14. Celui-ci comporte deux circuits identiques 30 et 32 d'interfaçage avec un module PCM interne (ici, le module Bluetooth 16 présent sur la même puce de circuit) ou externe (par exemple pour un module GSM 20). Les modules d'interfaçage PCM 30 et 32 sont couplés au processeur du circuit de traitement 12 par le bus APB 34. Par ailleurs, chacun de ces circuits comprend : û une entrée CLK pour le signal d'horloge provenant du module distant, 35 û une entrée de signal de synchronisation SYNC, ù une entrée IN recevant des signal numérisé à 8 kHz, et ù une sortie OUT délivrant un signal numérisé à 8 kHz.. La figure 6 illustre un exemple d'un tel signal PCM, échantillonné à 8 kHz au rythme de l'horloge CLK. Le signal SYNC est un signal de synchronisa- tion comportant une impulsion à chaque début de mot ou de double mot. Il est en effet possible de transmettre deux voies (droite + gauche) avec tout d'abord un mot de signal correspondant à la voie de gauche, puis un mot de signal correspondant à la voie de droite. Dans une application de téléphonie, où il n'y a qu'un seul canal (audio mono), seule la voie "gau- che" est utilisée, la voie droite étant ignorée. Les échantillons sont trans-mis, en entrée (IN) ou en sortie (OUT) au rythme des impulsions d'horloge CLK reçues du module B/uetooth 16. La fréquence nominale de cette horloge CLK est la même que celle du processeur mais n'est pas synchronisée sur celle-ci, de sorte qu'un léger glissement peut apparaître ù mais on exposera plus loin diverses manières de compenser ce décalage de manière imperceptible pour l'utilisateur. Le circuit 14 comporte également un circuit formant interface multimédia 36, relié aux entrées et sorties suivantes : ù entrée audio numérique l2S gauche + droite, désignée L+R AV, 20 ù entrées audio analogiques IN_L et IN_R, couplées au circuit 36 via un convertisseur analogique/numérique 38 opérant à une fréquence d'é- chantillonnage de 44,1 ou 48 kHz, - entrées audio numérique auxiliaire, couplées au circuit 36 soit directement, soit via un circuit 40 combinant le signal à celui délivré en sor-25 tie du convertisseur analogique/numérique 38, ù sortie audio numérique ISS gauche + droite, désignée L+R AR, utilisable notamment pour les voies arrière d'une installation à quatre canaux, - sorties audio analogiques OUT _L et OUT_R, couplées au circuit 36 30 via un convertisseur numérique/analogique 42 opérant à une fréquence d'échantillonnage de 44,1 ou 48 kHz. Le circuit 36 d'interfaçage multimédia est également couplé à : ù une ligne d'horloge délivrant à des circuits externes des impulsions CLK produite par l'horloge du processeur, - une ligne de synchronisation, désignée SYNC(L/R), définissant les frontières de mots correspondants aux voies droite et gauche des signaux audio numériques, et û un contrôleur audio de haut niveau tel qu'un contrôleur MOST. Le circuit d'interfaçage multimédia 36, comme les circuits d'interfaçage PCM 30 et 32, est couplé au processeur du circuit de traitement 12 par le bus APB 34. Le processeur peut également recevoir du circuit 14 un signal d'interruption appliqué sur une ligne 44. Cette diversité de sources et de sorties permet de réaliser des configura- tions très variées, en particulier des configurations comportant un, deux ou même quatre microphones, particulièrement avantageuses sur le plan du filtrage du bruit, par exemple : û deux micros reliés au convertisseur A/N interne 38, et/ou - deux micros reliés au convertisseur A/N externe 22, ou û jusqu'à quatre micros couplés au contrôleur MOST 24. Ces configurations permettent notamment de mettre en oeuvre des mécanismes de filtrage du bruit de type Beamforming ou Double-Phoning basés sur les différences de phase entre les ondes acoustiques captées par les deux (ou quatre) microphones : pour le bruit ambiant, cette différence de phase est faible, tandis que pour la voix du locuteur, cette différence de phase est significative, et du fait de cette caractéristique il est possible d'extraire de manière efficace la voix du bruit ambiant par des moyens logiciels relativement simples. En ce qui concerne le signal destiné à être reproduit sur les haut-parleurs, il peut provenir aussi bien du convertisseur N/A interne 42 que du convertisseur N/A externe 22, ou encore du contrôleur MOST 24. La figure 3 présente plus en détail les divers éléments constituant le circuit 36 d'interfaçage multimédia. Celui-ci comprend un circuit 50 d'interfaçage avec le bus APB 34 pour l'échange des signaux avec le processeur numérique. D'autre part, les signaux audio numériques sont appliqués sur une entrée IN1 soit en provenance d'un convertisseur A/N interne (par exemple le circuit 38 de la figure 2) ou externe (par exemple le circuit 22 de la figure 1), soit sont des signaux produits directement par des sources de signaux numériques. Le signal numérique IN1 est tout d'abord appliqué à un regis- tre à décalage d'entrée 52 permettant de séparer en mots les bits successifs du flux de données d'entrée, ces mots étant destinés à être chargés dans une pile d'entrée (RX) tampon 54 par l'intermédiaire d'un circuit 56 de sous-échantillonnage. La pile d'entrée 54 est une pile FIFO, par exemple de 16 mots de 32 bits, chaque mot de la pile correspondant à un échantillon du signal audio numérique. Le circuit 56 de sous-échantillonnage est paramétré en fonction de la fréquence d'échantillonnage du signal sur l'entrée IN1 et de la fréquence d'échantillonnage requise par l'interface 50 et le processeur de traitement du signal. Le facteur de sous-échantillonnage x peut être en particulier choisi parmi les valeurs suivantes : û x = 1 pour un chargement de la pile 54 à la même cadence que la fréquence d'échantillonnage du signal en entrée IN1, qui est par exemple un signal téléphonique échantillonné à 8 kHz, û x = 2,75 pour une conversion de 44, 1 kHz en 16 kHz, - x = 3 pour une conversion de 48 kHz en 16 kHz, - x = 5,5 pour une conversion de 44,1 en 8 kHz, û x = 6 pour une conversion de 48 kHz en 8 kHz. La sélection du facteur de sous-échantillonnage x du circuit 56 et le chargement/déchargement de la pile 54 sont contrôlés par des registres de commande 60 eux-mêmes contrôlés par le processeur via l'interface 50, le chargement et le déchargement de la pile 54 s'effectuant au rythme des impulsions d'horloge CLK produites par ce même processeur. Le sous-échantillonnage est effectué par des techniques en elles-mêmes connues (filtrage anti-repliement, moyennage des échantillons, etc.), qui ne seront pas décrites en détail. Avantageusement, les circuits 52, 54 et 56 sont dédoublés pour permettre un traitement indépendant de signaux appliqués à une entrée secondaire IN2, de manière simultanée avec le traitement des signaux appliqués sur l'entrée IN1. En sens inverse, les signaux traités par le processeur sont appliqués via l'interface 50 à une pile de sortie (TX) tampon 62, qui est une pile FIFO par exemple de 16 mots de 32 bits, chaque mot de la pile correspondant à un échantillon du signal audio à délivrer en sortie. La pile 62, chargée par les échantillons de signaux en provenance du processeur, est déchargée vers un registre à décalage 64 permettant de délivrer à partir de mots successifs un flux continu sur la sortie OUT1. Entre la pile 62 et le registre à décalage 64 sont disposés un circuit de sur-échantillonnage 66 ainsi qu'un circuit de contrôle de gain 68. Le chargement/déchargement de la pile 62 ainsi que la sélection du facteur y de sur-échantillonnage du circuit 66 sont contrôlés par les registres 60, reliés à ces circuits 62 et 66. Le facteur y de sur-échantillonnage du circuit 66 peut par exemple pren- dre les valeurs : û y = 1, pour délivrer en sortie sur OUT1 un signal à la même fréquence d'échantillonnage que le signal délivré par le processeur, par exemple un signal téléphonique échantillonné à 8 kHz, - y = 5,5 pour une conversion de 8 kHz en 44,1 kHz, û y = 6 pour une conversion de 8 kHz en 48 kHz. Le sur-échantillonnage est effectué par des techniques en elles-mêmes connues (interpolation linéaire ou non, création de points intermédiaires entre les échantillons successifs, etc.), qui ne seront pas décrites en dé-tail. Avantageusement, les circuits 62, 64, 66, 68 sont dédoublés de manière à disposer d'une seconde voie, indépendante de la première, délivrant un signal OUT 2 concurremment au signal OUT 1. Dans une installation à quatre canaux, ce dédoublement des circuits de sortie (et d'entrée) per-met notamment de gérer deux canaux avant (sur INI/OUTI) et deux ca- naux arrière (sur IN2/OUT2), les circuits de contrôle de gain 68 permettant d'ajuster la balance de niveau avant/arrière. Le signal d'horloge CLK généré par le processeur, qui sert via les registres 60 au séquencement des piles d'entrée et de sortie 54 et 62 et des circuits de sur- et sous-échantillonnage 56 et 66, est disponible sur une sortie du circuit 36 (et donc du circuit 14) pour assurer le séquencement des signaux en sortie lors de leur lecture, une impulsion d'horloge étant délivrée pour chaque bit du mot de signal, comme illustré sur le chrono-gramme de la figure 5. Le circuit délivre également en sortie un circuit de synchronisation SYNC changeant d'état à chaque frontière de mot, permettant ainsi de distin-guer, pour chaque voie, les échantillons du canal de gauche de ceux du canal de droite, comme illustré également sur le chronogramme de la figure 5. Enfin, le vidage des piles d'entrée et de sortie 54 et 62 est commandé par un circuit 70 délivrant au processeur un signal d'interruption 44 lorsqu'est atteint un seuil donné, paramétrable, pour chacune des piles d'entrée (RX) et de sortie (TX). En résumé, le circuit 36 que l'on vient de décrire réalise l'interfaçage entre un processeur de signaux numériques apte à traiter des signaux numéri- sés à une fréquence d'échantillonnage de 8 kHz (ou 16 kHz) à partir de signaux d'entrée échantillonnés indifféremment à une fréquence de 8 kHz, 16 kHz, 44,1 kHz ou 48 kHz. En sortie, le circuit 36 permet de convertir si nécessaire les signaux traités par le processeur, échantillonnés à 8 kHz, en signaux échantillonnés à 44,1 ou 48 kHz compatibles avec des circuits externes de reproduction aux normes audio et multimédia usuelles. Ces données pourront être également délivrées à la fréquence d'échantillon-nage de 8 kHzcorrespondant aux normes usuelles dans le domaine de la téléphonie. De son côté, le processeur pourra opérer les traitements logiciels indiffé-remment sur des mots correspondant à un signal de qualité vocale échantillonné à 8 kHz émanant d'un circuit téléphonique ou d'un module Blue-tooth), ou bien à 16 kHz, pour des signaux numériques codés à 44,1 ou 48 kHz, par exemple issus de microphones û notamment pour une meilleure reconnaissance vocale sur ces signaux. On notera que cet interfaçage est réalisé exclusivement par des moyens matériels (hardware), qui ne nécessitent pas de puissance de calcul si ce n'est pour la gestion des interruptions. Les performances du circuit de traitement du signal (traitement logiciel par exécution d'algorithmes de filtrage, de reconnaissance vocale, ...) ne sont ainsi en aucune façon rédui- tes par les diverses conversions nécessaires. La figure 4 représente les divers blocs constitutifs de l'un des circuits d'interfaçage PCM 30 ou 32. Comme indiqué plus haut, ces deux circuits 30 et 32 sont identiques ; le circuit 30 est relié à un module interne tel qu'un module Bluetooth 16 (fi- Bure 1) intégré au même composant que celui portant le microcontrôleur et processeur de signaux 12 et l'interface 14, tandis que le circuit 32 est destiné à être connecté à un module externe au composant, par exemple un module de téléphonique GSM 20. Les signaux appliqués sur l'entré IN du circuit sont des signaux à bas dé- bit avec codage PCM, numérisés à une fréquence d'échantillonnage de 8 kHz correspondant à la norme employée universellement dans le domaine de la téléphonie, fixe ou mobile. On a décrit plus haut, en référence à la figure 6, le séquencement des signaux correspondants, en relation notamment avec les impulsions d'horloge CLK (pour séparer chaque bit) et de synchronisation SYNC (pour définir la frontière de mots). Les signaux OUT en sortie sont délivrés sous le même format, également à la cadence de l'horloge CLK définie par le module interne 16 ou externe 20. D'autre part, le module 30 ou 32 comprend un circuit 80 assurant I'interfa-15 çage avec le bus APB 34 du processeur. En entrée, le flux de données incident IN est appliqué à un registre à dé-calage 82 permettant de séparer les mots successifs. Ces mots sont chargés dans une pile d'entrée (RX) tampon 84, par exemple une pile FIFO de 16 mots de 16 bits chacun, qui est déchargée vers le processeur via le 20 circuit 80. Inversement, les données générées par le processeur sont chargées, sous forme de mots successifs, dans une pile de sortie (TX) tampon 86, par exemple une pile FIFO de 16 échantillons de 16 bits. Cette pile est dé-chargée dans un registre à décalage 88 pour délivrer sur la sortie OUT un 25 flux continu de données au module PCM distant. Les registres à décalage 82 et 88 et les piles d'entrée 84 et de sortie 86 sont commandés par des registres 90 assurant le séquencement des di-verses opérations, sous contrôle du processeur distant. Par ailleurs, un circuit 92 permet d'assurer le vidage des piles en délivrant 30 au processeur un signal d'interruption 44 lorsqu'est atteint un seuil donné, paramétrable, pour chacune des piles d'entrée (RX) et de sortie (TX). On notera qu'à la différence du circuit 36 illustré figure 3, il n'est pas nécessaire avec les circuits 30 ou 32 d'opérer de conversion de la fréquence d'échantillonnage, dans la mesure où toutes les données sont échantil- Tonnées à la même fréquence de 8 kHz (en entrée IN, en sortie OUT, et sur le bus APB 34). Toutefois, une difficulté se présente du fait que les flux en entrée et en sortie du module PCM (IN et OUT) ne sont pas strictement synchrones avec les flux de données échangées avec le processeur sur le bus APB. En effet, bien que ces flux opèrent à la même fréquence d'échantillonnage (8 kHz), les signaux sont échantillonnés sous le contrôle d'horloges indépendantes : ù l'horloge du processeur, pour les flux échangés sur l'interface APB, ù l'horloge du module PCM interne ou externe, pour les données échangées en entrée et en sortie (IN et OUT) avec ce module. Le fait d'opérer avec deux horloges distinctes, non synchronisées entre elles, nécessite de prendre en compte des situations de désalignement pouvant résulter des phénomènes suivants : ù les deux horloges opèrent à des fréquences très légèrement différentes (par exemple 8,000 kHz et 8,036 kHz), ù même si les deux horloges opèrent à la même fréquence nominale (par exemple 8,000 kHz), tôt ou tard un très léger glissement apparaît entre les impulsions d'horloge respectives, ù une instabilité ou jitter (gigue) peut également être présente, due à des causes aussi bien matérielles que logicielles, affectant le synchronisme entre les deux flux d'impulsions d'horloge. la conséquence va en être l'apparition dans le flux de données, à interval-les plus ou moins réguliers, d'un échantillon en plus ou en moins du fait 25 de la dérive entre les deux horloges. Pour un flux audio échantillonné à 8 kHz, correspondant à une reproduction de qualité vocale, ce phénomène est pratiquement imperceptible. En revanche, si, comme pour l'invention, le flux audio est décomposé en mots successifs chargés dans des piles d'entrée ou de sortie, la dérive de 30 synchronisation, en l'absence de mesure particulière, risque provoquer à intervalles réguliers un excès ou un manque d'informations correspondant non plus à un échantillon, mais au contenu complet d'une pile, c'est-à-dire à 16 mots. Un tel phénomène sera aisément perceptible par n'importe quel utilisateur dans le flux audio, et il sera d'autant plus gênant qu'il se reproduira de façon cyclique après quelques secondes ou quelques dizaines de secondes. On sait résoudre les problèmes de désalignement d'horloge (plésiochronisme) par des algorithmes performants mettant en oeuvre une transfor- mation FFT dans un référentiel, puis une transformation inverse dans un autre référentiel, avec application d'un filtrage à n pôles. Mais ces procédés logiciels sont très pénalisants du point de vue de la puissance de cal-cul. Pour remédier à cette difficulté, l'invention propose une autre technique de compensation, consistant à utiliser un registre spécifique, désigné "registre de synchronisation", analysé chaque fois que le processeur lit un mot de la pile d'entrée 84. Un emplacement mémoire de ce registre de synchronisation est alors positionné en fonction du décalage éventuel qui a été détecté entre les hor- loges, à savoir : û +1 si l'horloge du module PCM relié au circuit est en avance sur l'horloge du processeur (c'est-à-dire si, dans la pile de 16 mots que l'on vient de charger, il y a un échantillon de trop par rapport à ce que l'on s'attendait de recevoir), û -1 dans le cas contraire, û 0 en l'absence de décalage détecté. Si le registre de synchronisation contient une valeur telle que : '000+1 0000', ceci signifie que l'horloge du module PCM distant est plus rapide que celle du processeur. Inversement, si ce registre contient par exemple : '0 0 -1 0 0 -1 0 0', ceci signifie que l'horloge du processeur est plus rapide que celle du module PCM. Pour compenser ces dérives de manière pratiquement inaudible, le dispositif opère un traitement approprié de ré-échantillonnage. 30 Un première technique consiste, sans modifier la fréquence d'échantillon-nage, à effectuer un sur-échantillonnage simple N/N+1 (ou, respective-ment, un sous-échantillonnage N/N-1). La compensation est obtenue par l'exécution de brèves séquences de ré-échantillonnage, répétées tant qu'une dérive est détectée. Cette méthode, peu pénalisante en termes de moyens de calcul, produit des résultats convenables, pratiquement inaudibles sur des signaux de qualité vocale utilisée en téléphonie. Un autre technique, plus efficace mais plus complexe, consiste à procéder à un ré-échantillonnage adaptatif en continu sur une fréquence variable, calculée en temps réel et constamment réévaluée en fonction de la dérive de fréquence détectée par le registre de synchronisation. Une autre difficulté réside dans les différences possibles de remplissage des mémoires tampon, susceptibles de provoquer des interruptions distinctes pour chaque voie. Le logiciel applicatif pouvant activer la voie haut- parieur à tout moment et décider à tout autre moment d'utiliser ou non les voies microphones, en l'absence de mécanisme de synchronisation, chacune de ces voies travaillant à partir de la même source d'échantillonnage pourrait produire une interruption distincte des autres, multipliant inutile-ment les mécanismes d'entrée et de sortie d'interruption. Le mécanisme de synchronisation mis en oeuvre tient compte du fait que la mise en route d'un haut-parleur peut être effectuée sans inconvénient mesurable avec un retard aléatoire compris entre zéro et quelques milli-secondes, tout comme la numérisation de la voix en vue d'une reconnaissance vocale ou d'une communication téléphonique. À la mise en route logicielle d'une voie, on peut donc accepter de perdre quelques échantillons possibles d'un signal de microphone, ou de retarder de quelques échantillons le début réel de la mise en route du haut-parleur, selon les états respectifs du remplissage de leurs mémoires tampon. Pour cela, le circuit d'interfaçage de l'invention ne valide la génération d'une interrup- tion que quand le remplissage de toutes les voies sélectionnées par le logiciel applicatif a atteint son seuil nominal. D'une manière générale, lorsque la voie de sortie vers le haut-parleur voit sa mémoire tampon insuffisamment remplie, les échantillons manquants sont remplacés par le dernier y ayant été écrit, ce qui permet de minimiser les bruits de claquement aux transitions. Et lorsque cette voie de sortie est inactivée par le logiciel applicatif, le mécanisme de synchronisation écrête le nombre de cases mémoire déclarées disponibles en écriture à la valeur nominale du seuil d'interruption. Lorsqu'une voie d'entrée depuis un microphone, que le logiciel applicatif a désactivée, reçoit des échantillons qui seraient en surnombre par rapport au seuil nominal de l'interruption, les nouveaux échantillons remplacent les plus anciens, et le nombre de cases mémoire déclarées disponibles en lecture est écrêté au seuil nominal de l'interruption. Lors de la première interruption consécutive à la mise en route logicielle d'une voie, le mécanisme correspondant d'écrêtage du nombre de cases mémoire déclarées disponibles, en écriture ou lecture, cesse, libérant dès lors la totalité de la mémoire tampon pour satisfaire le temps de prise en compte et d'exécution logicielle des interruptions. Par extension, sera considérée comme voie de sortie haut-parleur toute voie visant à exporter des signaux correspondant à de la voix ou de la musique, et sera considérée comme voie d'entrée microphone toute voie visant à importer des signaux correspondant à de la voix ou de la musique. Deux voies non synchrones entre elles ont des signaux d'interruption in- dépendants, qui ont vocation à être asynchrones entre eux. Cependant, à l'établissement d'un canal de communication entre deux de ces voies, il est avantageux d'initialiser le logiciel de compensation de glissement dans un état connu d'avance. Pour cela, lors de l'établissement d'un canal audio entre deux voies non synchrones entre elles, le même mécanisme de synchronisation est mis à profit pour placer toutes les mémoires tampon au même niveau de remplissage, ce qui conduira à l'apparition simultanée pour chaque voie de leur toute première interruption et à démarrer ainsi l'algorithme sur la base d'un glissement nul.30 REVENDICATIONS 1. Un circuit d'interfaçage pour le pré- et le post-traitement de signaux audio avant ou après exécution de traitements logiciels sur ces signaux par un processeur (12), ces signaux audio comprenant des signaux haut débit, numérisés à une fréquence d'échantillonnage élevée correspondant à une reproduction de qualité musicale, et des signaux bas débit, numérisés à une fréquence d'échantillonnage faible correspondant à une reproduction de qualité vo- cale et adaptée à l'exécution desdits traitements logiciels par le processeur, ce circuit d'interfaçage (36) étant réalisé en technologie matérielle et étant caractérisé en ce qu'il comprend : ù un circuit (50) de couplage à un bus (34) de liaison au processeur ; ù un circuit de conversion d'entrée, comprenant : • une mémoire d'échantillons formant tampon d'entrée (54), • un circuit de sous-échantillonnage (56), apte à recevoir des signaux haut débit (IN1 ; IN2) appliqués en entrée du circuit d'interfaçage, à convertir ces signaux haut débit en échantillons de si- gnaux bas débit, et à charger le tampon d'entrée à partir de ces signaux bas débit, et des moyens de lecture, par le circuit (50) de couplage au bus, des échantillons du tampon d'entrée ; un circuit de conversion de sortie, comprenant : • une mémoire d'échantillons formant tampon de sortie (62), • des moyens de chargement, par le circuit (50) de couplage au bus, du tampon de sortie, un circuit de sur-échantillonnage (66), apte à lire des échantillons de signaux bas débit dans le tampon de sortie, à convertir ces é- chantillons en signaux haut débit, et à délivrer ces signaux haut débit (OUT1 ; OUT2) en sortie du circuit d'interfaçage ; et ù un circuit de commande (60, 70), pour coordonner la gestion des tam- pons d'entrée et de sortie et le séquencement du sous-échantillonna- ge et du sur-échantillonnage, et pour contrôler la réception et la déli- vrance des signaux en entrée et en sortie du circuit d'interfaçage. 2. Le circuit d'interfaçage de la revendication 1, dans lequel le circuit de sous-échantillonnage (56) et/ou le circuit de sur-échantillonnage (66) sont des circuits opérant sur une pluralité de taux de sur- ou sous-échantillon- nage, sélectionnables par ledit circuit de commande (60) en fonction du rapport entre lesdites fréquence d'échantillonnage faible et élevée. 3. Le circuit d'interfaçage de la revendication 1, comprenant également au moins un circuit (30 ; 32) de liaison à un module (16 ; 20) délivrant ou re- cevant des signaux audio bas débit, ce circuit de liaison comprenant : un circuit (80) de couplage à un bus (34) de liaison au processeur ; ù un circuit d'entrée, comprenant : une mémoire d'échantillons formant tampon d'entrée (84), • un circuit (82) apte à charger le tampon d'entrée à partir de si-15 gnaux (IN) en provenance dudit module, ^ des moyens de lecture, par le circuit (80) de couplage au bus, du tampon d'entrée ; ù un circuit de sortie, comprenant : • une mémoire d'échantillons formant tampon de sortie (86), 20 • des moyens de chargement, par le circuit (80) de couplage au bus, du tampon de sortie, un circuit apte délivrer en sortie audit module les signaux lus dans le tampon de sortie ; et ù un circuit de commande (90, 92), pour coordonner la gestion des tam-25 pons d'entrée et de sortie et pour contrôler la réception et la délivrance des signaux appliqués en entrée et délivrés en sortie audit module. 4. Le circuit d'interfaçage de la revendication 3, dans lequel le circuit de commande est également apte à : 30 ù synchroniser sans intervention logicielle le niveau de remplissage des mémoires tampon travaillant sur une même source d'échantillonnage, pour en unifier les interruptions, -comparer la cadence d'horloge du processeur à la cadence d'horloge dudit module, etû en fonction du résultat de cette comparaison, modifier le flux de chargement ou de lecture des échantillons du tampon d'entrée ou de sortie de manière à compenser l'asynchronisme, dans un sens ou dans l'autre, entre les cadences d'horloge du processeur et du module. 5. Le circuit d'interfaçage de la revendication 4, dans lequel le circuit de commande modifie ledit flux de chargement ou de lecture par commande de l'exécution d'un algorithme de rééchantillonnage par le processeur. 10 6. Le circuit d'interfaçage de la revendication 5, dans lequel ledit algorithme de rééchantillonnage est un algorithme de type sur-échantillonnage N/N+1 ou sous-échantillonnage N/N-1. 7. Le circuit d'interfaçage de la revendication 4, dans lequel ledit algo-15 rithme de rééchantillonnage est un algorithme de ré-échantillonnage à fréquence variable, fonction de l'écart entre les cadences d'horloge du processeur et du module. 8. Le circuit d'interfaçage de la revendication 1, comprenant également, 20 sur la même puce de composant, des circuits convertisseurs analogique/numérique (38) et numérique/analogique (42) et de couplage desdits circuits de conversion d'entrée et de sortie à des entrées/sorties audio analogiques (IN_L, IN_R, OUT_L, OUT_R).5