Contacts

Générateur de microcircuits de signaux de tonalité dtmf. Etude du récepteur et de l'émetteur de signaux dtmf. Conditionnement du signal Dtmf

Le sujet des appareils simples, j'ai décidé de construire un générateur de signal DTMF pour le même ATtiny2313. Qui ne sait pas, DTMF (anglais Dual-Tone Multi-Frequency) est un signal analogique multifréquence à deux tons utilisé pour la numérotation numéro de téléphone... Lire Wikipédia.

La décision d'assembler un tel dispositif a été dictée par la volonté d'essayer de mettre en œuvre des signaux analogiques complexes à l'aide d'un microcontrôleur. Non application pratique pour cet appareil n'était pas prévu, mais est-ce que quelqu'un peut utiliser un tel appareil ? Utilise le!

Générateur DTMF source


Voyons maintenant ce que nous avons.

Le signal est formé à l'aide de PWM et afin de lui donner la forme souhaitée, une chaîne RC est utilisée. En conséquence, après la chaîne RC, nous obtenons le signal suivant (le bouton 6 est enfoncé):

Sur toute la courbe du signal utile, nous observons un peigne à haute fréquence (la fréquence est plus élevée que celle audible, elle ne créera donc pas de bruit) - c'est le travail de la chaîne RC. Vous pouvez rendre la ligne plus lisse en augmentant la capacité du condensateur ou la résistance de la résistance, mais dans ce cas, l'oscillation du signal utile diminuera considérablement.

Nous examinons le spectre du signal et nous nous assurons qu'il y a deux fréquences individuelles(la fréquence PWM a dépassé la zone d'affichage), alors tout va bien - l'appareil fonctionne comme il se doit.

Solutions prêtes à l'emploi

Pour les tâches de génération et de décodage d'un signal DTMF, il existe des solutions toutes faites... Voici quelques fiches techniques pour ces microcircuits.

Générateur DTMF
- Décodeur DTMF


P.S. C'est dommage qu'il n'y ait pas d'ADC dans ATtiny2313 - vous auriez pu aussi paniquer le décodeur DTMF ! Mais rien, je vais le répéter sur méga, je vais définitivement l'attacher.

