FR 2973612 A1 20121005 FR 1152667 A 20110331 PROCEDE DE TRANSMISSION DE DONNEES ISSUES DE CAPTEURS AUTONOMES, EN PARTICULIER DE COMPTEURS DE FLUIDE, CAPTEUR ET INSTALLATION METTANT EN OEUVRE CE PROCEDE. L'invention est relative à un procédé de transmission de données numériques issues de capteurs autonomes, ces données étant relatives à plusieurs paramètres, la transmission faisant intervenir une compression de données. L'invention concerne plus particulièrement, mais non exclusivement, 1 o des données issues de compteurs autonomes de consommation de fluide, notamment eau et/ou gaz, ou d'énergie notamment électricité, ou de capteurs autonomes de pression ou de niveau. Par capteurs autonomes, on désigne des capteurs comportant leur propre source d'énergie, généralement sous forme d'une pile au lithium, pour 15 effectuer les opérations de capture et de transmission à distance des données par un émetteur intégré, ou associé, au capteur. La transmission de données issues de tels capteurs autonomes, nécessite de limiter fortement le volume de données contenues dans les messages car, afin de garantir des performances optimales à des coûts réduits, 20 les débits utilisés pour la transmission des données sont faibles, et l'énergie n'est disponible qu'en quantité limitée provenant en général d'une pile, notamment au lithium, de capacité réduite. Certaines données doivent être transmises sans altération, et ne peuvent souffrir d'approximations lors de leur transfert par un système radio. Par 25 exemple, l'identifiant du transmetteur contenu dans la trame radio doit rester cohérent d'un bout à l'autre de la chaîne, sous peine de perdre l'origine même de la donnée. De même, un index de compteur de consommation destiné à la facturation devra refléter parfaitement la valeur lue par le client sous peine d'un risque de litiges ultérieurs. 30 Par contre, la transmission de différents points de mesure d'une grandeur analogique permettant, par exemple, d'appréhender ultérieurement une courbe de tendance de cette grandeur, peut être affectée de diverses approximations raisonnables par rapport à l'application visée. Ainsi, une courbe de consommation d'un compteur d'eau ne nécessite pas une précision à quelques 35 litres près, surtout lorsqu'il s'agit de mesurer des quantités importantes de liquide écoulé, notamment de plusieurs mètres cubes. On conçoit qu'il convient surtout de détecter l'évolution de la consommation, par exemple plusieurs mètres cubes par heure, et qu'une imprécision de quelques litres ou dizaines de litres sur une telle consommation est sans importance pour la bonne interprétation du phénomène. L'invention a pour but, surtout, de fournir un procédé de transmission de données numériques qui permet de réduire, par une compression simple et efficace, le volume des données transmises tout en permettant une interprétation correcte de ces données. Le procédé doit permettre d'économiser l'énergie du capteur autonome et de prolonger sa durée de vie à nombre de paramètres pris en compte identique, ou d'augmenter le nombre de paramètres pris en compte pour une durée de vie identique. Selon l'invention, le procédé de transmission de données numériques 1 o du genre défini précédemment est caractérisé en ce que : - les paramètres concernés sont classés en au moins deux catégories, à savoir une première catégorie de paramètres dont les données doivent être transmises avec exactitude, sans approximations, et une deuxième catégorie de paramètres dont les données peuvent être transmises sous forme de valeurs approchées, 15 - les données pour la seconde catégorie de paramètres sont compressées selon un algorithme qui réduit le codage des données à un nombre M d'octets inférieur à celui N qu'il faudrait pour coder et transmettre de manière exacte les données sur toute l'étendue de la plage possible de valeurs pour ce paramètre, - et les données compressées sont transmises sous forme de valeurs tronquées 20 avec un code permettant d'identifier l'algorithme utilisé pour reconstituer, à la réception, la valeur approchée en appliquant l'algorithme inverse. Avantageusement, l'algorithme consiste : - si la valeur à transmettre se trouve dans une plage limitée de toute l'étendue possible des valeurs du paramètre, cette plage limitée ne nécessitant qu'un 25 codage réduit, à transmettre la valeur exacte avec ce codage réduit ; - si la valeur à transmettre se trouve en dehors de la plage limitée, à effectuer une opération pour amener le résultat de l'opération dans la plage limitée, et à transmettre la valeur entière du résultat de l'opération, accompagnée d'un 3o élément codé définissant l'opération effectuée. Avantageusement, l'opération effectuée est une division de la valeur à transmettre par un nombre diviseur déterminé, notamment une puissance de 2, soit 2n. Des plages de valeurs en dehors de la plage limitée peuvent être 35 définies, ainsi que l'opération associée à chaque plage pour ramener le résultat de l'opération dans la plage limitée. De préférence, dans le cas de transmissions de trames courtes, en particulier de 30 octets, pour des valeurs issues de compteurs autonomes d'eau ou de gaz, avec capteur et émetteur alimentés par une même source électrique, la plage limitée retenue correspond à des valeurs absolues inférieures à 128 (ou 27), tandis que les valeurs situées en dehors de cette plage limitée sont divisées par une puissance de 2 suffisante pour ramener le quotient à une valeur absolue inférieure à 128, la transmission portant sur le nombre entier du quotient et sur le diviseur utilisé. 128 A 8192 : division par 512, transmission de la partie entière, 15 Le diviseur peut être codé sur 2 bits comme suit: 00 : pas de compression ; 01 : division par 8, soit 23 ; : division par 64, soit 26 ; 11 : division par 512, soit 29. 20 Le procédé peut être appliqué à des paramètres concernant l'évolution du débit et/ou de la consommation d'eau dans le temps, l'estimation des fuites, pour lesquels des valeurs approchées suffisent, la transmission pour chaque valeur portant sur un octet correspondant à la valeur approchée ou tronquée, et à 2 bits 25 pour le code du diviseur. L'invention concerne également un capteur autonome avec émetteur, caractérisé en ce qu'il comporte un moyen de calcul programmé pour compresser les valeurs fournies par le capteur selon le procédé défini précédemment. 30 L'invention est également relative à une installation pour mise en oeuvre du procédé défini précédemment, comprenant un capteur autonome avec émetteur pour transmettre les valeurs captées de paramètres, et un récepteur pour recueillir les valeurs transmises, caractérisée en ce que : 35 - le capteur comporte un moyen de calcul programmé pour compresser les valeurs fournies par le capteur selon le procédé défini précédemment, - et le récepteur comporte un moyen de calcul programmé pour décompresser les valeurs transmises selon le procédé inverse de la compression. Pour une valeur A, l'algorithme peut être le suivant : - 128 et le diviseur est transmis sous forme codée sur 2 bits L'invention consiste, mises à part les dispositions exposées ci-dessus, en un certain nombre d'autres dispositions dont il sera plus explicitement question ci-après à propos d'un exemple de réalisation décrit avec référence aux dessins annexés, mais qui n'est nullement limitatif. Sur ces dessins : Fig. 1 est une représentation schématique d'un compteur d'eau ou de gaz équipé d'un calculateur/transmetteur programmé pour mettre en oeuvre le procédé de l'invention. Fig. 2 est un schéma sommaire du procédé selon l'invention et Fig. 3 est un graphe illustrant, en fonction du temps porté en abscisse, les index réels lus, les index calculés et transmis selon l'invention, et l'écart entre ces index, porté en ordonnée. En se reportant à Fig. 1 des dessins, on peut voir un capteur autonome 1 constitué par un compteur 2 d'eau ou de gaz. Ce compteur est équipé d'un moyen de calcul ou calculateur 3 avec transmetteur muni d'une antenne 4 pour transmission, notamment par VHF, de données à un récepteur distant 5 associé à un moyen de calcul ou calculateur 6. Le capteur 1 est qualifié d'autonome car il comporte sa propre source d'énergie (non représentée), en particulier sous forme d'une pile au lithium, dont la durée souhaitée est de plusieurs années, en particulier de l'ordre d'une dizaine d'années. Il est donc approprié de limiter la consommation d'énergie, et en particulier de limiter le volume de données contenues dans les messages transmis afin de garantir des performances optimales à des coûts réduits. En particulier, la longueur des trames transmises est minimisée, et généralement limitée à 30 octets. Selon le procédé de l'invention, le calculateur/transmetteur 3 est programmé pour classer les paramètres relatifs au compteur 2, en au moins deux catégories. Une première catégorie est formée par les paramètres dont les données doivent être transmises exactement, sans approximations. Ces paramètres comprennent notamment l'identifiant du compteur, de même que l'index de compteur destiné à la facturation. L'identifiant du compteur, ou numéro de compteur est généralement transmis sur 8 octets, l'index de compteur est généralement transmis sur 4 octets, ce qui permet de refléter parfaitement la valeur de chacun de ces paramètres. Les données correspondantes ne sont pas compressées pour la transmission. Une seconde catégorie de paramètres correspond à ceux dont les données peuvent accepter une moindre précision, par exemple des données relatives au débit, à la consommation horaire, à la détection d'un début de fuite. Les données de cette seconde catégorie sont alors compressées selon un algorithme, programmé dans le calculateur 3, qui réduit le codage des données à un nombre M d'octets inférieur à celui N qu'il faudrait pour coder et transmettre de manière exacte les données sur toute l'étendue de la plage possible de valeurs pour le paramètre. Les données compressées sont transmises sous forme de valeurs tronquées avec un code permettant d'identifier l'algorithme utilisé pour réduire le codage. La valeur approchée est restituée à la réception, à l'aide du calculateur 6, 1 o associé au récepteur 5, programmé pour appliquer l'algorithme inverse à la valeur reçue. Le procédé de l'invention consiste ainsi à implémenter dans une transmission de données, à trames courtes, un système de compression avec approximation de valeurs, en s'assurant que les inexactitudes générées en final 15 sont limitées à un pourcentage acceptable de la valeur mesurée en fonction de l'application finale, et cela quelle que soit la valeur de la grandeur considérée. Le traitement général est le suivant : - soit une valeur A d'un paramètre qui peut se situer dans une plage [x0 ; y0] 20 donnée; - normalement, pour couvrir cette plage de valeurs, il faudrait coder sur N octets, de façon à ce que les valeurs extrêmes puissent être transmises, même si cela n'arrive pas fréquemment ; - selon le procédé de l'invention, on décide de coder la valeur de A sur M octets, M 25 étant inférieur à N, - et une approximation de la valeur transmise est effectuée dès que cette valeur A dépasse la capacité de M ; - en outre, la transmission porte non seulement sur M, mais sur une information relative à la méthode d'approximation utilisée, de façon à pouvoir appliquer 30 l'algorithme inverse à la réception des données. Ce procédé peut être appliqué à plusieurs seuils croissants, avec des méthodes d'approximation différentes, mais connues et toujours transmises avec les données. Pour faciliter la compréhension de ce procédé, un exemple particulier 35 est considéré ci-après : - soit à transmettre une valeur A d'un paramètre constitué par le volume d'eau consommé en 1 h. Cette valeur A est susceptible de varier, dans le cas qui nous intéresse, en théorie entre -13 000 à +13 000 litres. Ces données sont relatives à un compteur (référence DN40), présentant un débit maximal de 13 m3/h. La plage donnée [x0 ; y0] correspond donc aux valeurs [-13 000 ; +13 000]. Les valeurs négatives correspondent à un possible retour d'eau au niveau du compteur, ce qu'il convient d'identifier par le signe négatif. Pour coder en binaire de manière exacte la totalité des valeurs possibles de la plage -13 000 à +13 000, il faudrait normalement 2 octets pour transmettre de manière exacte les valeurs possibles de ce paramètre. En effet, 13000 = 213+212+29+27+26+23 Exprimé en binaire 13000 s'écrit : 11001011001000 1 o Il faut donc 14 bits, à faire précéder d'un bit de signe, soit 15 bits, nécessitant 2 octets pour la transmission. Sur Fig. 2, on a représenté par des rectangles Dl et D2 les deux octets qu'il faudrait transmettre. Selon le procédé de l'invention, on effectue une compression des 15 données constituées par les valeurs A du paramètre, pour ne transmettre ces données que sur un octet, en appliquant l'algorithme suivant : - lorsque la valeur absolue de A est inférieure à 128, la valeur exacte est transmise, sans approximation, avec le code identifiant d'une valeur exacte ; - lorsque la valeur absolue de A est égale ou supérieure à 128 et inférieure à 20 1024, cette valeur absolue est divisée par 8, et seule la partie entière du quotient est transmise vers le récepteur 5, avec le code identifiant le diviseur 8 ; - lorsque la valeur absolue de A est égale ou supérieure à 1024 et inférieure à 8192, cette valeur est divisée par 64 et seule la partie entière du quotient est transmise, avec le code identifiant le diviseur 64 ; 25 - lorsque la valeur absolue de A est égale ou supérieure à 8192, elle est divisée par 512 et seule la partie entière du quotient est transmise, avec le code identifiant le diviseur 512. Il y a ainsi transmission de valeurs tronquées ; en même temps que ces valeurs 30 tronquées, un code est transmis de manière compacte sur 2 bits pour indiquer le type de compression effectuée, notamment sous la forme : 00 : pas de compression ; 01 : division par 8 ; : division par 64 ; 35 11 : division par 512. L'algorithme peut se résumer comme suit : - 128 Le résultat du calcul de compression effectué par le calculateur 3, programmé à cet effet, est schématisé sur Fig. 2 par les rectangles D3 et D4. D3 correspond à 1 octet, tandis que D4, pour le code du type de compression effectué, ne correspond qu'à 2 bits. Alors que pour une transmission standard il fallait 2 octets, selon l'invention, la transmission ne nécessite que : 1 octet + 2 bits, soit au total 10 bits contre 16 bits selon la transmission standard. Le taux de compression est donc de (16 - 10)/16 = 37,5 %. L'octet D3 correspond toujours à une valeur comprise entre -128 et +128, cette valeur étant décompressée à l'aide des 2 bits de D4 pour restituer la valeur tronquée, ce qui est effectué par le calculateur 6 également programmé à cet effet. La valeur tronquée restituée correspond à deux octets D'1, D'2. Exemple : L'algorithme est appliqué à la valeur 13000 évoquée précédemment, ce qui implique que la valeur est divisée par 512, ce qui donne 13000/512 = 25,39... Seule la valeur entière 25 est transmise sous un octet s'écrivant : 00011001, accompagné du code 512 sous 2 bits, soit 11. A la réception, l'algorithme inverse est appliqué par le calculateur 6 à la valeur reçue 25, pour donner 25x512 = 12800. L'approximation de la valeur exacte 13000 est (13000 - 12800) /13000 = 1.6%, ce qui est tout à fait acceptable pour le paramètre considéré. Cet exemple montre que, moyennant une certaine approximation sur les valeurs transmises, approximation en fait égale au reste de la division, on peut compresser de façon intéressante une trame très courte. Le procédé est encore plus intéressant si on l'applique à plusieurs champs similaires à transmettre simultanément dans la même trame, et d'autant plus que les champs ont des tailles en octets importantes. Prenons un autre exemple : - soit à transmettre les valeurs A du paramètre : [ volume d'eau consommée en 1 h, pour les vingt-quatre dernières heures ] dans une même trame ; - la longueur maximale de trame autorisée par le système radio utilisé est de 30 octets. Sans approximation, il faudrait transmettre vingt-quatre fois 2 octets, soit 48 octets, ce qui nécessiterait donc deux transmissions successives, chaque transmission pour une trame de 30 octets. Avec le procédé de l'invention exposé précédemment, il faudra transmettre vingt-quatre fois 1 octet + vingt-quatre fois 2 bits, soit 24 octets + 6 octets (qui correspondent aux 48 bits), et donc au total 30 octets seulement. Le taux de compression est de (48 -30)/48 = 37,5 %. Mais le plus important est que le transmetteur est capable d'encapsuler les données compressées dans une seule trame ne nécessitant qu'une seule transmission, alors que la transmission des valeurs exactes aurait nécessité de 1 o transmettre deux trames successives, soit une division par 2 du budget de transmission selon le procédé de l'invention. Les exemples donnés montrent une bonne approximation des valeurs transmises. En réduisant encore la taille du champ compressé et en augmentant le nombre et la valeur des facteurs de division, la compression peut être plus forte 15 mais les approximations seront plus importantes. Le choix du degré de compression, notamment la valeur des facteurs de division, relève d'une question d'équilibre et de compromis. Le graphique de Fig. 3 illustre l'exemple de la transmission pour les vingt-quatre dernières heures du volume d'eau consommée en 1 h. En abscisse, 20 le temps est porté en heures. En ordonnée, selon la graduation figurant à droite, sont portés les volumes d'eau cumulés, représentés par une double barre pour chaque valeur considérée. La barre B1 située à gauche correspond à l'index réel, et la barre B2 située à droite correspond à l'index calculé transmis 25 La différence entre les deux index est représentée sous forme de points réunis suivant une ligne brisée C, tracée à travers les barres de consommation et indiquant l'écart en litres entre l'index réel et l'index reconstitué après approximation, suivant une graduation en litres portée à gauche en ordonnée. Il apparaît que les écarts entre index calculé et index réel sont très 30 faibles, au maximum de quelques litres sur des valeurs supérieures à 220 000. Le très faible impact du procédé de compression mis en oeuvre apparaît clairement. L'opération de compression porte, selon l'exemple décrit, sur une division. D'autres opérations de compression sont possibles, notamment par soustraction d'une constante déterminée pour une plage déterminée, ou tout autre 35 opération mathématique adaptée rendant l'information à transmettre plus compacte. REVENDICATIONS1. Procédé de transmission de données numériques issues de capteurs autonomes (1), ces données étant relatives à plusieurs paramètres, la transmission faisant intervenir une compression de données, caractérisé en ce que - les paramètres concernés sont classés en au moins deux catégories, à savoir une première catégorie de paramètres dont les données doivent être transmises avec exactitude, sans approximations, et une deuxième catégorie de paramètres 1 o dont les données peuvent être transmises sous forme de valeurs approchées, - les données pour la seconde catégorie de paramètres sont compressées selon un algorithme qui réduit le codage des données à un nombre M d'octets inférieur à celui N qu'il faudrait pour coder et transmettre de manière exacte les données sur toute l'étendue de la plage possible de valeurs pour ce paramètre, 15 - et les données compressées sont transmises (D3) sous forme de valeurs tronquées avec un code (D4) permettant d'identifier l'algorithme utilisé pour reconstituer, à la réception, la valeur approchée en appliquant l'algorithme inverse. 2. Procédé selon la revendication 1, caractérisé en ce que l'algorithme consiste : 20 - si la valeur à transmettre se trouve dans une plage limitée de toute l'étendue possible des valeurs du paramètre, cette plage limitée ne nécessitant qu'un codage réduit, à transmettre la valeur exacte avec ce codage réduit, accompagnée d'un élément codé indiquant qu'il s'agit de la valeur exacte, 25 - si la valeur à transmettre se trouve en dehors de la plage limitée, à effectuer une opération pour amener le résultat de l'opération dans la plage limitée, et à transmettre la valeur entière du résultat de l'opération, accompagnée d'un élément codé définissant l'opération effectuée. 30 3. Procédé selon la revendication 2, caractérisé en ce que l'opération effectuée est une division de la valeur à transmettre par un nombre diviseur déterminé, 4. Procédé selon la revendication 3, caractérisé en ce que le nombre diviseur est 35 une puissance de 2, soit 2n. 5. Procédé selon l'une quelconque des revendications précédentes, caractérisé en ce que des plages de valeurs, en dehors de la plage limitée, sont définies, ainsique l'opération associée à chaque plage pour ramener le résultat de l'opération dans la plage limitée. 6. Procédé selon l'une quelconque des revendications précédentes, caractérisé en ce que, dans le cas de transmissions de trames courtes, en particulier de 30 octets, pour des valeurs issues de compteurs autonomes d'eau ou de gaz, avec capteur et émetteur alimentés par une même source électrique, la plage limitée retenue correspond à des valeurs absolues inférieures à 128 (ou 27), tandis que les valeurs situées en dehors de cette plage limitée sont divisées par une 1 o puissance de 2 suffisante pour ramener le quotient à une valeur absolue inférieure à 128, la transmission portant sur le nombre entier du quotient et sur le diviseur utilisé. 7. Procédé selon la revendication 6, caractérisé en ce que, pour une valeur A, 15 l'algorithme est le suivant : - 128 8. Capteur autonome avec émetteur, caractérisée en ce qu'il comporte un moyen de calcul (3) programmé pour compresser les valeurs fournies par le capteur selon le procédé de l'une quelconque des revendications précédentes, 25 9. Installation pour mise en oeuvre du procédé selon l'une quelconque des revendications précédentes, comprenant un capteur autonome avec émetteur pour transmettre les valeurs captées de paramètres, et un récepteur pour recueillir les valeurs transmises, caractérisée en ce que : 30 - le capteur (2) comporte un moyen de calcul (3) propre à compresser les valeurs fournies par le capteur selon le procédé de l'une quelconque des revendications précédentes, - et le récepteur (5) comporte un moyen de calcul (6) propre à décompresser les valeurs transmises selon le procédé inverse de la compression. 35