Brevet FR2983993A1 — publié le 20130614

PROCEDE D'OPTIMISATION DE LA TRANSMISSION DE DONNEES PAR UN BUS DE COMMUNICATION La présente invention concerne un procédé d'optimisation de la transmission de données par un bus de communication, ainsi qu'un ensemble de calculateurs reliés par un bus de communication, et un véhicule électrique ou hybride mettant en oeuvre un tel procédé. Certains types de réseaux de communication relient entre eux en parallèle différents calculateurs qui effectuent chacun des traitements, pour obtenir des données qui sont envoyées ensuite sous forme de trame sur un bus commun de communication informatique de ce réseau, afin notamment d'échanger ces données entre eux. Ces réseaux de communication peuvent être du type CAN (Controller 15 Area Network), VAN (Vehicle Area Network), ou d'autres réseaux de ce genre, qui sont utilisés dans des domaines variés comme l'automobile, l'aéronautique, l'industrie ou le ferroviaire. Un problème qui se pose avec ce type de réseaux, est que si un nombre important de calculateurs envoient simultanément des trames de 20 données sur le bus de communication, les entrées de ces calculateurs recevant les données peuvent être saturées. On a alors un risque de perte d'informations. Ce risque existe notamment dans le cas où le réseau comporte un certain nombre de calculateurs identiques, effectuant de manière périodique 25 avec une période qui est commune, les mêmes types d'opérations. A partir d'un signal de réveil donné simultanément par le réseau à tous les calculateurs, on obtiendra en retour à la fin de chaque période des trames de données qui arriveront en même temps et qui peuvent saturer les entrées de ces calculateurs, alors que le reste du temps le réseau est libre. 30 En effet les calculateurs comportent généralement un nombre limité de buffers de réception, qui permettent chacun de recevoir et de stocker une trame de données représentant une information entrante, en fonction de leurs arrivées. Si des trames de données arrivent de manière très rapprochées, tous les buffers peuvent être occupés, les dernières informations arrivées ne trouvant pas de buffer libre ne sont pas stockées, et risques d'être perdues. De plus dans un réseau du type CAN, il n'y a pas de maître du bus de communication indiquant à chaque calculateur l'instant où il peut envoyer une trame de données. Pour résoudre ce problème, un procédé connu, présenté notamment par le document US-B2-7983250, comporte un protocole de communication entre plusieurs calculateurs d'un véhicule automobile, qui impose une synchronisation des échanges de données entre ces calculateurs. Toutefois, ce procédé est complexe à mettre en oeuvre. La présente invention a notamment pour but d'éviter ces inconvénients de la technique antérieure, en proposant un procédé simple permettant d'éviter des charges ponctuelles importantes sur des réseaux de communication. Elle propose à cet effet un procédé d'optimisation de la transmission de données par un bus de communication, reliant des calculateurs similaires comportant chacun un numéro d'ordre, qui effectuent de manière périodique avec une période identique pour tous, à partir d'un signal de réveil commun, un même type de tâche de calcul pour envoyer des résultats sur le bus de communication, caractérisé en ce que pour chaque calculateur il décale dans le temps avec un certain délai dépendant de son numéro d'ordre, le démarrage de la tâche de calcul. Un avantage du procédé d'optimisation de la transmission de données selon l'invention, est qu'il permet par une simple programmation individuelle de chaque calculateur dépendant de son numéro d'ordre, pour un réseau ne comportant pas de maître du bus de communication, de répartir régulièrement pendant chaque période les envois de trames de données, ce qui évite des surcharges ponctuelles de ce réseau. Le procédé d'optimisation de la transmission de données selon l'invention peut en outre comporter une ou plusieurs des caractéristiques suivantes, qui peuvent être combinées entre elles. Avantageusement, le décalage dans le temps des démarrages des 5 tâches, comporte un écart constant entre deux calculateurs comprenant des numéros d'ordre successifs. Avantageusement, l'écart de temps entre deux calculateurs comprenant des numéros d'ordre successifs, est égal à la durée de la période divisée par le nombre de calculateurs. 10 Avantageusement, pour des numéros d'ordre donnés de manière continue en partant de 1, le décalage dans le temps de chaque calculateur est égal à son numéro d'ordre multiplié par l'écart de temps. En particulier, le décalage dans le temps des démarrages des tâches, peut être appliqué pour tous les calculateurs à partir de l'arrivée du signal de 15 réveil commun. Avantageusement, à l'arrivée du signal de réveil commun, chaque calculateur commence par lire son numéro d'ordre pour calculer son retard, et applique un temps mort égal à ce retard, avant d'initialiser le système d'horloge qui périodiquement ordonne à la tâche de s'exécuter. 20 L'invention a aussi pour objet un ensemble de calculateurs similaires reliés par un bus de communication, comportant chacun un numéro d'ordre, qui effectuent de manière périodique avec une période identique pour tous, à partir d'un signal de réveil commun, un même type de tâche de calcul pour envoyer des résultats sur le bus de communication, cet ensemble mettant en 25 oeuvre un procédé d'optimisation de la transmission comportant l'une quelconque des caractéristiques précédentes. Les calculateurs peuvent comporter des logiciels identiques qui effectuent les mêmes tâches de calcul. En particulier, l'ensemble de calculateurs peut être prévu pour surveiller 30 des modules de batteries électriques. L'invention a de plus pour objet un véhicule électrique ou hybride comportant des modules de batteries pour alimenter des moteurs de traction, ce véhicule mettant en oeuvre un procédé de surveillance de chaque module par un calculateur, comportant l'une quelconque des caractéristiques précédentes. L'invention sera mieux comprise et d'autres caractéristiques et avantages apparaîtront plus clairement à la lecture de la description ci-après, donnée à titre d'exemple et de manière non limitative en référence aux dessins annexés dans lesquels : - la figure 1 est un schéma présentant un exemple de réseau de calculateurs comprenant un bus de communication ; - la figure 2 est un graphique présentant en fonction du temps, la charge de ce réseau qui peut être constatée à partir d'un signal de réveil, sans procédé d'optimisation de la transmission de données ; et - la figure 3 est un graphique présentant la charge de ce réseau dans les mêmes conditions, avec un procédé d'optimisation de la transmission de données selon l'invention. La figure 1 présente un réseau de calculateurs 1, comportant n calculateurs identiques 2 disposant chacun d'un numéro d'ordre i donné de manière continue en partant de 1, et comprenant les mêmes logiciels, qui sont reliés en parallèle entre eux par un bus de communication 4 du type CAN ou VAN. Chaque calculateur 2 reçoit de systèmes extérieurs non représentés, des informations qu'il traite par des tâches périodiques avec ses logiciels, afin de surveiller ces systèmes en obtenant des résultats de traitement qui sont envoyés sous forme de trame de données, aux autres calculateurs par le bus de communication 4. La durée des périodes de traitement des informations sont les mêmes pour les différents calculateurs 2. Pour démarrer le traitement des informations par les logiciels des calculateurs 2, par exemple au début de l'activité des systèmes suivis par ces calculateurs, un signal de réveil 6 est envoyé à tous les calculateurs pour leur donner l'ordre de commencer le traitement des informations reçues de ces systèmes. Les systèmes suivis par les calculateurs 2, peuvent par exemple comporter des modules de batteries d'un véhicule hybride ou électrique, qui alimentent des moteurs électriques de traction, chaque module devant être surveillé par un calculateur qui enregistre des informations venant de capteurs liés à ces modules, afin de suivre le fonctionnement des batteries. On peut notamment suivre des paramètres comme la tension, l'intensité du courant délivré ou la température de chaque module de batterie, afin d'assurer leur durée de vie ainsi que la sécurité de fonctionnement. La figure 2 présente en fonction du temps t, un signal de réveil 10 qui est envoyé aux différents calculateurs 2 à l'instant 0. Ce signal de réveil 10 est lié au démarrage de l'activité des systèmes à surveiller. En réponse à ce signal de réveil reçu 10, chaque calculateur 2 traite les informations venant de son système avec le logiciel qu'il contient. On obtient alors au temps t1, représentant le temps nécessaire pour le traitement par les logiciels de chaque calculateur 2, les résultats des traitements R qui arrivent en même temps, pour être transmis aux autres calculateurs par le bus de communication 4 sous forme de trame de données. On notera que les calculateurs identiques 2 comportant les mêmes logiciels, les temps de traitement des informations à partir du signal de réveil 10 sont sensiblement identiques, ce qui donne une série de résultats R qui arrivent groupés sur le bus de communication 4. Au temps t2, correspondant à un écart de temps t2 - t1 équivalent à la périodicité T de traitement des informations par les calculateurs 2, on a alors le même problème, la série de résultats R arrive de nouveau groupée sur le bus de communication 4. Ce groupement de résultats R se produisant de manière régulière, occasionne une charge importante du bus de communication 4. Les calculateurs 2 peuvent alors ne pas pouvoir traiter toutes les informations reçues, il y a un risque de perte de données. La figure 3 présente le fonctionnement du procédé d'optimisation de la transmission de données. Pour un ensemble de n calculateurs 2 comportant chacun un numéro d'ordre i, on inscrit dans les logiciels des calculateurs un moyen de calcul individuel du temps de retard pour le démarrage du traitement des informations, à partir du signal de réveil 6, de manière à échelonner régulièrement ces démarrages au cours de la première période T. L'écart de temps E pour le démarrage du traitement, entre deux calculateurs 2 successifs, est alors égal à la durée de la période T, divisée par le nombre de calculateurs n. Pour chaque calculateur 2, un moyen de calcul simple de ce retard, consiste à multiplier son numéro d'ordre i par l'écart de temps E. Pratiquement, au démarrage chaque calculateur 2 commence par lire son numéro d'ordre i pour calculer son retard, et applique un temps mort égal à ce retard, avant d'initialiser le système d'horloge qui périodiquement ordonne à la tâche de s'exécuter. Les durées des tâches étant identiques pour les différents calculateurs 2, on obtient alors bien une répartition régulière de l'obtention des résultats Ri pour chaque calculateur, avec i allant de 1 à n, qui sont envoyés avec un 20 écart de temps E. Par la suite pendant la durée d'utilisation des systèmes extérieurs, il peut y avoir une petite dérive des temps de traitement des informations par les logiciels des différents calculateurs. On peut obtenir des écarts E irréguliers entre les envois d'informations sur le bus de communication 4, 25 mais statistiquement ces envois resteront suffisamment répartis dans le temps, sans créer d'accumulation au même moment. La saturation du bus de communication 4 est alors peu probable. On obtient ainsi sans coût additionnel une meilleure fiabilité des systèmes de communication, qu'on peut appliquer dans de nombreux 30 domaines. En particulier on peut avantageusement appliquer le procédé suivant l'invention, au contrôle de batteries d'un véhicule électrique ou hybride, ce contrôle nécessitant une bonne fiabilité pour garantir la durée de vie de ces batteries ainsi que la sécurité. REVENDICATIONS1 - Procédé d'optimisation de la transmission de données par un bus de communication (4), reliant des calculateurs similaires (2) comportant chacun un numéro d'ordre (i), qui effectuent de manière périodique avec une période identique (T) pour tous, à partir d'un signal de réveil commun (6), un même type de tâche de calcul pour envoyer des résultats (Ri) sur le bus de communication, caractérisé en ce que pour chaque calculateur (2) il décale dans le temps avec un certain délai dépendant de son numéro d'ordre (i), le démarrage de la tâche de calcul. 2 - Procédé d'optimisation de la transmission de données selon la revendication 1, caractérisé en ce que le décalage dans le temps des démarrages des tâches, comporte un écart constant (E) entre deux calculateurs (2) comprenant des numéros d'ordre (i) successifs. 3 - Procédé d'optimisation de la transmission de données selon la revendication 2, caractérisé en ce que l'écart de temps (E) entre deux calculateurs (2) comprenant des numéros d'ordre (i) successifs, est égal à la durée de la période (T) divisée par le nombre de calculateurs (n). 4 - Procédé d'optimisation de la transmission de données selon la revendication 2 ou 3, caractérisé en ce que pour des numéros d'ordre (i) donnés de manière continue en partant de 1, le décalage dans le temps de chaque calculateur (2) est égal à son numéro d'ordre multiplié par l'écart de temps (E). 5 - Procédé d'optimisation de la transmission de données selon l'une 25 quelconque des revendications précédentes, caractérisé en ce que le décalage dans le temps des démarrages des tâches, est appliqué pour tous les calculateurs (2) à partir de l'arrivée d'un signal de réveil commun (6). 6 - Procédé d'optimisation de la transmission de données selon la revendication 5, caractérisé en ce qu'à l'arrivée du signal de réveil commun 30 (6), chaque calculateur (2) commence par lire son numéro d'ordre (i) pour calculer son retard, et applique un temps mort égal à ce retard, avantd'initialiser le système d'horloge qui périodiquement ordonne à la tâche de s'exécuter. 7 - Ensemble de calculateurs similaires (2) reliés par un bus de communication (4), comportant chacun un numéro d'ordre (i), qui effectuent de manière périodique avec une période identique (T) pour tous, à partir d'un signal de réveil commun (6), un même type de tâche de calcul pour envoyer des résultats (Ri) sur le bus de communication, caractérisé en ce qu'il met en oeuvre un procédé d'optimisation de la transmission de données selon l'une quelconque des revendications précédentes. 8 - Ensemble de calculateurs similaires (2) selon la revendication 7, caractérisé en ce que les calculateurs comportent des logiciels identiques qui effectuent les mêmes tâches de calcul. 9 - Ensemble de calculateurs similaires (2) selon la revendication 7 ou 8, caractérisé en ce qu'il est prévu pour surveiller des modules de batteries 15 électriques. 10 - Véhicule électrique ou hybride comportant des modules de batteries pour alimenter des moteurs de traction, caractérisé en ce que ce véhicule met en oeuvre un procédé de surveillance de chaque module par un calculateur (2), suivant l'une quelconque des revendications 1 à 6. 20