FR 2720577 A1 19951201 FR 9406724 A 19940527 CIR(CUJIT DE DÉTECrION DE T(NALITÉ TÉLÉPHONIQUE La présente invention conoemrne une structure modulaire programmable pour détecter diverses tonalités téléphoniques qui varient d'une norme de trannsmission téléphonique à une autre et d'un pays à un autre. La présente invention vise plus généralement la détec- tion de signaux d'identification dans un signal numérique à l'aide d'un ensemble de modules de traitement qui peuvent être interconnectés de manière programmable par un utilisateur. Un signal d'identification est généralement caractérisé par une amplitude excédant, à une fréquence prédéterminée, un seuil ou l 'amplitude d'un autre signal d'identification. Pour détecter un tel signal, les modules de traitement comprennent des filtres programmables, des modules de redressement et d'intégration (estimateurs de puissance), et des comparateurs. La société Rockwell cnommercialise un circuit de détec- tion de tonalité comprenant trois fois l'association en série d'un filtre programmable, d'un estimateur de puissance, et d'un comparateur. Ce détecteur de tonalité a seulement deux ccnfigu- rations programmables. Dans une première configuration, chacun des trois filtres reçoit le signal numérique à traiter, ce qui permet de détecter trois tonalités différentes. Dans la deuxièmne configuration, les trois filtres sont reliés en série afin de pouvoir détecter une tonalité dans une bande de fréquence étroite. Cette structure est loin de pouvoir s'adapter à toutes les situations possibles de détection de tonalité. Un objet de la présente invention est de prévoir une structure programmable de traitement de signal qui puisse s'adapter à pratiquement toutes les situations du domaine dans lequel la structure programmable est utilisée. Un autre objet de la présente invention est de réali- ser une structure particulièrement simple et facile à program- mer. Pour atteindre ces objets, la présente invention prévoit un circuit de détection de signaux d'identification dans un signal numérique d'entrée qui présente des valeurs arrivant à une fréquence d'échantillonnage, comprenant un ensemble de modu- les de traitement interconnectés de manière librement program- mable par un utilisateur; une mémoire de signal mise à jour à la fréquence d'échantillonnage du signal d'entrée, contenant les valeurs des signaux de sortie des modules de traitement et du signal d'entrée à des adresses associées; une mémoire de pro- grammation contenant, à des emplacements associés aux entrées des modules de traitement, les adresses de la mémoire de signal associées aux signaux que l'utilisateur désire connescter aux- dites entrées; et des moyens de onmmande pour lire les adresses stockées dans la mémoire de programmation, lire les valeurs se trouvant à ces adresses dans la mémoire de signal, et fournir ces valeurs lues aux entrées des modules de traitement dans un ordre correspondant aux emplacements de la mémoire de programma- tion. Selon un mode de réalisation de la présente invention, le circuit comprend une mémoire d'entrée dans laquelle les va- leurs lues sont stockées à des emplacements associés respective- ment aux entrées des modules de traitement. Selon un mode de réalisation de la présente invention, les modules de traitement comprennent des premiers modules de traitement et des deuxièmes modules de traitement auxquels sont associées respectivement une première mémoire de programmation et une deuxième mémoire de programmation, les moyens de commnandle étant prévus pour lire les adresses stockées dans les première et deuxième mémoires de programmation à des fréquences différentes, lire les valeurs se trouvant à ces adresses dans la mémoire de signal, et fournir ces valeurs lues aux entrées des premiers modules de traitement et des deuxièmes modules de trai- tement dans des ordres respectifs correspondant aux emplacements des première et deuxième mémoires de programmation. Selon un mode de réalisation de la présente invention, le circuit comprend des première et deuxième mémoires d'entrée associées respectivement aux premiers modules de traitement et aux deuxièmes modules de traitement, dans lesquelles les valeurs lues sont stockées à des emplacements associés respectivement aux entrées des premiers modules de traitement et des deuxièmes modules de traitement. Selon un mode de réalisation de la présente invention, les premiers modules de traitement comprennent des filtres pro- grammables et des modules de redressement et d'intégration, les deuxièmes modules de traitement comprennent des camparateurs, et la mémoire de signal stocke en outre des valeurs seuil que l'utilisateur peut choisir de fournir à des comparateurs. Selon un mode de réalisation de la présente invention, les opérations des modules de traitement sont effectuées par un ensemble programmable pour effectuer les opérations séquentiel- lement. Ces objets, caractéristiques et avantages ainsi que d'autres de la présente invention seront exposés plus en détail dans la description suivante de modes de réalisation particu- liers faite à titre non-limitatif à l'aide des figures jointes parmi lesquelles: la figure 1 représente un exemple d'ensemble de modu- les de traitement utilisé dans une structure programmable selon l'invention; la figure 2 représente schématiquement un mode de réalisation d'une structure programmable selon l'invention; les figures 3A à 5B sont destinées à illustrer crom- ment l'invention apporte une solution à un problème pouvant apparaitre dans certains cas d'interconnexion des modules de traitement de la figure 1; la figure 6A représente un exemple d'intercrexion de module de traitement de la structure de 1 'invention; la figure 6B représente les contenus de zones mémoire de la structure de la figure 2 dans le cas de l'exemple de la figure 6A; et les figures 7A et 7B représentent des exemples détaillés de modules de traitement. La présente invention prévoit un ensemble de modules de traitement en nombre suffisant et de diversité suffisante pour pouvoir adapter, par simple programmation, la structure à tous les cas d'utilisation d'un domnaine prédéterminé. Pouair cela, 1 'utilisateur doit pouvoir programmer pratiquement n'importe quelle interconnexion des modules. La figure 1 représente un exemple d'ensemble de modules de traitement d'une structure programmable selon l'invention adaptée au domaine des transmissions téléphoniques. Cet ensemble de modules comprend un ensemble de filtres program- mables (FILT) 10, un ensemble de modules d'estimation de puis- sance (PWR) 20, un ensemble de modules 30 fournissant une valeur seuil VT, et un ensemble de ccmparateurs (CCMP) 32. Un exemple de filtre programmable 10 et de module d'estimation de puissance sera décrit ultérieurement. Dans la figure 1, on a représenté huit modules, numérotés de 0 à 7, de chaque type. Les sorties des comparateurs 32, fournissant des signaux de détection de tonalité DET, sont stockées dans un registre (latch) 34. Le signal nunmérique à traiter Rx est disponible dans un module 36, qui est, par exemple, un registre mis à jour à la fréquence d'échantillonnage de ce signal Rx. Une valeur correspondant au potentiel de masse GND est disponible dans un module 38, qui est, par exemple, constitué d'un ensemble de bits forcés en permanence au potentiel de masse. La figure 2 représente de manière schématique une structure programmable selon 1' invention. Les filtres 10 et les estimateurs de puissance 20 sont rassemblés dans un bloc 50. Les comparateurs 32 sont rassemblés dans un bloc 52. Afin de rendre la programmation de la structure parti- culièrement aisée, chaque signal est affecté, selon l'invention, d'une adresse fixe d'un emplacement d'une ménoire de signal 54. Conmme oela est représenté à la figure 1, on affecte, par exemple, l'adresse 00h (o la lettre h signifie que le nombre est hexadécimal) au signal nul GND, l'adresse 01h au signal d'entrée Rx, les adresses 10h à 17h aux sorties des filtres 10, les adresses 20h à 27h aux sorties des estimateurs de puissance , et les adresses 30h à 37h aux valeurs seuil VT. On n'affecte pas d'adresses aux sorties des comparateurs 32 car oes sorties ne sont pas connectées à des entrées de modules. Les emplacements de la mémoire 54 sont mis à jour, à chaque période d'échantillonnage, par les valeurs correspon- dantes des sorties des modules 50 et du signal d'entrée Rx. Les valeurs seuil VT sont écrites à leurs emplaoements respectifs de la mémoire 54, initialement, par exemple à la mise sous tension de la structure. Les entrées des modules 50 sont associées respecti- vement à des emplacements fixes d'une mémoire de programmation 56. Dans chaque emplacement de la mémoire 56, un utilisateur écrit (programme) 1l'adresse du signal qu'il souhaite appliquer à l'entrée de module associée à l'emplacement. De même, chaque entrée des comparateurs 52 est associée à un emplacement respectif fixe d'une nmmoire de programmation 58 dans laquelle l'utilisateur écrit les adresses des signaux à fournir aux comparateurs. Chaque entrée des modules 50 est également associée à un emplacemnent respectif fixe d'une mémoire d'entrée 60 dans laquelle on écrit les valeurs à fournir aux modules 50. De mnme, chaque entrée des comparateurs 52 est associée à un emplacement respectif fixe d'une mémoire d'entrée 62 dans laquelle on écrit les valeurs des signaux à fournir aux comparateurs 52. Un circuit de commande 64 gère les transferts entre les différentes mémoires, de la manière décrite ci-dessous. Au début de chaque période d'échantillonnage, les modules 50 effectuent leurs opérations à l'aide des valeurs respectives présentes dans la mémoire 60 et les résultats sont transférés aux adresses respectives dans la mémoire 54. De ëmme, les comparateurs 52 effectuent les comparaisons à partir des valeurs respectives stockées dans la mémoire 62, et valident ou non les bits respectifs du registre 34 (figure 1). Ensuite, chaque adresse stockée dans la mémoire 56 est examinée et la valeur stockée à cette adresse dans la mémoire 54 est transférée à un emplaoement correspondant de la mémoire 60. Les lectures dans la mémoire 56 s'effectuent dans le même ordre que les écritures dans la mémoire 60 de manière à respecter la correspondance entre les emplacements des mémoires 56 et 60 et les entrées des modules 50. De même, chaque adresse stockée dans la mémoire 58 est examinée et la valeur stockée à cette adresse dans la mémoire 54 est transférée à un emplacement correspondant de la mémoire 62. Ainsi, à chaque instant d'échantillonnage, les modules et les xomparateurs 52 effectuent leurs opérations avec des nouvelles valeurs. Le transfert intermédiaire de la mémoire 54 vers les mémoires 60 et 62 réalise, selon un aspect de l'inven- tion, un retard d'une période d'échantillonnage qui sert à éviter un inconvénient évoqué ci-après. Les modules sont regroupés en deux blocs distincts 50 et 52 car, dans le présent exemple, les opérations de compa- raison (bloc 52) peuvent être effectuées à une cadence moins élevée que celle des opérations de filtrage et d'estimation de puissanoe (bloc 50). En effet, les résultats des estimateurs de puissance varient peu d'une période d'échantillonnage à une autre. Par exemple, le ontenu de la mémoire de programmation 58 est partiellement examiné à chaque période d'échantillonnage, de manière que ce contenu soit examiné en totalité une fois toutes les n périodes d'échantillonnage (n=3, par exemple). Ainsi, la puissance de calcul nécessaire est réduite. Selon un mode de réalisation de l'invention, les mémoires 60 et 62 sont constituées par des registres d'entrée des modules 50 et 52. La mémoire de signal 54 est constituée de registres de sortie des modules 50, de registres contenant les valeurs seuil VT, et du registre contenant la valeur à traiter du signal Rx. Les modules 50 sont un ensemble de modules fonc- tionnant en parallèle ou séquentiellement, ou bien un ou deux modules élnémentaires reprogrammés pour effectuer séquentiel- lement les opérations de tous les modules de filtrage et d'esti- mation de puissance. Selon un autre mode de réalisation, les opérations des modules 50 et 52 sont effectuées de manière logi- cielle et les mémoires 54 à 62 forment partie d'une même et unique mémoire stockant également des paramètres programmables des filtres et des estimateurs de puissance. Avec cette structure, l'utilisateur peut programmer de manière aisée (dans les mémoires 56 et 58) toutes les inter- connexions possibles entre les modules. Cette liberté peut néanmoins présenter un inconvénient, exposé en relation avec les figures 3A à 5B, que l'invention évite grâce au retard d'une période d'échantillonnage introduit par le transfert intermé- diaire dans les mémoires 60 et 62. Les figures 3A et 3B représentent deux exemples de programmation d'interoennexion entre trois modules MOD1 à MDD3. Un signal S est, dans les deux cas des figures 3A et 3B, traité successivement par les modules MOD1 à MOD3. Les modules MOD1 et MCD2 fournissent des résultats intermédiaires R1 et R2, et le module MVD3 fournit le résultat final R3. Dans le cas général, les opérations des modules ne sont pas effectuées de manière simultanée. Notamment si ces opérations sont effectuées de manière logicielle, elles sont effectuées séquentiellement. Dans les figures 3A et 3B, on a représenté de haut en bas les modules dans l'ordre d'exécution de leurs opérations. A la figure 3A, les opérations sont effec- tuées dans l'ordre des modules MOD1 à MOD3, et dans la figure 3B, elles sont effectuées dans l'ordre des modules MOD3 à MOD1. Les figures 4A et 4B illustrent, pour les configura- tions des figures 3A et 3B respectivement, un exemple d'évolu- tion des signaux S et R1 à R3 dans l'ordre d'exécution des opé- rations des modules MOD1 à MOD3. Un échantillon du signal S est fourni à un instant to. On suppose, pour simplifier, que chacun des modules MOD1 à MOD3 est tel qu'il transmet à sa sortie la valeur présente à son entrée au moment o l'opération du module est effectuée. Dans la configuration de la figure 3A, chaque module effectue son opération à un moment o le module précédent a fourni son résultat, c'est-à-dire qu'un module de la figure 3A effectue son opération au moment o son entrée est à la valeur attendue. Comme le représente la figure 4A, l'échantillon du signal d'entrée S est transmis vers la sortie R3 sans retard (sauf celui des opérations des modules, qui est négligé). Dans la configuration de la figure 3B, l'opération d'un module est effectuée alors que celle du module précédent ne l'a pas encore été. L'entrée du module considéré n'est pas à la valeur attendue, sauf pour le module MDD1. Commne le représente la figure 4B, à l'instant to, l'échantillon du signal S est transmis sur la sortie R1. Les opérations des modules MOD3 et MOD2 sont effectuées à partir de l'instant tO mais avant celle du module MOD1; les sorties R3 et R2 sont à des états quel- conques. A l'instant d'échantillonnage suivant tl, l'opération du module MOD2 est effectuée alors que son entrée (R1) reçoit 1'échantillon du signal S. Cet échantillon est transmis sur la sortie R2. Par contre, l'opération du module MOD3 est effectuée avant celle du module MOD2; la sortie R3 est à un état quel- conque. A un instant t2, l'opération du module MDD3 est effec- tuée alors que l'échantillon est présent à l'entrée (R2) du module MDD3; cet échantillon est transmis sur la sortie R3. Ces deux cas montrent qu'un signal peut être retardé ou non d'une ou plusieurs périodes d'échantillonnage, selon le sens qu'un utilisateur choisit pour connecter les modules. Ainsi, si le programmateur de la structure ne prend pas de précaution particulière, les divers signaux circulant dans oette structure risquent d'avoir des retards différents, ce qui n'est pas acceptable dans certains cas. Pour éviter cet inconvénient, et donc pour permettre à l 'utilisateur de ne pas devoir surveiller attentivement sa programmation, un aspect de l'invention est d'introduire un retard d'une période d'échantillonnage dans chaque module. Les figures 5A et 5B illustrent respectivemenit les comportements obtenus ainsi dans les cas des figures 3A et 3B. Dans la figure 5A, illustrant le comportement de la configuration de la figure 3A, l'échantillon du signal S est successivement transmis vers les sorties R1 à R3 avec un retard d'une période d'échantillonnage à chaque transmission. Ainsi, la sortie R3 fournit 1' échantillon à un instant t3 suivant l'instant to de trois périodes d'échantillonnage. A la figure 5B, illustrant le comportement de la configuration de la figure 3B, le même phénomène que celui décrit à l'aide de la figure 4B se produit, mais avec une période d'échantillonnage de retard. Il en résulte que l'échan- tillon transmis se retrouve sur la sortie R3 à l'instant t3, conmme dans la figure 5A. Ainsi, quel que soit l'ordre de connexion des modules, les signaux sont transmis avec un mêmne retard. Les figures 6A et 6B illustrent un exemple de program- mation de structure et les contenus correspondants des mnémoires 54 à 62. Le signal Rx, stocké à l'adresse Olh dans la mémoire 54 est relié aux filtres 0 et 1 ainsi qu'à l'estimateur de puis- sance 1. Les emplacements de la mémoire 56 associés aux filtres O et 1 et à l'estimateur de puissance 1 contiennent l'adresse Olh. Le signal de sortie du filtre 0, stocké à l'adresse 10h dans la mnémoire 54, est relié à l'estimateur de puissance 0; l'adresse 10h est stockée dans la mémoire 56 à l'emplacement associé à l'estimateur de puissance 0. Le signal de sortie du filtre 1, stocké à l'adresse 11h dans la mémoire 54, est relié au filtre 2; l'adresse 11h est stockée dans la mémoire 56 à l'emplacement associé au filtre 2. Le signal de sortie du filtre 2, stocké à l'adresse 12h dans la mmire 54, est relié à l'estimateur de puissance 2; l'emplacement de la mémoire 56 associé à l'estimateur de puissance 2 contient l'adresse 12h. Les signaux de sortie des estimateurs de puissance 0 et 1, stockés aux adresses 20h et 21h dans la mémoire 54, sont reliés respectivement à des premières entrées (+) des compara- teurs 0 et 1, et les valeurs seuil VT0 et VT1, stockées aux adresses 30h et 31h dans la mémoire 54, sont fournies respecti- vement aux deuxièmes entrées (-) des comparateurs 0 et 1; la mémoire 58 stocke les adresses 20h et 21h à des emplaoements associés aux premières entrées des oomparateurs 0 et 1, et stocke les adresses 30h et 31h à des emplacements associés aux deuxièmes entrées des comparateurs 0 et 1. Les signaux de sortie des estimateurs de puissance 2 et 1 sont fournis respectivement aux deux entrées du camparateur 2. Les adresses 22h et 21h sont stockées dans la mémoire 58 aux emplacements associés aux entrées du comparateur 2. Dans la figure 6B, les emplacements des mnémoires d'entrée 60 et 62 sont associés aux modules dans le même ordre que les emplacements des mémoires de programmation 56 et 58. A chaque échantillon du signal à traiter Rx, les adresses conte- nues dans les mémoires de programmation 56 et 58 sont lues consécutivement et les valeurs contenues à ces adresses dans la mémoire 54 sont écrites dans le même ordre dans les mémoires d'entrée 60 et 62. Ainsi, par exemple, la valeur Rx contenue à l'adresse 01h de la mémoire 54 est transférée dans la mémnoire 60 aux emplacements associés aux filtres 0 et 1 et à l'estimateur de puissance 1. Les figures 7A et 7B représentent des exemples respec- tifs d'un module de filtrage et d'un module d'estimation de puissanoe. Le module de filtrage de la figure 7A est un filtre du deuxième ordre comprenant deux éléments de retard Z-1 70 et 71 disposés en série. Le module 70 reçoit la sortie d'un addition- neur 72 par 1 'intermédiaire d'un multiplieur par 2 73. Une première entrée de l'additionneur 72 revoit le signal d'entrée du filtre par l'intermédiaire d'un multiplieur 74 par un coef- ficient programmable CO. Une deuxième entrée de l'additionneur 72 reçoit la sortie d'un additionneur 75. L'additionneur 75 reçoit sur une première entrée la sortie de l'élément de retard 71 par l'intermédiaire d'un multiplieur 76 par un coefficient programmable C4 et sur une deuxième entrée la sortie de l'élé- ment de retard 70 par l'intermédiaire d'un multiplieur 78 par un coefficient programmable C5. Les sorties des éléments de retard et 71 sont fournies respectivement aux entrées d'un addition- neur 79 par l'intermédiaire respectivement d'un multiplieur 80 par un coefficient programmable C2 et d'un multiplieur 81 par un coefficient programmable Cl. La sortie de 1'additioneur 79 est fournie à un première entrée d'un additionneur 82 qui reçoit sur une deuxième entrée la sortie de l'additionneur 72 par l'inter- médiaire d'un multiplieur 83 par un coefficient programable C3. La sortie du filtre est constituée par la sortie de 1 'additionneur 82. Un élément de retard 84 relié à cette sortie correspond au retard introduit selon l'invention pour éviter 1 'inconvénient évoqué en relation avec les figures 3A à 4B. Le module estimateur de puissance représenté à la figure 7B comprend un élément de calcul de valeur absolue 86 qui reçoit l'entrée du module. Un soustracteur 87 fournit la dif- férence entre la sortie de l'élément 86 et d'un élément de retard 88. Cette différence est fournie à un additionneur 89 par l'intermédiaire d'un multiplieur 90 par un coefficient program- mable P1. La sortie de l'additionneur 89, qui constitue la sortie du module, est rebouclée sur la deuxième entrée de l'additionneur 89 par l'élnément de retard 88. Un élément de retard 91 est disposé à la sortie du module pour obtenir le retard évitant l'inconvénient susmentionné. Bien que l'invention a été décrite en relation avec des signaux téléphoniques, elle s'applique à la détection de caractéristiques particulières de tout type de signal. REVENDICATIONS 1. Circuit de détection de signaux d'identification dans un signal numérique d'entrée (Rx) qui présente des valeurs arrivant à une fréquence d'échantillonnage, comprenant: - un ensemble de modules de traitement (50, 52) inter- connectés de manière librement programmable par un utilisateur; - une mémoire de signal (54) mise à jour à la fré- quence d'échantillonnage du signal d'entrée, contenant les valeurs des signaux de sortie des modules de traitement et du signal d'entrée à des adresses associées; - une mémoire de programmation (56, 58) contenant, à des emplacements associés aux entrées des modules de traitement, les adresses de la mémoire de signal associées aux signaux que l 'utilisateur désire connecter auxdites entrées; et - des moyens de commandle (64) pour lire les adresses stockées dans la mémoire de programmation, lire les valeurs se trouvant à ces adresses dans la mémoire de signal, et fournir ces valeurs lues aux entrées des modules de traitement dans un ordre correspondant aux emplacements de la mémoire de program- mation. 2. Circuit de détection selon la revendication 1, caractérisé en ce qu'il comprend une mémoire d'entrée (60, 62) dans laquelle les valeurs lues sont stockées à des emplaoements associés respectivement aux entrées des modules de traitement. 3. Circuit de détection selon la revendication 1, caractérisé en oe que les modules de traitement comprennent des premiers modules de traitement (50) et des deuxièmes modules de traitement (52) auxquels sont associés respectivement une pre- mière mémoire de programmation (56) et une deuxième mémoire de programmation (58), les moyens de commande (64) étant prévus pour lire les adresses stockées dans les première et deuxième mémoires de programmation à des fréquences différentes, lire les valeurs se trouvant à ces adresses dans la mémoire de signal (54), et fournir ces valeurs lues aux entrées des premiers modules de traitement (50) et des deuxièmes modules de traite- ment (52) dans des ordres respectifs correspondant aux emplaoe- ments des première et deuxième mémoires de programmation. 4. Circuit de détection selon la revendication 3, caractérisé en oe qu'il comprend des première (60) et deuxièmne (62) mémoires d'entrée associées respectivement aux premiers modules de traitement (50) et aux deuxièmes modules de traite- ment (52), dans lesquelles les valeurs lues sont stockées à des emplacements associés respectivement aux entrées des premiers modules de traitement et des deuxièmes modules de traitement. 5. Circuit de détection selon la revendication 3, caractérisé en ce que les premiers modules de traitement (50) comprennent des filtres programmables (10) et des modules de redressement et d'intégration (20), en ce que les deuxièmes modules de traitement (52) omprennent des comparateurs (32), et en ce que la mémoire de signal stocke en outre des valeurs seuil (VT) que 1 'utilisateur peut choisir de fournir à des compara- teurs. 6. Circuit de détection selon la revendication 1, caractérisé en ce que les opérations des modules de traitement sont effectuées par un ensemble programmable pour effectuer les opérations séquentiellement.