Brevet FR2719433A1 — publié le 19951103

A. PROCEDE DE TRANSMISSION DE MESSAGES ENTRE MODULES D'UN RESEAU MULTIPLEXE L'invention concerne un procédé de transmission de messages entre modules électroniques d'un réseau multiplexé de communication, notamment embarqué sur un véhicule automobile. L'invention s'applique à des réseaux automobiles répondant à différents protocoles, tels que VAN - Vehicle Area Network -, CAN ou J 1850. Un réseau de communications multiplexées est constitué généralement de plusieurs modules électroniques, notamment des calculateurs pour l'injection, le système antiblocage des roues ABS, la boîte de vitesse automatique, le tableau de bord ou la climatisation par exemple, interconnectés entre eux par des moyens de câblage mono ou bifilaire, réalisant un bus de transmission de données. Ce sont des modules d'acquisition de signaux provenant de capteurs comme le capteur d'usure de frein ou de pression de pneu, et des modules de commande d'une ou plusieurs applications regroupées localement dans le véhicule, telles que la commande d'actionneurs comme les feux de signalisation, de la planche de bord... Le transfert d'informations entre ces modules du réseau s'effectue par paquet indivisible appelé trame de signaux numériques, qui est obtenue par transformation de ces informations réalisée par un contrôleur de protocole et qui est véhiculée selon un principe de transmission asynchrone. Chaque trame comprend différents champs consécutifs, qui sont constitués chacun d'un nombre de bits déterminé, la trame étant elle-même ordonnée et transmise suivant un protocole fixé. La figure 1 est une représentation d'une trame utilisée dans un réseau de type VAN par exemple. Elle contient d'abord un champ de début de trame SOF suivi d'un champ d'identification IDEN de 12 bits, définissant la nature des données et les destinataires de la trame. La trame comprend ensuite un champ de commande COM à quatre bits de l'opération à exécuter, suivi par un champ de données DAT comportant un nombre entier d'octets. Ces données sont destinées à un ou plusieurs modules qui filtrent la trame par l'identificateur IDEN. Enfin, la trame se termine par un champ de vérification d'erreur FCS (Frame Check Sequence) et un champ de fin de trame. Le bus de communication reliant les modules est bifilaire et constitué par deux conducteurs référencés DATA et DATAb entre lesquels est transmise une tension constituant des signaux analogiques différentiels, le signe de la tension étant représentatif d'un état logique binaire. La figure 2 est le schéma d'une interface de communication entre un bus de données 1 et la partie "application" 2 d'un module du réseau, comprenant essentiellement un émetteur-récepteur différentiel de ligne 3 et un contrôleur de protocole 4. La partie émettrice de l'émetteur-récepteur de ligne assure la conversion des données émises DE par le module et entrant par une ligne unipolaire, en signaux différentiels de tension adaptés au bus (DATA, DATAb). La partie réceptrice transmet au contrôleur de protocole 4 des données DR reçues du bus, après correction éventuelle. Le contrôleur de protocole vérifie la nature des informations DR provenant de l'émetteur-récepteur de ligne, s'assure que les messages reçus respectent le protocole défini, gère les priorités, peut vérifier que les messages émis vers un module arrivent à destination, sérialise et met en forme suivant le protocole les informations DE à émettre, désérialise les informations reçues en vue de leur exploitation dans l'application, qui peut consister par exemple en une commande d'un actionneur ou d'un capteur, associée à des échanges d'informations bidirectionnels avec ceux-ci. Chaque module est capable de reconnaître des trames de signaux comportant des adresses différentes, destinées à des applications différentes regroupées dans le module. Or, pour transmettre des trames de données à plusieurs calculateurs connectés à un réseau de communication, on peut utiliser deux types d'adressage, l'un en point à point soit une trame par destinataire, l'autre en diffusion, soit une trame pour plusieurs destinataires. L'adressage en point à point est plus coûteux en termes de charge du réseau et en capacité de traitement du module producteur de trames. Il doit être justifié par exemple par des besoins de qualité sur la transmission, comme l'utilisation d'un acquittement. L'adressage en diffusion doit répondre à tous les besoins des destinataires d'une même trame, en particulier aux plus contraignants. Ainsi, lorsqu'un destinataire a besoin de l'information très fréquemment, les autres destinataires moins exigeants doivent filtrer les trames pour faire correspondre la fréquence des réceptions de trames à leur besoin. Cette différence de contrainte peut se traduire par une différence de précision sur une information, notamment par le besoin de n'utiliser qu'une trame sur deux ou n par rapport aux besoins les plus contraignants. Ce problème est souvent résolu par l'adaptation du module producteur qui émet des trames avec un identificateur par période d'émission ou par module destinataire. Cela induit des mécanismes coûteux car la charge du réseau est importante et les capacités de traitement du module producteur doivent être surdimensionnées par rapport aux besoins de l'ensemble des modules du réseau. Il est parfois résolu par l'acceptation de toutes les trames dans le contrôleur de protocole du module destinataire suivie d'un filtrage par l'application de ce module. Cela induit des mécanismes coûteux au niveau de chaque destinataire, notamment en mémoire de stockage ou en puissance de traitement. On peut aussi n'accepter qu'une seule trame dans le contrôleur de protocole après une lecture mais cela induit un retard sur l'information. Le but de la présente invention est de résoudre ce problème en permettant à chaque module récepteur d'accepter, à l'aide d'un mécanisme peu coûteux, un échantillon des trames disponibles sur le réseau, sans induire de retard sur l'information. Pour cela, l'invention propose un procédé de transmission de messages entre modules électroniques d'un réseau multiplexé de communication reliés par un bus de communication, caractérisé en ce qu'il comporte les étapes suivantes remplies par un module émetteur de trames: - définition d'un champ SAM dans le champ identificateur d'adresses de la trame; initialisation de la valeur du contenu du champ SAM à une valeur connue de tous les modules destinataires de la trame; - émission de la trame sur le bus de communication; - incrémentation, ou décrémentation, du contenu du champ SAM modulo sa valeur maximale; et les étapes suivantes remplies par chaque module récepteur de la trame: - filtrage avec masque de la trame reçue comportant une comparaison entre le champ identificateur IDEN de la trame avec un ou plusieurs identificateurs mis en mémoire dans le contrôleur de protocole du module récepteur en vue de son exploitation dans l'application du module et une comparaison d'une partie dudit champ SAM avec un modèle donné mémorisé par le module récepteur; - acceptation de la trame si les résultats des deux comparaisons sur le champ identificateur IDEN et sur la partie du champ SAM sont positifs. D'autres caractéristiques et avantages de l'invention apparaîtront à la lecture de la description suivante d'un exemple particulier de réalisation, cette description étant faite en relation avec les dessins joints dans lesquels, outre les figures 1 et 2 déjà décrites représentant respectivement une trame utilisée dans un réseau de type VAN et le schéma d'une interface de communication entre un bus de données et la partie "application" d'un module du réseau: - la figure 3 est la représentation d'une trame émise lors du procédé selon l'invention; - la figure 4 représente le déroulement du procédé selon l'invention appliqué à un réseau multiplexé de quatre modules électroniques; - la figure 5 est la représentation des différentes trames émises au cours du temps. Selon l'invention, le procédé de transmission de messages entre des modules électroniques d'un réseau multiplexé, reliés entre eux par un bus de communication, consiste tout d'abord à définir un champ SAM de N bits dans la partie identificateur de la trame. Dans le cas d'un réseau CAN, VAN ou J1850, l'identificateur IDEN comporte 12 bits et permet d'identifier les données transmises. Les calculateurs utilisent les identificateurs de trame pour sélectionner les trames qui les intéressent sur le réseau. On peut définir par exemple un champ SAM sur cinq bits de poids faible de l'identificateur, comme le montre la figure 3. Dans une seconde étape, facultative, le module producteur de trames initialise la valeur du contenu de ce champ SAM à une valeur connue de tous les modules destinataires, par exemple à une valeur nulle 0. Après chaque émission de la trame selon une période T, ce module producteur incrémente, ou décrémente, grâce à un compteur le contenu de ce champ SAM modulo sa valeur maximale 2N. Dans le cas d'un champ SAM sur 5 bits, il est initialisé à 0 et incrémenté, ou décrémenté, de 1 modulo 25 ou 32 après chaque émission de trame. Chaque module récepteur recevant l'information transmise doit alors effectuer un filtrage avec masque basé sur l'acceptation de la trame si une partie de son champ SAM est conforme à un modèle donné auquel elle est comparée. Ainsi, le filtrage consiste d'une part à comparer n bits de poids faible du champ SAM, n étant un entier positif inférieur au nombre N de bits du champ SAM, à une valeur donnée, 0 par exemple, alors que les bits de poids fort sont masqués et d'autre part à effectuer les autres tests habituels sur le champ identificateur IDEN. Si les résultats de ces deux comparaisons sont positifs, la trame pourra être acceptée, sinon la trame ne sera pas prise en compte par le module récepteur. La période de réception par le module récepteur de la trame émise sur le réseau est alors de 2n fois la période T de transmission. Chaque module récepteur doit donc disposer d'un filtre avec masque lui permettant d'accepter un échantillon des trames disponibles sur le réseau. Un tel filtre est aisément réalisable dans le contrôleur de protocole du module. La figure 4 représente le déroulement du procédé selon l'invention appliqué à un réseau multiplexé de quatre modules électroniques C1 à C4, reliés entre eux par un bus de communication B. Le module ou calculateur C1 émet des trames selon une période T, à destination des autres calculateurs. Pour chaque trame émise, un champ SAM est défini sur cinq bits, initialisé à 0 et incrémenté de 1 modulo 25=32 après chaque émission. Le calculateur C2 n'utilise que les informations délivrées par une trame sur deux, soit avec une période égale à 2nT soit 21T, n étant égal à 1. Pour cela, au cours de l'étape de filtrage par masque il réalise la comparaison entre la valeur des n bits de poids faible du champ SAM, soit le bit de poids le plus faible dans ce cas-là, et la valeur nulle. Ainsi, on voit sur la figure 4 que ce calculateur C2 prend en compte la première trame émise to dont le champ SAM est égal à 0 soit 00000 sur les cinq bits, puis la troisième trame t2 émise dont le champ SAM est égal à 2 soit 00010, et toutes les trames dont la période de réception est égale à 2T. Le calculateur ou module C3 n'a besoin que d'une trame sur quatre, c'est-à-dire avec une période de réception de 2n*T=22*T. Pour cela, les n=2 bits de poids le plus faible doivent être nuls. Quant au calculateur C4, la période de réception des trames qu'il doit utiliser est égale à 2n*T=23*T, de telle sorte que seules les trames dont les n=3 bits de poids faible sont égaux à 0 sont pris en compte. Le test sur les n bits de poids le plus faible du champ SAM de la trame reçue peut être réalisé au moyen d'une porte ET sur laquelle on rentre d'une part la valeur des cinq bits et d'autre part une valeur exprimée sur cinq bits dont les n bits de poids faible sont à 1 et les autres à 0, la sortie de cette porte ET devant être égale à 0 pour que la trame soit acceptée et prise en compte par le module récepteur. La figure 5 est la représentation des différentes trames émises au cours du temps. La première trame to émise par le module C1 est acceptée par tous les modules ayant un modèle de comparaison égal à 00000, alors que la seconde trame émise t1, dont le champ SAM est égal à 00001, est refusée par tous les modules. La troisième trame t2 émise ayant un champ SAM égal à 00010, tout comme la cinquième t4, la septième t6,.. .sont acceptée par le calculateur C2. Le calculateur C3 accepte la cinquième t4 et la neuvième trame t8 émises dont les champ SAM ont les deux bits de poids faible égaux à 0. Le calculateur C4 accepte la neuvième t8 et la dix-septième t16 trames dont les champs SAM ont les trois bits de poids faible égaux à 0. Ainsi, selon l'invention, le module producteur des trames sur le réseau fait évoluer le champ SAM, défini dans la partie adresse de chaque trame, selon une série connue de tous les modules destinataires, ce qui leur permet de n'accepter qu'une partie des trames émises par le producteur en n'acceptant qu'une partie des valeurs de cette série. Cela allège la charge du module récepteur car la trame non acceptée en raison de son champ SAM ne remonte pas au bloc application du module, dont la charge de travail est ainsi réduite. En conséquence, le calculateur du module récepteur reste d'un coût de fabrication relativement bas et le débit du réseau est optimisé, ce qui a son importance pour un réseau destiné à des véhicules automobiles. REVENDICATIONS 1. Procédé de transmission de messages entre modules électroniques d'un réseau multiplexé de communication reliés par un bus de communication, caractérisé en ce qu'il comporte les étapes suivantes remplies par un module émetteur de trames: - définition d'un champ SAM dans le champ identificateur IDEN d'adresses de chaque trame; - initialisation de la valeur du contenu du champ SAM de la première trame à émettre à une valeur connue de tous les modules destinataires de la trame; - émission de la trame sur le bus de communication; - incrémentation, ou décrémentation, du contenu du champ SAM modulo sa valeur maximale à chaque émission de trame; et les étapes suivantes remplies par chaque module récepteur de trames: filtrage avec masque de la trame reçue comportant une comparaison entre le champ identificateur IDEN de la trame avec un ou plusieurs identificateurs mis en mémoire dans le contrôleur de protocole du module récepteur en vue de son exploitation dans l'application du module et une comparaison d'une partie dudit champ SAM avec un modèle donné mémorisé par le module récepteur; - acceptation de la trame si les résultats des deux comparaisons sur le champ identificateur IDEN et sur la partie du champ SAM sont positifs. 2. Procédé de transmission selon la revendication 1, caractérisé en ce que ledit champ SAM est défini sur un nombre entier N de bits dudit identificateur d'adresses IDEN de la trame et en ce que le filtrage par chaque module récepteur est obtenu par comparaison de n bits de poids faible dudit champ SAM avec une valeur donnée, par exemple nulle, n étant un entier positif inférieur à N tel que la période de réception de la trame soit égale à 2n fois la période T de transmission, les N-n bits de poids fort étant masqués. 3. Procédé de transmission selon les revendications 1 et 2, caractérisé en ce que le filtrage avec masque de la trame reçue est réalisé par le contrôleur de protocole du module récepteur. 4. Procédé de transmission selon l'une des revendications 1 à 3, entre modules électroniques d'un réseau multiplexé de communication répondant au protocole VAN, caractérisé en ce que ledit champ SAM est défini sur 5 des bits de poids faible dudit champ identificateur IDEN des trames émises. 5. Réseau multiplexé de communication comportant plusieurs modules électroniques reliés par un bus de communication et transmettant les messages d'après le procédé selon les revendications précédentes, caractérisé en ce que chaque module producteur de trames comporte un compteur destiné à incrémenter, ou décrémenter, le contenu dudit champ SAM modulo sa valeur maximale 2n à chaque émission de trame.