Brevet FR3112918A1 — publié le 20220128

Module de communication radio courte distance et procédé de communication radio associé L’invention concerne un module de communication radio courte distance selon la norme Bluetooth, adapté à communiquer des paquets de données entre au moins un client et au moins un appareil distant, et comporte un processeur (20) configuré pour exécuter au moins deux composants logiciels de haut niveau (28 1 , 28 2 ) de mise en œuvre d’un protocole de communication, distincts et indépendants, et un composant matériel (24) connecté à une antenne (26) de communication, ladite antenne étant adaptée à communiquer avec ledit au moins un appareil distant (12 1 , 12 2 , 12 3 ) selon la norme Bluetooth. Ce module comprend un composant logiciel intermédiaire (30), connecté entre lesdits au moins deux composants logiciels de haut niveau (28 1 , 28 2 ) et ledit composant matériel (24), qui comporte un module décodeur (32) et un module de routage (36), configurés pour router un paquet de données reçu vers un destinataire en fonction d’informations de routage (40, 42) mémorisées et en fonction d’informations obtenues du module décodeur (32). Figure pour l'abrégé : Figure 2 Module de communication radio courte distance et procédé de communication radio associé La présente invention concerne un module de communication radio courte distance, notamment selon la norme Bluetooth, et un procédé de communication radio courte distance associé. L’invention se situe dans le domaine de la communication radio courte distance, en particulier dans le domaine de la technologie de communication radio Bluetooth. La norme de communication Bluetooth est une norme de communication radio à courte distance, ou courte portée, permettant l’échange bidirectionnel de données et utilisant des ondes radio UHF (« Ultra Haute Frequency ») sur une bande de fréquence de 2,4 GHz. La norme Bluetooth a une portée de l’ordre de 10 à 15 mètres, et pouvant aller jusqu’à 60 mètres. L’utilisation de la norme de communication radio Bluetooth est très répandue, entre divers appareils, par exemple ordinateurs, tablettes, haut-parleurs, téléphones mobiles, systèmes « mains libres » pour microphones ou écouteurs, autoradios etc, la liste n’étant bien entendu pas exhaustive. Pour permettre l’utilisation de la norme de communication Bluetooth, chaque appareil compatible, dit « appareil Bluetooth » dispose, de manière classique, d’un processeur qui met en œuvre un composant logiciel de mise en œuvre du protocole de communication défini par la norme Bluetooth, appelé également pile de protocole ou « stack » en terminologie technique, et d’un composant matériel, appelé également contrôleur Bluetooth, connecté à une antenne de communication pour la transmission et réception des paquets radio. En d’autres termes, le composant logiciel est chargé des fonctionnalités de protocole de communication haut niveau, pour un interfaçage avec une application cliente de l’appareil et le composant matériel est chargé des fonctionnalités de protocole de communication bas niveau, associé aux couches 1 et 2 du modèle OSI (pour « Open Systems Interconnection »). De manière connue, un tel « appareil Bluetooth » est adapté à se connecter à un ou plusieurs autres appareils Bluetooth distants, par exemple téléphone, casque, kit mains libres… Pour certaines applications, par exemple pour le développement de plateformes de gestion de plusieurs appareils clients, il est nécessaire de mettre en œuvre, à partir d’une plateforme matérielle, une communication Bluetooth entre plusieurs applications clientes distinctes et plusieurs appareils Bluetooth distants. Dans la technologie Bluetooth classique, développée par le groupe Bluetooth Special Interest Group (SIG), des paquets de données, comportant des données utiles ou des commandes/contrôles, formatés selon le format HCI (pour « Host Interface Controller »), sont transportés par une liaison bidirectionnelle entre un composant matériel (ou « contrôleur Bluetooth ») et un composant logiciel (« stack ») tels que décrits ci-dessus. Selon la norme Bluetooth, la mise en œuvre de plusieurs composants logiciels distincts, associés à des appareils distincts ou à des instances de systèmes d’exploitation distinctes, nécessite l’utilisation d’autant de composants matériels, et d’autant d’antennes associées. Cependant, la multiplication de composants matériels induit une augmentation de l’encombrement, des coûts de fabrication et de la consommation d’énergie électrique en fonctionnement. Le document US2014/0092806 A1 décrit un arrangement de module de communication Bluetooth dans lequel le composant matériel, qui est le microcontrôleur radio, est modifié pour supporter une pluralité d’interfaces avec des dispositifs hôtes distincts. Ce document décrit l’utilisation d’un module de sélection dans un microcontrôleur radio. Cependant, la solution proposée dans ce document implique la modification du code de programmation au niveau du microcontrôleur. L’invention a pour objet de remédier aux inconvénients de l’état de la technique en proposant une solution pour la mise en œuvre de plusieurs applications clientes distinctes, chacune associée à un composant logiciel de mise en œuvre du protocole de communication distinct qui soit plus simple à mettre en œuvre et plus flexible. A cet effet, l’invention propose, selon un aspect, un module de communication radio à courte distance selon la norme Bluetooth, adapté à communiquer des paquets de données entre au moins un client et au moins un appareil distant, ledit module de communication comportant un processeur configuré pour exécuter au moins deux composants logiciels de haut niveau de mise en œuvre d’un protocole de communication, distincts et indépendants, chacun desdits composants logiciels de haut niveau étant associé à un client distinct, et un composant matériel connecté à une antenne de communication, ladite antenne étant adaptée à communiquer avec ledit au moins un appareil distant selon la norme Bluetooth. Ce module comprend un composant logiciel intermédiaire, connecté entre lesdits au moins deux composants logiciels de haut niveau distincts et ledit composant matériel. Le composant logiciel intermédiaire comporte un module décodeur configuré pour décoder des paquets de données, formatés selon ledit protocole de communication, et un module de routage configuré pour mettre à jour dynamiquement des informations de routage mémorisées en fonction d’informations obtenues du module décodeur et pour router un paquet de données reçu vers un destinataire en fonction desdites informations de routage mémorisées et en fonction desdites informations obtenues du module décodeur, ledit destinataire étant soit un desdits composants logiciels de haut niveau, soit un appareil distant destinataire. Avantageusement, le module de communication comporte un composant logiciel intermédiaire, connecté entre lesdits au moins deux composants logiciels de mise en œuvre du protocole de communication distincts et ledit composant matériel. Avantageusement, grâce à la mise en œuvre du composant logiciel intermédiaire, les composants logiciels de mise en œuvre du protocole de communication et le composant matériel sont inchangés. Le module de communication selon l’invention peut également présenter une ou plusieurs des caractéristiques ci-dessous, prises indépendamment ou selon toutes les combinaisons techniquement envisageables. Les informations de routage mémorisées comprennent une première information de routage associant une adresse d’appareil distant destinataire à un identifiant de composant logiciel de haut niveau, et une deuxième information de routage associant un identifiant de connexion et une adresse d’appareil distant destinataire. Suite à une réception d’un paquet de données en provenance du composant matériel, le module décodeur est configuré pour extraire un identifiant de connexion et le module de routage est configuré pour identifier un composant logiciel de haut niveau destinataire à partir dudit identifiant de connexion, en utilisant conjointement lesdites première et deuxième informations de routage mémorisées. Le module décodeur est configuré pour extraire une information de type de paquet de données. Lorsque le paquet de données est un paquet de commande contenant une commande de connexion en provenance d’un composant logiciel de haut niveau, le module décodeur est adapté pour extraire une adresse d’appareil destinataire, et pour ajouter un lien entre ladite adresse d’appareil destinataire et un identifiant du composant logiciel de haut niveau de provenance dans la première information de routage. Le module comporte en outre un module générateur de paquets de données, configuré pour générer au moins un autre paquet de données formaté selon le protocole de communication. L’autre paquet de données généré comporte des informations d’erreur ou de dysfonctionnement. Selon un autre aspect, l’invention concerne un procédé de communication radio à courte distance selon la norme Bluetooth, mis en œuvre par un module logiciel intermédiaire implémenté par un processeur d’un module de communication radio tel que brièvement décrit ci-dessus, le module logiciel intermédiaire étant connecté entre au moins deux composants logiciels de haut niveau de mise en œuvre d’un protocole de communication, distincts et indépendants, et un composant matériel. Le procédé comprenant des étapes, suite à la réception d’un paquet de données formé selon le protocole de communication, de : - décodage d’au moins une partie du paquet de données, - mise à jour dynamiquement d’informations de routage mémorisées en fonction d’informations obtenues par décodage et -routage du paquet de données reçu vers un destinataire en fonction desdites informations de routage mémorisées et en fonction desdites informations obtenues par le décodage, ledit destinataire étant soit un desdits composants logiciels de haut niveau, soit un appareil distant destinataire. Le procédé de communication selon l’invention peut également présenter une ou plusieurs des caractéristiques ci-dessous, prises indépendamment ou selon toutes les combinaisons techniquement envisageables. Le procédé comporte, suite à une réception d’un paquet de données en provenance d’un desdits composants logiciels de haut niveau, une identification du composant logiciel de haut niveau de provenance, un décodage d’au moins une partie du paquet de données pour obtenir une information de type de paquet et, en fonction du type de paquet, un identifiant de connexion ou une adresse d’appareil destinataire. Il comporte une étape de détermination consistant à déterminer si le paquet comporte des données utiles, et, en cas de détermination positive, une transmission dudit paquet au composant matériel. Le procédé comporte, en cas de détermination négative, un traitement adéquat du paquet de données en fonction des informations obtenues par le décodage et des informations de routage mémorisées, le traitement adéquat comportant : ignorer ledit paquet de données, ou transmettre le paquet de données à au moins un destinataire ou modifier le paquet de données et le transmettre à au moins un destinataire ou générer un autre paquet de données et transmettre ledit au moins un autre paquet de données à au moins un destinataire. Le procédé comporte en outre une détermination consistant à déterminer si le paquet comporte une commande de nature à modifier les informations de routage mémorisées, et en cas de détermination positive, une modification des informations de routage mémorisées. Le procédé comporte, suite à une réception d’un paquet de données en provenance du composant matériel, un décodage d’au moins une partie du paquet de données pour obtenir une information de type de paquet et, en fonction du type de paquet, un identifiant de connexion. Le procédé comporte une étape de détermination consistant à déterminer si le paquet comporte des données utiles, et, en cas de détermination positive, une obtention d’un identifiant d’un composant logiciel de haut niveau destinataire en fonction de l’identifiant de connexion et en utilisant conjointement lesdites première et deuxième informations de routage mémorisées. Selon un autre aspect, l’invention concerne un programme d’ordinateur comportant des instructions logicielles qui, lorsqu’elles sont mises en œuvre par un dispositif électronique programmable, mettent en œuvre un procédé de communication radio à courte distance selon la norme Bluetooth tel que brièvement décrit ci-dessus. D’autres caractéristiques et avantages de l’invention ressortiront de la description qui en est donnée ci-dessous, à titre indicatif et nullement limitatif, en référence aux figures annexées, parmi lesquelles : la figure 1 est un exemple de système dans lequel l’invention trouve une application ; la figure 2 est schéma bloc d’un dispositif comprenant un module de communication radio selon un mode de réalisation ; la figure 3 est un logigramme des principales étapes d’un mode de réalisation d’un procédé de communication radio, selon un premier sens de communication de paquets de données ; la figure 4 est un exemple schématique d’informations de routage mémorisées ; la figure 5 est un logigramme des principales étapes d’un mode de réalisation d’un procédé de communication radio, selon un deuxième sens de communication de paquets de données. La figure 1 illustre un exemple d’application non limitatif de l’invention, dans un système 2 de divertissement embarqué dans un véhicule, par exemple un véhicule automobile (non représenté). Par exemple, un tel système de divertissement est embarqué dans un véhicule automobile contenant un habitacle dans lequel sont positionnés des sièges, organisés par rangées, comprenant une rangée dite avant, située à l’avant du véhicule dans le sens de la marche, et une ou plusieurs rangées dites arrière. Par exemple, un système 2 de divertissement embarqué est dédié à la diffusion de contenus multimédia pour les passagers situés dans une rangée arrière du véhicule. Le système 2 comporte deux écrans 4 1 , 4 2 respectivement un écran gauche et un écran droit, par exemple destinés à la visualisation de contenus vidéo, par exemple positionnés sur les dossiers des sièges de la rangée précédente. Chaque écran 4 est connecté, par exemple via une liaison filaire 6, à un dispositif 8 de fourniture des contenus multimédia. Ce dispositif 8 est par exemple un boîtier intégrant des éléments matériels et logiciels pour la mise en œuvre de fonctionnalités de stockage de contenus multimédia, de décodage de contenus multimédia, d’affichage de contenus multimédia ainsi que des interfaces de communication avec des appareils distants, e.g. casques, écouteurs, et des interfaces de saisie de commandes opérateur. En particulier, le dispositif 8 comporte un module 10 de communication radio courte distance (ou courte portée), selon la norme Bluetooth, adapté à communiquer des paquets de données avec des appareils distants notés 12 1 , 12 2 dans l’exemple. Dans l’exemple, les appareils distants 12 1 , 12 2 sont des casques audio, utilisés par les passagers, chaque casque audio 12 i étant adapté à recevoir des paquets de données audio en lien avec le contenu multimédia affiché sur l’écran 4 i correspondant. On entend ici par courte portée une portée inférieure à 60 mètres, en général de l’ordre de 10 à 15 mètres. En variante ou en complément, le système de divertissement 2 comporte d’autres appareils distants 12, par exemple téléphones portables, télécommandes, adaptés à communiquer, par liaison radio de courte portée selon la norme Bluetooth, avec le dispositif 8 de fourniture de contenus multimédia. D’un point de vue fonctionnel, le système 2 est configuré pour fournir des contenus multimédia à afficher par chacun des écrans 4 1 , 4 2 de manière indépendante, selon des commandes respectivement reçues. Par exemple, dans le cas de la fourniture de vidéos, des flux vidéo sont affichés, indépendamment l’un de l’autre, sur chacun des écrans 4 1 , 4 2 , et des flux audio correspondants, indépendants l’un de l’autre, sont transmis aux appareils Bluetooth 12 1 , 12 2 . Le dispositif 8 met en œuvre un client 14 1 adapté à exécuter des applications (ou services) en lien avec les affichages des contenus multimédia sur l’écran 4 1 . Dans un mode de réalisation, le client 14 1 est une instance d’un système d’exploitation, par exemple le système d’exploitation Androïd ®. De même, le dispositif 8 met en œuvre un client 14 2 adapté à exécuter des applications (ou services) en lien avec les affiches des contenus multimédia sur l’écran 4 2 . Dans un mode de réalisation, le client 14 2 est une instance d’un système d’exploitation, par exemple le système d’exploitation Androïd ®. Dans le mode de réalisation illustré, les clients 14 1 et 14 2 , sont mis en œuvre par des machines virtuelles par l’utilisation d’un hyperviseur 16, utilisé pour partager des ressources matérielles, par exemple le processeur de calcul et les unités de mémoire électronique, du dispositif 8 entre les deux instances de système d’exploitation 14 1 , 14 2 . La figure 2 illustre un mode de réalisation des principaux éléments matériels d’un module de communication radio 10, adapté à réaliser une communication radio de paquets de données entre deux clients et plusieurs appareils distants 12 1 , 12 2 , 12 3 . Le module de communication radio 10 est adapté à communiquer selon un protocole de communication radio de courte portée, e.g. Bluetooth. Les appareils distants 12 1 , 12 2 , 12 3 sont également des appareils Bluetooth. Le module de communication 10 comporte un processeur de calcul 20 et une unité de mémoire électronique 22. Dans un mode de réalisation dans lequel le module de communication est intégré à un dispositif, comme par exemple le dispositif 8 de fourniture de contenus multimédia de la figure 1, les éléments matériels qui sont le processeur de calcul 20 et la mémoire électronique 22 peuvent être partagés avec le dispositif 8. Le module de communication 10 comporte en outre un composant matériel 24, qui est un contrôleur Bluetooth, connecté à une antenne 26. Le composant matériel 24 est par exemple réalisé sous forme de circuit intégré. Le composant matériel 24 est chargé des fonctionnalités de protocole de communication bas niveau selon la norme Bluetooth. Le processeur de calcul 20 du module de communication 10 met en œuvre un premier composant logiciel 28 1 de mise en œuvre du protocole de communication, associé à un premier client, et un deuxième composant logiciel 28 2 de mise en œuvre du protocole de communication, associé à un deuxième client. Le premier composant logiciel 28 1 et le deuxième composant logiciel 28 2 sont distincts et indépendants. En d’autres termes, ces composants logiciels ne communiquent pas entre eux. Chaque composant logiciel 28 1 , 28 2 , dit composant logiciel de haut niveau, met en œuvre des fonctionnalités de communication haut niveau du protocole de communication Bluetooth. Ces deux composants logiciels sont par exemple implémentés par des implémentations de pile de protocole (« stack ») connues. En outre, le processeur de calcul 20 du module de communication 10 met en œuvre un composant logiciel intermédiaire 30, connecté entre les composant logiciels de haut niveau 28 1 , 28 2 distincts et le contrôleur 24. L’implémentation des composants logiciels de haut niveau 28 1 , 28 2 distincts n’est pas modifiée par la présence du composant logiciel intermédiaire, ou, en d’autres termes, chaque composant logiciel de haut niveau est implémenté pour communiquer avec un composant matériel. Chaque composant logiciel de haut niveau 28 1 , 28 2 est connecté par une liaison bidirectionnelle au composant logiciel intermédiaire 30. De plus, le composant logiciel intermédiaire 30 est connecté via une liaison série, par exemple de type UART (pour « Universal Asynchroneous Receiver Transceiver »), au contrôleur 24. Avantageusement, grâce au composant logiciel intermédiaire 30, décrit plus en détail ci-après, le contrôleur 24 est apte à communiquer des paquets de données entre plusieurs composants logiciels de haut niveau 28 1 , 28 2 distincts et indépendants et les appareils distants 12 1 , 12 2 , 12 3 . Le nombre de composants logiciels de haut niveau est égal à deux dans cet exemple, mais un nombre quelconque supérieur à deux de tels composants logiciels de haut niveau distincts est envisageable. Les paquets de données transmis et reçus via le composant logiciel intermédiaire 30 sont formatés dans le format HCI. Le composant logiciel intermédiaire 30 comporte un module décodeur 32, un module générateur 34 de paquets de données, et un module 36 de routage. Le composant logiciel intermédiaire 30 utilise et met à jour dynamiquement des informations de routage 38, mémorisées par exemple dans l’unité de mémoire électronique 22. Dans un mode de réalisation, les informations de routage comprennent une première information de routage 40 qui associe des adresses d’appareils Bluetooth et des identifiants de composant logiciel de haut niveau, et une deuxième information de routage 42 qui associe des identifiants de connexion à des adresses d’appareils Bluetooth. Dans un mode de réalisation la première information de routage 40 est une table de routage, et la deuxième information de routage 42 est une table de routage. Plus généralement, toute structure informatique de mémorisation des associations entre adresses d’appareils Bluetooth et des identifiants de composant logiciel de haut niveau d’une part, et entre identifiants de connexion et adresses d’appareils Bluetooth d’autre part, est utilisable. L’utilisation des informations de routage sera décrite plus en détail ci-après. Dans un mode de réalisation, le composant logiciel intermédiaire 30 est un programme d’ordinateur formé par les modules 32, 34, 36, réalisés sous forme d’instructions logicielles. Ce programme d’ordinateur, lorsqu’il est exécuté par un dispositif électronique programmable, met en œuvre un procédé de communication radio courte distance selon la norme Bluetooth. En variante non représentée, les modules 32, 34, 36 sont réalisés chacun sous forme d’un composant logique programmable, tel qu’un FPGA (de l’anglais Field Programmable Gate Array ), un GPU (processeur graphique) ou un GPGPU (de l’anglais General-purpose processing on graphics processing ), ou encore sous forme d’un circuit intégré dédié, tel qu’un ASIC (de l’anglais Application Specific Integrated Circuit ). Le programme d’ordinateur comportant des instructions logicielles est en outre apte à être enregistré sur un support, non représenté, lisible par ordinateur. Le support lisible par ordinateur est par exemple, un médium apte à mémoriser les instructions électroniques et à être couplé à un bus d’un système informatique. A titre d’exemple, le support lisible est un disque optique, un disque magnéto-optique, une mémoire ROM, une mémoire RAM, tout type de mémoire non-volatile (par exemple EPROM, EEPROM, FLASH, NVRAM), une carte magnétique ou une carte optique. La norme Bluetooth définit un formatage de paquets, appelé HCI (« Host Controller Interface »). Le format HCI définit principalement 4 types de paquets qui sont les suivants : - paquets ACL (« Asynchronous Connection Less »), qui transportent des données utiles ; - paquets SCO (« Synchronous Connection Oriented ») qui transportent des données audio ; - paquets de commande, envoyés par un composant logiciel de haut niveau au composant matériel ; - paquets comportant des évènements (en anglais « Events »), envoyés par le composant matériel au composant logiciel de haut niveau. Les paquets formatés selon le formatage HCI seront appelés paquets HCI ci-après. Les paquets ACL, et les paquets SCO comportent, en plus des données utiles, un identifiant de connexion appelé « connection handle ». L’identifiant de connexion, défini dans la norme Bluetooth, identifie un lien de communication entre le contrôleur Bluetooth et un appareil Bluetooth distant destinataire. Par exemple, l’identifiant de connexion est un numéro de connexion. Le traitement des paquets HCI par le composant logiciel intermédiaire diffère selon le type de paquets. Le module décodeur 32 est adapté pour extraire des informations des paquets HCI, en particulier le type de paquet HCI, et l’identifiant de connexion. Le composant logiciel intermédiaire 30 est en outre adapté pour déterminer le sens de communication des paquets, à savoir d’un des composants logiciels de haut niveau vers le composant matériel ou vice-versa, du composant matériel vers un composant logiciel de haut niveau. Le module routeur 36 met à jour dynamiquement les informations de routage 38, qui comprennent dans un mode de réalisation une première table de routage 40 et une deuxième table de routage 42, et utilise les informations transmises par le module décodeur 32 et les informations de routage pour router les paquets vers un destinataire identifié. Le terme « destinataire » désigne ici soit un appareil distant, soit un composant logiciel de haut niveau. En particulier, les paquets ACL et SCO comportant des données utiles sont routés vers un destinataire. Les paquets de commande et les paquets de type évènements sont ignorés, routés ou modifiés en fonction de la commande ou de l’évènement, des informations décodées par le module de décodage et des informations de routage mémorisées. Le module générateur de paquets 34 analyse des informations obtenues par le module décodeur 32, et génère des paquets HCI pour transmettre des commandes de configuration ou des messages d’erreur. La figure 3 est un synoptique des étapes d’un procédé de communication radio mis en œuvre par un composant logiciel intermédiaire 30 selon un mode de réalisation, lors de la réception de paquets de données HCI séquentiellement via des liaisons de communication série, en provenance de deux composants logiciels de haut niveau, un premier composant logiciel de haut niveau identifié par « Comp_1 » dans cet exemple, un un deuxième composant logiciel de haut niveau identifié par « Comp_2 » dans cet exemple. Les paquets HCI reçus sont traités séquentiellement. Pour un paquet HCI traité, le procédé comporte une étape 50 de détermination du composant logiciel de haut niveau de provenance et une étape 52 de décodage d’une partie du paquet HCI pour extraire une information de type de paquet HCI, et, le cas échéant, un identifiant de connexion. Il est ensuite déterminé, à l’étape de détermination 54, si le paquet HCI reçu est un paquet de type ACL ou SCO, et en cas de détermination positive, le paquet est envoyé à l’étape d’envoi 56 au composant matériel. Le composant matériel traite ce paquet HCI non modifié selon le protocole de communication Bluetooth pour le remettre à un appareil distant destinataire. En cas de détermination négative à l’étape 54, il est vérifié à l’étape 58 si le paquet HCI est un paquet de commande comportant une commande de nature à modifier les informations de routage mémorisées. En particulier, il est vérifié si la commande est une commande de création de connexion, par exemple commande « CreateConnection », ou si la commande est une commande de suppression d’appairage entre un composant logiciel de haut niveau et un appareil distant, par exemple « DeleteStoredLinkKey ». Si le paquet HCI ne comporte pas une commande de nature à modifier les informations de routage, le traitement du paquet est effectué à l’étape de traitement adéquat 60. Le traitement adéquat 60 est effectué en fonction de la commande. Par exemple, le paquet peut être ignoré ou modifié avant d’être transféré, en fonction de la commande, afin de ne pas perturber la communication de paquets de données. En effet, le composant matériel n’est pas modifié et donc fonctionne comme s’il était en communication avec une unique pile de protocole, ou, en d’autres termes, avec un seul composant logiciel de mise en œuvre du protocole. Le traitement adéquat est effectué au cas par cas en fonction de la commande, ainsi que, le cas échéant, des informations de routage mémorisées et/ou de paquets contenant des évènements reçus du composant matériel. Si le paquet HCI est un paquet de commande de nature à modifier les informations de routage, l’étape 58 est suivie d’une étape 62 pour déterminer si la modification est un ajout ou une suppression d’information de routage. En cas de suppression, par exemple si la commande est une commande « DeleteStoredLinkKey », une suppression de lien est effectuée, à l’étape de suppression 64, dans la première table de routage qui lie les adresses d’appareils destinataires aux identifiants de composant logiciel de haut niveau (« Comp_1 » ou « Comp_2 » dans l’exemple). En cas d’ajout, l’étape 62 est suivie d’une étape 66 d’ajout, dans la première table de routage, d’un lien entre le composant logiciel de haut niveau dont provient le paquet traité et l’adresse réseau, formatée selon la norme Bluetooth, de l’appareil destinataire. Un attribut « temporaire » est attribué à ce lien. L’attribut « temporaire » désigne le fait que l'association entre le composant logiciel de haut niveau et l'appareil distant persiste uniquement jusqu'à la fin de la connexion. La figure 4 illustre un exemple schématique d’informations de routage 38 comportant une première table de routage 40 et une deuxième table de routage 42. Bien entendu, bien qu’illustrées sous forme de tables, les informations de routage peuvent être mémorisées dans toute structure de données appropriée. A titre d’exemple, si le paquet HCI traité provient du composant logiciel de haut niveau « Comp_1 », et l’adresse du destinataire extraite du paquet est « 0a :1b :2c :3d :4e :5f », une ligne de mémorisation du lien entre « 0a :1b :2c :3d :4e :5f » et « Comp_1 » est ajoutée dans la table 40. L’identifiant « Comp_1 » est par exemple un nombre ou une chaîne de caractères. Le paquet de commande comprenant la commande de connexion est envoyé au composant matériel à l’étape 68, et en retour, un identifiant de connexion (« connection handle »), par exemple HID_3, est reçu du composant matériel à l’étape de réception 70, et ce lien temporaire est mémorisé à l’étape de mémorisation 72 dans la deuxième table de routage 42. A titre d’exemple, l’association entre l’identifiant de connexion HID_3 et l’adresse du dispositif de l’appareil destinataire « 0a :1b :2c :3d :4e :5f » est mémorisée dans la deuxième table 42. Lors d’une étape ultérieure 74, suite à une confirmation d’authentification réussie reçue du composant matériel, l’attribut « temporaire » du lien temporaire mémorisé à l’étape 72 est modifié en « persistant ». Une association de type « persistant » est une association persiste après une déconnexion et un redémarrage du système. Une "l'authentification réussie" se produit lorsque l'appareil distant est "appairé". L'appairage est une procédure spécifiée par la norme Bluetooth qui permet d'associer de façon durable deux appareils entre eux afin qu'ils puissent se connecter facilement et de manière sécurisée. Si la connexion est une simple découverte de service, l'étape 74 n'aura pas lieu et le lien temporaire sera supprimé lors de la déconnexion. Les étapes 56, 60, 64, 74 sont suivies d’un retour à l’étape 50 pour le traitement d’un paquet HCI suivant. La figure 5 est un synoptique des étapes d’un procédé de communication radio mis en œuvre par un composant logiciel intermédiaire 30 selon un mode de réalisation, lors de la réception de paquets HCI en provenance du composant matériel (ou « contrôleur »). Le procédé comprend une étape 80 de réception d’un paquet HCI en provenance du composant matériel, suivie d’une étape 82 de décodage d’une partie du paquet HCI pour extraire une information de type de paquet HCI, et, le cas échéant, un identifiant de connexion. Il est ensuite déterminé, à l’étape de détermination 84, si le paquet HCI reçu est un paquet de type ACL ou SCO. En cas de détermination positive, l’étape 84 est suivie d’une étape 86 de recherche dans les informations de routage mémorisées de l’identifiant de composant logiciel de haut niveau destinataire en fonction de l’identifiant de connexion obtenu à l’étape 82 de décodage. Dans un mode de réalisation, l’étape 86 consiste à extraire de la deuxième table de routage 42 l’adresse Bluetooth mémorisée en lien avec l’identifiant de connexion, puis d’extraire de la première table de routage 40 l’identifiant de composant logiciel de haut niveau associé à l’adresse Bluetooth obtenue. Suite à l’obtention de l’identifiant de composant logiciel de haut niveau, l’étape 86 est suivie d’une étape 88 de routage du paquet ACL ou SCO vers le composant logiciel de haut niveau identifié, à travers la liaison de données bidirectionnelle série avec ce composant logiciel de haut niveau. A titre d’exemple, en référence à la figure 4, si l’identifiant de connexion extrait du paquet est HID_2, l’adresse « 00 :11 :22 :33 :44 :55 » est extraite de la deuxième table 42, et l’identifiant de composant logiciel de haut niveau « Comp_2 », associé à l’adresse « 00 :11 :22 :33 :44 :55 » est extrait de la première table 40. Le paquet de données ACL ou SCO est transmis au composant logiciel de haut niveau « Comp_2 » dans cet exemple. Si la détermination de l’étape 84 est négative, l’étape 84 est suivie d’une étape 90 consistant à déterminer si le paquet HCI est un paquet « évènement » comportant une information de nature à modifier les informations de routage mémorisées. En particulier, à titre d’exemple, il est vérifié si le paquet contient un des évènements suivants : AuthenticationComplete qui induit une modification de l’attribut « temporaire » en « persistant » pour un lien enregistré dans les informations de routage ; ConnectionComplete ou SynchronousConnectionComplete qui induit un ajout d’entrée pour lier une adresse Bluetooth et un identifiant de connexion dans la deuxième table de routage ; DisconnectionComplete qui induit une suppression de liens temporaires enregistrés dans les tables de routage ; RemoteNameRequestComplete qui induit une suppression d’une entrée de lien temporaire dans la deuxième table de routage. Si l’évènement est de nature à induire une modification dans les informations de routage, l’étape 90 est suivie d’une étape de modification 92. L’étape de modification 92 consiste à ajouter un lien dans une table de routage, modifier un attribut de lien de « temporaire » à « persistant » ou à supprimer un lien de table de routage. En cas de réponse négative à l’étape 90, ou après l’étape 92, le cas échéant, un traitement 94 adéquat du paquet est effectué. Par exemple le traitement adéquat comprend une transmission du paquet à un composant logiciel de haut niveau destinataire, déterminé par une recherche dans les informations de routage mémorisées de l’identifiant de composant logiciel de haut niveau destinataire, analogue à l’étape 86 décrite ci-dessus. Le traitement adéquat comprend, pour certains évènements, la transmission à tous les composants logiciels de haut niveau, par exemple des évènements signalant des erreurs ou des dysfonctionnements tels : HardwareError ou DataBufferOverflow . Le traitement adéquat comprend, pour certains évènements, la génération par le module générateur d’un ou plusieurs paquets HCI, formatés selon les spécifications de la norme Bluetooth, pour signaler une erreur de connexion par exemple. Par exemple, lorsqu’une connexion est établie, par exemple entre le premier composant logiciel de haut niveau et un appareil destinataire, les informations de routage sont mémorisées avec un attribut de lien « persistant » dans les tables de routage. Si ultérieurement le deuxième composant logiciel de haut niveau requiert, via un paquet HCI contenant une commande, une connexion avec le même appareil destinataire, de même adresse Bluetooth, un message d’échec de connexion est généré par le module générateur, puis envoyé au deuxième composant logiciel de haut niveau. Module de communication radio courte distance selon la norme Bluetooth, adapté à communiquer des paquets de données entre au moins un client et au moins un appareil distant, ledit module de communication (10) comportant un processeur (20) configuré pour exécuter au moins deux composants logiciels de haut niveau (28 1 , 28 2 ) de mise en œuvre d’un protocole de communication, distincts et indépendants, chacun desdits composants logiciels de haut niveau (28 1 , 28 2 ) étant associé à un client distinct, et un composant matériel (24) connecté à une antenne (26) de communication, ladite antenne étant adaptée à communiquer avec ledit au moins un appareil distant (12 1 , 12 2 , 12 3 ) selon la norme Bluetooth, caractérisé en ce qu’il comprend un composant logiciel intermédiaire (30), connecté entre lesdits au moins deux composants logiciels de haut niveau (28 1 , 28 2 ) et ledit composant matériel (24), le composant logiciel intermédiaire (30) comportant un module décodeur (32) configuré pour décoder des paquets de données, formatés selon ledit protocole de communication, et un module de routage (36) configuré pour mettre à jour dynamiquement des informations de routage mémorisées en fonction d’informations obtenues du module décodeur et pour router un paquet de données reçu vers un destinataire en fonction desdites informations de routage (40, 42) mémorisées et en fonction desdites informations obtenues du module décodeur (32), ledit destinataire étant soit un desdits composants logiciels de haut niveau (28 1 , 28 2 ), soit un appareil distant (12 1 , 12 2 , 12 3 ) destinataire. Module de communication selon la revendication 1, dans lequel lesdites informations de routage mémorisées comprennent une première information (40) de routage associant une adresse d’appareil distant destinataire à un identifiant de composant logiciel de haut niveau, et une deuxième information (42) de routage associant un identifiant de connexion et une adresse d’appareil distant destinataire. Module de communication selon la revendication 2, dans lequel, suite à une réception d’un paquet de données en provenance du composant matériel (24), le module décodeur (32) est configuré pour extraire un identifiant de connexion et le module de routage (36) est configuré pour identifier un composant logiciel de haut niveau (28 1 , 28 2 ) destinataire à partir dudit identifiant de connexion, en utilisant conjointement lesdites première (40) et deuxième (42) informations de routage mémorisées. Module de communication selon l’une des revendication 1 à 3, dans lequel le module décodeur (32) est configuré pour extraire une information de type de paquet de données. Module de communication selon la revendication 4, dans lequel, lorsque le paquet de données est un paquet de commande contenant une commande de connexion en provenance d’un composant logiciel de haut niveau (28 1 , 28 2 ), le module décodeur (32) est adapté pour extraire une adresse d’appareil destinataire, et pour ajouter un lien entre ladite adresse d’appareil destinataire et un identifiant du composant logiciel de haut niveau de provenance dans la première information de routage. Module de communication selon l’une des revendications 1 à 5, comportant en outre un module générateur (34) de paquets de données, configuré pour générer au moins un autre paquet de données formaté selon le protocole de communication. Module selon la revendication 6, dans lequel ledit autre paquet de données généré comporte des informations d’erreur ou de dysfonctionnement. Procédé de communication radio courte distance selon la norme Bluetooth, mis en œuvre par un module logiciel intermédiaire implémenté par un processeur d’un module de communication radio conforme aux revendications 1 à 7, le module logiciel intermédiaire étant connecté entre au moins deux composants logiciels de haut niveau de mise en œuvre d’un protocole de communication, distincts et indépendants, et un composant matériel, le procédé comprenant des étapes, suite à la réception d’un paquet de données formé selon le protocole de communication, de : - décodage (50, 52) d’au moins une partie du paquet de données, - mise à jour (54-66) dynamiquement d’informations de routage mémorisées en fonction d’informations obtenues par décodage et -routage (56, 68) du paquet de données reçu vers un destinataire en fonction desdites informations de routage mémorisées et en fonction desdites informations obtenues par le décodage, ledit destinataire étant soit un desdits composants logiciels de haut niveau, soit un appareil distant destinataire. Procédé selon la revendication 8, comportant, suite à une réception d’un paquet de données en provenance d’un desdits composants logiciels de haut niveau, une identification (50) du composant logiciel de haut niveau de provenance, un décodage (52) d’au moins une partie du paquet de données pour obtenir une information de type de paquet et, en fonction du type de paquet, un identifiant de connexion ou une adresse d’appareil destinataire. Procédé selon la revendication 9, comportant une étape de détermination (54) consistant à déterminer si le paquet comporte des données utiles, et, en cas de détermination positive, une transmission (56) dudit paquet au composant matériel. Procédé selon la revendication 10, comportant, en cas de détermination négative, un traitement adéquat (60) du paquet de données en fonction des informations obtenues par le décodage et des informations de routage mémorisées, le traitement adéquat comportant : ignorer ledit paquet de données, ou transmettre le paquet de données à au moins un destinataire ou modifier le paquet de données et le transmettre à au moins un destinataire ou générer un autre paquet de données et transmettre ledit au moins un autre paquet de données à au moins un destinataire. Procédé selon la revendication 8 à 11, comportant en outre une détermination (58) consistant à déterminer si le paquet comporte une commande de nature à modifier les informations de routage mémorisées, et en cas de détermination positive, une modification (62) des informations de routage mémorisées. Procédé selon la revendication 8, comportant, suite à une réception (80) d’un paquet de données en provenance du composant matériel, un décodage (82) d’au moins une partie du paquet de données pour obtenir une information de type de paquet et, en fonction du type de paquet, un identifiant de connexion. Procédé selon la revendication 13, comportant une étape de détermination (84) consistant à déterminer si le paquet comporte des données utiles, et, en cas de détermination positive, une obtention (86) d’un identifiant d’un composant logiciel de haut niveau destinataire en fonction de l’identifiant de connexion et en utilisant conjointement lesdites première et deuxième informations de routage mémorisées. Programme d’ordinateur programme d’ordinateur comportant des instructions logicielles qui, lorsqu’elles sont mises en œuvre par un dispositif électronique programmable, mettent en œuvre un procédé de communication radio conforme aux revendications 8 à 14.