Brevet FR2749722A1 — publié le 19971212

DIVISEUR PROGRAMM9EIE La présente invention concerne la réalisation d'un diviseur programmable. Elle s'applique plus particulièrement à la réalisation d'un diviseur de fréquence par un nombre entier pour la génération d'un train d'impulsions dont le rapport cyclique est compris entre un tiers et la moitié d'une période. Un exemple d'application de la présente invention concerne la génération de trains d'impulsions pour piloter des diodes d'émission à infrarouge d'une télécommande. Un tel diviseur est généralement réalisé à partir d'un compteur programmable comportant des bascules, par exemple, des bascules D. Les bascules sont généralement montées en cascade, une sortie d'une bascule étant reliée à une entrée d'horloge d'une bascule suivante. Le nombre de bascules correspond au nombre de bits sur lequel le comptage s'effectue. Une première bascule reçoit, sur son entrée d'horloge, un signal d'horloge dont on souhaite diviser la fréquence. La constitution et le fonctionnement d'un compteur programmable de ce type est parfaitement connu dans l'art antérieur et on se bornera, par la suite, à en indiquer les caractéristiques nécessaires à la compréhension de la présente invention. Un compteur d'un diviseur programmable fonctionne généralement en décompteur, c'est-à-dire que sa programmation consiste a' charger chacune des bascules par un état haut ou bas, l'ensemble des états respectifs de chargement des bascules représentant le taux de division binaire. Le compteur est généralement associé à un circuit de détection du passage par zéro du comptage. Cette détection sert, en particulier, à provoquer un rechargement cyclique du taux de division binaire. La figure 1 représente un premier exemple de compteur programmable classique. Il s'agit, par exemple, d'un compteur CNT 1 sur cinq bits délivrant cinq signaux de comptage DECO, DEC1, DEC2, DEC3 et DEC4 correspondant aux sorties respectives des bascules (non représentées) constitutives du compteur 1. Une entrée d'horloge reçoit un signal d'horloge CLK0 dont on souhaite diviser la fréquence par un nombre i entier. Le nombre l est programmé au moyen de cinq signaux binaires I0, I1, I2, I3 et I4 envoyés sur les entrées respectives des bascules du compteur 1. Le signal 10 correspond au bit de poids le plus faible. Le chargement du taux i est obtenu par un front, par exemple montant, d'un signal LOAD qui provoque un chargement simultané de 1' état des signaux 10 à I4. Le signal LOAD est généralement obtenu par un circuit (non représenté) de détection d'un état bas simultané sur tous les signaux DECO à DEC4. Le signal d'horloge souhaité, dont la fréquence correspond à la fréquence du signal CLK0 divisée par le taux i, est directement prélevé sur une des sorties du compteur en sélectionnant celui des signaux DEC0 à DEC4 dont le rang correspond au bit significatif de poids le plus fort du taux i. La figure 2 illustre le fonctionnement d'un compteur tel que représenté à la figure 1. Cette figure représente, sous forme de chronogrammes, la forme des signaux CLK0, DEC0, DEC1, DEC2 et LOAD lorsque le compteur 1 est programmé pour compter jusqu'à sept. Les états respectifs des signaux I4 à 10 sont, dans cet exemple, 00111. A chaque front montant du signal LOAD, les signaux DECO, DEC1 et DEC2 passent à l'état haut indépendamment de leur état précédent. Les signaux DEC3 et DEC4 n'ont pas été représentés à la figure 2, ils restent en permanence à l'état bas, le bit significatif de poids le plus fort du taux i (i=7) étant porté par le signal DEC2. A chaque front montant du signal CLK0, le nombre binaire délivré par les signaux DEC2 à DECO diminue de 1 jusqu'à ce qu'un nouveau front montant du signal LQAD recharge les bascules par le nombre 00111. Le signal DEC2 délivre un signal dont la fréquence est divisée par sept par rapport à celle du signal CLK0. L'utilisation directe d'un des signaux de comptage d'un tel compteur constitue un moyen particulièrement simple d'obtenir une division de fréquence. Par contre, le facteur de forme (durée d'une impulsion rapportée à la période) du signal d'horloge obtenu varie considérablement en fonction du taux de division. Par exemple, pour un diviseur sur cinq bits, il est compris entre 6,25% (rapport cyclique d'un seizième) pour une division par seize et 66% (rapport cyclique de deux tiers) pour une division par trois. Dans certaines applications, il est nécessaire que le facteur de forme du signal obtenu soit maintenu dans une plage de valeurs comprises entre 33% et 50%. C'est le cas, par exemple, des télécommandes à infrarouge où des trains d'impulsions servent à piloter des diodes d'émission infrarouges, le facteur de forme des impulsions devant être compris entre deux valeurs normalisées de 33% et 50%. La figure 2 représente un exemple de diviseur programmable classique respectant un facteur de forme compris entre 33% et 50% quel que soit le taux de division compris entre deux et trente-deux. Un tel diviseur comporte deux compteurs programmables identiques sur quatre bits, respectivement 2 et 3, pilotés par un même signal d'horloge CLK0 dont on souhaite diviser la fréquence. Les compteurs 2 et 3 sont programmés (signaux 10 à I4 et l'o à I'4) pour que la somme de leurs seuils de comptage respectifs corresponde au taux l de division souhaité. Un circuit (non représenté) de détection du seuil de comptage, par détection d'un passage par zéro de la valeur de comptage, est intégré à chaque compteur 2 et 3. On utilise ici les signaux respectifs S2 et S3 délivrés par ces circuits de détection pour générer le signal d'horloge souhaité. Les signaux S2 et S3 sont respectivement envoyés sur des entrées de positionnement (Set) et de remise à zéro (Reset) d'un verrou bistable 4 dont une sortie S délivre le signal d'horloge souhaité. Le signal S2 est de plus envoyé sur l'entrée de commande de chargement LQAD du compteur 3 et le signal S3 est en outre envoyé sur l'entrée de commande de chargement LOAD du compteur 2. La figure 4 illustre le fonctionnement d'un tel diviseur programmable. Cette figure représente, sous forme de chronogrammes, la forme des signaux CLK0, S2, S3 et S pour un taux de division de sept. Les états des signaux 10 à I4 et I'O à I'4 sont, respectivement, 0100 et 0011. A un instant tO où le signal S2 passe à l'état haut, le signal S passe à l'état haut et la valeur 0011 est chargée dans le compteur 3 qui commence alors à décompter pour fixer la durée de l'impulsion du signal S. A un instant tl où le signal S3 passe à l'état haut, le signal S passe à l'état bas et la valeur 0100 est chargée dans le compteur 2 qui commence alors à décompter pour fixer l'écart entre deux impulsions successives. Lorsque le signal S2 repasse à l'état haut (instant t2), une nouvelle impulsion du signal S débute. Le passage à l'état bas du signal S2 ou S3 intervient, sauf utilisation de signaux appropriés (non représentés) d'initialisation des compteurs 2 et 3, au plus tard lors du chargement du seuil de comptage dans le compteur concerné, comme cela est représenté en figure 4. Si un tel diviseur permet d'obtenir un facteur de forme compris entre 33% (pour un taux de division de trois) et 50% (par exemple, pour un taux de division de deux), il présente l'inconvénient de nécessiter deux compteurs programmables. La présente invention vise à proposer un nouveau procédé et dispositif programmable de division par un nombre entier qui ne nécessite qu'un seul compteur programmable et qui permet d'obtenir, quel que soit le taux de division, un facteur de forme compris entre 33% et 50%. Pour atteindre cet objet, la présente invention prévoit un procédé de division d'une fréquence d'un signal d'horloge par un nombre entier au moyen d'un compteur, programmable au moyen de n signaux binaires représentant le taux de division, et délivrant n signaux de comptage binaires de rangs croissants et de fréquences respectives décroissantes, consistant à réaliser n-1 combinaisons logiques des signaux de comptage et à sélectionner un signal de sortie parmi lesdites n-1 combinaisons logiques et n-1 signaux de comptage. Selon un mode de réalisation de la présente invention, lesdits n-1 signaux de comptage susceptibles d'être sélectionnés correspondent aux signaux de rangs les plus élevés. Selon un mode de réalisation de la présente invention, chaque combinaison logique correspond au ET logique du signal de comptage de même rang avec le OU logique des i signaux de comptage de rangs inférieurs inversés. Selon un mode de réalisation de la présente invention, une combinaison logique de rang j est sélectionnée pour un taux de division de 2j+1-1, j étant compris entre 1 et n-1. L'invention concerne également un diviseur programmable comportant des moyens pour mettre en oeuvre le procédé selon l'invention. Selon un mode de réalisation de la présente invention, lesdits moyens comportent un circuit de décodage en logique câblée, recevant les n signaux de comptage et délivrant lesdites n-1 combinaisons, et un circuit de sélection, recevant les combinaisons et n-1 signaux de comptage de rangs les plus élevés et, délivrant un signal dont la fréquence correspond à la fréquence du signal d'horloge divisée par le taux de division et dont le rapport cyclique est compris entre un tiers et un demi. Selon un mode de réalisation de la présente invention, le circuit de sélection constitue un multiplexeur 2(n-1) vers 1, la commande du multiplexeur étant effectuée à partir des signaux de programmation du compteur et de combinaisons logiques de ces derniers. Selon un mode de réalisation de la présente invention, le compteur fonctionne en décompteur à partir du taux de division, et le diviseur programmable comporte un circuit de détection de fin de comptage. Selon un mode de réalisation de la présente invention, le circuit de détection comporte des moyens pour provoquer une programmation cyclique du compteur, la programmation cyclique étant synchrone avec le signal d'horloge. Ces objets, caractéristiques et avantages, ainsi que d'autres de la présente invention seront exposés en détail dans la description suivante d'un mode de réalisation particulier faite à titre non-limitatif en relation avec les figures jointes parmi lesquelles les figures 1 à 4 qui ont été décrites précédemment sont destinées à exposer l'état de la technique et le problème posé la figure 5 représente, sous forme de schéma-bloc, un mode de réalisation d'un diviseur programmable selon la présente invention ; et les figures 6 à 8 illustrent, sous forme de chronogrammes, l'obtention de trois exemples de signaux à l'aide d'un diviseur programmable tel que représenté à la figure 5. Pour des raisons de clarté, les mêmes éléments ont été désignés par les mêmes références aux différentes figures. Pour les mêmes raisons, seuls les éléments du diviseur programmable qui sont nécessaires à la compréhension de l'invention ont été représentés aux figures et sont décrits par la suite. La figure 5 représente un mode de réalisation d'un diviseur programmable selon la présente invention. I1 s'agit, par exemple, d'un diviseur par un nombre entier compris entre deux et trente-deux. Le diviseur comporte un compteur programmable 1 sur n bits (ici n=5), similaire au compteur représenté à la figure 1 et fonctionnant en décompteur. Le seuil de comptage du compteur 1, correspondant au taux i de division souhaité, est programmé au moyen de cinq signaux binaires 10 à I4 envoyés sur des entrées de données DATA du compteur 1. Le compteur 1 délivre n signaux de comptage binaires DECO, DEC1, DEC2, DEC3 et DEC4 de rangs croissants et de fréquences respectives décroissantes, correspondant aux signaux de sortie de bascules (non représentées) constitutives du compteur 1. Selon l'invention, le compteur 1 est associé à un circuit 5 de décodage, réalisant des combinaisons logiques des signaux DECO, DEC1, DEC2, DEC3 et DEC4. Dans l'exemple représenté, le circuit DECOD 5 délivre quatre signaux logiques C1, C2, C3 et C4. Selon l'invention, le diviseur comporte également un circuit 6 de sélection recevant, en entrée, outre les signaux C1 à C4, les signaux DEC1 à DEC4 qui constituent les n-1 signaux de décomptage de rangs les plus élevés. Le circuit SELECT 6 a pour rôle de sélectionner l'un des signaux qu'il reçoit en fonction du taux i de division, et de délivrer ce signal en guise de signal d'horloge CLKi de sortie du diviseur. Une caractéristique de la présente invention est que tous les signaux CLKi possibles (2 Le circuit 6 reçoit les signaux 10 à I4 pour lui permettre de déterminer le taux l sur la base duquel il effectue la sélection. Le circuit 6 est, par exemple, constitué d'un multiplexeur huit vers un (2(n-1) vers 1) commandé à partir des signaux Ij et de combinaisons logiques de ces derniers. Selon l'invention, les combinaisons logiques réalisées par le circuit 5 sont les suivantes pour j compris entre 1 et n-1. Selon l'invention, le circuit 6 sélectionne, par exemple, les signaux suivants pour la génération d'un signal CLKi C1 pour i=3, C2 pour i=7, C3 pour i=15, C4 pour i=31, soit Cj pour i=2j -1, avec i compris entre 1 et n-1 DEC1 pour i=2, 4 et 5 ; et DEC2 pour i=6 et 8 à 11, DEC3 pour i=12 à 14 et 16 à 23, DEC4 pour i=24 à 30 et 32, soit DECj pour 2j+1-2j-1 # i La réalisation pratique du circuit de sélection est à la portée de l'homme de l'art sur la base des indications fonctionnelles données ci-dessus. On notera que les sélections indiquées ci-dessus, qui rendent la combinaison des signaux 10 à I4 particulièrement simple pour effectuer la sélection, peuvent etre modifiées en fonction de la réalisation du circuit de sélection, en particulier, en fonction de la logique de commande d'un multiplexeur huit vers un, ou de logiques de commande de plusieurs multiplexeurs deux vers un associés de manière adaptée pour constituer le multiplexeur huit vers un. Ainsi, les plages de sélection des signaux DECj pour z compris entre 1 et n-1 peuvent, par exemple, devenir 2j+1-2j-1-1 Le circuit 6 est généralement pourvu, en sortie, d'une bascule (non représentée) de synchronisation du signal CLKi sur le signal CLK0 pour éviter l'apparition de perturbations liées aux commutations effectuées dans le circuit 6. On notera qu'une combinaison logique particulière des signaux 10 à I4, par exemple 0.11.12.13.14, peut servir à délivrer un signal CLK1 (taux de division de 1), c'est-à-dire le signal CLK0. Par exemple, un multiplexeur de sortie (non représenté) sélectionne le signal CLK0 au lieu du signal de sortie de la bascule de synchronisation. On notera également qu'une combinaison logique particulière peut être utilisée pour sélectionner le signal C(n-l) lorsque tous les bits 10 à In-l sont à l'état 0 afin de délivrer un signal CLK(2n) La figure 5 illustre également un mode de réalisation préféré d'un circuit 7 de détection de la fin d'un cycle de comptage. Ce circuit 7 comporte une porte logique 8 réalisant une combinaison NON(OU) et recevant en entrées, respectivement, le signal DECO inversé et les signaux DEC1 à DEC4. Une sortie de la porte 8 délivre un signal D qui est à l'état haut uniquement lorsque seul le signal DECO est à l'état haut, c'est-à-dire lorsque le compteur arrive à la valeur 1. Le signal D est envoyé sur une entrée d'une première bascule 9. Une sortie QA de la bascule 9 est envoyée sur une entrée d'une deuxième bascule 10 dont une sortie est combinée dans une porte ET 11 avec la sortie QA. Une sortie EQ de la porte 9 constitue un signal de chargement délivré, par l'intermédiaire d'une porte OU 12, à une entrée de commande de chargement LOAD du compteur 1. La porte 12 reçoit, sur une deuxième entrée, un signal externe EXTL permettant de provoquer une réinitialisation du diviseur. Les bascules 9 et 10 sont respectivement déclenchées par les fronts descendants et montants du signal CLK0. Ainsi, et comme on le verra par la suite en relation avec la figure 6, le rechargement du taux i dans le compteur 1 est synchrone avec un front montant du signal CLK0. Cela permet d'éviter tout retard et toute perturbation des signaux DECO à DEC4 lors du début d'un nouveau cycle de comptage et de garantir que les signaux de sortie du compteur soient synchrones avec le signal d'horloge CLK0. La figure 6 illustre le fonctionnement d'un diviseur programmable tel que représenté à la figure 5 pour un taux de division de deux. Cette figure représente l'allure des signaux CLK0, LOAD, DECO, DEC1, D, QA, QB et EQ. On suppose qu'à un instant t10, l'entrée LOAD du compteur 1 reçoit une commande de chargement véhiculée par le signal EXTL (non représenté à la figure 6). Cette commande se présente sous la forme d'une impulsion d'une durée inférieure à la période du signal CLK0 et est, par exemple, générée par un microprocesseur auquel est associé le diviseur programmable. L'apparition d'un front montant du signal LOAD provoque le chargement des bascules du compteur 1 avec les états présents sur les signaux 10 et I1, respectivement 0 et 1. Ces états sont en même temps transférés sur les signaux DECO et DEC1. A un instant tll correspondant au front montant suivant du signal CLK0, le signal DECO passe à l'état 1 et le signal DEC1 passe à l'état 0. Comme les signaux DEC2, DEC3 et DEC4 (non représentés) sont en permanence à l'état 0 pour un taux de division de deux, le signal D passe à l'état 1 à l'instant tll. Au front descendant suivant du signal CLK0 (instant t12), le signal QA passe à l'état 0 et, au front montant suivant du signal CLK0 (instant t13), le signal QB passe à l'état 1. Le signal EQ passe donc à l'état 1 à l'instant t13. Son front montant provoque un nouveau chargement, synchrone avec le front montant de l'horloge CLK0, des états des signaux 10 et I1 dans les bascules du compteur 1. Le signal D repasse alors à l'état 0. Ainsi, le signal QA repasse à l'état 0 au front descendant suivant (instant t14) du signal CLK0, ce qui provoque la disparition de l'impulsion générée par le circuit 7 sur l'entrée LOAD du compteur 1. Le compteur est alors prêt pour décompter de nouveau lorsque le front montant suivant (instant tel5) du signal CLK0 se présente. Le signal CLK2 de fréquence divisée par deux par rapport à la fréquence du signal CLK0 est constitué, de préférence, par le signal DEC1 bien qu'il puisse l'être également par le signal DECO. Cela permet de limiter la taille du multiplexeur nécessaire, le signal DECO n'étant alors pas utilisé par le circuit 6. Le facteur de forme obtenu pour une division par deux est de 50%. Les figures 7 et 8 illustrent le fonctionnement du diviseur programmable tel que représenté à la figure 5 pour des taux de division respectifs de quatre et de sept. Ces figures représentent les allures des signaux CLK0, DECO, DEC1, DEC2 et, respectivement, CLK4 et CLK7. Un chargement initial provoqué par une impulsion du signal EXTL intervient à un instant t20. Pour une division par quatre, le signal CLK4 correspond, selon l'invention, au signal DEC1. Le facteur de forme obtenu est de 50% alors qu'il est de 25% au moyen d'un diviseur classique tel que décrit en relation avec la figure 1. Pour une division par sept, le signal CLK7 correspond au signal C2 (DEC2 . (DEC1 + DECO)). Le facteur de forme obtenu est de 42% alors qu'il est de 57% au moyen d'un diviseur classique tel que décrit en relation avec la figure 1. Le signal sélectionné par le circuit 6 pour les autres taux de division se déduit des relations indiquées précédemment. Le facteur de forme obtenu est toujours compris entre 33% (pour i=3) et 50% (pour i=2, 4, 6, 8, 14, 16 et 30). En particulier, le facteur de forme est de 46% pour i=15 et de 48% pour i=31. Les facteurs de forme ont été indiqués en négliyeant la partie déci- male, les facteurs de forme de 50%, qui sont entiers, respectent ainsi la limite supérieure fixée. Un avantage de la présente invention est qu'elle nécessite un seul compteur programmable. Un autre avantage de la présente invention est que l'association des circuits 5 et 6 permet de minimiser le nombre de signaux utilisés comme signaux de sortie. Ainsi, la logique, de préférence câblée, des circuits 5 et 6 est particulièrement simple et peu encombrante. Bien entendu, la présente invention est susceptible de diverses variantes et modifications qui apparaîtront à lthomme de l'art. En particulier, la réalisation pratique des circuits de décodage 5 et de sélection 6 sont à la portée de l'homme de l'art à partir des indications fonctionnelles données ci-dessus. REVENDICATIONS 1. Procédé de division d'une fréquence d'un signal d'horloge (CLK0) par un nombre entier (i) au moyen d'un compteur (1), programmable au moyen de n signaux binaires (Ij) représentant le taux de division (i), et délivrant n signaux de comptage binaires (DECj) de rangs croissants et de fréquences respectives décroissantes, caractérisé en ce qu'il consiste à réaliser n-l combinaisons logiques (Cj) des signaux de comptage (DECj) ; et à sélectionner un signal de sortie (CLKi) parmi lesdites n-l combinaisons logiques (Cj) et n-l signaux de comptage (DECj). 2. Procédé selon la revendication 1, caractérisé en ce que lesdits n-l signaux de comptage susceptibles d'être sélectionnés correspondent aux signaux de rangs les plus élevés (DEC1, DEC(n-1)). 3. Procédé selon la revendication 1 ou 2, caractérisé en ce que chaque combinaison logique (Cj) correspond au ET logique du signal de comptage de même rang (DECj) avec le OU logique des i signaux comptage de rangs inférieurs (DEC (j-1), ..., DECO) inversés. 4. Procédé selon la revendication 3, caractérisé en ce qu'une combinaison logique de rang j est sélectionnée pour un taux (i) de division de 2j+1-1, g étant compris entre 1 et n-l. 5. Diviseur programmable, caractérisé en ce qu'il comporte des moyens (5, 6) pour mettre en oeuvre le procédé selon l'une quelconque des revendications 1 à 4. 6. Diviseur programmable selon la revendication 5, caractérisé en ce que lesdits moyens comportent un circuit (5) de décodage en logique câblée, recevant les n signaux de comptage (DECO, DEC1, DEC2, DEC3, DEC4) et délivrant lesdites n-l combinaisons (C1, C2, C3, C4) ; et un circuit (6) de sélection, recevant lesdites combinaisons (C1, C2, C3, C4) et n-l signaux de comptage de rangs les plus élevés (DEC1, DEC2, DEC3, DEC4) et, délivrant un signal (CLKi) dont la fréquence correspond à la fréquence du signal d'horloge (CLK0) divisée par le taux de division (i) et dont le rapport cyclique est compris entre un tiers et un demi. 7. Diviseur programmable selon la revendication 6, caractérisé en ce que le circuit de sélection (6) constitue un multiplexeur 2(n-1) vers 1, la commande du multiplexeur étant effectuée à partir des signaux (10, I1, I2, I3, I4) de programmation du compteur (1) et de combinaisons logiques de ces derniers. 8. Diviseur programmable selon l'une quelconque des revendications 5 à 7, caractérisé en ce que le compteur (1) fonctionne en décompteur à partir du taux de division (i), èt en ce qu'il comporte un circuit (7) de détection de fin de comptage. 9. Diviseur programmable selon la revendication 8, caractérisé en ce que le circuit de détection (7) comporte des moyens (8, 9, 10, 11) pour provoquer une programmation cyclique du compteur (1), la programmation cyclique étant synchrone avec le signal d'horloge (CLK0).