L'invention concerne un procédé et un système permettant de vérifier le bon fonctionnement des composants d'une chaîne radio de façon autosuffisante. Elle est notamment utilisée dans le cadre de chaînes radio monovoie pilotées par un composant programmable ou FPGA (Field Programmable Gate Array) ou un composant similaire.
Elle peut aussi être utilisée pour le calibrage en ligne de composants présents dans un système. Elle s'applique, par exemple, pour le calibrage d'un filtre tractable, i.e., un filtre dont la fréquence centrale est variable, et pour un filtre tractable passe-bande.
L'invention cherche, notamment, à vérifier le bon fonctionnement des composants d'une chaîne radio et/ou à calibrer certains des composants de la chaîne.
L'un des objectifs de l'invention est de pouvoir se dispenser d'utiliser des appareils de mesure externes au poste radio et de vérifier le fonctionnement de la chaîne de manière in situ, en cours de fonctionnement.
Ces vérifications sont en général réalisées à la sortie de production des équipements. Toutefois, elles doivent pouvoir être réalisées à n'importe quel moment de la vie d'une chaîne radio et de manière la plus rapide possible afin de ne pas gêner le fonctionnement d'un appareil.
D'autre part, à 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.
Pour le calibrage d'équipement, le brevet
L'enseignement technique du document
Le document
L'invention concerne un procédé selon les revendications indépendantes. D'autres modes de réalisation sont définis dans les revendications dépendantes.
Les dessins annexés illustrent l'invention :
- [Fig.1] représente un exemple de système radio dans lequel le procédé peut être implanté,
- [Fig.2] représente le calibrage d'un filtre,
- [Fig.3A] est un organigramme des étapes du procédé selon l'invention pour vérifier le fonctionnement correct et acceptable d'une chaîne radio,
- [Fig.3B] illustre les étapes du procédé selon l'invention pour la vérification du fonctionnement correct et le calibrage d'un ou de plusieurs filtres dans la chaîne radio,
- [Fig.4] illustre la mesure de puissance en sortie d'un filtre à l'initialisation,
- [Fig.5] illustre la mesure de puissance en sortie d'un filtre et le calibrage en utilisant la méthode de la sécante,
- [Fig.6] représente un exemple d'architecture FPGA permettant d'intégrer le procédé selon l'invention sur une architecture FPGA déjà existante,
- [Fig.7] représente un exemple d'architecture FPGA adaptée pour la mise en oeuvre du procédé selon l'invention,
- [Fig.8] représente un diagramme de machine à état pour les étapes de calibrage, et
- [Fig.9] représente un diagramme de machine à état pour les étapes de calibrage.
La figure 1 schématise un exemple de dispositif radiofréquence 1 é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.
Une antenne 2 permettant l'émission et/ou la réception de signaux RF est en liaison avec un premier commutateur 3 pouvant prendre deux positions 3a et 3b afin de sélectionner la voie d'émission ou la voie de réception suivant un ordre donné. Un deuxième commutateur 4 et un troisième commutateur 6 sont aussi configurés pour prendre deux positions 4a, 4b, 6a, 6b, 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 5 constituant ainsi une voie commune à la voie d'émission et à la voie de réception.
La voie d'émission comprend un convertisseur numérique analogique 7 relié par la voie commune à un amplificateur de signal 8 et à un filtre 9 positionné en amont de l'antenne.
La chaîne de réception comprend un amplificateur 10 suivi d'un filtre 11 et d'un convertisseur analogique numérique 12.
Les différents composants sont commandés par un composant programmable de type FPGA 13 dont un exemple détaillé est illustré en figure 7 ou un dispositif équivalent programmable contenant notamment un processeur configuré pour exécuter les étapes du procédé selon l'invention. Le dispositif comprend aussi un capteur de température 14 relié au FPGA afin de disposer de la valeur de température pour une valeur de fréquence et remonter à un code pour le calibrage d'un composant.
Selon un premier mode de réalisation, le FPGA pilote les composants et les commutateurs de la chaîne radio par le biais d'un bus ou de discrets et positionne la chaîne dans un état de rebouclage, afin de déclencher le procédé de vérification du bon fonctionnement de la chaîne, par exemple. Le FPGA génère ensuite, par exemple, un signal radio en activant les composants de la chaîne émission et envoie un signal de test prédéfini au convertisseur numérique analogique. Par le biais d'un capteur de la chaîne de réception, par exemple le convertisseur analogique numérique, le procédé selon l'invention pour vérifier le bon fonctionnement de la chaîne, va déterminer si les composants de la chaîne réception ou la chaîne commune sont en état de fonctionnement en comparant la valeur de puissance mesurée à une valeur de puissance minimale attendue, par exemple, ou en utilisant tout autre paramètre représentatif du bon fonctionnement des composants de la chaîne radio émission/réception.
Lorsque l'on cherche uniquement à vérifier le bon fonctionnement de la chaîne, le FPGA va déclencher la boucle de mesure de la puissance en sortie de la chaîne de réception, après avoir aiguillé le signal de la chaîne d'émission non pas vers l'antenne d'émission mais vers la chaîne de réception, en positionnant les commutateurs dans un état choisi et donné. Ceci implique le positionnement des commutateurs dans un état donné, comme il est représenté à la figure 1.
Sans sortir du cadre de l'invention, pour vérifier le bon fonctionnement de la chaîne, le procédé peut aussi prendre en compte à la place d'un signal d'émission, une fuite de puissance (courant de fuite) mesurée au niveau du commutateur en liaison avec l'antenne, correspondant au commutateur final lorsque l'on considère la chaîne d'émission et au premier commutateur pour la chaîne de réception, i.e., c'est-à-dire le premier ou dernier commutateur sélectionnant la voie d'émission ou la voie de réception.
Le procédé peut aussi vérifier simultanément le bon fonctionnement de la chaîne radio et effectuer le calibrage d'un ou de plusieurs composants de la chaîne, notamment le calibrage d'un filtre tractable passe-bande. Pour cela, on va analyser la valeur d'un paramètre représentatif du bon fonctionnement de la chaîne, par exemple, une valeur de puissance au niveau de la chaîne radio émettrice ou la chaîne commune, en utilisant une méthode itérative par exemple, détaillée un peu plus loin dans la description et illustrée à la figure 3B.
Le séquencement général des étapes exécutées par le procédé selon l'invention pour vérifier le calibrage de la chaîne est illustré à la figure 3B.. Selon un autre mode de réalisation, la table pourrait déjà être dans le FPGA. Le FPGA exécute ensuite, après avoir récupéré la table de calibrage, 21, les étapes de calibrage d'un filtre tractable de la chaîne radio émission/réception :
- 22 - on reboucle la chaîne émission sur la chaîne réception, i.e., on envoie le signal émis Se ou à émettre non pas sur l'antenne mais sur la chaîne de réception, via le commutateur 3 et les commutateurs 4 et 6 qui sont en position 3b, 4b, 6b,
- 23 - on mesure, par exemple, la puissance à une première fréquence de réjection supérieure à la fréquence centrale fi du filtre à calibrer et à une deuxième fréquence de réjection inférieure à la fréquence centrale, cette mesure peut être réalisée en sortie de chaîne au niveau du CAN lorsque l'on calibre un seul composant ; lorsque l'on cherche à calibrer plusieurs composants au sein de la chaîne radio, la mesure de puissance pourra se faire après passage du signal dans le composant,
- 24 - on exécute la méthode de la sécante, connue de l'homme du métier, selon un processus itératif sur les deux fréquences de réjection,
- 25 - on extrapole en température,
- 26 - on en déduit une nouvelle table de calibrage associée à un filtre.
- Les étapes 24, 25 et 26 sont par exemple répétées jusqu'à obtenir une table de calibrage complète, c'est-à-dire contenant les valeurs de calibrage pour plusieurs fréquences de référence.
Selon un autre mode de réalisation, à la place d'une table de calibrage, il est possible d'initialiser les étapes avec une valeur de code moyenne obtenue par exemple en réalisant une moyenne sur plusieurs codes mesurés, en utilisant des dispositifs de mesure externes et sur un échantillon représentatif des chaînes radio.
Un exemple est donné pour le calibrage automatique (sans avoir recours à un dispositif externe) d'un filtre tractable passe-bande faisant partie de la chaîne radio. Le FPGA envoie un code au CNA qui le convertit en tension selon un principe connu de l'homme du métier. La tension est transmise à un amplificateur de commande qui l'amplifie et l'applique sur le filtre tractable ou un filtre dont la fréquence centrale peut varier. On obtient alors une table contenant les valeurs des codes aux températures requises et aux fréquences requises (de la table de calibrage). Sans sortir du cadre de l'invention, il est possible d'utiliser d'autres méthodes pour faire varier la fréquence centrale du filtre. Le calibrage des filtres tractables fait appel à une table de calibrage Code(fréquence, température). Pour chaque référence de la table de calibrage, on va trouver les codes optimaux qui permettent de centrer le filtre à calibrer comme il est représenté à la figure 2. La partie gauche de la figure illustre la valeur de puissance mesurée en sortie de filtre avant calibrage et la partie droite de la figure 2 illustre la valeur de puissance mesurée en sortie de filtre après calibrage et en utilisant le procédé selon l'invention.
Pour calibrer le fonctionnement d'un filtre tractable de la chaîne radio, on choisit une fréquence de référence. On effectue ensuite la mesure de la puissance atténuée aux fréquences de réjection. On trouve ensuite le code ci permettant d'équilibrer le filtre par la méthode de la sécante, selon des étapes connues de l'homme du métier, puis on effectue une extrapolation polynomiale d'ordre 6, par exemple, afin de transposer les codes trouvés à température ambiante aux températures de référence de la table de calibrage, i.e., aux températures de référence indiquées dans la table de calibrage. Toute fonction permettant une extrapolation pourra être utilisée, par exemple une fonction linéaire, polynomiale, etc.
L'algorithme d'auto-calibrage mis en oeuvre dans le FPGA exécute les étapes détaillées ci-après.
Pour chaque filtre à calibrer, pour chaque position, à température ambiante Tamb, pour chaque fréquence (fi) de la table de calibrage, le FPGA détermine le code ci(Ti, fi) qui va permettre de centrer le filtre à calibrer sur cette fréquence (fi) de la table de calibrage. Pour chaque mesure de puissance Pi (effectuée par exemple en sortie de la chaîne radio) on mémorise la température Ti correspondante à la mesure de puissance a été effectuée dans la mémoire du FPGA.
L'algorithme exécuté par le FPGA va chercher à équilibrer les points de réjections d'un filtre à calibrer, en considérant une première fréquence (fi-) et une deuxième fréquence (fi+). La valeur (fi-) peut être égale à (fi -ε) ou à (fi - fi *ε) et la valeur (fi+) à (fi +ε) à (fi + fi *ε). La valeur de ε sera choisie en fonction du composant à calibrer et de l'application radio. Par exemple, dans le cas d'un filtre passe-bande, ε sera choisi de façon à ce que la puissance du signal à la fréquence centrale fi soit maximale lorsque les puissances aux deux fréquences de réjection précédemment définies sont égales. Il pourra être déterminé de façon empirique, théorique ou par la modélisation des filtres à calibrer. La valeur de ε pourra être différente suivant la bande de fréquence ou suivant la fréquence de réjection considérée (inférieure ou supérieure).
Pour équilibrer les deux fréquences fi- et fi+, le FPGA applique la méthode de la sécante connue de l'homme du métier. On va rechercher le « 0 » de la fonction :
où Pc(f) est la puissance mesurée à la fréquence f lorsque le code c est programmé. Il s'agit de la réponse fréquentielle du filtre à la fréquence f. On dispose alors d'une mesure de puissance à la fréquence de réjection inférieure à la fréquence fi et une mesure de puissance à la fréquence de réjection supérieure à la fréquence fi.
Le procédé va, par exemple, 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 obtenue lors de la mise en oeuvre du procédé selon l'invention. Le FPGA considère la table de calibrage initiale ou une table constituée de valeurs obtenues lors d'une étape de calibrage antérieure. La mesure de la température ambiante est effectuée par le capteur de température en liaison avec le FPGA puis, ce dernier va rechercher dans la table de calibrage, 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. Le code trouvé correspond au premier point :
- g1 ← g(code1)
- nbiteration ← limite ITER
- Tant que abs(code2 - code1) > limite PREC et que nbiteration > 0 alors g2 ← g(code2).
- ∘
- ∘ code1 ← code2
- ∘ code2 ← code3
- ∘ g1 ← g2
- ∘ nbiteration ← nbiteration - 1
- ∘
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 utilisé pour mesurer la puissance, par exemple le CAN. 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.
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.
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 exemple, 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 qui programme le signal radio réalise une interpolation en prenant comme 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.
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 « softcore ».
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 softcore pour d'autres besoins éventuels (canaux bouchés...),
- capacité de débogage (utilisation de point d'arrêt « breakpoint »),
- 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èse-placement-routage selon l'art antérieur (quelques dizaines de minutes).
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.
La figure 4 illustre la mesure de puissance en sortie d'un filtre à l'initialisation, et la figure 5 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 Fi- et Fi+ égales
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 1 comprenant un module d'autocalibrage détaillé à la figure 7 permettant de calibrer un ou plusieurs composants.
La figure 7 illustre un exemple d'architecture de bloc dans le cas d'une implémentation matérielle.
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 radiofréquence.
- Fsm_autocal_balance 63 : machine à état mettant en place l'algorithme « d'équilibrage » des deux fréquences de coupure. C'est elle qui implémente la méthode de la sécante.
- Polynom_horner 64: bloc de calcul permettant d'évaluer un polynôme. Ce 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.
La machine à état fsm_autocal_main 62 peut être représentée par le diagramme de la figure 8.
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).
Dans l'état REO_MEM, 82, la machine d'état récupère la table de calibrage dans sa mémoire de stockage.
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 REO_MEM.
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.
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.
Dans l'état WRITE_MEM, 85, la machine réécrit en EEPROM la mémoire précédemment calculée.
La machine à état fsm_autocal_balance peut être représentée par le diagramme illustré à la figure 9.
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.
Dans l'état GET_TEMP, 92, la machine attend une réponse à la requête de température précédemment envoyée et stocke la valeur reçue qui servira pour l'extrapolation en température.
Dans l'état CONF_OL, 93, la machine mémorise les configurations.
Dans l'état GET_X0, 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 stock dans un registre X.
Dans l'état PROG_FI_M, 95, la machine d'état configure les oscillateurs locaux OL, non représentés sur la figure, pour la fréquence Fi-.
Dans l'état WAIT_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.
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).
Dans l'état PROG_FI_P, 98, la machine d'état configure les OL pour la fréquence Fi+.
Dans l'état WAIT_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.
Dans l'état READ_RSSI_P, 100, la machine d'état récupère les valeurs des puissances.
Dans l'état CALC_F, 101, la machine calcule la différence des puissances reçues.
Dans l'état UPDATE_X, 102, la machine à 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 dans X, tandis que X est stocké dans X_prev et F dans F_prev.
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.
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.
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.
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 fsm_autocal_main.
L'invention offre un procédé de calibrage rapide, qui ne nécessite pas d'utilisation de dispositifs extérieurs.