(Visité 6 868 fois, 1 visite aujourd'hui)

L'invention se rapporte au domaine de la génération numérique de signaux à fréquence bicolore (DTMF) destinés à la transmission de données, par exemple dans le domaine de la téléphonie. Le résultat technique obtenu est une diminution du nombre d'éléments de circuit redondants, une augmentation de l'efficacité économique. Le générateur de signaux DTMF, qui met en œuvre la méthode de génération de signaux DTMF, contient deux accumulateurs, deux registres de verrouillage, deux dispositifs de mémoire, un additionneur final, un convertisseur numérique-analogique, un convertisseur de signaux DTMF dans une séquence d'entiers, un diviseur de la fréquence maître d'un générateur de signaux DTMF à facteur de division réglable, d'un convertisseur DTMF des codes des signaux en code du facteur de division. 2 sec. et 3 c.p. f-ly, 2 dwg.

L'invention concerne des procédés de génération de procédés numériques de signaux DTMF (fréquence à deux tons) destinés à la transmission de données, par exemple, dans le domaine de la téléphonie avec numérotation à fréquence de tons. est le procédé de génération de signaux DTMF, présenté dans le brevet US n° 5034977 du 04.04.89, publ. 23/07/91, Mcl. 5 H 04 M 1/00. Le procédé connu de génération de signaux DTMF comprend la sélection des premier et deuxième codes d'angles d'échantillonnage correspondant aux première et deuxième fréquences des composantes du signal DTMF, la sommation cumulative des premier et deuxième codes d'échantillonnage angles, respectivement, périodiquement fixés, avec une période correspondant à la fréquence d'échantillonnage d'horloge, les premier et deuxième résultats de la sommation cumulative, obtenant les première et deuxième valeurs discrètes des composantes du signal DTMF stockées dans les cellules situées à l'adresse des correspondants tableaux des valeurs discrètes des composantes du signal DTMF, en lisant dans les tableaux correspondants aux adresses correspondant aux résultats de la sommation cumulative des codes d'angle d'échantillonnage, sommation des première et deuxième valeurs discrètes des composantes du signal DTMF pour obtenir la troisième valeur discrète correspondant à la valeur du signal DTMF La méthode connue pour générer des signaux DTMF est la suivante : selon le code DTM signal F au moyen de la première conversion de codes de signaux DTMF, le premier code est sélectionné, ce qui détermine l'angle d'échantillonnage du signal avec une fréquence correspondant au groupe tripler- colonnes, et au moyen de la deuxième conversion de codes de signaux DTMF, le deuxième code est sélectionné, qui détermine l'angle d'échantillonnage du signal avec une fréquence correspondant au groupe de fréquences inférieures - lignes, périodiquement, avec une période correspondant à la fréquence d'horloge d'échantillonnage, le premier code d'angle d'échantillonnage est sommé dans l'accumulateur correspondant et fixé dans le registre correspondant dont la sortie est le résultat dont la valeur correspond à l'adresse de la cellule du tableau stockée dans la mémoire morte correspondante et dans lequel se trouvent les valeurs discrètes correspondantes des sinus, qui déterminent la fréquence supérieure du signal DTMF de la même manière, périodiquement, avec une période correspondant à la fréquence d'échantillonnage de l'horloge, le deuxième code de l'angle d'échantillonnage est additionné dans l'accumulateur correspondant et figé dans le registre correspondant dont la sortie est le résultat dont la valeur correspond à l'adresse de la cellule du tableau stockée dans le mémoire morte et dans laquelle se trouvent les valeurs discrètes correspondantes des sinus qui déterminent la fréquence inférieure du signal DTMF, les valeurs discrètes des sinus qui déterminent les fréquences supérieure et inférieure du signal DTMF sont additionnées dans l'additionneur final, déterminant la valeur discrète du signal DTMF et par conversion numérique-analogique, est envoyé à la sortie, formant un signal DTMF sinusoïdal pas à pas correspondant au code d'entrée du signal DTMF.La méthode connue est inefficace en raison de son indicateurs techniques et économiques faibles et indicateurs technologiques.Les indicateurs techniques et économiques sont déterminés par les coûts nécessaires lors de la mise en œuvre de la méthode pour atteindre paramètres requis présenté aux signaux DTMF. V méthode connue la précision de génération de fréquence dépend de la profondeur de bits du code correspondant à l'angle d'échantillonnage, ce qui nécessite une grande capacité en bits de l'accumulateur, ce qui complique la mise en oeuvre du procédé avec un matériel simple. A savoir, le code de l'angle d'échantillonnage dans le procédé connu est déterminé par l'expression K = (F / F t) 32 ..., (1.1) où K est le code correspondant à l'angle d'échantillonnage, F est la fréquence générée; F t est la fréquence d'échantillonnage. de la fréquence générée dépend sans ambiguïté du rapport de la fréquence générée et de la fréquence d'échantillonnage. 8 bits, et pour les hautes fréquences au moins 9 bits, et pour la sommation cumulative, respectivement, au moins 12 bits, qui conduit à une augmentation du nombre d'éléments constitutifs des dispositifs mettant en oeuvre le procédé connu. Les dispositifs connus pour la mise en oeuvre du procédé connu, à savoir additionneurs, registres, mémoires mortes, présentent des entrées/sorties d'une largeur de 4 et 8 bits. Par conséquent, avec une profondeur de bits plus élevée, des coûts techniques et économiques supplémentaires sont nécessaires pour la mise en œuvre de dispositifs également fonctionnels. Dans le même temps, dans la méthode connue, une diminution du nombre de chiffres après la virgule décimale entraîne une erreur de fréquence dépassant celle admissible.Les indicateurs technologiques sont déterminés par la polyvalence et l'unification dans la mise en œuvre de la méthode, par exemple, l'état actuel de la technique, qui implique une diminution de la consommation de matière, des éléments constitutifs et une augmentation de la multifonctionnalité des dispositifs, nécessite l'utilisation de microcontrôleurs. Les microcontrôleurs très répandus utilisés dans les mesures de téléphonie et de télémétrie utilisent des données 8 bits et un dispositif arithmétique-logique 8 bits, ce qui nécessite des opérations de calcul supplémentaires associées à l'ajout de données, avec une largeur de plus de 8 bits, et l'analyse de la retenue. signal, lors de la mise en oeuvre du procédé connu, qui augmente le nombre de commandes et, par conséquent, la fréquence d'horloge du microcontrôleur, ainsi que le volume mémoire vive microcontrôleur, ce qui entraîne une augmentation du coût des dispositifs utilisant un procédé connu de génération de signaux DTMF. Cette conclusion est donnée lors de l'analyse de l'application de la méthode connue dans un composeur de tonalité basé sur des microcontrôleurs fabriqués par Atmel, Microchip tnc, etc. Ainsi, la méthode connue est fondamentalement inefficace, ce qui est dû à de faibles indicateurs techniques et économiques, exprimés en augmentation consommation de matériaux, consommation d'énergie et indicateurs technologiques faibles , car il présente des limites lors de l'utilisation de la méthode, y compris dans la composition des microcontrôleurs d'utilisation généralisée, qui s'exprime en augmentation caractéristiques techniques appliqué aux microcontrôleurs, ce qui réduit leur multifonctionnalité.Le plus proche du point de vue de l'essence technique et du résultat obtenu du générateur de signal DTMF revendiqué est le générateur de signal DTMF présenté dans le brevet américain n° 5034977 du 04.04.89, publ. 23/07/91, Mcl. 5 H 04 M 1/00. Le générateur de signaux DTMF connu comprend : le premier accumulateur, le premier registre de verrouillage, le premier dispositif de mémoire, le deuxième additionneur d'accumulateur, le deuxième registre de verrouillage, le deuxième dispositif de mémoire, le dernier additionneur, le -convertisseur analogique, et la sortie du premier accumulateur est connectée à l'entrée du premier registre à verrouillage, la sortie du premier registre à verrouillage est connectée à l'entrée du premier dispositif de mémoire, ainsi qu'à l'une des entrées du premier additionneur de stockage, la sortie du premier dispositif de mémoire est connectée à l'une des entrées du dernier additionneur, la sortie du deuxième additionneur de stockage est connectée à l'entrée du deuxième registre de verrouillage, la sortie du deuxième registre de verrouillage est connectée à l'entrée du deuxième dispositif de stockage, ainsi qu'à l'une des entrées du deuxième additionneur de stockage, la sortie du deuxième dispositif de stockage est connectée à l'autre entrée du dernier additionneur, la sortie du dernier additionneur est connecté à l'entrée du numérique un convertisseur logarithmique dont la sortie est la sortie d'un générateur de signaux DTMF.Le générateur connu contient également un premier convertisseur de codes de signaux DTMF en codes correspondants d'angles d'échantillonnage correspondant aux hautes fréquences du signal DTMF, un deuxième convertisseur de codes de signaux DTMF dans les codes correspondants d'angles d'échantillonnage correspondant aux fréquences inférieures du signal DTMF, et la sortie du premier convertisseur de signaux DTMF est connectée à une autre entrée du premier accumulateur, la sortie du deuxième convertisseur de signaux DTMF est connectées à une autre entrée du deuxième accumulateur, les entrées des premier et deuxième convertisseurs de signaux DTMF sont les entrées du générateur de signaux DTMF, et les entrées d'horloge des premier et deuxième registres de verrouillage interconnectées et constituent l'entrée fréquence d'horlogeÉchantillonnage du générateur de signaux DTMF Le générateur de signaux DTMF bien connu fournit un faible résultat technique en raison du nombre excessif d'éléments de circuit associés à différents, ainsi que de la capacité excédentaire des mêmes éléments fonctionnels. De plus, la mise en œuvre de la solution technique connue est effectivement possible sous la forme d'un microcircuit intégré séparé, cependant, cela nécessite l'organisation d'une production spécialisée, mais étant donné que les générateurs de signaux DTMF font partie d'appareils multifonctionnels (téléphones aux capacités avancées, appareils pour transmettre des informations télémétriques via lignes téléphoniques etc.) actuellement mis en œuvre sur la base de microcontrôleurs universels , la production de microcircuits individuels de signaux DTMF est économiquement inefficace. La base de la solution technique proposée consiste à créer un procédé de génération de signaux DTMF à l'aide d'un générateur de signaux DTMF, dans lequel, en modifiant les conditions et la séquence des opérations, le le procédé est mis en œuvre avec des indicateurs techniques et économiques élevés en raison d'une diminution de la capacité en bits des opérations de même type, des indicateurs technologiques élevés, lors de la mise en œuvre du procédé, à la fois dans la conception de circuits avec du matériel simple, et dans le cadre d'un microcontrôleur multifonctionnel, associé à la répétabilité, lors de la mise en œuvre, des mêmes éléments fonctionnels. La solution technique est basée sur la tâche de créer un générateur de signaux DTMF, dans lequel par l'introduction de nouveaux éléments et la mise en œuvre de nouvelles connexions augmente le résultat technique associé à une diminution de le nombre d'éléments de circuit redondants, et augmente en conséquence l'efficacité économique Le problème est résolu par le fait que dans le procédé connu pour générer des signaux DTMF, comprenant la sélection des premier et deuxième codes des angles d'échantillonnage correspondant aux première et deuxième fréquences des composantes du signal DTMF, la sommation cumulative des premier et deuxième deuxièmes codes d'échantillonnage séparément avec des angles respectivement fixés périodiquement, avec une période correspondant à la fréquence d'horloge d'échantillonnage, les premier et deuxième résultats de sommation cumulative, obtenant les première et deuxième valeurs discrètes des composantes du signal DTMF stockées dans les cellules situées à l'adresse de les tableaux correspondants de valeurs discrètes des composantes du signal DTMF en lisant dans les tableaux correspondants par les adresses correspondant aux résultats de la sommation cumulée des codes d'angle d'échantillonnage, la sommation des première et deuxième valeurs discrètes du DTMF composantes du signal pour obtenir la troisième valeur discrète La valeur correspondant à la valeur du signal DTMF, la nouveauté est que la réception des première et deuxième valeurs discrètes des composantes du signal DTMF stockées dans les cellules situées à l'adresse des tableaux correspondants des valeurs discrètes des composantes du signal DTMF est effectuée par lecture des tables correspondantes aux adresses correspondant aux résultats de la sommation cumulative, respectivement, de la première et de la deuxième séquences d'entiers dont la valeur moyenne correspond aux codes des angles d'échantillonnage correspondant aux composantes du Signal DTMF. De plus, la valeur moyenne de la suite d'entiers formant le résultat de la sommation cumulée peut être la moyenne arithmétique de ces nombres De plus, l'enregistrement périodique des premier et deuxième résultats de la sommation cumulée peut se faire avec une période correspondant à la fréquence d'horloge d'échantillonnage, différente pour différents signaux DTMF, est également résolue en ce que le générateur de signal DTMF connu, comprenant le premier accumulateur, le premier registre de verrouillage, la première mémoire, le deuxième accumulateur, le deuxième registre de verrouillage, la deuxième mémoire, le additionneur final, le convertisseur numérique-analogique, et la sortie du premier accumulateur est connectée à l'entrée du premier registre de verrouillage, la sortie du premier registre de verrouillage est connectée à l'entrée du premier dispositif de mémoire, ainsi qu'à l'une des entrées du premier accumulateur, la sortie du premier dispositif de mémoire est connectée à l'une des entrées dans l'additionneur final, la sortie du deuxième accumulateur est connectée à l'entrée du deuxième registre de verrouillage, la sortie du deuxième registre de verrouillage est connectée à l'entrée du deuxième dispositif de mémoire, ainsi qu'à l'une des entrées du deuxième accumulateur, la sortie du deuxième dispositif mémoire est connectée à une autre entrée de l'additionneur final, la sortie de l'additionneur final est connectée à l'entrée du convertisseur numérique-analogique dont la sortie est la sortie du DTMF générateur de signaux, nouveau selon l'invention est que le générateur de signaux DTMF contient en plus un convertisseur de signaux DTMF dans une séquence d'entiers, un diviseur de la fréquence maître du générateur de signaux DTMF avec un facteur de division réglable, un convertisseur de code signaux DTMF en le code de rapport de division, et la première sortie du convertisseur de signaux DTMF dans une séquence d'entiers est connectée à une autre entrée du premier accumulateur, la deuxième sortie du convertisseur de signaux DTMF séquence d'entiers est connectée à une autre entrée du deuxième accumulateur, la sortie du diviseur de fréquence maître du générateur de signaux DTMF avec un rapport de division réglable est connectée à l'entrée d'horloge du convertisseur de signaux DTMF dans la séquence d'entiers, ainsi en ce qui concerne l'entrée d'horloge du premier registre de maintien et l'entrée d'horloge du deuxième registre de maintien, la sortie du convertisseur de signaux DTMF au code de facteur de division est connectée à l'entrée pour régler le facteur de division du diviseur de fréquence maître du Générateur de signaux DTMF, l'entrée du diviseur de fréquence maître du générateur de signaux DTMF avec un facteur de division réglable est l'entrée de la fréquence maître du générateur de signaux DTMF, l'entrée du convertisseur de signaux DTMF au code de facteur de division connecté au entrée du convertisseur de signaux DTMF dans une séquence d'entiers et est l'entrée du générateur de signaux DTMF. En outre, le convertisseur de codes signaux DTMF en une séquence d'entiers peut être réalisé sous la forme d'une mémoire programmable contrôlée, dont la mémoire est constituée, correspondant au nombre de signaux DTMF, de zones mémoires, consistant en correspondant à la longueur de la séquence d'entiers, cellules mémoire, fait de sorte que dans une moitié de la cellule mémoire stocke un nombre lié à la première séquence d'entiers, et l'autre moitié de la cellule mémoire stocke un nombre correspondant à l'autre séquence d'entiers, qui sont les sommations des accumulateurs respectifs, et la commande de mémoire programmable est effectuée avec la possibilité de zones de commande de sélection séparées de la mémoire et d'une cellule de mémoire séparée.Nouvelles caractéristiques du procédé de génération de signaux DTMF et du générateur de signaux DTMF en combinaison avec les les caractéristiques de ces objets fournissent de nouvelles propriétés techniques des objets et, en conséquence de ces propriétés, fournissent un nouveau résultat technique nécessaire est produit. La relation causale entre l'ensemble des caractéristiques de la méthode proposée et le résultat technique obtenu est expliquée comme suit. Pour révéler l'essence de la solution technique proposée, les calculs suivants seront pratiques : y (P ) = sin (n) (1.2), où y (P ) est la valeur discrète de la fonction sinus ; = wT = 27F / Fr (1.3) est l'angle d'échantillonnage, mesuré en radians ; n est le nombre ordinal de l'échantillon - l'échantillon ; F t = F OSC / kd est la fréquence d'horloge d'échantillonnage, où F OSC est le dispositif de réglage de la fréquence ; kd - rapport de division réglable. Alors = 2FK D / F OSC. (1.4) Comme il est bien connu, la fonction sinus est périodique avec une période de 2. Pour convertir l'angle d'échantillonnage de radians en unités relatives et obtenir le code d'angle d'échantillonnage, nous divisons la période entière en m parties, où m est un binaire entier. Ainsi, nous obtenons une partie discrète minimale de la période : = 2 / m. (1.5) Le code d'angle d'échantillonnage est la valeur relative de l'angle d'échantillonnage selon une partie de la période, à savoir, K = / = 2F / F t : 2P / m = Fm / F t. (1.6) Par exemple, pour les fréquences générées 1477 Hz et 697 Hz (correspond au code DTMF du signal "3"), à m = 64, et la fréquence d'horloge F t = 32768 Hz K 697 = 1,36 ; K l477 = 2,88. Évidemment, pour l'affichage binaire du code d'angle d'échantillonnage K 697 = 1,36 v, respectivement 136 nécessite 8 bits (1281 + 640 + 320 + 160 + 81 + 40 + 20 + 10), et K 1477 = 2,88 v, respectivement 288 nécessite 9 bits ( 2561 + 1280 + 640 + 321 + 160 + 80 + 40 + 20 + 10). Dans ce cas, pour la sommation cumulative, respectivement, dans la représentation binaire, 12 bits sont nécessaires, ce qui a déterminé les inconvénients décrits ci-dessus du connu Solution. La solution technique proposée définit par exemple le nombre 1,36 comme la valeur moyenne d'une suite d'entiers 1 et 2, à savoir 1,36 = (1x + 2y) / (x + y), où x et y sont le nombre de nombres 1 et 2, respectivement, se répétant périodiquement avec une période (x + y). La valeur du code d'angle d'échantillonnage se compose d'une partie entière Ts et d'une partie fractionnaire, c'est-à-dire par exemple 1,36 = 1 + 0,36. La précision relative d'un tel remplacement selon l'expression (1.7) = K/C (1.7) augmente avec une augmentation de la partie entière de la valeur du code d'angle d'échantillonnage. Par exemple, pour la fréquence générée 697 Hz, m = 64 et la fréquence d'horloge F t = 32768 Hz, l'erreur de remplacement de K 697 = 1,36 par les valeurs des nombres 1 et 2, respectivement, 36 et 32%. Dans le même temps, si vous augmentez la valeur de m = 256, l'erreur de remplacement de K 697 = 5,45 par les valeurs des nombres 5 et 6 diminue respectivement de 9 et 10%. Dans ce cas, l'erreur de la fréquence générée, par exemple, en remplaçant K 697 = 5,45 par les valeurs des nombres 5 et 6 avec une période de répétition, égale à 16, 5,45 = (5x + 6y) / (x + y), où ( x + y) = 16. En résolvant l'équation, on obtient x = 9, y = 7, soit de seize opérations de sommation cumulative, le terme 5 est ajouté neuf fois et le terme 6 est ajouté sept fois, alors qu'en fait K 697 = 5,4375, en substituant cette valeur dans l'expression (1,6) pour m = 256, F t = 32768 Hz, nous déterminer la valeur réelle calculée de la fréquence générée F = 696 Hz, alors que l'erreur restait à 0,1%. Ainsi, la sommation cumulative d'une séquence d'entiers dont la valeur moyenne correspond aux angles d'échantillonnage correspondants, permet d'atteindre des valeurs élevées indicateurs techniques et économiques en réduisant la profondeur de bits des opérations de sommation cumulative en raison de la possibilité de faire varier les composants des expressions ci-dessus, et, en conséquence, une diminution de la capacité en bits des dispositifs mettant en œuvre le procédé proposé, ce qui conduit à une diminution du matériel et coûts énergétiques lors de la mise en œuvre de la méthode, et d'assurer des performances technologiques élevées de la méthode proposée lorsqu'elle est utilisée dans appareils multifonctions La relation de cause à effet entre l'ensemble des caractéristiques de la solution technique proposée et le résultat technique obtenu s'explique comme suit : Le résultat technique élevé du générateur de signal DTMF est assuré par l'introduction de nouveaux éléments du convertisseur de code de signal DTMF dans une séquence d'entiers, le diviseur de la fréquence de réglage du générateur de signaux DTMF avec facteur de division réglable, convertisseur de codes de signaux DTMF en un code facteur de diviseur, qui assurent la mise en œuvre du procédé par des éléments de circuit avec la même largeur de bit, non dépassant 8 bits, alors qu'il n'y a pas de redondance des éléments nécessaires pour résoudre plusieurs problèmes, par exemple, et pour fixer le résultat de la sommation cumulative, et le même nombre de bits sont utilisés pour adresser le périphérique de stockage correspondant, mis en œuvre par pas plus de un registre de 8 bits, qui peut être exécuté par des moyens accessibles au public sous la forme d'un microcircuit ou, dans une conception de microprocesseur, d'une cellule mémoire.En outre, la mise en œuvre d'additionneurs de stockage peut être effectuée sous la forme de dispositifs identiques, avec la même capacité en bits, sous la forme de microcircuits additionneurs accessibles au public fonctionnant avec des termes de 4 bits. que les nombres et, par conséquent, les dispositifs qui forment les séquences d'entiers décrites ci-dessus, dont la combinaison détermine les codes correspondants des angles d'échantillonnage, peuvent être avec une profondeur de bits différente, mais la plus optimale , du point de vue de la réalisation des objectifs fixés par la solution revendiquée, sont des nombres à 4 bits. Le résultat technique est également assuré lorsque la solution technique proposée est mise en œuvre dans le cadre de microcontrôleurs, où le système de commande des microcontrôleurs comporte nécessairement des commandes d'exploitation avec des nombres à 4 bits - nibbles. Ainsi, la solution technique proposée du générateur de signaux DTMF permet de fournir un résultat technique élevé associé à une diminution du nombre d'éléments de circuit, et offre également une polyvalence dans la mise en œuvre du générateur de signaux DTMF à la fois par du matériel accessible au public et dans le cadre de microcontrôleurs multifonctionnels, ce qui détermine la haute efficacité économique de la solution technique. représente un générateur de signaux DTMF qui met en œuvre un procédé de génération de signaux DTMF. Le générateur de signaux DTMF comprend un convertisseur 1 de signaux DTMF dans une séquence d'entiers, un diviseur 2 de la fréquence maître d'un générateur de signaux DTMF avec un facteur de division réglable, un convertisseur 3 de codes DTMF en un facteur de division de code, le premier accumulateur 4, le premier registre de verrouillage 5, le premier dispositif de mémoire 6, le deuxième dispositif de mémoire 7, le deuxième registre de verrouillage 8, le deuxième additionneur d'accumulateur, le dernier additionneur 10 , le convertisseur numérique-analogique 11. Le fonctionnement du générateur de signaux DTMF est illustré par un exemple de mise en œuvre de la méthode de génération de signaux DTMF à partir d'expressions (1.4, 1.6) et de données techniques, notamment la fréquence maître de l'appareil où la méthode proposée sera mise en œuvre , des séquences d'entiers sont calculées qui déterminent les codes correspondants d'angles d'échantillonnage et des codes de facteur de division pour le diviseur 2 de la fréquence maître du générateur de signaux DTMF avec un facteur de division réglable, qui sont écrits dans les cellules de mémoire correspondantes du convertisseur 1 de signaux DTMF dans une séquence d'entiers et le convertisseur 3 de codes de signaux DTMF en codes de facteur de division, pré-calculent également les valeurs discrètes des fonctions sinus correspondantes, dont le nombre est déterminé par le nombre d'échantillons m, et sont écrites dans les mémoires correspondantes 6 et 7, lors de la génération d'un signal DTMF, aux entrées du convertisseur 1 et du convertisseur 3, qui sont les entrées du générateur, pendant un temps du signal DTMF, le code du signal DTMF généré sera défini, à la sortie du convertisseur 3 un code sera défini qui détermine le facteur de division pour le diviseur 2, tandis qu'à la sortie du diviseur 2 la fréquence d'horloge d'échantillonnage sera définie périodiquement, avec une période correspondant à la fréquence d'horloge d'échantillonnage, à partir de la première sortie du convertisseur 1 viendront à l'entrée du premier accumulateur 4 des nombres binaires inclus dans la première séquence d'entiers, et à partir de la deuxième sortie du convertisseur 1 saisir l'entrée du deuxième accumulateur 9 nombres binaires inclus dans la deuxième séquence d'entiers correspondant aux composantes du signal DTMF, les résultats de la sommation cumulée sont fournis des sorties des additionneurs cumulatifs aux entrées des registres de verrouillage correspondants 5 et 8, à partir des sorties des registres de verrouillage 5 et 8, les résultats de la sommation cumulative, avec une période correspondant à la fréquence d'horloge d'échantillonnage, sont appliqués aux autres entrées des accumulateurs correspondants additionneurs numériques 4 et 9, ainsi qu'aux entrées des dispositifs mémoire correspondants 6 et 7, fixant les adresses des valeurs discrètes des sinus des composantes correspondantes du signal DTMF, à partir des sorties des dispositifs mémoire 6 et 7, les valeurs discrètes des composantes correspondantes du signal DTMF sont transmises aux entrées correspondantes de l'additionneur total 10, à la sortie desquelles un signal DTMF binaire discret est formé, qui est alimenté à l'entrée du numérique -convertisseur analogique 11, à la sortie duquel est formé un signal DTMF sinusoïdal échelonné, correspondant au code d'entrée du signal DTMF. Le convertisseur 1 de codes DTMF de signaux dans une séquence d'entiers (Fig. 1) peut être réalisé sous la forme représentée sur la Fig. 2, où le convertisseur de codes DTMF de signaux dans une séquence d'entiers comprend un dispositif de commande 12, un mémoire programmable 13. Le fonctionnement du générateur de signaux DTMF est illustré plus loin exemple précis mise en œuvre de la méthode proposée dans un composeur de fréquences téléphoniques. Au préalable, sur la base d'expressions (1.4, 1.6) et de données techniques, des séquences d'entiers sont calculées qui déterminent les codes correspondants d'angles d'échantillonnage et les codes de facteurs de division pour le diviseur 2 de la fréquence maître du générateur de signaux DTMF avec un facteur de division réglable. Considérant que la mise en œuvre de la méthode comprend le même type de calculs, alors pour illustrer le travail dans un exemple spécifique, la mise en œuvre de la méthode de génération d'un signal DTMF correspondant à l'appui sur la touche "7" dans le composeur à tonalités est donnée . La fréquence de réglage du générateur est réglée fréquence du quartz, le plus courant en technologie téléphonique, à savoir F OSC = 3579545 Hz. L'appui sur la touche « 7 » correspond à un signal DTMF avec la fréquence supérieure (colonnes) de 1209 Hz et la fréquence inférieure (lignes) de 852 Hz. Étant donné que le signal DTMF transmet simultanément deux fréquences, les coefficients de division sont calculés pour une fréquence supérieure - supérieure de sorte que le code d'angle d'échantillonnage correspondant conformément à l'expression (1.6) soit proche de la valeur maximale - 16, qui est implémentée en pas plus de Données 4 bits. Ainsi, à F OSC = 3579545 Hz, le nombre de valeurs discrètes de sinus m = 128, les valeurs calculées du facteur de division pour le diviseur 2 de la fréquence maître du générateur de signal DTMF avec un facteur de division réglable KD = 240 = 460, tandis que les codes correspondants des angles d'échantillonnage pour la fréquence supérieure sont K 1209 / 852 = 10,376, pour la fréquence inférieure K 852/1209 = 7,312 Selon l'invention, les codes d'angle d'échantillonnage sont remplacés par une séquence de entiers, respectivement 10/11 et 7 / 8.10.375 = (10x + 11y) / (x + y), alors qu'en réalité K 1209/852 = 10.3757.312 = (7x + 8y) / (x + y), alors qu'en réalité K 952/1209 = 7,313, avec (x + y) = 16. Ainsi, 10,375 est remplacé périodiquement par une séquence répétée d'entiers 10 10 fois et 11 6 fois, et 7 312 est remplacé par 7 11 fois et 8 5 fois. la zone mémoire du code DTMF du signal « 7 » en binaire est la suivante :
Ainsi, seize tables sont calculées correspondant aux codes de signaux DTMF, à savoir 0, 1, 2... 9, *, #, A, B, C, D, et préenregistrées dans la mémoire de la mémoire programmable 13 (convertisseur du code de caractère DTMF en Lorsque vous appuyez sur une touche, par exemple « 7 » à l'entrée du générateur, pendant la durée du signal DTMF, le code binaire du signal DTMF « 7 » (0111) est positionné, le convertisseur 3 du code de signal DTMF en facteur de division convertit le code de signal DTMF en la division de code de coefficient kd pour le diviseur 2 de la fréquence maître du générateur avec un facteur de division réglable, la sortie du diviseur 2 réglera l'horloge d'échantillonnage F t = F OSC / KD. Le code du signal DTMF arrive également aux entrées d'adresse des bits de poids fort de la mémoire programmable 13 (convertisseur de signaux DTMF en une suite d'entiers) et y est présent pendant la durée du signal DTMF. Le dispositif commandé 12, réalisé par exemple sous la forme d'un compteur (un convertisseur de signaux DTMF dans une séquence d'entiers), sous l'influence de signaux d'horloge de fréquence t, modifie cycliquement sa valeur aux sorties parallèles séquentiellement de 0000 à 1111, en modifiant en conséquence les valeurs des entrées d'adresse des bits les moins significatifs du dispositif de mémoire programmable 13 (convertisseur de signaux DTMF dans une séquence d'entiers), des nombres de 8 bits (octets) apparaissent à la sortie de une mémoire programmable 13 avec une fréquence d'horloge d'échantillonnage, tandis que conformément au tableau 1, les quatre bits de poids fort (quartet de poids fort) forment une séquence d'entiers dont l'ensemble, à savoir la moyenne arithmétique, détermine le code de l'angle d'échantillonnage correspondant à la fréquence supérieure (colonnes), et les quatre bits inférieurs (quartet inférieur) forment une séquence d'entiers dont l'ensemble, à savoir la moyenne arithmétique, détermine le code l'angle d'échantillonnage correspondant à la fréquence (ligne) inférieure, des données à quatre bits, conformément au tableau 1, provenant de la sortie de la mémoire programmable 13 (convertisseur de signaux DTMF dans une séquence d'entiers) sont envoyées séparément aux entrées du des accumulateurs correspondants 4 et 9, aux sorties des additionneurs correspondants 4 et 9, les données changent avec une fréquence d'horloge d'échantillonnage de 0 à m (dans ce cas, m = 128), définissant et fixant au moyen des registres à verrouillage 5 et 8 adresses pour les dispositifs de mémoire 6 et 7, dans lesquelles les valeurs binaires discrètes des composantes sinusoïdales correspondantes du DTMF sont respectivement des signaux écrits, provenant des sorties des dispositifs de stockage 6 et 7, valeurs binaires discrètes des composantes sinusoïdales correspondantes du DTMF signal sont transmis aux entrées correspondantes de l'additionneur final 10, à la sortie desquelles sont formées des valeurs binaires discrètes du signal DTMF, qui sont ensuite transmises à l'entrée du convertisseur numérique-analogique 11, pour dont la sortie est un signal DTMF sinusoïdal échelonné. Le générateur de signaux DTMF peut être implémenté sur la base de moyens techniques, décrit, par exemple, dans : L'utilisation des circuits intégrés en informatique électronique. Manuel / Éd. B.N. Fayzulaeva, B.V. Tarabrina. - M. : Radio et communication, 1986. Dans ce cas, le convertisseur 3 codes de signaux DTMF en codes de facteurs de division peut être réalisé, par exemple, sous la forme d'une puce mémoire morte 155PE 3 (p. 343) , la mise en œuvre des registres est décrite p. 108, la mise en oeuvre des accumulateurs est décrite p. 114. Le procédé de l'invention et le générateur de signaux DTMF sont également mis en œuvre sur la base des moyens techniques de Microchip Inc. (microcontrôleurs à puce unique 8 bits comme pic16f628), dans le cadre du composeur téléphonique à impulsions "Kadran - NKT - 01" fabriqué par la société "Kadran" (Ukraine, Zaporozhye). Système de commande et organisation interne les nœuds de microcontrôleur sont décrits dans : Prokopenko B.Ya. Microcontrôleurs monopuces. Dodeka, 2000, ISBN8-87835-056-4. La description des paramètres du signal DTMF est donnée, par exemple, dans : Circuits intégrés: Microcircuits pour la téléphonie. Problème 1. - M. : Dodeka, 1994, 256 p. - ISBN-5-87835-003-3., P. 12, 13.

RÉCLAMER

1. Un procédé pour générer des signaux de fréquence à deux tons (DTMF), comprenant la sélection des premier et deuxième codes d'angle d'échantillonnage correspondant aux première et deuxième fréquences des composantes de signal DTMF, en additionnant séparément les premier et deuxième codes d'angle d'échantillonnage avec respectivement période fixe périodiquement correspondant à la fréquence d'horloge d'échantillonnage, les premier et deuxième résultats de la sommation cumulative, obtenant les première et deuxième valeurs discrètes des composantes du signal DTMF stockées dans les cellules situées à l'adresse des tableaux correspondants de valeurs discrètes des composantes du signal DTMF en lisant dans les tables correspondantes aux adresses correspondant aux résultats de la sommation cumulative des codes d'angle d'échantillonnage, en additionnant les première et deuxième valeurs discrètes des composantes du signal DTMF pour obtenir la troisième valeur discrète correspondant à la valeur du signal DTMF, caractérisé en ce que la réception des première et deuxième valeurs discrètes est leur signal DTMF, stocké dans les cellules situées à l'adresse des tableaux correspondants de valeurs discrètes des composantes du signal DTMF, est effectué en lisant dans les tableaux correspondants aux adresses correspondant aux résultats de la sommation cumulative, respectivement, des premier et secondes séquences d'entiers dont la valeur moyenne correspond aux codes des angles d'échantillonnage correspondant aux composantes du signal DTMF .2. Procédé selon la revendication 1, caractérisé en ce que la valeur moyenne de la suite d'entiers formant le résultat de la sommation cumulative est la moyenne arithmétique de ces nombres. Procédé selon la revendication 1, caractérisé en ce que l'enregistrement périodique des premier et deuxième résultats de sommation cumulés est effectué avec une période correspondant à la fréquence d'horloge d'échantillonnage, qui est différente pour des signaux DTMF différents. Générateur de signaux DTMF comprenant un premier additionneur d'accumulateur, un premier registre de verrouillage, un premier dispositif de mémoire, un second additionneur d'accumulateur, un second registre de verrouillage, un second dispositif de mémoire, un additionneur final, un convertisseur numérique-analogique et la sortie du premier additionneur cumulatif est connectée à l'entrée du premier registre de mémorisation, la sortie du premier registre de mémorisation le registre est reliée à l'entrée du premier dispositif de stockage, ainsi qu'à l'une des entrées du premier additionneur de stockage, la sortie du premier dispositif de stockage est connectée à l'une des entrées de l'additionneur total, la sortie du deuxième additionneur de stockage est connectée à l'entrée du deuxième registre à verrouillage, la sortie du deuxième registre à verrouillage est connectée à l'entrée de le deuxième dispositif de stockage, ainsi qu'avec l'une des entrées du deuxième additionneur de stockage, la sortie du deuxième dispositif de mémoire est connectée à une autre entrée du totalisateur, la sortie du total additionneur est connectée à l'entrée du numérique -convertisseur analogique dont la sortie est la sortie du générateur de signaux DTMF, caractérisé en ce que le générateur de signaux DTMF contient en plus un convertisseur de signaux DTMF dans une séquence d'entiers, un diviseur de la fréquence maître du générateur de signaux DTMF avec un facteur de division réglable , un convertisseur de signaux DTMF en un code à facteur de division, la première la sortie du convertisseur de signaux DTMF dans une séquence d'entiers est connectée à une autre entrée du premier accumulateur, la deuxième sortie du convertisseur de codes de signaux DTMF dans un séquence d'entiers est connectée à une autre entrée du deuxième accumulateur, la sortie du diviseur de fréquence maître du générateur de signaux DTMF à rapport de division réglable est connectée au convertisseur d'entrée d'horloge des codes de signaux DTMF dans une séquence d'entiers, ainsi que avec l'entrée d'horloge du premier registre à verrouillage et l'entrée d'horloge du deuxième registre à verrouillage, la sortie du convertisseur de codes de signaux DTMF en code de coefficient le diviseur de fréquence est connecté à l'entrée pour régler le facteur de division de la fréquence maître du générateur de signaux DTMF, l'entrée du diviseur de fréquence maître du générateur de signaux DTMF avec un facteur de division réglable est l'entrée de la fréquence maître du générateur de signaux DTMF, l'entrée du signal DTMF du convertisseur de code de facteur de division est connectée à l'entrée du convertisseur de signal DTMF en séquence d'entiers et est l'entrée du générateur de signal DTMF. 5. Générateur de signaux DTMF selon la revendication 4, caractérisé en ce que le convertisseur de codes de signaux DTMF en une séquence d'entiers est réalisé sous la forme d'une mémoire programmable commandée, dont la mémoire consiste à correspondre au nombre de DTMF signaux, des zones mémoire constituées de cellules correspondant à la longueur de la séquence d'entiers mémoire, réalisées de telle sorte qu'une moitié de la cellule mémoire mémorise un nombre relatif à la première séquence d'entiers, et l'autre moitié de la cellule mémoire mémorise un nombre correspondant à une autre séquence d'entiers, respectivement, qui sont les sommations des accumulateurs correspondants, et la mémoire programmable est commandée avec la possibilité de commander séparément la sélection d'une zone mémoire et d'une cellule mémoire distincte.

La numérotation par tonalité (signalisation multifréquence à double tonalité, DTMF) a été développée par Bell Labs dans les années 50 du siècle dernier pour un révolutionnaire à l'époque téléphone à touches... Pour la présentation et la transmission de données numériques en mode tonalité, une paire de fréquences (tonalités) de la parole gamme de fréquences... Le système définit deux groupes de quatre fréquences, et l'information est codée par la transmission simultanée de deux fréquences - une de chaque groupe. Cela donne un total de seize combinaisons pour représenter seize nombres différents, symboles et lettres. Le codage DTMF est actuellement utilisé dans une grande variété d'applications de communication et de contrôle, comme en témoigne, par exemple, la recommandation Q.23 de l'Union internationale des télécommunications (UIT).

Cet article décrit un circuit générateur de tonalité DTMF qui reproduit les huit fréquences et produit une sortie à deux tonalités résultante. Le système en question a été construit sur la base de la puce Silego GreenPAK ™ SLG46620V et des amplificateurs opérationnels Silego SLG88104V. Le signal de sortie est la somme des deux fréquences définies par la ligne et la colonne du clavier téléphonique.

Le circuit proposé utilise quatre entrées pour sélectionner la combinaison de fréquences générée. Le circuit possède également une entrée d'activation qui déclenche l'oscillation et détermine la durée de transmission du signal. La fréquence de sortie du générateur répond aux exigences de la norme ITU pour DTMF.

Tonalités DTMF

La norme DTMF définit le codage des chiffres 0-9, des lettres A, B, C et D et des symboles * et # comme une combinaison de deux fréquences. Ces fréquences sont divisées en deux groupes : un groupe haute fréquence et un groupe basse fréquence. Le tableau 1 montre les fréquences, les groupes et les représentations de symboles correspondants.

Tableau 1. Encodage de tonalité DTMF

Groupe d'aigus

Groupe de basse

Les fréquences ont été choisies pour éviter les harmoniques multiples. De plus, leur somme ou leur différence ne donne pas une autre fréquence DTMF. De cette façon, les harmoniques ou la distorsion de modulation sont évités.

La norme Q.23 spécifie que l'erreur de chaque fréquence émise doit se situer à ± 1,8 % de la valeur nominale et que la distorsion totale (due aux harmoniques ou à la modulation) doit être inférieure de 20 dB aux fréquences fondamentales.

Le signal résultant décrit ci-dessus peut être décrit comme :

s (t) = Acos (2πfhight) + Acos (2πflowt),

où fhigh et flow sont les fréquences correspondantes des groupes haute et basse fréquence.

La figure 1 montre le signal résultant pour le chiffre "1". La figure 2 montre le spectre de fréquence pour un signal donné.

Riz. 1. Tonalité DTMF

Riz. 2. Spectre de tonalité DTMF

La durée des tonalités DTMF peut varier en fonction de l'application spécifique qui utilise le codage des tonalités. Pour les applications les plus courantes, les valeurs de durée ont tendance à se situer entre manuel et automatique. Le tableau 2 montre brève description durée typique pour deux types de numérotation.

Tableau 2. Durée des signaux avec numérotation par tonalité

Définir le type

Groupe d'aigus

Groupe d'aigus

Jeu de main

Numérotation automatique

Pour plus de flexibilité, le générateur DTMF proposé dans ce manuel est équipé d'une entrée d'activation, qui est utilisée pour démarrer la génération du signal et déterminer sa durée. Dans ce cas, la durée du signal est égale à la durée de l'impulsion à l'entrée de validation.

Partie analogique du circuit générateur DTMF

La Recommandation UIT Q.23 définit les signaux DTMF comme des signaux analogiques créés par deux ondes sinusoïdales. Dans le circuit générateur DTMF proposé, la puce Silego GreenPAK SLG46620V génère des signaux d'onde carrée avec les fréquences DTMF souhaitées. Des filtres analogiques et un additionneur sont nécessaires pour obtenir des signaux sinusoïdaux de la fréquence requise et former le signal résultant (la somme des deux ondes sinusoïdales). Pour cette raison, dans ce projet, il a été décidé d'utiliser des filtres et un additionneur basé sur les amplificateurs opérationnels SLG88104V.

La figure 3 montre la structure de la partie analogique proposée du dispositif.

Riz. 3. Circuit de traitement analogique pour recevoir un signal DTMF

Des filtres analogiques sont utilisés pour produire des signaux sinusoïdaux à partir d'impulsions rectangulaires. Après filtrage, les deux signaux sont additionnés et le signal DTMF à deux tons de sortie souhaité est formé.

La figure 4 montre le résultat de la transformée de Fourier utilisée pour obtenir le spectre d'un signal rectangulaire.

Riz. 4. Le spectre du signal est rectangulaire

Comme vous pouvez le voir, l'onde carrée ne contient que des harmoniques impaires. Si on représente un tel signal d'amplitude A sous la forme d'une série de Fourier, alors il aura la forme suivante :

L'analyse de cette expression nous permet de conclure que si les filtres analogiques ont une atténuation suffisante pour les harmoniques, alors il est tout à fait possible d'obtenir des signaux sinusoïdaux avec une fréquence égale à la fréquence de l'onde carrée d'origine.

Compte tenu de la tolérance aux interférences spécifiée dans la norme Q.23, il est nécessaire de s'assurer que tous les harmoniques sont atténués de 20 dB ou plus. De plus, toute fréquence du groupe des basses fréquences doit être combinée avec n'importe quelle fréquence du groupe des hautes fréquences. Avec ces exigences à l'esprit, deux filtres ont été développés, un pour chaque groupe.

Des filtres passe-bas de Butterworth ont été utilisés comme les deux filtres. L'atténuation d'un filtre de Butterworth d'ordre n peut être calculée comme :

A (f) [dB] = 10 log (A (f) 2) = 10log (1+ (f / fc) 2n),

où fc est la fréquence de coupure du filtre, n est l'ordre du filtre.

La différence d'atténuation entre la fréquence la plus basse et la fréquence la plus élevée de chaque groupe ne peut pas dépasser 3 dB, donc :

A (f PLUS HAUT) [dB] - A (f PLUS BAS) [dB]> 3dB.

Compte tenu des valeurs absolues :

A (FHAUT) 2 / A (FLOW) 2> 2.

De plus, comme nous l'avons dit précédemment, l'atténuation harmonique doit être de 20 dB ou plus. Dans ce cas, le pire des cas sera la fréquence la plus basse du groupe, car sa 3e harmonique est la fréquence la plus basse et est la plus proche de la fréquence de coupure du filtre. Considérant que la 3ème harmonique est 3 fois inférieure à la fondamentale, le filtre doit remplir la condition (valeurs absolues) :

A (3fLOWER) 2 / A (fLOWER) 2> 10/3.

Si ces équations s'appliquent aux deux groupes, alors les filtres utilisés doivent être des filtres de second ordre. Cela signifie qu'ils auront deux résistances et deux condensateurs s'ils sont mis en œuvre à l'aide d'amplificateurs opérationnels. Avec des filtres de troisième ordre, la sensibilité aux tolérances des composants serait plus faible. Les fréquences de coupure sélectionnées des filtres sont de 977 Hz pour le groupe passe-bas et de 1695 Hz pour le groupe passe-haut. Avec ces valeurs, les différences de niveaux de signal dans les groupes de fréquences sont cohérentes avec les exigences ci-dessus, et la sensibilité aux changements de fréquence de coupure dus aux tolérances des composants est minimale.

Les diagrammes schématiques des filtres mis en œuvre à l'aide du SLG88104V sont illustrés à la figure 5. Les valeurs nominales du premier Paires R-C sélectionné de manière à limiter le courant de sortie du microcircuit SLG46620V. La deuxième section du filtre détermine le gain, qui est de 0,2. L'amplitude des signaux carrés définit le point de fonctionnement de l'amplificateur opérationnel à 2,5 V. Les tensions indésirables sont bloquées par les condensateurs des filtres de sortie.

Riz. 5. Schémas de principe des filtres de sortie

En sortie, les signaux des filtres sont sommés, et le signal résultant est la somme des harmoniques sélectionnées dans le groupe des basses et hautes fréquences. Pour compenser l'atténuation du filtre, l'amplitude du signal de sortie peut être ajustée à l'aide de deux résistances R9 et R10. La figure 6 montre le circuit additionneur. La figure 7 montre toute la partie analogique du circuit.

Riz. 6. Diagramme schématique additionneur

Riz. 7. Partie analogique du circuit

Partie numérique du circuit générateur de sons DTMF

La partie numérique du circuit du générateur de tonalité DTMF comprend une variété de générateurs d'ondes carrées, un pour chaque fréquence DTMF. Puisque huit compteurs sont nécessaires pour créer ces générateurs, le microcircuit GreenPAK SLG46620V a été choisi pour leur mise en œuvre. Aux sorties circuit numérique deux signaux rectangulaires sont générés, un pour chaque groupe de fréquences.

Les signaux d'onde carrée sont générés par des compteurs et des bascules D et ont un rapport cyclique de 50 %. Pour cette raison, la fréquence de commutation des compteurs est le double de la fréquence DTMF requise et la bascule DFF divise le signal de sortie par deux.

La source d'horloge des compteurs est un générateur RC intégré à 2 MHz, dont la fréquence est en outre divisible par 4 ou 12. Le diviseur est sélectionné en tenant compte de la largeur de bit et de la valeur maximale de chaque compteur nécessaire pour obtenir une fréquence spécifique .

Moins de comptes sont nécessaires pour générer des fréquences élevées, donc des compteurs de 8 bits sont utilisés pour les générer, cadencés à partir d'un oscillateur RC interne, dont le signal est divisé par 4. Pour la même raison, des fréquences plus basses sont implémentées à l'aide de compteurs de 14 bits. .

Le SLG46620V n'a que trois compteurs 14 bits standard, donc l'une des fréquences les plus basses a été implémentée avec un compteur CNT8 8 bits. Pour que le nombre d'échantillons se situe dans la plage de 0 ... 255, pour cadencer ce CNT8, nous avons dû utiliser le signal du générateur RC divisé par 12. Pour ce circuit, la fréquence avec le plus grand nombre d'échantillons a été choisi, c'est-à-dire la fréquence la plus basse. Cela nous a permis de minimiser l'erreur.

Le tableau 3 montre les paramètres de chaque onde carrée.

Tableau 3. Paramètres des générateurs d'impulsions rectangulaires

Pointage

Erreur de fréquence [%]

Groupe de basse

Groupe d'aigus

Comme vous pouvez le voir dans le tableau, toutes les fréquences ont une erreur inférieure à 1,8 %, elles sont donc conformes à la norme DTMF. Ces caractéristiques calculées, basées sur la fréquence idéale de l'oscillateur RC, peuvent être ajustées en mesurant la fréquence de sortie de l'oscillateur RC.

Bien que dans le schéma proposé, tous les générateurs fonctionnent en parallèle, mais le signal d'un seul générateur de chaque groupe ira à la sortie du microcircuit. Le choix des signaux spécifiques appartient à l'utilisateur. Pour cela, quatre entrées GPIO (deux bits pour chaque groupe) sont utilisées avec la table de vérité présentée dans le tableau 4.

Tableau 4. Tableau de sélection des fréquences du groupe de basse

Groupe de basse

Tableau 5. Tableau de sélection des fréquences du groupe d'aigus

Groupe d'aigus

La figure 8 montre le schéma logique d'un générateur d'ondes carrées de 852 Hz. Ce modèle est répété pour chaque fréquence avec les paramètres de compteur et la configuration LUT appropriés.

Riz. 8. Générateur d'impulsions rectangulaires

Le compteur génère une fréquence de sortie déterminée par ses réglages. Cette fréquence est égale au double de la fréquence de la tonalité DTMF correspondante. Les paramètres de configuration du compteur sont illustrés à la Figure 9.

Riz. 9. Exemple de réglage du compteur du générateur d'impulsions rectangulaires

La sortie du compteur est connectée à l'entrée d'horloge du déclencheur D-Flip Flop. Étant donné que la sortie DFF est configurée comme inversée, si vous connectez la sortie DFF à son entrée, la bascule D est convertie en une bascule T. Les paramètres de configuration DFF sont illustrés à la Figure 10.

Riz. 10. Exemple de réglage du déclencheur d'un générateur de créneaux

Le signal de la sortie DFF va à l'entrée de la table de vérité LUT. Les tables de vérité LUT sont utilisées pour sélectionner un signal pour chaque combinaison R1-R0 spécifique. Un exemple de configuration LUT est illustré à la Figure 11. B cet exemple si "1" est fourni à R1 et "0" est fourni à R0, le signal d'entrée est transmis à la sortie. Dans les autres cas, la sortie est "0".

Riz. 11. Exemple de définition de la table de vérité d'un générateur de signaux carrés

Comme mentionné ci-dessus, le schéma proposé a une entrée Enable. Si une unité logique "1" est présente à l'entrée Enable, les signaux carrés générés sont alors transmis à une paire de sorties de microcircuit. La durée de transmission est égale à la largeur d'impulsion à l'entrée de validation. Plusieurs autres blocs de table de vérité LUT étaient nécessaires pour implémenter cette fonctionnalité.

Le groupe haut utilise une LUT à 4 bits et une LUT à 2 bits, comme illustré à la Figure 12.

Riz. 12. Circuit de sortie de groupe d'aigus

LUT1 à 4 bits est configuré comme une porte OU, il sort donc un "1" logique si un "1" est présent sur l'une de ses entrées. Les tables de vérité C1 / C0 ne permettent que la sélection de l'un des oscillateurs, de sorte que le LUT1 à 4 bits détermine quel signal est émis. La sortie de cette LUT se connecte à la LUT4 à 2 bits, qui ne transmet un signal que si un "1" logique est présent à l'entrée d'activation. Les figures 13 et 14 montrent les configurations pour LUT1 4 bits et LUT4 2 bits.

Riz. 13. Configuration de LUT1 4 bits

Riz. Configuration LUT4 14,2 bits

Comme il n'y avait plus de tables de vérité à 4 bits pour les LUT, deux LUT à 3 bits ont été utilisées pour le groupe basse fréquence.

Riz. 15. Circuit de sortie de groupe basse fréquence

Le schéma interne complet du GreenPAK SLG46620V est illustré à la Figure 16. La Figure 17 est le schéma de principe final du générateur DTMF.

Riz. 16. Schéma fonctionnel du générateur de sons DTMF

Riz. 17. Schéma de principe du générateur de sons DTMF

Test du circuit du générateur DTMF

Lors de la première étape de test du générateur DTMF proposé, il a été décidé de vérifier les fréquences de tous les signaux carrés générés à l'aide d'un oscilloscope. À titre d'exemple, les figures 18 et 19 montrent des sorties d'onde carrée pour des fréquences de 852 Hz et 1477 Hz.

Riz. 18. Signal d'onde carrée 852 Hz

Riz. 19. Signal d'onde carrée 1477 Hz

Une fois les fréquences de tous les signaux carrées vérifiées, les tests de la partie analogique du circuit ont commencé. Les signaux de sortie pour toutes les combinaisons du groupe basse et haute fréquence ont été examinés. A titre d'exemple, la figure 20 montre la somme des signaux 770 Hz et 1209 Hz, et la figure 21 montre la somme des signaux 941 Hz et 1633 Hz.

Riz. 20. Tonalité DTMF 770 Hz et 1209 Hz

Riz. 21.Tonalité DTMF 941 Hz et 1633 Hz

Conclusion

Dans cet article, nous avons proposé un circuit générateur de sons DTMF basé sur le microcircuit Silego GreenPAK SLG46620V et les amplificateurs opérationnels Silego SLG88104V. Le générateur permet à l'utilisateur de sélectionner des combinaisons de fréquences requises à l'aide de quatre entrées et de contrôler l'entrée d'activation, qui détermine la durée de génération des signaux de sortie.

Caractéristiques de la puce SLG46620V :

  • Type : microcircuit programmable à signaux mixtes ;
  • Blocs analogiques : CAN 8 bits, deux DAC, six comparateurs, deux filtres, ION, quatre oscillateurs intégrés ;
  • Blocs numériques : jusqu'à 18 ports d'E/S, matrice de connexion et logique combinatoire, circuits à retard programmables, générateur de fonctions programmable, six compteurs 8 bits, trois compteurs 14 bits, trois générateurs/comparateurs PWM ;
  • Interface de communication : SPI ;
  • Plage de tension d'alimentation : 1,8 ... 5 V ;
  • Plage de température de fonctionnement : -40 ... 85 ° C ;
  • Version boîtier : 2 x 3 x 0,55 mm 20 broches STQFN.

Caractéristiques distinctives:

  • Génération de signaux sinusoïdaux à l'aide de la modulation de largeur d'impulsion (PWM)
  • Combinaison de divers signaux sinusoïdaux en un seul signal DTMF
  • Codes sources en langage assembleur et C
  • Conçu pour fonctionner avec STK500
  • Taille du code de programme 260 octets / taille de la table constante 128 octets
  • Utilisation de la méthode de conversion de table

introduction

Ce document décrit une méthodologie pour générer des signaux DTMF (Dual Tone Multi-Frequency) à l'aide de n'importe quel microcontrôleur AVR contenant un bloc de modulation de largeur d'impulsion (PWM) et une SRAM. Ces signaux sont largement utilisés en téléphonie, où ils sont diffusés lorsque vous appuyez sur les touches de numérotation du poste téléphonique. Pour la génération correcte du signal DTMF, deux fréquences doivent être superposées : basse fréquence(fb) et haute fréquence (fa). Le tableau 1 montre comment différentes fréquences sont mélangées pour produire des tonalités DTMF lorsque différentes touches sont enfoncées.

Figure 1 - Circuit générateur de signal DTMF

Tableau 1 - Matrice de mise en forme de tonalité

fb / fa 1209 Hz 1336 Hz 1477 Hz 1633 Hz
697 Hz 1 2 3 UNE
770 Hz 4 5 6 B
852 Hz 7 8 9 C
941 Hz * 0 #

Les lignes du tableau 1 montrent les valeurs de basse fréquence et les colonnes - les valeurs de haute fréquence. Par exemple, la matrice montre que lorsque vous appuyez sur le bouton "5", les fréquences fb = 770 Hz et fa = 1336 Hz doivent être mélangées. En raison de l'addition de deux signaux sinusoïdaux de fréquences différentes, un signal DTMF est formé

où le rapport d'amplitude K = A b / A a les signaux d'origine doivent remplir la condition

Principe de fonctionnement

En plus de informations générales L'utilisation de la modulation de largeur d'impulsion sera montrée ci-dessous comment la modulation de largeur d'impulsion peut générer des signaux sinusoïdaux. Le paragraphe suivant décrit comment utiliser fréquence de base PWM obtient différentes fréquences. Après avoir considéré les fondements théoriques, une description du générateur de signaux DTMF lui-même sera donnée. Génération de signaux sinusoïdaux

En fonction du rapport de la durée des niveaux de tension haut VH et bas VL, la valeur moyenne à la sortie PWM change. Si le rapport entre les durées des deux niveaux est maintenu constant, le résultat sera un niveau de tension constant VAV. La figure 2 montre un signal modulé en largeur d'impulsion.


Figure 2 - Génération de niveau courant continu

Le niveau de tension est déterminé par l'expression :

(3)

Un signal sinusoïdal peut être généré à condition que la valeur moyenne de la tension générée par la modulation de largeur d'impulsion change à chaque période PWM. Le rapport entre les niveaux haut et bas doit être réglé en fonction du niveau de tension du signal sinusoïdal au moment approprié. La figure 3 illustre ce processus. Les données initiales pour PWM sont calculées pour chacune de ses périodes et écrites dans la table de conversion (TP).

La figure 3 illustre également la relation entre la fréquence de l'onde sinusoïdale principale et le nombre d'échantillons. Plus le nombre d'échantillons (Nc) est élevé, plus la précision de simulation du signal résultant est élevée :

(4)

La fréquence PWM dépend de la résolution PWM. À une résolution de 8 bits, la valeur de fin (en haut du compte) de la minuterie est 0xFF (255). Parce que la minuterie compte de haut en bas, cette valeur doit être doublée. Par conséquent, la fréquence PWM peut être calculée en divisant la fréquence d'horloge du temporisateur fCK par 510. Ainsi, avec une fréquence d'horloge du temporisateur de 8 MHz, la fréquence PWM résultante est de 15,6 kHz.


Figure 3 - Génération d'un signal sinusoïdal à l'aide de PWM

Modification de la fréquence d'un signal sinusoïdal

Supposons que les échantillons sinusoïdaux soient lus à partir de la table de consultation non pas de manière séquentielle, mais l'un après l'autre. Dans ce cas, à la même fréquence d'échantillonnage, un signal avec une fréquence doublée sera généré (voir Figure 4).


Figure 4 - Doubler la fréquence résultante (XSW = 2)

Par analogie, si vous ne lisez pas toutes les deux valeurs, mais tous les troisième, quatrième, cinquième (respectivement, largeur de pas 3, 4, 5 ...), etc. peut générer des fréquences Nc dans la gamme. Notez que pour les hautes fréquences, la forme d'onde résultante ne sera pas sinusoïdale. La largeur de l'étape selon la table de conversion est notée comme X SW, où

(5)

Le calcul de la position actuelle dans le TP pour la prochaine période PWM (lorsque le temporisateur déborde) est effectué à l'aide de l'expression (6). Nouvelle valeur en position X LUT dépend de son état antérieur en position X "LUT avec incrément de largeur de pas X SW

(6)

Ajout de différentes fréquences pour obtenir un signal DTMF

Le signal DTMF peut être généré à l'aide des expressions (1) et (2). Pour simplifier les opérations arithmétiques, la valeur du coefficient K est prise égale à 0,75 afin de remplacer l'opération arithmétique par des décalages logiques. En tenant compte de l'expression (6), la valeur actuelle de la commande PWM peut être calculée par l'expression :

et compte tenu du fait que X LUTa=X "LUTa + X SWa ,X LUTb=X "LUTb + X SWb, on écrit enfin

Implémentation du générateur DTMF

V cette annexe Envisagez de construire un générateur de tonalités DTMF utilisant une sortie PWM 8 bits (OC1A) et une table avec 128 échantillons de valeurs de fonction sinusoïdale (Nc), dont chacune est définie par 7 bits (n). Les expressions suivantes montrent cette relation et montrent également comment calculer les éléments de la table de recherche :

(9)

L'avantage d'utiliser 7 bits est que la somme des valeurs haute et basse fréquence est d'un octet. Pour le soutien ensemble complet Pour les tonalités DTMF, il est nécessaire de calculer 8 valeurs pour chaque fréquence DTMF à partir du tableau 1 et de les saisir dans le tableau de conversion.

Pour obtenir une plus grande précision, la solution suivante est effectuée : les valeurs calculées par l'expression 5 ne nécessitent que 5 octets. Pour utiliser les 8 octets, ce qui réduira l'erreur d'arrondi, cette valeur est multipliée par 8. Le pointeur vers la table de conversion est écrit de la même manière. Mais dans ce cas, il faut deux octets pour stocker la valeur 8x. Cela signifie que vous devez effectuer 3 décalages à droite et une opération modulo dans la base Nc (multiplication logique par Nc-1) avant d'utiliser ces octets comme pointeur vers les valeurs de la sinusoïde dans


Figure 5 - Schéma du module de connexion au STK500

Le signal PWM est généré sur la broche OC1A (PD5). Un filtre de sortie supplémentaire aidera à mieux correspondre à la forme d'onde sinusoïdale. Lorsque la fréquence PWM diminue, il peut être nécessaire d'appliquer un filtre avec une réponse en fréquence plus raide afin d'obtenir un bon résultat.

La connexion du clavier est illustrée à la figure 1. Le fonctionnement du clavier doit être organisé de telle manière qu'il soit possible de déterminer la touche enfoncée. Cela peut être fait selon l'algorithme suivant :

  1. Détermination de la chaîne de la touche enfoncée
    • configurez la tétrade junior du port B pour la sortie et définissez le journal. "0"
    • configurer la tétrade senior du port B à l'entrée avec la connexion des résistances de rappel
    • la ligne avec le bouton enfoncé est définie comme la catégorie du cahier senior avec un journal. "0"
  2. Définir la colonne de la touche enfoncée
    • configurez le quartet senior du port B pour la sortie et définissez le journal. "0"
    • configurer la tétrade junior du port B à l'entrée avec la connexion de résistances de rappel
    • la colonne avec le bouton enfoncé est définie comme la catégorie du plus petit quartet avec un journal. "0"

Remarque : Dans STK200, les résistances sont connectées en série entre les broches PORTB et les broches du microcontrôleur BP5, PB6 et PB7 (voir schéma STK200). Cela posera des problèmes si le clavier est connecté au connecteur PORTB.

La figure 6 illustre le fonctionnement du sous-programme pour déterminer la touche enfoncée. La durée de l'intervalle est déterminée en fonction de la touche enfoncée. La routine d'interruption utilise cette valeur pour calculer les paramètres PWM pour les deux tonalités DTM sinusoïdales. La procédure de traitement des interruptions est illustrée aux figures 7 et 8.

Ce sous-programme calcule une valeur à comparer avec la sortie du temporisateur pour la prochaine période PWM. La routine d'interruption calcule d'abord la position de la prochaine valeur d'extraction dans la table de recherche et lit la valeur qui y est stockée.

La position de l'échantillon dans la table de consultation est déterminée par la largeur d'impulsion et la largeur d'impulsion réelle est déterminée par la fréquence générée.

La valeur finale qui est écrite dans le registre de comparaison de minuterie est déterminée à l'aide de la formule (7), qui prend en compte les valeurs d'échantillon des deux fréquences DTMF.


Figure 6 - Schéma fonctionnel du programme principal

Caractéristiques distinctives

  • Génération de signaux sinusoïdaux à l'aide de la modulation de largeur d'impulsion (PWM)
  • Combinaison de divers signaux sinusoïdaux en un seul signal DTMF
  • Codes sources assembleur et C
  • Conçu pour fonctionner avec STK500
  • Taille du code de programme 260 octets / taille de la table constante 128 octets
  • Utilisation de la méthode de conversion de table

introduction

Ce document décrit une méthodologie pour générer des signaux DTMF (Dual Tone Multifréquence) à l'aide de n'importe quel microcontrôleur AVR contenant un bloc de modulation de largeur d'impulsion (PWM) et une SRAM. Ces signaux sont largement utilisés en téléphonie, où ils sont diffusés lorsque vous appuyez sur les touches de numérotation du poste téléphonique. Pour générer correctement le signal DTMF, deux fréquences doivent être superposées : basse fréquence (fb) et haute fréquence (fa). Le tableau 1 montre comment différentes fréquences sont mélangées pour produire des tonalités DTMF lorsque différentes touches sont enfoncées.


Figure 1. Circuit générateur de signal DTMF

Tableau 1. Matrice de mise en forme de tonalité

fb / fa 1209 Hz 1336 Hz 1477 Hz 1633 Hz
697 Hz 1 2 3 UNE
770 Hz 4 5 6 B
852 Hz 7 8 9 C
941 Hz * 0 #

Les lignes du tableau 1 montrent les valeurs de basse fréquence et les colonnes montrent les valeurs de haute fréquence. Par exemple, la matrice montre que lorsque vous appuyez sur le bouton "5", les fréquences fb = 770 Hz et fa = 1336 Hz doivent être mélangées. En raison de l'addition de deux signaux sinusoïdaux de fréquences différentes, un signal DTMF est formé

où le rapport des amplitudes K = A b / A a des signaux originaux doit remplir la condition

Principe de fonctionnement

En plus des informations générales sur l'utilisation de la modulation de largeur d'impulsion, il sera montré ci-dessous comment la modulation de largeur d'impulsion peut générer des signaux sinusoïdaux. Le paragraphe suivant décrit comment obtenir différentes fréquences en utilisant la fréquence de base PWM. Après avoir considéré les fondements théoriques, une description du générateur de signaux DTMF lui-même sera donnée. Génération de signaux sinusoïdaux

En fonction du rapport de la durée des niveaux de tension haut VH et bas VL, la valeur moyenne à la sortie PWM change. Si le rapport entre les durées des deux niveaux est maintenu constant, le résultat sera un niveau de tension constant VAV. La figure 2 montre un signal modulé en largeur d'impulsion.


Figure 2. Génération d'un niveau de tension constant

Le niveau de tension est déterminé par l'expression :

(3)

Un signal sinusoïdal peut être généré à condition que la valeur moyenne de la tension générée par la modulation de largeur d'impulsion change à chaque période PWM. Le rapport entre les niveaux haut et bas doit être réglé en fonction du niveau de tension du signal sinusoïdal au moment approprié. La figure 3 illustre ce processus. Les données initiales pour PWM sont calculées pour chacune de ses périodes et écrites dans la table de conversion (TP).

La figure 3 illustre également la relation entre la fréquence de l'onde sinusoïdale principale et le nombre d'échantillons. Plus le nombre d'échantillons (Nc) est élevé, plus la précision de simulation du signal résultant est élevée :

(4)

La fréquence PWM dépend de la résolution PWM. À une résolution de 8 bits, la valeur de fin (en haut du compte) de la minuterie est 0xFF (255). Parce que la minuterie compte de haut en bas, cette valeur doit être doublée. Par conséquent, la fréquence PWM peut être calculée en divisant la fréquence d'horloge du temporisateur f CK par 510. Ainsi, avec une fréquence d'horloge du temporisateur de 8 MHz, la fréquence PWM résultante est de 15,6 kHz.


Figure 3. Génération d'un signal sinusoïdal à l'aide de PWM

Modification de la fréquence d'un signal sinusoïdal

Supposons que les échantillons sinusoïdaux soient lus à partir de la table de consultation non pas de manière séquentielle, mais l'un après l'autre. Dans ce cas, à la même fréquence d'échantillonnage, un signal avec une fréquence doublée sera généré (voir Figure 4).


Figure 4. Doubler la fréquence résultante (XSW = 2)

Par analogie, si vous ne lisez pas toutes les deux valeurs, mais tous les troisième, quatrième, cinquième (respectivement, largeur de pas 3, 4, 5 ...), etc. peut générer des fréquences Nc dans la gamme. Notez que pour les hautes fréquences, la forme d'onde résultante ne sera pas sinusoïdale. La largeur de pas selon la table de conversion est désignée par X SW, où

(5)

Le calcul de la position actuelle dans le TP pour la prochaine période PWM (lorsque le temporisateur déborde) est effectué à l'aide de l'expression (6). La nouvelle valeur à la position X LUT dépend de son état précédent à la position X "LUT avec l'ajout de la largeur de pas X SW

(6)

Ajout de différentes fréquences pour obtenir un signal DTMF

Le signal DTMF peut être généré à l'aide des expressions (1) et (2). Pour simplifier les opérations arithmétiques, la valeur du coefficient K est prise égale à 0,75 afin de remplacer l'opération arithmétique par des décalages logiques. En tenant compte de l'expression (6), la valeur actuelle de la commande PWM peut être calculée par l'expression :

et en tenant compte du fait que X LUTa = X "LUTa + X SWa, X LUTb = X" LUTb + X SWb, on écrit finalement

Implémentation du générateur DTMF

Cette annexe montre comment construire un générateur de sons DTMF à l'aide d'une sortie PWM 8 bits (OC1A) et d'une table d'échantillons de fonction sinusoïdale (Nc) à 128 échantillons, chacun spécifié par 7 bits (n). Les expressions suivantes montrent cette relation et montrent également comment calculer les éléments de la table de recherche :

(9)

L'avantage d'utiliser 7 bits est que la somme des signaux haute et basse fréquence est d'un octet. Pour prendre en charge un ensemble complet de tonalités DTMF, il est nécessaire de calculer 8 valeurs pour chaque fréquence DTMF à partir du tableau 1 et de les saisir dans le tableau de conversion.

Pour obtenir une plus grande précision, la solution suivante est effectuée : les valeurs calculées par l'expression 5 ne nécessitent que 5 octets. Pour utiliser les 8 octets, ce qui réduira l'erreur d'arrondi, cette valeur est multipliée par 8. Le pointeur vers la table de conversion est écrit de la même manière. Mais dans ce cas, il faut deux octets pour stocker la valeur 8x. Cela signifie que vous devez effectuer 3 décalages à droite et une opération modulo dans la base Nc (multiplication logique par Nc-1) avant d'utiliser ces octets comme pointeur vers les valeurs de la sinusoïde dans


Figure 5. Schéma du module de connexion au STK500

Le signal PWM est généré sur la broche OC1A (PD5). Un filtre de sortie supplémentaire aidera à mieux correspondre à la forme d'onde sinusoïdale. Lorsque la fréquence PWM diminue, il peut être nécessaire d'appliquer un filtre avec une réponse en fréquence plus raide afin d'obtenir un bon résultat.

La connexion du clavier est illustrée à la figure 1. Le fonctionnement du clavier doit être organisé de telle manière qu'il soit possible de déterminer la touche enfoncée. Cela peut être fait selon l'algorithme suivant :

  1. Détermination de la chaîne de la touche enfoncée
    • configurez la tétrade junior du port B pour la sortie et définissez le journal. "0"
    • configurer la tétrade supérieure du port B à l'entrée avec la connexion des résistances de rappel
    • la ligne avec le bouton enfoncé est définie comme la catégorie du cahier senior avec un journal. "0"
  2. Définir la colonne de la touche enfoncée
    • configurez le quartet senior du port B pour la sortie et définissez le journal. "0"
    • configurer la tétrade junior du port B à l'entrée avec la connexion de résistances de rappel
    • la colonne avec le bouton enfoncé est définie comme la catégorie de la note la plus basse avec un journal. "0"

Remarque : Dans STK200, les résistances sont connectées en série entre les broches PORTB et les broches du microcontrôleur BP5, PB6 et PB7 (voir schéma STK200). Cela posera des problèmes si le clavier est connecté au connecteur PORTB.

La figure 6 illustre le fonctionnement du sous-programme pour déterminer la touche enfoncée. La durée de l'intervalle est déterminée en fonction de la touche enfoncée. La routine d'interruption utilise cette valeur pour calculer les paramètres PWM pour les deux tonalités DTM sinusoïdales. La procédure de traitement des interruptions est illustrée aux figures 7 et 8.

Ce sous-programme calcule une valeur à comparer avec la sortie du temporisateur pour la prochaine période PWM. La routine d'interruption calcule d'abord la position de la prochaine valeur d'extraction dans la table de recherche et lit la valeur qui y est stockée.

La position de l'échantillon dans la table de consultation est déterminée par la largeur d'impulsion et la largeur d'impulsion réelle est déterminée par la fréquence générée.

La valeur finale qui est écrite dans le registre de comparaison de minuterie est déterminée à l'aide de la formule (7), qui prend en compte les valeurs d'échantillon des deux fréquences DTMF.


Figure 6. Schéma fonctionnel du programme principal


Figure 7. Schéma fonctionnel de la routine de gestion des interruptions de débordement du temporisateur


Figure 8. Schéma fonctionnel de la procédure de lecture d'échantillon "GetSample"

Publication : www.cxem.net

Voir d'autres articles section.



Vous avez aimé l'article ? Partagez-le