Brevet FR2715751A1 — publié le 19950804

La présente invention concerne un procédé de codage d'informations sous forme de codes à barres, ainsi qu'un procédé de lecture de ces derniers. La présente invention concerne également des dispositifs mettant en oeuvre ces procédés. On entendra ici par "code à barres", tout système de codage de l'information, notamment de caractères alphanu- mériques, au moyen de la juxtaposition de barres présentant en alternance un premier puis un second indice de réflexion adaptés à la lecture optique, et ayant des épaisseurs variables. On citera comme exemples, parmi les codes connus et normalisés, les codes connus sous les dénominations "UPC", "CODABAR", "Deux parmi cinq entrelacés", représentant les nombres ainsi que quelques caractères spéciaux, ainsi que le "code 39", le "code 93" et le "code 128", ce dernier permet- tant de coder tous les caractères de la table ASCII. Lors du choix d'un système de codage de l'infor- mation sous forme de code à barres, il faut sélectionner le système disposant d'un alphabet suffisant aux besoins de l'application. En effet certains systèmes ne peuvent que représenter des chiffres voire quelques caractères spéciaux. Ceci est le cas du code "CODABAR". D'autres offrent une police de caractères plus riche, incluant par exemple l'alphabet (code 128 par exemple). Suivant l'application envisagée, la fiabilité de lecture, c'est-à-dire le risque d'erreur d'interprétation d'un code à barres, peut être déterminante et peut nécessiter le choix d'un système de codage permettant un auto-contrôle sur chaque caractère. Les moyens d'impression de codes à barres ainsi que les lecteurs qui sont utilisés peuvent être sources de certaines limites quant à l'utilisation de ces systèmes de codage. Lors du codage d'une information sous forme de codes à barres, il faut parfois prendre en compte la densité des informations pouvant être stockées, c'est-à-dire le nombre maximum de caractères qui peuvent êtres codés sur une longueur de code à barres donnée. La richesse de la police influe notamment sur la densité des informations stockées dans un code à barres. Pour une résolution de 190 Mm (c'est-à-dire que la plus petite ligne, ou barre, verticale aura cette largeur) et un ratio de 2.2/1 (rapport entre une petite ligne et une ligne large), le système de codes "Deux parmi cinq entrelacé" permet de coder environ 7 caractères par cm. Pour une résolution de 200 jm (c'est-à-dire que la plus petite ligne verticale aura cette largeur) et un ratio de 2.25/1 (rapport entre une petite ligne et une ligne large), le système "code 39" permet de coder environ 3.7 caractères par cm. Le code 93, pour une résolution de 200 Mm, peut atteindre une résolution de 4 caractères par centimètre. Si l'on souhaite augmenter ou réduire cette densité, il est alors nécessaire de modifier la largeur de chacune de ces barres verticales. Néanmoins, ces codes à barres étant imprimés par des systèmes d'impression classiques, tel qu'une imprimante laser, la largeur minimale d'une barre verticale doit nécessairement tenir compte de la résolution de cette imprimante. De plus, même si l'on réussit à imprimer de tels codes à barres, il faut utiliser des lecteurs de codes à barres de résolution de plus en plus fine: de tels lecteurs deviennent alors compliqués, chers et peu commodes. Ceci est d'autant plus vrai si l'on souhaite, pour des raisons de coût, utiliser des lecteurs de type crayon optique. Avec ce type de lecteur, le déplacement du faisceau sur le code à barres est assuré par l'utilisateur. La vitesse de balayage du code à barres est donc directement fonction de celui-ci:toute variation de cette vitesse de déplacement perturbe la qualité de la lecture, introduit des erreurs d'interprétation entre barre large et étroite, surtout si le ratio entre les deux est faible (de l'ordre de 2), nécessitant parfois de multiples balayage avant de pouvoir obtenir une saisie correcte. Ce problème nuit au confort de l'utilisateur. Ainsi pour des raisons pratiques, la largeur minimale d'une barre verticale se trouve nécessairement limitée. D'un autre côté, si l'on souhaite stocker un grand nombre d'informations au sein d'un même code à barres, il est nécessaire de réaliser des codes à barres de longueur assez importante. De par leur longueur, les codes à barres ainsi réalisés se révèlent peu pratiques à l'usage. D'une manière générale, la présente invention vise à pallier ces inconvénients en permettant d'augmenter la densité d'informations stockées par unité de longueur de code à barres. Cet objet est d'autant plus intéressant pour la demanderesse qu'elle utilise dans le cadre de la demande de brevet français N 93.10352 des codes à barres pour commander un télécopieur quant à son fonctionnement, notamment en mémo- risant des numéros de correspondants sur des codes à barres que l'utilisateur balayera par la suite avec un crayon optique pour l'envoi d'une télécopie. Les inventeurs tout d'abord ont cherché à développer un procédé de codage d'informations (notamment alphanumériques) sous forme de codes à barres dans lequel la densité d'informations par unité de longueur est élevée. Parallèlement les inventeurs ont cherché à développer un tel procédé favorisant, au point de vue de l'encombrement, les suites de chiffres, dans le cadre de l'application à la commande de télécopieurs. Les inventeurs ont aussi cherché à développer un procédé de codage permettant de maintenir des ratios entre barre large et barre mince élevés, ceci garantissant même pour des densités élevées un pourcentage de succès à la première lecture important et par conséquent une utilisation confortable de lecteurs de type crayon optique. Les inventeurs ont également cherché à mettre au point un code à barres de structure simple, dont la mise en oeuvre, lors du transcodage des informations à coder et de leur matérialisation sous forme de code à barres, puisse se faire au moyen de dispositifs logiques de structure simple et avec des moyens d'impression classiques au milieu de la bureautique. Enfin, les inventeurs ont, de manière similaire, cherché à développer un code à barres de structure simple, dont la mise en oeuvre lors du décodage des codes à barres puisse se faire au moyen de dispositifs logiques de structure simple et par conséquent peu coûteux. Dans ces conditions, la présente invention a tout d'abord pour objet un procédé de codage d'informations sous forme de code à barres, caractérisé en ce qu'il consiste: - à représenter chacune des informations à coder par un mot binaire dit "simple" de m bits, - à matérialiser en code à barres le mot binai- re: d'une part en représentant par ordre d'apparition dans le mot binaire chacun des bits par une barre d'un premier ou d'un second indice de réflexion de largeur unitaire prédéter- minée selon qu'il est de valeur binaire égale à "O" ou "1" ; et d'autre part, en représentant une juxtaposition de deux ou plusieurs bits de même valeur binaire par une seule barre ayant l'indice de réflexion correspondant à cette valeur et présentant une largeur supérieure à ladite largeur unitaire prédéterminée, la largeur supérieure étant un multiple réel de 2n fois la largeur prédéterminée unitaire, n étant égal au nombre de bits juxtaposes. Dans un mode préféré de réalisation, ledit multiple réel est choisi égal à un. Grâce à ces dispositions le procédé de codage pallie les inconvénients rappelés ci-dessus. On observera tout d'abord que la structure du codage des informations (le plus souvent constituées par des caractères alphanumériques) est simple puisqu'elle fait intervenir en premier lieu un transcodage sous forme binaire desdites informations, et ensuite une matérialisation du transcodage consistant à affecter une barre présentant un premier indice de réflexion à l'une des valeurs logiques "1" ou "0", et une barre présentant l'autre indice de réflexion à l'autre valeur logique. En outre, la représentation d'une succession de plusieurs bits de même valeur logique est particulièrement simple, puisqu'elle consiste à affecter au groupe de bits de même valeur une barre dont la largeur croît avec le nombre de bits juxtaposés. A cet égard, la loi de progression choisie (2n, "n" étant égal au nombre de bits de même valeur logique juxtaposés) est particulièrement simple à mettre en oeuvre avec les moyens logiques actuels. En outre, une telle loi permet un décodage nettement plus fiable que dans le cas o la largeur supé- rieure croîtrait de façon simplement linéaire en fonction du nombre de bits de même valeur logique. Une progression des largeurs de barre selon l'invention permet avantageusement de compenser des vitesses de balayage variables du crayon optique utilisé pour le décodage. Par ailleurs, pour une même résolution d'un dispositif lecteur ou de représentation graphique, par exemple d'impression, on constate une très nette augmentation de la densité de caractères par unité de longueur, notamment par rapport aux codes de l'art antérieur rappelés plus haut. Avantageusement, dans un mode préféré de réalisa- tion, et selon une autre caractéristique de l'invention, lorsque plusieurs informations doivent être codées sur un même code à barres, les mots binaires représentant chacune desdites informations sont juxtaposés pour former un seul et même mot binaire dit "complexe" ; chaque mot binaire complexe étant matérialisé en code à barres de la même façon que les mots binaires simples. Grâce à cette caractéristique, on peut réduire encore plus la taille d'un code à barres comportant plusieurs informations. En effet, dans l'état de la technique, et notamment dans le code 39, chaque caractère codé sous forme d'un code à barres doit être séparé des autres caractères par un intervalle, ce qui augmente la taille d'un code à barres global comportant plusieurs caractères et nécessite pour le décodeur de réaliser un traitement spécial. Grâce à la présente invention, les mots binaires sont juxtaposés, aucun espacement n'étant donc présent entre eux. La densité des informations est de ce fait augmentée et la complexité du décodeur réduite. Selon une autre caractéristique avantageusement mise en oeuvre dans un mode préféré de réalisation du procédé conforme à l'invention, ladite largeur unitaire prédéterminée est la même pour les barres du premier indice de réflexion et pour celles du second indice. Cette caractéristique permet une mise en oeuvre particulièrement aisée du procédé de codage. En effet, l'af- fectation d'une même largeur unitaire prédéterminée pour les barres du premier indice de réflexion et celles du second indice est un facteur supplémentaire de simplification pour la mise en oeuvre du procédé conforme à l'invention. Dans ces conditions, on observe que l'un des buts de la présente invention, à savoir la simplicité de mise en oeuvre est atteint, ce qui n'est pas le cas pour d'autres systèmes de codage mentionnés plus haut. Le procédé de codage conforme à l'invention présente par ailleurs un degré de sécurité particulièrement élevé, en raison du fait que le codage binaire des informa- tions se fait sur m bits (sept dans un mode préféré de réalisation). Cela permet, à l'issue de la lecture, et comme détaillé ci-après, de contrôler facilement la présence ou l'absence d'un bit, en effectuant un comptage modulo m des bits d'information reconnus. Dans ce mode préféré de réalisation on encadre les mots binaires d'informations par un mot binaire de début et un mot binaire de fin de code à barres, de structures prédéterminées. De telles dispositions permettent de limiter encore mieux les erreurs de lecture, tout en fournissant à la logique un moyen simple de déterminer le début et la fin du mot complexe codé sous forme de code à barres. Avantageusement dans le mode préféré de réalisa- tion, lorsque les informations à transmettre sont essentiel- lement constituées par des suites de chiffres, on affecte à ces derniers des mots binaires dont la transcription sous forme de code à barres, conformément au procédé énoncé ci- dessus, est la plus courte possible, tandis que l'on affecte aux lettres les autres mots binaires. Grâce à cette disposi- tion, on augmente encore plus la densité de caractères codés lorsque ces derniers sont constitués par les chiffres. Cette disposition est particulièrement avantageuse pour l'applica- tion de l'invention au domaine de la télécopie. La présente invention a également pour objet un dispositif de codage conformément au procédé défini plus haut. Selon cet aspect de l'invention, le dispositif est caractérisé en ce que pour lui permettre de générer des codes selon le procédé défini ci-dessus, il comporte une unité centrale adaptée à exécuter des programmes enregistrés dans des moyens de mémorisation, des moyens permettant à un utilisateur d'entrer des caractères destinés à être codés, des moyens adaptés à représenter graphiquement des codes à barres, des moyens de mémorisation dans lesquels est notam- ment enregistré un programme mettant en oeuvre les étapes définies par le procédé de codage ci-dessus. La présente invention a encore pour objet un procédé de lecture d'informations codées sous forme de code à barres au moyen du procédé défini ci-dessus, caractérisé en ce qu'il consiste dans un cycle initial: - à déterminer la largeur unitaire des barres de premier et second indices de réflexion par la mesure du temps écoulé lors du balayage, avec des moyens de lecture optique d'informations codées sous forme de codes à barres, entre deux transitions successives d'indice pour une succession de barres de largeur identique et égales à un multiple prédéter- miné de ladite largeur unitaire; - à mettre en mémoire la largeur unitaire ainsi déterminée; - à stocker l'état logique correspondant à l'indice de réflexion de la barre mesurée en dernier lieu; et - à réactualiser la largeur unitaire en fonction de la largeur réelle mesurée au cours de la mesure de la largeur de chacune des barres de ladite succession de barres. Dans un mode préféré de réalisation, le procédé de lecture comporte en outre un cycle itératif de décodage consistant, après la mesure de largeur des deux dernières barres de ladite succession: - à comparer la largeur équivalente au temps de balayage de la barre subséquente de même indice de réflexion ayant donné lieu à la détermination de la largeur unitaire avec des multiples prédéterminés dits de "seuil" de la largeur unitaire. Ces dispositions permettent avantageusement un décodage fiable des codes à barres codés conformément au procédé selon la présente invention. La présente invention a aussi pour objet un dispositif de lecture de codes à barres mettant en oeuvre le procédé de lecture ci-dessus défini et qui comporte une unité centrale adaptée à exécuter des programmes enregistrés dans des moyens de mémorisation, des moyens de réception d'infor- mations provenant de moyens de lecture optique d'informations codées sous forme de codes à barres, des moyens de mesure du temps de balayage de certaines au moins des barres du code, des moyens de mémorisation dans lesquels est notamment enregistré un programme mettant en oeuvre les étapes définies par le procédé de lecture ci-dessus. Avantageusement, le dispositif de lecture comporte en outre les moyens de lecture optique d'informa- tions codées sous forme de codes à barres et lesdits moyens de réception d'informations sont constituées par un moyen de connexion du dispositif, auquel sont reliés les moyens de lecture optique. En outre, les dispositifs de lecture et de réalisation de codes à barres peuvent bien sûr faire partie d'un seul et unique dispositif. D'autres caractéristiques et avantages de l'invention apparaîtront à la lecture de la description suivante, en référence aux dessins annexés dans lesquels: - la figure 1 est un exemple d'un code à barres résultant de la mise en oeuvre d'un mode de réalisation préféré du procédé de codage de la présente invention; - la figure 2 est une vue schématique et synopti- que d'un dispositif de réalisation et de lecture de codes à barres suivant le mode préféré de réalisation; - la figure 3 représente un exemple simplifié d'un code à barres, sa transformation binaire, et le contenu de registres; - les figures 4a et 4b représentent l'organi- gramme du programme de lecture de codes à barres conforme au mode préféré de réalisation de la présente invention; et - les figures 5a et 5b représentent l'organigramme du programme d'impression de codes à barres conforme au mode préféré de réalisation de la présente invention. Le mode préféré de réalisation sera par ailleurs décrit en référence au tableau I ci-dessous. Le procédé de codage d'informations sous forme de code à barres consiste dans une première étape à représenter chacune des informations à coder par un mot binaire dit "simple" de 7 bits. Le tableau I ci-dessous montre des exemples d'informations (ici des caractères alphanumériques pour la plupart) à représenter sous forme de codes à barres et le mot binaire simple qui a été attribué à chacune des informations. Les modalités d'attribution appliquées par le procédé de codage suivant le mode préféré de réalisation sont, elles, données ci-après. Le mot binaire simple est ensuite matérialisé sous forme d'un code à barres, d'une part, en représentant par ordre d'apparition dans le mot binaire chacun des bits par une barre noire ou blanche de largeur unitaire prédé- terminée selon qu'il est de valeur binaire égale à "0" ou "1" . Dans le cas présent, la valeur "0" est repré- sentée par une barre blanche, tandis que la valeur "1" est représentée par une barre noire. D'autre part, dans cette étape, une juxtaposition de deux ou plusieurs bits de même valeur binaire est repré- sentée par une seule barre ayant l'indice de réflexion correspondant à cette valeur, c'est-à-dire qu'elle est de couleur noire ou blanche, et présentant une largeur supé- rieure à la largeur unitaire prédéterminée et croissante en fonction du nombre de bits de même valeur juxtaposes. Dans ce mode préféré de réalisation, la largeur unitaire d'une barre, qu'elle soit de couleur noire ou blanche, est d'environ de 200 im, 210 1m dans le mode de réalisation choisi et représenté. Quant à la largeur supérieure, elle est un multiple réel, ici égal à un de 2n fois la largeur prédéterminée unitaire, n étant égal au nombre de bits juxtaposés. Ainsi, par exemple, une barre représentant la juxtaposition de trois bits de même valeur binaire aura une largeur égale à huit fois la largeur unitaire prédéterminée. De la sorte, en symbolisant une barre par la lettre "b" ou ln", selon sa couleur respective blanche ou noire, précédée par la lettre "L" indiquant la largeur unitaire ou de la mention "2nL" si sa largeur est un multiple égal à 2n fois la largeur unitaire "L", un mot binaire tel que "0101101" sera représenté de la façon suivante: 0101101 = Lb Ln Lb 22Ln Lb Ln La largeur d'un code à barres représentant ce mot binaire correspondant au chiffre 113" dans le tableau I sera donc au total égale à neuf fois la largeur unitaire "L". De même, le mot binaire "l100001", qui est la représentation binaire de la lettre "W" dans le tableau I, sera représenté de la façon suivante: 1010001 = Ln Lb Ln 23Lb Ln. Suivant une autre caractéristique du mode préféré de réalisation, lorsque plusieurs informations doivent être codées sur un même code à barres, les mots binaires simples représentant chacune des informations sont juxtaposés pour former un seul et même mot binaire dit "complexe", chaque mot binaire complexe étant matérialisé en code à barres de la même façon que les mots binaires simples. Ainsi, si l'on souhaite matérialiser sous forme d'un code à barres la succession de deux informations repré- sentées respectivement par les mots binaires simples "0101110" et 0101101", cela se traduira par la matérialisation sous forme d'un code à barres du mot complexe "01011100101101", de la même façon qu'un mot binaire simple. Cela veut dire, que le code à barres représentant les deux mots binaires simples précédents aura la structure suivante, en adoptant la symbolique précédente: 01011100101101 = Lb Ln Lb 23Ln 22Lb Ln Lb 22Ln Lb Ln Comme on peut le voir ici, les deux mots binaires simples ont été fusionnés en un mot binaire complexe qui est la simple juxtaposition de ces deux mots binaires simples. Il n'est donc pas nécessaire de présenter sous forme d'une barre un espace quelconque entre deux mots binaires représentatifs d'informations, séparation entre deux informations successi- ves, à matérialiser sous forme de code à barres, généralement respectée par les procédés de l'art antérieur. Cela réduit bien sûr de façon notable la largeur du code à barres résultant. La complexité des interfaces de décodage de ce type de codes à barres est en outre également réduite par rapport à celles connues de l'état de la techni- que. Suivant deux autres caractéristiques avantageuses du mode préféré de mise en oeuvre de l'invention décrit ici: - on ne retient parmi les mots binaires de sept bits possibles, que les mots binaires simples ne contenant pas une suite de plus de quatre bits de même valeur; et - que les mots binaires simples ne débutant et/ou ne finissant pas par une suite de plus de deux bits de même valeur, afin que ni les mots binaires simples, ni les mots binaires complexes résultant de la juxtaposition de ces mots binaires simples, ne comportent une suite de plus de quatre bits de même valeur. En effet, compte tenu du fait que la juxtaposi- tion de deux ou plusieurs bits de même valeur est représentée par une seule barre dont la largeur est un multiple, ici entier, de la largeur prédéterminée unitaire ou de base, il est avantageux dans le cadre du but de la présente invention, et s'il n'est pas nécessaire de disposer de tous les mots binaires réalisables avec sept bits, de limiter au maximum la juxtaposition de bits de même valeur. On notera que, dans d'autres variantes, la première caractéristique pourra être mise en oeuvre seule. Il subsiste de cette sélection les mots binaires simples figurant dans la colonne "mot binaire utilisable" du tableau I. On observera qu'en application des deux précéden- tes caractéristiques, la barre la plus large obtenue au moyen du procédé de codage suivant le mode préféré de réalisation est de 16 fois la largeur unitaire. Si, de plus, il s'avère que dans le cadre d'une application donnée, le nombre d'informations à coder est inférieur au nombre de mots binaires simples utilisables, on pourra écarter des mots binaires supplémentaires de la liste de mots binaires utilisables qui vient d'être établie. On écartera, corollairement à l'application des deux étapes de sélection qui viennent d'être mentionnées, en premier lieu des mots binaires simples ayant quatre bits de même valeur et ceux débutant et/ou finissant par deux bits de même valeur, en commençant bien sûr par ceux aux particulari- tés les plus défavorables, c'est-à-dire conduisant aux codes à barres les plus longs. Pour le présent mode de réalisation préféré, on aboutit ainsi à la sélection présentée dans la colonne "mot binaire utilisé", les mots binaires utilisés présentant une croix dans la case correspondante. La colonne "caractère associé" du tableau I indique quelle information à coder a été affectée au mot binaire utilisé correspondant. Les informations à coder sont ici les lettres de l'alphabet, les chiffres 0 à 9 et deux symboles usuels ("/" et espace). Comme on le voit également sur le tableau I ci- dessous, il a également été associé à deux mots binaires des informations relatives à la taille des caractères, majuscule ou minuscule. Ainsi si l'on souhaite représenter sous forme de code à barres une lettre en minuscule, il suffira, au moyen du procédé de codage suivant le mode de réalisation préféré, de représenter sous forme de code à barres la suite ou juxtaposition de mots binaires simples relatifs d'une part, au mot simple concernant le passage en minuscule et, d'autre part, le mot simple binaire relatif à la lettre choisie. Le retour au codage de lettres en majuscule se fera en codant, à la suite de la lettre à coder en minuscule, le mot binaire simple relatif aux caractères majuscules, ce type de caractère étant choisi par défaut. Après la mise en oeuvre de ces étapes de sélec- tion, on a en outre lors de la représentation binaire des informations à coder, attribué aux informations statistique- ment le plus fréquemment utilisées les mots binaires simples conduisant aux codes à barres les plus courts. Dans le cas présent, si l'on se réfère au tableau I, on remarquera que l'on a favorisé dans l'ordre les chiffres puis les voyelles puis les consonnes. Cela se révèle particulièrement avantageux dans une application o les chiffres sont les plus fréquemment utilisés, et notamment dans le domaine de la télécopie o ceux-ci servent à la composition de numéros de télécopieur de destinataires de télécopies. En favorisant ainsi les codes à barres les plus courts, on réduit au maximum les risques d'erreurs de lecture. Suivant maintenant une caractéristique supplémen- taire particulièrement avantageuse du mode de réalisation préféré, on juxtapose au mot binaire représentant la ou les informations à coder (mot binaire simple ou complexe respec- tivement), un mot binaire simple dit de "début de code à barres" et un mot binaire simple dit de "fin de code à barres" encadrant ledit mot binaire représentant la ou les informations, et on matérialise le mot binaire complexe ainsi obtenu. Ces mots de début et de fin différents en longueur des mots binaires simples sont utilisés pour permettre à un lecteur de codes à barres de reconnaître le début et la fin d'un code à barres. Chacun de ces mots se présente sous la forme d'un mot complexe de deux mots binaires simples dont le premier est un mot binaire simple commun qui a été appelé "fonction" dans le tableau I ci- dessous. Les sept autres bits des mots de début et de fin sont respectivement représentés par le mot binaire simple "2" et le mot binaire simple "0" de ce même tableau I. L'alternance de "0" et de "1" permet au lecteur de codes à barres, comme décrit ci-dessous, de déterminer la largeur unitaire de chaque barre, blanche ou noire, et de reconnaître le début de la représentation des informations à proprement parler après cette alternance. En outre, comme également décrit ci-après, un comptage modulo 7 des bits décodés du code à barres permet de repérer une erreur de lecture et/ou de décodage dans les informations codées, car tous les caractères sont codés sur sept bits. Par ailleurs, la différenciation du mot de début avec le mot de fin permet de reconnaître le sens de lecture (gauche vers droite ou contraire) du code à barres. On observera également, en se référant au tableau I, que le mot binaire appelé "fonction" et le mot binaire "0" présentent respectivement à leur début et à leur fin la valeur binaire "1". Tout code à barres ainsi matérialisé par le procédé suivant le mode préféré de réalisation, comporte ainsi à son début et à sa fin une barre noire. On évite ainsi tout problème résultant de la non lecture d'une barre blanche présente en début ou en fin de code à barres. Un code à barres réalisé de la sorte, au moyen du procédé de codage suivant le mode préféré de réalisation, est représenté sur la figure 1. On a représenté ici sous forme de code à barres la suite de caractères alphanumériques "H" et "3". Ce code à barres correspond compte-tenu des mots de début et de fin de code à barres à la représentation graphi- que de la suite de bits suivante: D'autres variantes de ce procédé de codage, à la portée de l'homme de l'art, sont bien sûr envisageables. En particulier, la largeur unitaire prédéterminée pour une barre ayant un indice de réflexion donné peut être différente de celle d'une barre ayant un second indice de réflexion. Les largeurs de barres représentatives de la juxtaposition de bits peuvent également être déterminées suivant d'autres modalités. Par ailleurs, le mode de réalisation préféré est relatif au codage de caractères essentiellement alphanuméri- ques, mais toutes autres informations peuvent être codées. Avantageusement, les informations codées, et plus particulièrement les caractères alphanumériques du mode de réalisation préféré, peuvent être utilisées pour la commande d'appareils de bureautique tels que des télécopieurs. Le mot de début de code à barres peut, dans une variante, être porteur d'une ou plusieurs informations autres que celle d'indication de début de code à barres et celles à coder sous forme de code à barres, en conservant toutefois une alternance minimale de "0" et de "1" pour que le mot puisse remplir ses fonctions mentionnées supra. En variante également, le mot binaire simple appelé "fonction" dans le tableau I peut être utilisé en juxtaposition avec un autre mot binaire simple, autre que "0" et "2" (déjà utilisés pour les mots de début et de fin de code à barres), pour réaliser des mots complexes dont la signification, du point de vue information, est différente de celle du mot binaire simple correspondant seul. Ces variantes concourent bien sûr aussi à augmenter la densité d'informations stockées sur un code à barres. On va maintenant décrire à l'appui de la figure 2 un mode préféré de réalisation d'un dispositif de lecture et de génération de codes à barres mettant en oeuvre le procédé de codage qui vient d'être décrit. Le dispositif est illustré sous forme de schéma bloc sur la figure 2 et représenté sous la référence générale 20. Il comporte une unité centrale de traitement 21, un compteur 22 associé à une horloge 23, une unité d'impression 24, une mémoire vive RAM 25, une mémoire programmes de type ROM 26, un écran 27 et un clavier 28. Les éléments 21-28 sont raccordés entre-eux par l'intermédiaire d'un bus d'adresses et de données 31. Les mémoires RAM 25 et ROM 26 constituent ici les moyens de mémorisation définis supra. Le dispositif comporte également un port d'en- trée/sortie 29, également raccordé au bus de données et d'adresses 31, et à un moyen de lecture optique 30, adapté à lire des codes à barres et appelé, dans les milieux concer- nés, "crayon optique". La partie "entrée" du port d'entrée/ sortie 29 constitue donc ici un moyen de réception d'informa- tions provenant du crayon optique 30. Dans ce mode de réalisation, une alimentation 32 est également prévue pour alimenter l'ensemble du dispositif et le crayon optique 30. L'ensemble des composants qui viennent d'être décrits est de structure classique et comme telle bien connue de l'homme de l'art. En particulier, l'unité d'impression 24 peut être choisie parmi tout dispositif d'impression suscep- tible d'imprimer des caractères graphiques, et en particulier des barres d'épaisseur prédéterminée. Dans le mode de réalisation illustré ici, l'unité d'impression 24 est une unité d'impression du même type que celle utilisée dans les télécopieurs. D'autres moyens adaptés à représenter graphique- ment des codes à barres peuvent bien sûr également convenir, en lieu et place de l'unité d'impression 24. Le crayon optique 30 est, dans ce mode de réalisation, un crayon optique commercialisé par la Société DATALOGIC sous la marque "P 40" qui traduit le code à barres en signaux logiques. Un état logique "1" est délivré pour une barre noire et un état logique "0" est délivré pour une barre blanche. Sa résolution est de 150 gm. Ces signaux logiques sont transmis au port d'entrée/sortie 29 auquel il est relié. D'autres moyens de lecture optique d'informations codées sous forme de codes à barres peuvent bien évidemment convenir. Les autres éléments illustrés en figure 2 sont de structure classique et ne seront dans ces conditions pas décrits plus en détail ici, l'homme de métier pouvant facilement les mettre en oeuvre dans un dispositif conforme au schéma de la figure 2. La mémoire programmes 26 comporte notamment un programme destiné à permettre la lecture de codes à barres réalisés conformément au procédé de codage selon la présente invention. L'organigramme de ce programme est illustré en figures 4a et 4b. Dans la mémoire programmes 26 est également enregistré un programme permettant au dispositif de représen- ter graphiquement, ici d'imprimer, en sortie de l'unité d'impression 24, des codes à barres réalisés conformément au procédé selon la présente invention et représentant des suites de caractères entrés par le clavier 28. L'organigramme du programme d'impression est illustré aux figures 5a et 5b. La mémoire vive 25 comporte divers registres et notamment plusieurs registres tampons qui seront décrits infra, à l'occasion de la description des programmes de décodage et d'impression. En outre, le clavier 28 comporte une touche dite de "mode" dont l'actionnement est détecté par l'unité centrale 21 et qui permet le passage du dispositif d'un mode dit "lecture" à un mode dit "impression" et vice versa, l'unité centrale se positionnant sur le sous-programme "initialisation" du mode "lecture" (case 100, figure 4a) ou du mode "impression" (case 200, figure 5a). On va maintenant décrire à l'appui des figures 3, 4a et 4b le procédé de lecture tel qu'il est mis en oeuvre dans le dispositif de lecture et de génération de codes à barres décrit à l'appui de la figure 2. On précisera auparavant que l'on entend ici par le mot "lecture" la lecture physique à l'aide du crayon optique 30 et/ou la lecture d'états logiques sur le port d'entrée/sortie 29 ainsi que le décodage subséquent. D'une manière générale, le procédé de lecture consiste à : - déterminer la largeur unitaire des barres blanches et noires par la mesure du temps écoulé lors du balayage avec le crayon optique entre deux transitions successives de couleur pour une succession de barres de largeur identique et égales à un multiple prédéterminé de ladite largeur unitaire; - mettre en mémoire la largeur unitaire ainsi déterminée; - comparer la largeur équivalente au temps de balayage de la barre subséquente de même couleur que la barre ayant donné lieu à la détermination de la largeur unitaire avec des multiples prédéterminés dits de "seuil" de cette largeur unitaire; - stocker l'état logique correspondant à la couleur de la barre mesurée en dernier lieu; et - réactualiser la largeur unitaire en fonction de ka largeur réelle mesurée. Dans la mise en oeuvre du procédé, la demande- resse s'est trouvée confrontée à la difficulté suivante. Lorsque l'on utilise des dispositifs d'impression semblables à ceux utilisés dans les imprimantes présentes sur le marché (laser, jet d'encre) , il s'avère qu'il est très difficile de faire imprimer des barres noires et blanches de largeur identique, surtout lorsque l'on souhaite faire imprimer des barres de très faible largeur (de l'ordre de 2/10ème de millimètre par exemple). En effet, en pratique, les barres noires présentent une largeur sensiblement supérieure à celle des barres blanches. Ainsi, pour détermi- ner la largeur unitaire des barres blanches ou noires, conformément au procédé selon l'invention, tel que rappelé ci-dessus, la demanderesse a t- elle choisi de procéder à la comparaison des temps de balayage pour les barres de chacune des couleurs. La figure 3 permet, à l'aide d'un exemple, de mieux comprendre cet aspect du procédé de lecture de l'inven- tion. On rappelle tout d'abord que conformément à une autre caractéristique de l'invention avantageusement mise en oeuvre dans le procédé de codage décrit plus haut, il est juxtaposé au mot binaire représentant la ou les informations à coder, un mot binaire de début de code à barres et un mot binaire de fin de code à barres. Avantageusement, ces mots binaires comportent essentiellement une alternance de "1" et de "0", de telle sorte que le code à barres présente à son début et à sa fin une alternance de barres blanches et de barres noires de largeur identique. Le tableau I montre que le mot de fin se termine par un "1" précédé d'un "0"l et d'un "1", tandis que le mot de début est précédé du mot de fonct- ion, lequel commence par un "1" suivi d'une succession de "0" et de "1" (sept en l'espèce). Par conséquent, tout code à barres, selon le mode de réalisation préféré du procédé de codage, comporte à son début ou à sa fin au moins une succession de trois bits "1", "0", "1", de telle sorte que quel que soit le sens de lecture employé par l'utilisateur du crayon optique, le crayon optique détecte dans les deux cas ladite succession de trois bits "1", "0", "1". Cette caractéristique met en oeuvre l'aspect du procédé de lecture conforme à l'invention selon lequel pour la détermination de la largeur unitaire des barres blanches ou noires, on mesure le temps écoulé lors du balayage entre deux transitions successives de couleur pour une succession de barres de largeur identique et égales à un multiple prédéterminé de ladite largeur unitaire. Dans ce mode de réalisation, le multiple prédé- terminé est égal à 1 et la largeur unitaire est celle correspondant à un bit. Dans le mode de réalisation choisi et représenté sur la figure 3, il a été représenté schématiquement un code à barres présentant diverses successions de barres noires et blanches, pour permettre de mieux comprendre cet aspect de l'invention. La succession de barres noires et blanches comporte d'une part, quatre barres alternées noires et blanches, de largeur unitaire, et une barre noire ayant une largeur correspondant à quatre fois la largeur unitaire. Ce code à barres représente donc la valeur binaire "101011". On observe que, conformément à l'aspect de l'invention présentement décrit, les trois premières barres constituent une succession de barres de largeur identique et égales à un multiple prédéterminé (1 en l'espèce) de la largeur unitaire. Dans ce mode de réalisation, la mesure de la largeur unitaire se fait par la mesure du temps de balayage. La mesure du temps de balayage se fait grâce à l'horloge 23 associée au compteur 22. Lorsque la lecture commence, c'est- à-dire que l'utilisateur balaie, dans cet exemple de gauche à droite, le code à barres illustré en haut de la figure 3, le compteur compte des cycles d'horloge (d'une valeur de 1MHz). Les largeurs des barres noires et blanches ainsi mesurées sont successivement mises dans deux registres appelés par commodité A2 et A1. Le processus itératif de mesure va maintenant être décrit à l'appui des figures 4a et 4b. Ces figures représentent l'organigramme du programme commandant les opérations de lecture. En cases 100 et 135, qui concernent pour la première l'initialisation du processus de lecture lors de la mise en marche de la machine, et pour la seconde, une initialisation qui intervient entre la lecture de deux codes à barres différents, une valeur correspondant à la valeur maximale de comptage du compteur 22 est enregistrée dans les registres A1 et A2 (en l'espèce la valeur 98301). Lors de la lecture, c'est-à-dire du balayage du code à barres tel que celui de la figure 3, une première transition blanc-noir est détectée par le crayon optique 30. En effet, avant la lecture de la première barre noire, le crayon optique 30 transmet l'état logique "0" qui est lu par l'unité centrale 21 par l'intermédiaire du port d'entrée/sor- tie 29. Lors de cette première transition blanc-noir (première barre noire sur la gauche de la figure 3), le compteur 22 est remis à zéro (case 102). L'état logique sur le port d'entrée-sortie est alors lu (en l'espèce état logique "1") (case 103). Le compteur 22 compte ensuite (case 104) le nombre de cycles d'horloge qui sont complétés depuis le changement d'état logique, et cela jusqu'au changement suivant d'état logique détecté lors du test 105. Tant que le crayon optique ne détecte pas un nouveau changement de couleur (dans le cas présent la transition noire vers blanc entre la première barre noire et la première barre blanche), le comptage se poursuit (branche négative du test 105). Le compteur 22 est arrêté (case 106) lors du changement d'état logique détecté par le crayon optique 30 (en l'espèce détection de la première barre de couleur blanche). La valeur du compteur est lue par l'unité centrale 21 et stockée dans la RAM 25. Il est alors procédé au test 108 au cours duquel on vérifie si la valeur A du compteur, qui vient d'être stockée en RAM, est supérieure à un multiple prédéterminé d'une largeur unitaire normalement stockée dans le registre A2. Lors du début d'un cycle de lecture, la valeur stockée dans le registre A2 est élevée et le test 108 est négatif. On enregistre alors la valeur présente dans le registre A- dans le registre A2 (case 112), puis case 113, la valeur courante A du compteur 22 (telle qu'elle est provisoirement enregistrée dans la RAM 25) est enregistrée dans le registre A1. Le compteur 22 est alors remis à zéro (case 102). Le processus se poursuit alors à l'occasion du balayage par le crayon optique 30 de la première barre blanche de la figure 3. Lors de l'arrêt du compteur (case 106), celui-ci présente une nouvelle valeur A, qui peut être identique à la valeur A précédemment mesurée, inférieure dans le cas o l'utilisateur a accéléré son balayage (cas le plus probable), ou supérieure dans le cas (improbable) o l'utili- sateur a ralenti son balayage en début de cycle de lecture. La nouvelle valeur du compteur A est comparée avec le même multiple de la valeur de largeur unitaire normalement enregistrée dans le registre A2. Comme ce dernier comporte encore une valeur très élevée, le test 108 s'avère également négatif et il est procédé aux opérations des cases 112 et 113 de la même façon que pour le cycle précédemment décrit. On observe alors que dans le registre A2 est présent la valeur de comptage mesurée à l'occasion du balayage de la première barre noire. Le compteur est alors à nouveau remis à zéro (case 102) et il est procédé à l'occasion du balayage de la seconde barre de couleur noire, au comptage des cycles d'horloge représentant la largeur de celle-ci (case 103-106). Il est alors procédé à la comparaison entre la valeur courante mesurée de la seconde barre noire avec un multiple prédéterminé de la largeur mesurée de la première barre noire. En l'espèce, le test 108 doit être négatif car, comme illustré sur la figure 3, la seconde barre noire présente une largeur identique à celle de la première barre noire. Les opérations 112 et 113 sont à nouveau exécu- tées et l'on observe que dans le registre A2 est alors présente une valeur représentant la largeur de la première barre blanche. Parallèlement aux trois cycles qui viennent d'être décrits, l'état logique lu par le crayon optique est enregistré à chaque fois, sur un bit, dans un tampon tempo- raire de lecture de la RAM 25 (case 107). Ces opérations sont schématisées sur la partie droite de la figure 3 laquelle illustre le tampon temporaire de lecture sous forme d'un registre dans lequel l'état logique "1" est enregistré à l'occasion de la lecture de la première barre noire, l'état logique "0" est enregistré à l'occasion de la lecture de la première barre blanche et l'état logique "1" est à nouveau enregistré à l'occasion de la lecture de la seconde barre noire. La seconde barre de couleur blanche est alors mesurée comme précédemment décrit, sa largeur étant comparée à celle de la première barre de couleur blanche enregistrée dans le registre A2 (répétition des opérations 102-108). A l'occasion de la lecture de la troisième barre de couleur noire (présentant comme on le voit sur le dessin schématique de la figure 3 une largeur égale à quatre fois la largeur unitaire) le test 108 s'avère positif. En effet, si l'on prend pour hypothèse que la vitesse de balayage est sensiblement constante, un nombre de cycles d'horloge quatre fois plus important est compté lors du balayage de la troisième barre noire que lors du balayage de la seconde barre noire qui sert de référence (dans le registre A_2). Un premier bit de valeur logique "1" avait été enregistré (en case 107) à la suite du test 105, lorsque ce dernier était devenu positif à la fin du balayage de la troisième barre noire illustrée en figure 3. A la suite du test effectué en case 108, un second bit de valeur 1 est enregistré dans le tampon temporaire de lecture, comme prévu en case 109. On observe que la fonction du test 108 est de discriminer les barres ayant une largeur unitaire de celles susceptibles d'avoir une largeur égale à 2.66 fois ou plus la largeur unitaire. Dans l'hypothèse o le test 108 s'avère positif, et postérieurement à la seconde mémorisation de l'état logique sur un bit dans le tampon temporaire de lecture, il est procédé à un autre test (case 110) au cours duquel on compare la valeur courante du compteur à un second multiple prédéterminé de la largeur unitaire, le multiple étant ici 5.33. Dans le cas o le test 110 s'avère négatif, il est procédé tout d'abord à une opération 114 semblable à l'opération 112, la valeur présente dans le registre A1 étant transféré vers le registre A_2. Il est ensuite procédé au transfert vers le registre Al d'une valeur égale au quart de la valeur courante (case 115). Ainsi, lorsque le test 108 est positif et le test est négatif, l'unité centrale 21 sait que le crayon optique vient de balayer une barre ayant une largeur égale à quatre fois la largeur unitaire. Une valeur égale au quart de la largeur mesurée est stockée dans le registre A1 pour que lors de la lecture de la barre suivante (blanche en l'espèce) une largeur correspondant à la largeur nominale soit enregis- trée dans le registre A2. Dans l'hypothèse o le test 110 s'avère positif, l'unité centrale 21 en déduit que la barre de largeur vient d'être mesurée présente une largeur égale à au moins 5.33 fois la largeur unitaire. Conformément au procédé de codage, un troisième bit similaire aux deux précédents est alors enregistré dans le tampon temporaire de lecture (case 111). Si le test de seuil suivant (case 116) s'avère négatif, une opération 117 similaire à l'opération 112 est réalisée, tandis que dans l'opération 118 il est stockée dans le registre Al une valeur égale au huitième de la largeur mesurée. Si le test 116 s'avère positif, cela signifie que la largeur mesurée est supérieure à 10.66 fois la largeur unitaire et il est stocké un quatrième bit identique dans le tampon temporaire de lecture (case 119). Un test 120 permet de déterminer si la largeur de la barre qui vient d'être balayée est ou non supérieure à 21.33 fois la largeur unitaire. Si le test de seuil de la case 120 s'avère négatif, une opération 121 similaire à l'opération 112 est réalisée, tandis que dans l'opération 122 il est stockée dans le registre A, une valeur égale au seizième de la largeur mesurée, et l'on retourne comme toujours pour ce type d'opération à la case 102 de remise à zéro du compteur 22. Au cas o le test 120 s'avérerait positif, comme dans le mode de réalisation de l'invention choisi et repré- senté il n'est pas prévu d'avoir plus de quatre bits identi- ques d'affilés, cela signifie qu'il y a erreur de lecture ou fin de lecture. C'est la raison pour laquelle les quatre précédents bits dans le tampon temporaire de lecture sont effacés en case 123. Avant de décrire les opérations subséquentes de l'organigramme des figures 4a et 4b, on va expliquer ci-après les raisons pour lesquelles les multiples de seuil ont été choisis égaux aux valeurs utilisées dans les tests 108, 110, 116 et 120. Dans le mode de réalisation du dispositif choisi et représenté, le crayon optique commercialisé sous la marque "DATALOGIC" a une résolution de 150 gm. Dans le mode de réalisation utilisé, l'unité d'impression a une résolution de 360 DPI (dots per inch: point par pouce soit une largeur par point de 70 jm). Par conséquent, pour pouvoir utiliser le crayon optique avec les codes à barres imprimés par l'unité d'impression, il était nécessaire d'utiliser une largeur élémentaire de trois points soit 210 gm. On rappelle que conformément à l'invention, la largeur des barres juxtaposées est un multiple réel, ici égal à un, de 2n fois la largeur unitaire, n étant égal au nombre de bits juxtaposes. La largeur unitaire étant celle correspondant à trois points (210 km), la largeur pour deux bits juxtaposés est de 12 points, celle pour trois bits juxtaposés est de 24 points, et celle pour quatre bits juxtaposés est de 48 points. Les seuils de décision ont été placés, dans ce mode de réalisation, à 8 points, 16 points, 32 points et 64 points, ces seuils de décision étant, en termes de points, des multiples de deux. Ainsi, pour les barres présentant quatre largeurs unitaires (12 points) le seuil de décision inférieur est-il fixé à 8 (c'est-à-dire 12-0,33 fois 12) et le seul supérieur est-il fixé à 16 (c'est-à-dire 12 + 0,33 fois 12) . Les constantes de seuil sont donc respectivement 2,66 et 5,33, correspondant à la division de 8 et 16 par 3. Les constantes de 10,66 (test 116) et 21,33 (test 120) sont déterminées de la même manière. Ainsi, le système de tests décrit à l'appui de la figure 4a revient il à décider que dès que l'on mesure une largeur inférieure de 33 % à une largeur prédéterminée de rang supérieur, la logique décide que la barre lue présente la largeur de rang inférieur. Les inventeurs ont considéré qu'une marge de 33 % est suffisante et permet ainsi d'"absorber" des varia- tions de la vitesse de lecture. On observe ainsi que les procédés de codage et de lecture conformes à la présente invention permettent une utilisation facilitée du crayon optique, l'utilisateur n'étant pas obligé d'être attentif à la constance de sa vitesse de balayage au contraire de l'art antérieur. En d'autres termes, les procédés de codage et de lecture permettent une lecture plus fiable des codes à barres au moyen d'un crayon optique. Les étapes 124 et suivantes permettent ensuite de décoder le code à barres lu, au regard du tableau I. Ce décodage commence par la lecture du dernier mot de 7 bits dans le tampon de lecture temporaire (case 124) puis le décodage de ce mot au regard de la table I enregis- trée en mémoire ROM 26 (case 125). Le test 126 consiste à déterminer si ce mot de 7 bits correspond au caractère de fin de code à barres (0100101, voir tableau I). Si le test 126 est négatif, le test suivant (136) contrôle si le dernier mot de 7 bits présent dans le tampon temporaire de lecture est un caractère appelé fonction dans le tableau I (1010101). Dans la négative un message d'erreur est affiché sur l'écran 27 (case 128). Une succession des deux tests 126 et 136 avec un résultat négatif montre que le code barres a été mal lu. Il est alors procédé (case 135) à une nouvelle initialisation, de telle sorte que le processus décrit ci-avant puisse recommencer. Si le test 136 est positif, cela signifie que la lecture a été faite à l'envers, le premier bit lu étant en réalité le dernier du code et réciproquement. Il est alors procédé, case 137, à une inversion de l'ordre des bits dans le tampon temporaire de lecture et le programme se rebranche en case 124. En cas de test 126 positif, cela signifie d'une part, que le dernier mot de sept bits dans le tampon tempo- raire correspond au caractère "fin" de codes à barres et, d'autre part, qu'il n'y a pas eu d'erreur de lecture. On observera que le test 126 est particulièrement avantageux. En effet, si en cours de lecture, une barre de largeur égale à un multiple de la largeur unitaire n'est pas décodée en tant que telle, par exemple en raison d'une importante variation de la vitesse de balayage du crayon optique, cela signifie que dans le tampon temporaire de lecture un bit aura été enregistré en trop ou, au contraire, il manquera un bit. Par exemple il sera enregistré une juxtaposition de trois "1" au lieu d'une juxtaposition de deux "1" ou vice versa. Dans ces conditions, le caractère "fin" de code à barres n'est pas reconnu lors du test 126. Il s'ensuit alors les opérations décrites plus haut (cases 128, 136 et 137). A l'inverse, si le caractère "fin" de code à barres est reconnu, cela signifie qu'il n'y a pas eu d'erreur de lecture du type de celle susmentionnée. Il est alors procédé, case 127, au stockage du caractère "fin" dans un tampon de travail de lecture ménagé dans la RAM 25 et un affichage de celui-ci sur l'écran 27. Il est ensuite procédé à la lecture du mot précédent le mot connu à l'étape précédente. Ce mot est comparé à la table représentée sous le tableau I et décodé (cases 129 et 130). Il est procédé au cours de ce décodage au test 131 qui vise à déterminer si le mot est inconnu, auquel cas un message d'erreur est affiché sur l'écran 27 (case 132), ou s'il est connu, auquel cas le caractère correspondant est stocké dans le tampon de travail de lecture susmentionné et affiché sur l'écran 27 (case 133). Il est ensuite procédé au test 134 qui vise à déterminer si le tampon temporaire de lecture comporte un autre mot de sept bits. Dans l'affirmative, le programme se rebranche au-dessus de la case 129 et les opérations qui viennent d'être décrites sont recommencées. Dans la négative, cela signifie que la lecture du code barres est terminée. Il est procédé à une nouvelle initialisation, notamment en enregistrant la valeur maximale de comptage du compteur 22 dans les registres A2 et A1 (case 135). Par ailleurs, la présence d'un mot de moins de sept bits détectée par le test 131 signifie qu'il y a eu une erreur de lecture et notamment une erreur de mesure de la largeur d'une barre de grande largeur se traduisant par la perte d'un bit ou, au contraire, le gain d'un bit. Les opérations 129-134 avec le test 131, réalisent en fait ici un comptage modulo 7 des bits présents dans le tampon temporaire de lecture. La simple présence d'un mot final (après décodage des autres mots) ayant moins de sept bits suffit pour déclencher le message d'erreur 132. Le dispositif est alors prêt pour la lecture d'un nouveau code à barres. On va maintenant décrire à l'appui des figures 5a et 5b un mode de réalisation préféré d'un procédé d'impres- sion de code à barres conforme à l'invention. Dans ce mode de réalisation, ce procédé est mis en oeuvre dans le dispositif qui a été décrit à l'appui de la figure 2. Un programme correspondant à l'organigramme qui va être décrit est enregistré dans la mémoire ROM 26 et il est mis en oeuvre par l'unité centrale 21. L'unité centrale 21 commande l'unité d'impression 24 par l'intermédiaire deprogrammes de commande spécifiques et classiques enregistrés en mémoire morte 26. Lors du passage en mode "impression", le pro- gramme se branche d'abord en case 200, qui correspond à un sous-programme d'initialisation. Cette initialisation consiste à activer les organes nécessaires à l'impression, en l'espèce l'unité d'impression 24. Cette activation se fait par l'intermédiaire des programmes de commande de l'unité d'impression, de structures classiques et enregistrés en mémoire morte 26. Le programme se branche ensuite en case 201. Un registre tampon de travail d'impression est déclaré dans la mémoire vive 25. Il est enregistré dans ce registre un caractère "fonction" et le caractère "2". Le programme commande alors l'affichage d'un message d'invitation à entrer un caractère (case 202). Ce message s'affiche sur l'écran 27 et l'utilisateur frappe le caractère voulu sur le clavier 28. En case 203, il est procédé à un test aux fins de savoir si un caractère a été frappé sur l'une des touches du clavier. Dans la négative, le programme se rebranche en case 201 et le message d'invitation à entrer un caractère reste affiché. Dès qu'un caractère est frappé au clavier, il est stocké dans le registre tampon de travail d'impression (case 204). Ce caractère est stocké à la suite des caractères déjà précédemment stockés. Il est ensuite procédé en case 205, à un test aux fins de savoir si une touche de validation est ensuite frappée au clavier (en l'espèce la touche "entrée"). Dans la négative, le programme se rebranche au test 203 et le caractère suivant peut être entré au clavier par l'utilisa- teur, alors que le message d'invitation à entrer un caractère reste affiché à l'écran. Après la frappe de la touche de validation (test 205 positif), le programme commande l'insertion des trois caractères: "fonction", "zéro" et "fin de chaîne" (case 206). Le caractère "fin de chaîne" permet de définir la fin d'une chaîne de caractères. Il est par exemple représenté par le symbole "\O" dans le cas du langage C. A l'issue de cette opération, le registre de travail d'impression comporte la suite de caractères correspondant au code à barres que l'utilisateur souhaite imprimer. Il est alors procédé aux étapes 207-212 à la transformation des caractères contenus dans le registre tampon de travail d'impression en mot binaire, par comparai- son avec les caractères de la table de conversion figurant infra au tableau I. En case 207, il est procédé à la lecture du caractère suivant le dernier caractère converti dans le registre tampon de travail d'impression. Au début de la chaîne, il s'agit du premier caractère dans ce registre, à savoir le caractère "fonction". Il est ensuite procédé, case 208, à un test aux fins de savoir si le caractère lu figure ou non dans la table de conversion (tableau I supra). Si le test 208 est positif, le mot binaire associé au caractère lu est enregistré dans un registre tampon temporaire d'impression (case 211). Si le test 208 est négatif, le programme commande l'affichage d'un message d'erreur à l'écran (case 209). En outre, les registres tampon de travail d'impression et temporaire d'impression sont vidés (case 210). Le programme se rebranche alors en case 201. Tant que le caractère "fin de chaîne" n'est pas reconnu (branche négative du test 212), le programme se rebranche en case 207. Lorsque le caractère "fin de chaîne" est reconnu, cela signifie que tous les caractères contenus dans le registre tampon de travail d'impression ont été lus. Le programme se branche alors en case 213. A cette étape, il est enregistré, dans le registre temporaire d'impression, un mot binaire "0000000". La raison de cette étape apparaîtra à la suite de la description. En case 214, il est procédé à la lecture de l'état logique du premier bit dans le registre tampon temporaire d'impression. Une variable n, est mise à zéro dans l'étape suivante (case 215). Il est alors procédé à une double boucle ayant pour fonction de déterminer la présence ou non d'une succes- sion de bits ayant un état logique identique, en vue de permettre l'impression des barres de largeur correspondante (cases 216-223). Dans cette boucle, il est tout d'abord lu un état logique de bit suivant l'état logique précédemment lu (case 216). En 217, il est procédé à un test pour déterminer si l'état logique courant (c'est-à-dire l'état logique lu en case 216) est ou non égal à l'état logique précédent (c'est- à-dire de celui du bit précédemment lu). Dans la négative, il est procédé à la commande de l'impression d'une ligne d'indice de réflexion correspondant à l'état logique précédent de largeur égale à 2n fois la largeur unitaire (case 218). En case 219, la variable n est mise à zéro et le programme se rebranche en case 216. Dans l'hypothèse o le test 217 serait positif, il est alors procédé à un test 220 pour savoir si la variable courante n est ou non égale à zéro. Si le test 220 est positif, c'est-à-dire si la variable n est égale à zéro, cette dernière est mise à la valeur 2 (case 222). Cette action prend en compte le fait que lors du test 217 il a été déterminé que le bit précédemment lu et le bit courant ont la même valeur logique; il y a donc au moins deux bits consécutifs ayant la même valeur logique. La variable n ayant été mise à la valeur "2" il est à nouveau procédé, en case 216, à la lecture du bit suivant. Si le test 217 s'avère à nouveau positif, il est encore procédé au test 220. Or, comme la variable n a précédemment été mise à 2, le test 220 s'avère négatif. La valeur de n est alors incrémentée d'une unité (case 221). Lorsque le test 220 s'avère négatif pour la première fois, cela signifie donc qu'il y a au moins trois bits consécutifs ayant le même état logique. Il est alors procédé au test 223. On rappelle ici que, conformément au mode préféré de mise en oeuvre de la présente invention, les caractères sont codés de telle sorte qu'il n'y ait pas plus de quatre bits consécutifs ayant le même état logique. Si le test 223 est négatif, cela signifie que dans le tampon temporaire d'impression, il y a soit trois soit quatre bits consécutifs ayant le même état logique. Il est alors procédé, en case 216, à la lecture du bit suivant ce qui peut conduire à une nouvelle incrémentation de la variable n d'une unité. A la troisième incrémentation de la variable n, le test 223 s'avère positif. Cela signifie que le mot binaire lu dans le registre tampon temporaire d'impression est le mot "0000000" introduit dans ce dernier lors de l'étape 213. Dans une telle hypothèse, l'unité centrale sait qu'elle a lu le dernier bit signifiant enregistré dans le registre tampon temporaire d'impression et que la dernière ligne du code à barres a été imprimée. On notera à cet égard que l'impression de la ligne correspondant à l'état logique précédent de largeur 2n visé en case 218, permet notamment de réaliser l'impression des lignes de largeur égale à huit fois ou seize fois la largeur unitaire. Lorsqu'il y a trois bits consécutifs de même valeur, le test 217 est positif alors que les tests 220 et 223 sont négatifs. Le programme se rebranche alors automatiquement en case 216. Toutefois, le bit suivant présente un état logique différent des trois précédents, ce qui conduit le test 217 à être négatif et par conséquent à l'impression commandé par le programme, lorsque celui-ci est au niveau de la case 218. Il en va de même lorsqu'après une suite de quatre bits présentant le même état logique, il y a une nouvelle transition de couleur détectée par le test 217. Lorsque le test 223 est positif, le programme se branche en case 224 et commande l'effacement des registres tampons de travail d'impression et temporaire d'impression. Bien entendu la présente ne se limite nullement aux modes de réalisation décrits à l'appui des figures mais elle englobe, bien au contraire, toute variante à la portée de l'homme de l'art. En particulier, à partir des enseignements qui précèdent, l'homme du métier peut également réaliser un simple dispositif ou interface de codage que l'on reliera, d'une part, à des moyens permettant à l'utilisateur d'entrer des caractères destinés à être codés, tels qu'un clavier du type de celui représenté sous la référence 28 sur la figure 2 et, d'autre part, à des moyens adaptés à représenter graphiquement des codes à barres, qui peuvent par exemple être constitués par l'unité d'impression 24 de la figure 2. Un tel interface de codage comporte, agencés comme illustré en figure 2, une unité centrale (telle que l'unité 21) adaptée à exécuter des programmes enregistrés dans des moyens de mémorisation (tels que la ROM 26), des moyens d'entrée des caractères destinés à être codés (tels qu'un port d'entrée/sortie comparable à celui portant la référence 29 sur la figure 2, une prise ou tout autre moyen de connexion connu de l'homme du métier, permettant par exemple de connecter le clavier précédent), des moyens destinés à délivrer les informations codées (ici de nouveau tels que le port d'entrée/sortie ou tout autre moyen de connexion équivalent) à des moyens adaptés à représenter graphiquement des codes à barres (tels que l'unité d'impres- sion 24), et des moyens de mémorisation (tels que la ROM 26) dans lesquels est notamment enregistré le programme mettant en oeuvre les étapes du procédé de codage défini supra. De façon similaire, à partir des enseignements précédents, l'homme du métier peut aussi réaliser un simple dispositif ou interface de lecture de codes à barres codés selon le procédé de codage défini plus haut et comportant, agencés comme illustré en figure 2, une unité centrale (telle que l'unité 21) adaptée à exécuter des programmes enregistrés dans des moyens de mémorisation (tels que la ROM 26), des moyens de réception d'informations provenant de moyens de lecture optique d'informations codées sous forme de codes à barres (tels que du type port d'entrée/sortie 29 et crayon optique 30 respectivement), des moyens de mesure du temps de balayage de certaines au moins des barres du code (tels que le compteur 22 et l'horloge 23) et des moyens de mémorisation (tels que la ROM 26) dans lesquels est notamment enregistré le programme mettant en oeuvre les étapes du procédé de lecture défini ci-dessus. Par ailleurs, dans d'autres modes de réalisation, on pourra, outre l'affichage des informations décodées à l'écran 27, ou même en lieu et place de cet affichage, venir récupérer des informations décodées sur le port d'entrée/sor- tie 29, par exemple pour commander un terminal distant, quant à son fonctionnement. Un tel terminal peut par exemple être représenté par le télécopieur faisant l'objet de la demande de brevet français N 93. 10352 mentionnée ci-dessus. - 36 - TABLEAU I mot binaire mot binaire caractère mot binairemot binaire caractère utilisable utilisé associé utilisable utilisé associé 0010001 1000010 0010010 1000011 0010011 1000101 X Q 0010100 1000110 X R 0010101 1001001 X I 0010110 1001010 X 5 0011011 1001011 X S 0011100 1001100 X T 0011101 1001101 X O 0011110 1001110 X V 0100001 X 1010001 X W 0100010 X B 1010010 X 6 0100011 X C 1010011 X X 0100100 X D 1010100 X Y 0100101 X O/fin 1010101 X fonction 0100110 X 9 1010110 X 7 0101001 X 1 1011001 X U 0101010 X 2/début 1011010 X 8 0101011 X F 1011011 X Z 0101100 X G 1011100 X majuscule 0101101 X 3 1011101 X minuscule 0101110 X H 1011110 X espace 0110001 X J 1100001 0110010 X A 1100010 0110011 X K 1100011 0110100 X L 1100100 0110101 X 4 1100101 0110110 X E 1100110 0111001 X M 1101001 0111010 X N 1101010 0111011 X P 1101011 0111100 1101100 0111101 11101101 REVENDICATIONS 1. Procédé de codage d'informations sous forme de code à barres, caractérisé en ce qu'il consiste: - à représenter chacune des informations à coder par un mot binaire dit "simple" de m bits, - à matérialiser en code à barres le mot binai- re: d'une part en représentant par ordre d'apparition dans le mot binaire chacun des bits par une barre d'un premier ou d'un second indice de réflexion de largeur unitaire prédéterminée selon qu'il est de valeur binaire égale à "0" ou "1" ; et d'autre part, en représentant une juxtaposition de deux ou plusieurs bits de même valeur binaire par une seule barre ayant l'indice de réflexion correspondant à cette valeur et présentant une largeur supérieure à ladite largeur unitaire prédéterminée, la largeur supérieure étant un multiple réel de 2n fois la largeur prédéterminée unitaire, n étant égal au nombre de bits juxtaposes. 2. Procédé selon la revendication 1, caractérisé en ce que ledit multiple réel est égal à un. 3. Procédé selon la revendication 1 ou 2, caractérisé en ce que lorsque plusieurs informations doivent être codées sur un même code à barres, les mots binaires représentant chacune desdites informations sont juxtaposés pour former un seul et même mot binaire dit "complexe" ; chaque mot binaire complexe étant matérialisé en code à barres de la même façon que les mots binaires simples. 4. Procédé selon l'une quelconque des revendica- tions 1 à 3, caractérisé en ce que la largeur prédéterminée unitaire est la même pour les barres du premier indice de réflexion et celles du second indice. 5. Procédé selon l'une quelconque des revendica- tions 1 à 4, caractérisé en ce que les barres présentant l'un des deux indices sont de couleur blanche tandis que les autres sont de couleur noire. 6. Procédé selon l'une quelconque des revendica- tions 1 à 5, caractérisé en ce que m est égal à 7 et en ce qu'on ne retient que les mots binaires simples ne contenant pas une suite de plus de quatre bits de même valeur. 7. Procédé selon la revendication 6, caractérisé en ce qu'on ne retient en outre que les mots binaires simples ne débutant et/ou ne finissant pas par une suite de plus de deux bits de même valeur. 8. Procédé selon l'une quelconque des revendica- tions 1 à 7, caractérisé en ce qu'on juxtapose au mot binaire représentant la ou les informations à coder, un mot binaire simple dit de "début de code à barres" et un mot binaire simple dit de "fin de code à barres" encadrant ledit mot binaire représentant la ou les informations et on matérialise le mot binaire complexe ainsi obtenu. 9. Procédé de décodage de codes à barres codés selon le procédé défini dans l'une quelconque des revendica- tions 1 à 8, caractérisé en ce que pour déterminer la présence éventuelle d'une erreur de décodage, on procède à un comptage modulo m de la représentation décodée du code à barres. 10. Procédé de lecture d'informations codées sous forme de codes à barres au moyen du procédé défini dans l'une quelconque des revendications 1 à 8, caractérisé en ce qu'il consiste dans un cycle initial: - à déterminer la largeur unitaire des barres de premier et second indices de réflexion par la mesure du temps écoulé lors du balayage, avec des moyens de lecture optique d'informations codées sous forme de codes à barres, entre deux transitions successives d'indice pour une succession de barres de largeur identique et égales à un multiple prédéter- miné de ladite largeur unitaire; - à mettre en mémoire la largeur unitaire ainsi déterminée; - à stocker l'état logique correspondant à la couleur de la barre mesurée en dernier lieu; et - à réactualiser la largeur unitaire en fonction de la largeur réelle mesurée au cours de la mesure de la largeur de chacune des barres de ladite succession de barres. 11. Procédé selon la revendication 10, caracté- risé en ce qu'il comporte en outre un cycle itératif de décodage consistant, après la mesure de largeur des deux dernières barres de ladite succession: - à comparer la largeur équivalente au temps de balayage de la barre subséquente de même indice de réflexion que la barre ayant donné lieu à la détermination de la largeur unitaire avec des multiples prédéterminés dits de "seuil" de la largeur unitaire. 12. Procédé selon l'une quelconque des revendica- tions 10 et 11, caractérisé en ce que pour déterminer la présence éventuelle d'une erreur de décodage, on procède à un comptage modulo m de la représentation décodée du code à barres. 13. Dispositif de lecture de codes barres codés selon le procédé défini dans l'une quelconque des revendications 1 à 8, caractérisé en ce qu'il comporte une unité centrale (21) adaptée à exécuter des programmes enregistrés dans des moyens de mémorisation (26), des moyens de réception d'informations (29) provenant de moyens de lecture optique d'informations codées sous forme de codes à barres, des moyens de mesure (22, 23) du temps de balayage de certaines au moins des barres du code, des moyens de mémori- sation (26) dans lesquels est notamment enregistré le programme mettant en oeuvre les étapes définies dans l'une quelconque des revendications 10 à 12. 14. Dispositif selon la revendication 13, caractérisé en ce qu'il comporte en outre les moyens de lecture optique (30) d'informations codées sous forme de codes à barres et en ce que lesdits moyens de réception d'informations sont constitués par un moyen de connexion (29) au dispositif. 15. Dispositif selon la revendication 13 ou 14, caractérisé en ce que pour lui permettre de générer des codes à barres codés selon le procédé défini dans l'une quelconque des revendications 1 à 8, il comporte en outre des moyens adaptés à représenter graphiquement des codes à barres (24) et des moyens (27, 28) permettant à un utilisateur d'entrer des caractères destinés à être codés, dans les moyens de mémorisation (26) étant enregistré en outre un programme mettant en oeuvre les étapes définies dans l'une quelconque des revendications 1 à 8. 16. Dispositif selon l'une quelconque des revendications 13 à 15, caractérisé en ce qu'il comporte en outre des moyens d'affichage (27) des informations décodées. 17. Dispositif selon l'une quelconque des revendications 13 à 15, caractérisé en ce qu'il comporte en outre des moyens (29) destinés à délivrer les informations décodées. 18. Dispositif de codage selon le procédé défini dans l'une quelconque des revendications 1 à 8, caractérisé en ce qu'il comporte une unité centrale (21) adaptée à exécuter des programmes enregistrés dans des moyens de mémorisation (26), des moyens d'entrée des caractères destinés à être codés, des moyens destinés à délivrer les informations codées à des moyens adaptés à représenter graphiquement des codes à barres (24), des moyens de mémori- sation (26) dans lesquels est notamment enregistré un programme mettant en oeuvre les étapes définies dans l'une quelconque des revendications 1 à 8. 19. Dispositif selon la revendication 18, caractérisé en ce que pour lui permettre de générer des codes à barres, il comporte en outre des moyens (28) permettant à un utilisateur d'entrer des caractères destinés à être codés et reliés auxdits moyens d'entrée, et lesdits moyens adaptés à représenter graphiquement des codes à barres, reliés auxdits moyens destinés à délivrer des informations codées.