Brevet FR3091428A1 — publié le 20200703

Description Titre de l'invention : Procédé pour calibrer un filtre à fréquence variable [0001] L'invention concerne un procédé et un système permettant de calibrer un ou plusieurs filtres à fréquence variable. Elle est notamment utilisée pour calibrer des filtres tractables, dont la fréquence centrale est variable, et pour calibrer des filtres passe-bande tractables en tension, c'est-à-dire dont la valeur de fréquence est régulée par application d'une tension. [0002] L'un des problèmes techniques est le calibrage des filtres passe-bande tractables en tension qui sont présents, par exemple, dans une chaîne radio. La fréquence centrale de ces filtres dépend de la tension qui est appliquée sur ces filtres. Le calibrage est donc nécessaire d'un filtre à l'autre et, suivant la température ambiante, une même tension ne va pas donner exactement la même fréquence centrale. Cette opération est en général réalisée en sortie de production des équipements, mais elle peut aussi être réalisée à n'importe quel moment de la vie du produit. [0003] A la connaissance du demandeur, le calibrage des composants radio dans les équipements est réalisé sur des bancs externes à l'aide d'appareils de mesure. [0004] Pour le calibrage d'équipement, le brevet US7932844 présente une méthode itérative pour calibrer des filtres passe-bas avec une chaîne radio spécifique. Un des inconvénients est que cette chaîne radio spécifique ne correspond pas à une chaîne classique d'émission ou de réception radio, ce qui signifie qu'il faut adapter la chaîne radio de l'équipement pour pouvoir l'appliquer. Lorsqu'une chaîne radio spécifique n'est pas implémentée, il faut utiliser des appareils dc mesure externe pour le calibrage et la vérification des composants radio. L'enseignement technique de ce brevet nécessite de modifier la chaîne et d'appareils de contrôle extérieurs. De plus, son en- seignement n'est pas adapté au calibrage des filtres tractables. [0005] L'invention concerne un procédé pour calibrer un filtre dont la valeur de fréquence centrale est variable caractérisé en ce qu'il comporte au moins les étapes suivantes : - initialiser les étapes avec une valeur de code, - mesurer la valeur de puissance après passage du signal dans le filtre à calibrer pour chaque fréquence contenue dans sa table de calibrage et en mémorisant la valeur de température associée à la mesure de puissance, - exécuter un processus itératif de la méthode de la sécante sur toutes les fréquences de réjection associées audit filtre et déterminer la valeur du code permettant d'équilibrer le filtre pour chacune des valeurs de fréquence et de température, conduisant à une table de calibrage. 2 [0006] Pour initialiser les étapes du procédé, on utilise par exemple une valeur de code contenue dans une table de calibrage ou une valeur de code tnoyennée. [0007] Le procédé peut comporter au moins les étapes suivantes : - initialiser deux valeurs de code proches des valeurs de codes pour une température donnée et contenues dans la table de calibrage prédéfinie ou une table de calibrage obtenue en fonctionnement. - mesurer la température ambiante et rechercher la valeur du code correspondant à la fréquence recherchée pour une température inférieure à la température ambiante dans la table de calibrage, - Appliquer les étapes suivantes : [0008] -g i-g(codei) 100091 -nbilenilion --limite ITER 100101 - Tant queab.s(code.,-codei)> limite PREC et que alors nb 1i-el-anon [0011]g2 g(COde 7). [0012] code 2 - codei code3 code2+ g g I g [0013] -codei code2 [0014] - code, -.-code 3 [0015] -0 [0016] - nbite ration ite ration - [0017] - ITER correspond à un nombre d'itérations fixé, PREC correspond à une valeur d'écart entre les codes et à un seuil de précision souhaité, - on extrapole les mesures pour obtenir les codes aux niveaux dc température requis de la table de calibrage, - on sélectionne la dernière valeur de code vérifiant (cooleiil-codei) limite PREC et que > alors 100561 g2 g(COde2)- [0057] 100581 -code) code2 100591 -code, code3 [0060] -01 [0061] - neeiteration -*-1119iteration [0062] La limite ITER correspond à un nombre d'itérations défini, par exemple, en fonction du temps maximal alloué à l'étape de calibrage ou de la résolution du composant code2 code)± code2-code 7 utilisé pour mesurer la puissance, par exemple le CNA. La limite PREC correspond à une valeur d'écart entre les codes et à un seuil de précision souhaité qui est notamment défini en fonction de la sensibilité du capteur de température. [0063] On obtient alors une suite de points permettant d'associer les fréquences de la table avec des codes et à des températures mesurées. Ensuite, on extrapole les mesures pour obtenir les codes aux niveaux de température requis contenus dans la table de calibrage et non plus à la température de mesure. L'étape d'extrapolation est exécutée selon un principe connu de l'homme du métier. [0064] On obtient alors une table contenant les valeurs des codes aux températures requises et aux fréquences requises (fréquences de la table de calibrage). Cette table sera stockée par le FPGA pour une utilisation ultérieure. Pour une fréquence positionnée entre deux fréquences, mais qui n'est pas contenue dans la table de calibrage, le FPGA programme le signal radio aux fréquences de réjections utilisées lors des étapes et réalise une interpolation avec pour entrées le code de la fréquence de référence inférieure et le code de la fréquence de référence supérieure à la fréquence souhaitée, i.e., fréquence centrale. [0065] La figure 4A illustre la mesure de puissance en sortie d'un filtre à l'initialisation et la figure 4B la mesure de puissance en sortie d'un filtre et le calibrage en utilisant la méthode de la sécante. Pour que le signal à la fréquence centrale ait une puissance maximale, on cherche à équilibrer le filtre en ayant des puissances aux fréquences de réjection f et fi, égales. [0066] La figure 5 schématise un exemple de dispositif radiofréquence 501 équipé d'un procédé selon l'invention pour réaliser l'autocalibrage des composants de la chaîne, par exemple, le calibrage des filtres. [0067] Une antenne 502 permettant l'émission et/ou la réception de signaux RF est en liaison avec un premier commutateur 503 pouvant prendre deux positions 503a et 503b afin de sélectionner la voie d'émission ou la voie de réception suivant un ordre donné. Un deuxième commutateur 504 et un troisième commutateur 506 sont aussi configurés pour prendre deux positions 504a. 504b, 506a, 506b, selon la voie sélectionnée, respectivement voie émission et voie réception. Ces deux commutateurs sont positionnés en amont d'un premier filtre 505 constituant ainsi une voie commune à la voie d'émission et à la voie de réception. [0068] La voie d'émission comprend un convertisseur numérique analogique 507 relié par la voie commune à un amplificateur de signal 508 et à un filtre 509 positionné en amont de l'antenne. [0069] La chaîne de réception comprend un amplificateur 510 suivi d'un filtre 511 et d'un convertisseur analogique numérique 512. [0070] Les différents composants sont commandés par le FPGA 4 dont un exemple détaillé 8 est illustré en figure 7011 un dispositif équivalent programmable contenant notamment un processeur configure pour exécuter les étapes du procédé selon l'invention. Le capteur de température 7 relié au FPGA permet de disposer de la valeur de température pour une valeur de fréquence et remonter au code pour le calibrage d'un composant. [0071] La mise en oeuvre du procédé selon l'invention est réalisée, par exemple, dans un composant programmable FPGA comprenant notamment des modules de commande permettant l'exécution du procédé selon l'invention. Pour cela, le FPGA peut utiliser une architecture de processeur pour FPGA connu sous le terme anglo-saxon « SOftCOM ». [0072] Cette architecture possède les avantages suivants : - La flexibilité : il est possible de modifier l'algorithme sans remettre en cause l'architecture du FPGA, - La versatilité : il est possible d'utiliser ce softcorc pour d'autres besoins éventuels (canaux bouchés...), - capacité de débogage (utilisation de point d'arrêt « brcakpoint »), - capacité d'accélération de mise au point : une modification de l'algorithme ne demande qu'une compilation (quelques dizaines de secondes) plutôt qu'une synthèseplacement-routage selon l'art antérieur (quelques dizaines de minutes). [0073] Selon un autre mode de réalisation, il est possible d'envisager une architecture matériel pour la mise en oeuvre du procédé selon l'invention basée sur l'utilisation de plusieurs machines d'états codées, par exemple, en langage de description matériel destiné à représenter le comportement ainsi que l'architecture numérique connu sous l'acronyme anglo-saxon suivant VHSIC Hardware Description Language, avec VHSIC = Very High Speed Integrated Circuit et des blocs de calcul codés en VHDL. [0074] La figure 6 illustre un exemple d'agencement d'un FPGA détaillé à la figure 7 en liaison avec la chaîne radio de la figure 5 comprenant un module d'autocalibrage détaillé à la figure 7 permettant de calibrer un ou plusieurs composants. [0075] La figure 7 illustre un exemple d'architecture de bloc dans le cas d'une implé- mentation matérielle. [0076] Les blocs principaux sont les suivants: - Autocal_comm 61 : permettant la communication entre le service du FPGA réalisant la gestion du calibrage et les autres services du FPGA, et notamment le service qui s'occupe de convertir les demandes d'accès radio en commandes pour les composants radio analogiques. Dans un souci d'optimisation de ressources, on pourra y ajouter une machine d'état permettant de partager un noeud émetteur TX. - Fsm_autocal_main 62: machine à état principale permettant de contrôler les étapes principales de l'auto-calibrage, notamment les étapes d'initialisation et de finalisation de l'opération ainsi que les incréments dans les configurations de la chaîne radio- 9 fréquence. - Fsni autocal balance 63 : machine à état mettant en place l'algorithme « d'équilibrage » des deux fréquences de coupure , elle implémente la méthode de la sécante. - Polynom horner 64: bloc de calcul permettant d'évaluer un polynôme. Cc bloc permet d'évaluer un polynôme et de déporter le calcul de l'extrapolation en température. - Autocal mem 65 : mémoire de calcul étant une copie de la mémoire contenant la carte de calibrage. Elle est chargée à l'initialisation de l'opération d'auto-calibrage, elle est utilisée en tant que mémoire de calcul par le bloc fsm autocal balance. Lorsque l'opération est terminée, elle est recopiée dans la mémoire d'origine contenant la table de calibrage afin de rendre le résultat persistant. [0077] La machine à état fsm autocal main 62 peut être représentée par le diagramme de la figure 8. [0078] Dans l'état IDLE, 81, la machine attend une commande de démarrage de l'opération d'auto-calibrage. À la réception de ce message, la machine à états finis ou FSM demande au service du FPGA qui gère les composants radio de passer en mode auto-calibrage (démarrage du CNA avec des échantillons à -30 dBm). [0079] Dans l'état REQ MEM, 82, la machine d'état récupère la table de calibrage dans sa mémoire de stockage. [0080] Dans l'état RESP_MEM, 83, la machine d'état attend que la réponse à la requête pré- cédemment générée arrive. Ensuite, elle écrit cette réponse dans la mémoire autocal_mem. La machine part dans l'état CALIBRATE si toute la table a été chargée, sinon elle repart en REQ_MEM. [0081] Dans l'état CALIBRATE, 84, la machine déclenche des requêtes vers la machine d'état secondaire (fsm_autocal_balance) successivement pour chaque fréquence à calibrer. [0082] La machine profite de l'état CALIBRATE pour configurer les discrets de manière à réaliser cette configuration. Lorsque toutes les configurations ont été calculées, la machine passe dans l'état WRITE_MEM. [0083] Dans l'état WRITE_MEM, 85, la machine réécrit en EEPROM la mémoire précédemment calculée. [0084] La machine à état fsm_autocal_balance peut être représentée par le diagramme illustré à la figure 9. [0085] Dans l'état IDLE, 91, la machine attend une commande de démarrage de l'opération d'équilibrage des fréquences avec les numéros de filtre, configuration et fréquence (provenant de la fsm_autocal_main). À la réception de cette commande, la FSM fait une requête de température. [0086] Dans l'état GET TEMP, 92, la machine attend une réponse à la requête de tem- pérature précédemment envoyée et stocke la valeur reçue qui servira pour l'extrapolation en température. [0087] Dans l'état CONF OL, 93, la machine mémorise les configurations. [0088] Dans l'état GET XO, 94, la machine à état récupère le code correspondant à la fréquence demandée à la température directement inférieure à la température ambiante et le stocke dans un registre X. [0089] Dans l'état PROG FI M, 95, la machine d'état configure les OL pour la fréquence [0090] Dans l'état WATT M, 96, la machine d'état attend pour que toutes les valeurs à mesurer soient stables. La valeur de la puissance mesurée est récupérée. [0091] Dans l'état READ RSSI M, 97, la machine d'état récupère les valeurs des puissances (les valeurs brutes peuvent suffire, il n'y a pas besoin de convertir ces valeurs en dBm). [0092] Dans l'état PROG FI P, 98, la machine d'état configure les OL pour la fréquence fi,. [0093] Dans l'état WATT P, 99, la machine d'état attend pour que toutes les valeurs à mesurer soient stables. Lorsque le temps est écoulé, une requête de puissance est envoyée. [0094] Dans l'état READ RSSI P, 100, la machine d'état récupère les valeurs des puissances. [0095] Dans l'état CALC_F, 101, la machine calcule la valeur de la fonction Q. Cette valeur est la différence des puissances reçues. [0096] Dans l'état UPDATE_X, 102, la machine a un comportement différent selon s'il s'agit de son premier passage depuis l'état IDLE : - Dans le cas du premier passage, la machine récupère le code correspondant à la fréquence demandée à la température directement inférieure à la température ambiante et le stocke dans le registre X, le registre X dans X_prev et la valeur de F dans F_prev. - Dans le cas d'un autre passage, la machine calcule X selon la formule de la sécante et stocke cette nouvelle valeur clans X, tandis que X est stocké dans X_prev et F dans F_prev. [0097] Dans l'état LOOP_CHECK, 103, la machine vérifie l'écart entre X et X_prev ainsi que le nombre d'itération et choisi le prochain état en fonction. [0098] Dans l'état CALC_POL, 104, la machine attend la valeur du polynôme associé au filtre pour la fréquence donnée. Cette valeur sera utilisée pour l'extrapolation. La valeur du polynôme est calculée par un bloc extérieur. [0099] Dans l'état, EXTRAPOLATE, 105, la machine effectue l'opération permettant le calcul d'extrapolation en tenant compte de la température mesurée et de la température recherchée. 11 [0100] Dans l'état STORE, 106, le résultat de l'extrapolation est stocké en mémoire, le calcul est réitéré pour chaque température recherchée. Quand toutes les températures sont traitées, la machine repasse en état IDLE en envoyant un acquittement à la machine fsrn autocal main. [0101] L'invention offre un procédé de calibrage rapide, qui ne nécessite pas d'utilisation de dispositifs externes. 12 REVENDICATIONS[Revendication 1] Procédé pour calibrer un filtre dont la valeur de fréquence centrale est variable caractérisé en ce qu'il comporte au moins les étapes suivantes : - initialiser les étapes avec une valeur dc code, - mesurer la valeur de puissance (33, 35) après passage dans le filtre à calibrer pour chaque fréquence (32, 34) contenue dans sa table de calibrage et en mémorisant la valeur de température associée à la mesure de puissance, - exécuter un processus itératif de la méthode de la sécante (36) sur toutes les fréquences de réjection associées audit filtre et déterminer la valeur du code permettant d'équilibrer le filtre pour chacune des valeurs de fréquence et de température, conduisant à une table de calibrage. [Revendication 2] Procédé selon la revendication 1 caractérisé en ce que pour initialiser les étapes, on utilise une valeur de code contenue dans une table de calibrage. [Revendication 3] Procédé selon la revendication 1 caractérisé en ce que pour initialiser les étapes, on utilise une valeur de code moyennée. [Revendication 4] Procédé selon l'une des revendications 1 ou 2 caractérisé en ce qu'il comporte les étapes suivantes : - initialiser deux valeurs de code proches des valeurs de codes pour une température donnée et contenues dans la table de calibrage prédéfinie ou une table de calibrage obtenue en fonctionnement, (31), - mesurer la température ambiante et rechercher la valeur du code correspondant à la fréquence recherchée pour une température inférieure à la température ambiante dans la table de calibrage, Exécuter les étapes suivantes : - -g (code') -nbi,'rarion -limite ITER - Tant que abs(code'-codei)> limite PREC et que n bieratiu,i > 0 alors - g 2 --e-g (Code2). code3 --cocie2+ code- -code 02-gi g2 -code' code2 -code2 cocie3 -g' 13 [Revendication 51 [Revendication 61 [Revendication 7] [Revendication 8] -nbiré? ra tic?? "K-11 b /fera rion - - ITER correspond à un nombre d'itérations fixé, PREC correspond à une valeur d'écart cntrc les codes et à un seuil de précision souhaité, - on extrapole les mesures pour obtenir les codes aux niveaux de température requis de la table de calibrage, - on sélectionne la dernière valeur de code vérifiant (code, ± 1 - codei)