FR 2651049 A1 19910222 FR 9010436 A 19900817 La présente invention concerne un générateur d'ondes carrées programmable et, plus particulièrement, un générateur d'ondes carrées programmable monté dans une unité de micro- ordinateur, dans Lequel la période de l'onde carrée et Le coefficient d'utilisation peuvent être commandés par programme. On a utilisé un compteur minuteur possédant une fonction de rechargement dans les circuits générateurs d'ondes carrées pour micro-ordinateur sur une seule puce. Le mécanisme de fonctionnement de ce compteur minuteur classique est tel que la valeur initiale du compteur minuteur est positionnée par le microprocesseur, puis la valeur s'annule par décomptage du signal d'horloge appliqué au compteur minuteur, après quoi le signal périodique est délivré par inversion de la bascule. Dans le cas de ce compteur, la période peut varier, mais le coefficient d'utilisation est fixé à 50%. Il a également été utilisé un autre compteur minuteur qui peut faire varier le coefficient d'utilisation. Son mécanisme -de fonctionnement est tel que le signal de sortie est positionné au moment o la valeur du registre de charge du minuteur est en accord avec La valeur du compteur minuteur, et le signal de sortie est repositionné au moment o le compteur minuteur commence à déborder. Dans le cas de ce compteur, le coefficient d'utilisation ne peut être variable que dans une période fixe, ou bien le coefficient d'utilisation peut varier lorsque le compteur minuteur possède une fonction d'autorechargement, mais seule l'impulsion ayant un coefficient d'utilisation fixe peut être délivrée. Le but de l'invention est de produire un générateur d'ondes carrées programmable monté dans une unité de micro- calculateur, dans lequel la période de l'onde carréé et le coefficient d'utilisation peuvent être commandés par le programme, qui compare la valeur du registre de largeur d'impulsion avec la valeur du compteur. Ce générateur d'ondes carrées programmable comprend deux registres de largeur d'impulsion servant à enregistrer les données de largeur d'impulsion, un compteur, deux circuits de comparaison, un générateur d'impulsions et-unbus de données. La description suivante, conçue à titre d'illustration de L'invention, vise à donner une meilleure compréhension de ses caractéristiques et avantages; elle s'appuie sur les dessins annexés, parmi lesquels: - la figure 1 est un schéma de principe selon l'invention; - la figure 2 montre une forme d'onde de sortie selon l'invention; - la figure 3 représente un exemple d'onde d'entrée du compteur; - la figure 4 représente un exemple d'onde d'horloge système; - la figure 5 représente un générateur d'impulsions et un circuit de commande selon l'invention; la figure 6-1 représente un circuit de compteur selon l'invention; - la figure 6-2 représente le circuit interne- agrandi d'une partie CNR1 du circuit de compteur; - la figure 7-1 représente un circuit de comparaison selon l'invention; - la figure 7-2 représente le circuit interne agrandi d'une partie ND1 du circuit de comparaison; - la figure 8 est un diagramme temporel selon l'invention; et - la figure 9 est un organigramme selon l'invention. Comme on peut le voir sur la figure 1, le générateur d'ondes carrées programmable selon l'invention comprend un registre de largeur d'impulsion I(1), un circuit de comparaison I(2), un compteur (3), un circuit de comparaison II(4), un registre de largeur d'impulsion II(5), un générateur d'impulsions (6) et un bus de données (7). Ci-après, vont être expliquées les structures et les fonctions de ce générateur programmable d'ondes carrées dans l'hypothèse o il est monté comme équipement périphérique d'une unité de micro-ordinateur. L'unité centrale de traitement (CPU) enregistre les données permettant de déterminer la largeur de niveau bas de l'onde carrée dans le registre de largeur d'impulsion I(1) et les données permettant de déterminer la largeur de niveau haut de l'onde carrée dans le registre de largeur d'impulsion II(5). Si la CPU valide le compteur (3), le compteur commence à compter dans le sens ascendant dès réception du signal d'horloge d'entrée. En relation avec la figure 6-1, le mécanisme de fonction- nent du compteur (3) peut être expliqué dans le cas o le signal d'horloge d'entrée possède la même forme d'onde que celle repré- sentée sur la figure 3. Le signal d'horloge d'entrée initial est appliqué à OF 1 (i = 0). Les états initiaux de chaque partie dudit compteur sont positionnés de la manière suivante: CLR est positionné au niveau haut, la sortie de CNR1 est basse, la sortie de N4 est haute, la sortie de CN4 est basse, la sortie de N5 est haute, la sortie de NR2 est basse, et la sortie de N3 est haute. A partir de l'état initial, CLR devient bas et le compteur commence à fonctionner. Dans le cas o le signal d'horloge d'entrée est haut, la sortie de NR reste maintenue au niveau bas. Puisque l'entrée de la porte CNR1 se trouvant du côté ET, la borne d'horloge et la sortie de N5 deviennent haut, la sortie de CNR1 se maintient sur le niveau bas lorsque le signal d'horloge système 2 (0) est haut. Si le signal d'horloge d'entrée devient bas, la sortie de CNR1 se maintient au niveau bas sans aucun changement. Mais la sortie de CNR1 devient haute lorsque la porte ET de CNR1 devient basse et que le signal d'horloge système 2 (02) devient haut. La sortie de N devient basse. La valeur du compteur, soit CNTi, devient haute lorsque le signal d'horloge système 1 (01) devient haut. Par conséquent, la sortie de N5 devient également basse. Mais le signal d'horloge d'entrée revient au niveau haut, en relation avec le fait que le signal- d'horloge système 1 (01) devient haut. Par conséquent, la sortie de NR2 se maintient au niveau bas et la sortie de OFo(i = 0) se maintient également au niveau haut. La valeur de CNR1 se maintient au niveau haut, puisque la sortie de N5 devient basse en relation avec le fait que le signal d'horloge d'entrée se maintient au niveau haut. En relation avec Le fait que le signal d'horloge d'entrée, soit (F i = O) devient bas, La sortie de NR2 devient haute, et la sortie de -OF. (i= 0) devient.basse. Dans le cas o le signal *1 d'horloge système 1 (01) est haut, la sortie de CNR1 devient basse, et la sortie de N devient haute. Dans le cas o le signal d'horloge système 1 (01) est haut, la sortie de CNTi devient basse et la sortie de N devient haute. Comme déjà mentionné ci-dessus, le compteur (3) commence à compter dans le sens ascendant lorsque l'entrée de OFi 1 est basse, tandis que le compteur maintient le premier état lorsque l'entrée de OF i1 est haute. Alors OF. délivre un signal de niveau bas en réponse à un sur deux des signaux d'entrée bas de OFi1. Sortie (Qn) 1 1 2 I 3 I4 %" _ * * * L Qn-i L H * * L Qn-1 L.. L L L n L L H L H Qn-1 L = bas L L - 1 H = haut Tableau 1 La figure 6-2 représente le circuit interne de la partie CNR1 de figure 61, et le tableau 1 montre l'état de sortie en fonction des signaux d'entrée de I1, I2, 13 et I4. On va expliquer le mécanisme de fonctionnement du circuit de comoaraison en relation avec la figure 7-1. Si la valeur du compteur, soit CNTi, est la même que la valeur du registre de largeur d'impulsion, soit PDRi, à savoir si ces deux valeurs sont basses, le signal de sortie de NR3 devient haut et le noeud A devient haut. Si les deux valeurs de CNTi et PDRi sont hautes, le noeud A devient également haut. Toutefois, si Les valeurs de CNTi et PDRi sont différentes, à savoir si l'une est haute et l'autre est basse, le signal de sortie de NR3 devient bas, si bien que- la porte ET contenue dans ND1 devient basse et le noeud A devient 265 1049 également bas. Dans le cas o la valeur du compteur CNTi et La valeur du registre de largeur d'impulsion PDRi sont identiques alors que la valeur de EQ i1 est basse, le noeud A est haut et la sortie de N6 est haute, si bien que la sortie de EQi devient basse. Dans l'autre cas, o les valeurs de PDRi et CNTi sont différentes, pour la situation o la valeur de EQi 1 est haute, la sortie de EQ. devient haute. Le signal EQ i1 (i = O, EQ-1), soit le premier flanc du circuit de comparaison, se maintient au niveau bas. Si la valeur du compteur et la valeur du registre de largeur d'impulsion I(1) sont les mêmes dans le cas o le signal de sortie du générateur d'imDulsion est bas, la sortie de EQI7 devient basse. Alors, le signal de correspondance de EQI devient haut, et EQII devient bas. Dans le cas o le signal de sortie du générateur d'impulsion est haut, alors que la valeur du compteur et la valeur du registre de largeur d'impulsion II(5) sont les mêmes, EQII7 devient bas et EQII- devient haut. Ainsi, EQ = EQI7. -SORTIE SORTIE _ -EQ "EQI7 I EQII = EQII7.SORTIE- iSORTIE _EQii La figure 7-2 représente le circuit interne de la partie ND1 de la figure 7-1, et le tableau 2 montre l'état de sortie en fonctior des entrées de I1., I2, 13 et I4. 252 3 4 -r- - I II12 Sortie H L H E L H L ài L 'L Hi 3 L LL L = bas L * *H = haut Tableau Z On va maintenant expliquer le mécanisme de fonctionnement du circuit générateur d'impulsions, en relation avec la.figure 5. Comme mentionné ci-dessus, si la sortie de EQI est haute et la sortie de EQII est basse, la sortie de ET devient haute. Toutefois, puisque la sortie de ET est basse, la bascule (F/F) est position- née. Enfin, la sortie de CN1 devient basse en synchronisme avec le S5 signal d'horloge système 2 (02), et La sortie de NR1 devient haute. La sortie de CN2 devient basse en synchronisme avec le signal d'horloge système 1 (01), et la sortie de N2 se positionne à un niveau haut. Puisque EQI devient haut, le signal CLR devient haut et le compteur est effacé. Par conséquent, EQI et EQII deviennent tous deux bas. Ainsi, la bascule maintient le premier état et le signal de sortie du générateur d'impulsions se maintient de façon continue à un niveau haut. Si la valeur du compteur est en accord avec la valeur du registre de largeur d'impulsion I(1) en fonction de l'opération de comDtage du compteur, EQI7 devient bas, mais. EQI reste encore bas, puisque la sortie du générateur d'impulsions est haute. Dans le cas o la valeur du compteur est en accord avec la valeur du registre de largeur d'impulsion II(5), EQII7 devient également bas. La sortie de EQII devient haute, puisqu'iL s'agit de la sortie de la porte NI alimentée par EQI7 et le signal inverse du générateur d'impulsions. Si EQII, dans le générateur d'impul- sions, devient haut, la bascule est repositionnée en'relation avec le fait que la sortie de la porte ET (AND1) devient basse et la sortie de la porte ET (AND2) devient haute. La sortie de CN1 devient haute en synchronisme avec le signal d'horloge système 2 (02) et le signal de sortie de NR1 devient bas. La sortie de CN1 devient également haute en synchronisme avec le signal d'horloge système 1 (01) et le signal de sortie de N2, c'est-à-dire que le 1. 2 générateur d'impuLsions est repositionné au niveau bas. Le compteur s'efface en fonction du fait que la sortie de la porte OU (OR1) devient haute, puisque EQII est haut. Selon le fonctionnement ci-dessus décrit, ce générateur d'ondes carrées programmable délivre l'onde telle que représentée sur la figure 2. Ici, les équations de la période et du coefficient d'utilisation sont les suivantes: PERIODE = valeur du registre de largeur d'impulsion I(1) + valeur du registre de largeur d'impulsion II(5) + 2] + Tck COEFFICIENT D'UTILISATION = [valeur du registre de largeur d'impulsion II(5) + 1] x Tck x 100 (%) Période La figure 8 représente le diagramme temporel de ce générateur programmable d'ondes carrées. La figure 9 représente l'organigramme de fonctionnement selon l'invention. On va expliquer le fonctionnement en relation avec la figure 9. A la première étape (100), l'unité centrale de traitement (CPU) valide le compteur, et, à l'étape suivante (101), le signal de sortie du générateur d'impulsions est lu s'il est haut. Si le signal de sortie n'est pas haut, l'étape suivante (102) peut être atteinte. A l'étape (102), la valeur du conDteur et la valeur du registre de largeur d'impulsion I(1) sont corparées. Si ces valeurs sont différentes, la valeur est augmentée à l'étape suivante (103), et on revient -à la première étape (102). Si ces valeurs sont les mêmes, le signal de sortie du générateur d'impulsions est positionné (étape 104) et le compteur est effacé en même temps (étape 108). Si le signal de sortie du générateur d'impulsions est haut à l'étape (101), la valeur du compteur et la valeur du registre de largeur d'impulsions II(5) sont comparées (étape 105). Si ces valeurs sont différentes, la valeur du compteur est incrémentée à l'étape suivante (106), puis on retourne à la première étape (105). Si ces valeurs sont les mêmes, le signal de sortie du générateur d'impulsions est reposi- tionné (étape 107), et le compteur est effacé en même temps (étape 108). Puisque ces opérations se répètent de façon continue, l'onde de sortie telle que représentée sur la figure 2 peut être produite. Bien entendu, l'homme de l'art sera en mesure d'imaginer, à partir du dispositif dont la description vient d'être donnée à titre simplement illustratif et nullement limitatif, diverses variantes et modifications ne sortant pas du cadre de l'invention. REVENDICATION Générateur programmable d'ondes carrées servant à produire des ondes carrées, caractérisé en ce qu'il comprend: deux registres (1, 5) de données de largeur d'impulsion servant à emmagasiner les valeurs de largeur d'impulsion, un compteur (3), un premier comparateur (2) connecté à un premier desdits registres de données de largeur d'impulsion et audit compteur; servant à comparer la valeur contenue dans ledit premier registre de données de largeur d'impulsion avec la valeur contenue dans ledit compteur, et un deuxième comparateur (4) connecté audit deuxième- registre de données de largeur d'impulsion et audit compteur, un générateur d'impulsions (6) connecté auxdits premier et deuxième comparateurs, si bien que ledit générateur d'impulsions déUivre un signal haut jusqu'à ce que la valeur du compteur soit égale à la valeur emmagasinée dans ledit premier registre de données de largeur d'impulsion, puis délivre un signal bas jusqu'à ce que la valeur du compteur soit égale à la valeur emmagasinée dans ledit deuxième registre de données de largeur d'impulsion, ce qui permet de produire un coefficient d'utilisation pouvant être sélectionné, qui est commandé par un programme dans lequel la période de l'onde carrée et le coefficient d'utilisation peuvent être commandés par le programme.