FR 2773934 A1 19990723 FR 9800450 A 19980116 Procédé de communication avec acquittement de réception amélioré La présente invention se rapporte à un procédé de communication entre une unité maîtresse et une unité esclave. C'est un procédé de communication performant en ce sens qu'il utilise un protocole avec un acquittement amélioré lors de la réception d'un message. L'invention s'applique dans le domaine des transmissions numériques. Ces transmissions numériques peuvent s'effectuer au moyen de différents supports. Les canaux de transmission peuvent en effet être soit une liaison filaire soit une fibre optique ou encore un volume d'air compris entre deux antennes. La figure 1 représente un exemple de communication par liaison radio fréquence. Sur cette figure, une unité maîtresse 1 échange des messages via une antenne émettrice/réceptrice 11 avec une unité esclave 2 également équipée d'une antenne émettrice/réceptrice 22. Le canal de transmission est ici constitué par le volume d'air compris entre les deux antennes 11 et 22. L'unité maîtresse et l'unité esclave peuvent toutes deux alternativement émettre ou recevoir des messages à destination ou en provenance de l'autre unité. L'unité maîtresse se distingue de l'unité esclave en ce sens que c'est l'unité maîtresse qui prend l'initiative de la communication. L'unité maîtresse peut ainsi être par exemple, l'unité centrale d'un ordinateur. L'unité esclave peut alors être un de ces périphériques, comme une imprimante commandée à distance au moyen d'un canal de transmission quelconque. Dans l'état de la technique, on connaît des procédés de communication consistant à émettre des messages comportant un mot d'information utile et un ou plusieurs bits de service. La transmission est réalisée en série selon un protocole de communication déterminé. Un tel protocole spécifie le format et la syntaxe des messages qui sont transmis par l'unité maîtresse vers l'unité esclave, ou réciproquement. La transmission s'effectue de manière synchrone. Elle est séquencée à un rythme déterminé, les unités comportant des moyens connus pour se caler sur le rythme d'une même horloge ou de deux horloges synchrones ou dia-synchrones. A la figure 2, on a représenté un exemple assez simple d'un format de message élémentaire connu. Le message élémentaire comporte tout d'abord un bit de démarrage START qui a pour fonction de synchroniser l'horloge de l'unité destinatrice avec le message reçu. Ensuite, le message élémentaire comporte un mot d'information utile INFO, par exemple codé sur huit bits (un octet). Ce mot peut être un mot d'instruction, dont la valeur indique la nature d'une commande, à réaliser par l'unité destinatrice. Cette instruction peut par exemple être un ordre de lecture ou d'écriture. Il peut également s'agir d'un mot d'adresse, dont la valeur indique l'adresse ou une partie de l'adresse d'un emplacement mémoire de l'unité destinatrice. A cet emplacement mémoire de l'unité destinatrice, une donnée peut être, par exemple, lue ou écrite. Enfin, il peut également s'agir d'un mot de donnée, dont la valeur indique la valeur d'une donnée traitée par l'unité destinatrice. Le message élémentaire comporte encore un bit de contrôle CHECK qui peut notamment être un bit de contrôle de parité. La valeur du bit de contrôle de parité CHECK est fixée à la valeur logique 1 ou 0. Cette valeur est déterminée de telle façon que la somme des valeurs des bits du mot d'information utile INFO donne une valeur paire ou impaire selon le type de parité adopté. Le rôle du bit de contrôle de parité CHECK est de permettre à l'unité destinatrice de détecter d'éventuelles erreurs de transmission. Dans un tel cas, l'unité destinatrice peut éventuellement solliciter une ré-émission du message. Enfin, en l'état de la technique, le message comporte un bit STOP de fin de transmission. Ce bit sert uniquement à indiquer la fin du message élémentaire. A la suite de ce bit de fin de transmission STOP, chaque protocole prévoit généralement un certain nombre d'unités temporelles élémentaires, pendant lesquelles l'unité d'émission n'émet plus aucun bit sur le canal de transmission. Ainsi, le canal de transmission est laissé libre pour que l'unité destinatrice émette un bit d'acquittement ACK de la communication. La valeur logique de ce bit d'acquittement ACK indique si le message a été correctement reçu. Le moyen essentiel dans l'état de la technique pour voir si le message élémentaire a été correctement reçu, est le contrôle effectué à l'aide du bit de contrôle de parité CHECK. De plus, selon le protocole utilisé, la valeur du bit d'acquittement ACK provoque une ré- émission du message élémentaire en cas de réception erronée. Sur la figure 2, quatre de ces unités temporelles élémentaires faisant suite au bit STOP sont représentées. Une de ces unités temporelles est occupée par le bit d'acquittement de réception ACK. On connaît aujourd'hui dans les systèmes électroniques une quantité très importante de protocoles de communication différents. Chaque protocole est adapté à des contraintes spécifiques de telle ou telle application (taille des mots & transmettre, contrôle de cohérence, sécurisation contre les interventions passives ou actives de personnes mal attentionnées, mode d'acquittement, durée maximale d'une émission compte tenu du débit numérique, etc.). Au sein d'un même système, l'unité maîtresse et l'unité esclave se conforment évidemment à un même protocole de communication pour pouvoir communiquer intelligiblement. Les informations relatives au protocole de communication, développées par les fabricants de systèmes électroniques, font en général l'objet d'une large diffusion. Ces fabricants permettent ainsi à d'autres fabricants d'incorporer ces systèmes dans des ensembles plus complexes, ou d'en développer de nouvelles applications industrielles et/ou commerciales. Il en résulte, au regard de l'ampleur que prennent les communications utilisant de tels protocoles, que l'intégrité et le rendement des informations transmises doivent être optimaux. En d'autres termes, il faut que la transmission soit entachée d'un minimum d'erreurs. Il existe d'ailleurs des applications o l'intégrité et le rendement des informations échangées sont des contraintes importantes du cahier des charges. Dans l'état de la technique, le contrôle de la qualité de la transmission des signaux binaires réside essentiellement dans l'analyse et l'interprétation de la valeur du bit de contrôle de parité CHECK mentionné précédemment. Les figures 3A et 3B représentent deux cas de transmissions possibles. Ces figures illustrent la détermination du bit de parité CHECK. Pour ces exemples on a gardé le format de message tel que celui présenté à la figure 2. On ne se soucie pas dans ces figures de la valeur des bits de démarrage START et de fin de transmission STOP. On ne s'intéresse ici qu'aux valeurs des bits du mot d'information utile INFO, du bit de contrôle de parité CHECK et du bit d'acquittement ACK. La figure 3A représente le cas d'un mot d'information utile INFO1 dont la transmission n'a pas été erronée. On choisit arbitrairement, de donner la valeur logique 1 à sept premiers bits B1, B2, B3, B4, B5, B6, B7, du mot d'information utile INFO1. Un dernier bit BS, du mot d'information utile INFO1 est fixé à la valeur logique 0. Si on choisit d'adopter un type de parité dit paire, le bit de contrôle de parité CHECK prendra alors la valeur logique 1. En effet, la somme des valeurs des huit bits du mot d'information utile INFO1 ajoutée à la valeur du bit de parité CHECK donne le nombre 8. Ce résultat est conforme au type de parité choisi. Dans le cas de la figure 3A, la transmission du mot d'information utile INFO1 n'a pas subi de dommages. Un mot d'information utile INFO2, qui est le mot résultant de la transmission du mot d'information utile INFO1, présente par conséquent les mêmes valeurs binaires pour chacun des bits. En général, un circuit constitué de portes logiques élémentaires permet de vérifier que le résultat de la transmission du mot d'information utile est conforme à ce qui était attendu au regard de la valeur du bit de contrôle de parité et selon le type de parité adopté. Le bit d'acquittement a la valeur témoignant d'une réception correcte. Sur les figures 3A et 3B, un acquittement correct correspond arbitrairement à la valeur 1 du bit d'acquittement ACK. La figure 3B, représente le cas du même mot d'information utile INFO1 reçu avec une erreur de transmission. Un mot d'information utile INFO3 est reçu dans l'unité de réception suite à l'émission du mot d'information utile INFO1. Sur la figure 3B, le huitième bit B8 du mot d'information utile INFO3 est différent du huitième bit du mot d'information utile INFOl. La transmission a donc été erronée, et le mot d'information utile INFO3 n'est alors plus en adéquation avec le bit de contrôle de parité CHECK. Il en aurait été de même si trois, cinq ou sept des huit bits constituant le mot d'information utile INFO3 avaient été différents des bits correspondants au mot d'information utile INFO1. En effet, dans tous ces cas, la somme des huit bits du mot d'information utile INFO3, ajoutée à la valeur du bit de contrôle de parité CHECK, donne un nombre impair alors que le type de parité est un type de parité dit "parité paire". Par conséquent, sur la figure 3B, le bit d'acquittement ACK a la valeur 0. La transmission d'un message comporte trois ou quatre phases de réception et d'émission selon qu'on est un mode lecture ou écriture. L'ordre de ces phases est important. Pour une opération d'écriture, une séquence de transmission d'un message se décompose par exemple en quatre phases de transmission qui correspondent pour chacune à la transmission d'un message élémentaire contenant un mot d'information utile de type différent. En mode écriture, la première phase de transmission est la transmission d'un code relatif à une instruction à exécuter. La seconde phase de la transmission est la transmission des bits de poids faible de l'adresse mémoire à laquelle on veut écrire une donnée. La troisième phase de la transmission est la transmission des bits de poids fort de cette même adresse mémoire. Enfin, la quatrième phase de la transmission est la transmission des bits constituant la donnée à écrire à cette adresse mémoire. Pour une opération de lecture, une séquence de transmission d'un message se décompose en trois phases de transmission qui correspondent pour chacune à la transmission d'un message élémentaire contenant un mot d'information utile de type différent. Ces trois phases de transmission sont les trois premières phases décrites lors de la description du déroulement de la séquence type d'une opération d'écriture. Dans l'état de la technique, lorsqu'une erreur est détectée par un test portant sur le bit de contrôle de parité, la séquence de transmission est reprise à sa première phase de transmission du message, quel que soit la phase de transmission courante. Il en résulte que, même si les premières phases de la transmission avaient été correctement acquittées, ces phases de transmission doivent subir à nouveau tout le processus de transmission. Ceci pose des problèmes de rendement de la transmission. L'objet de la présente invention est de pallier cet inconvénient. Un acquittement de réception permet, selon l'invention, une ré- émission de la phase courante de la séquence de transmission. En particulier, l'invention propose la mise en oeuvre d'un compteur permettant de compter le nombre de ré-émission d'une même phase de transmission. Au bout d'un nombre prédéterminé de ré-émission de la même phase de la séquence de transmission, le compteur est réinitialisé et la séquence de transmission est de nouveau effectuée depuis sa première phase de transmission. D'une façon générale, l'invention propose un procédé de communication entre une unité maîtresse et une unité esclave, du type consistant à transmettre des messages constitués de messages élémentaires comportant un mot d'information utile d'un type déterminé, par exemple une instruction, une adresse ou une donnée, et des bits de service, caractérisé en ce que les messages élémentaires comprennent au moins un bit de réception émis par l'unité esclave déterminant l'étape suivante de la transmission. En substance, on introduit ainsi dans le protocole lui-même un moyen amélioré pour déterminer la phase d'émission suivante dans une séquence de transmission. Le bit de réception, ou les bits de réception, indiquent dans une application préférée de l'invention, l'acquittement de la réception d'un message élémentaire. Les caractéristiques et avantages essentiels de la présente invention apparaîtront de façon plus détaillés à la lecture de la description d'un exemple préféré de réalisation qui va suivre. Celle-ci est purement illustrative, et doit être lue en regard des dessins annexés sur lesquels on a représenté: - à la figure 1: déjà analysée, une unité maîtresse et une unité esclave aptes à échanger des messages; - à la figure 2: également déjà analysée, un exemple de format connu d'un message élémentaire; - aux figures 3A et 3B: également déjà analysées, différents cas de figures illustrant la fonction du bit de contrôle de parité; - à la figure 4: un exemple de format selon l'invention, d'un message élémentaire; - à la figure 5: un organigramme de programme pour la mise en oeuvre du procédé selon l'invention, à l'émission d'un message; - à la figure 6: un organigramme de programme pour la mise en oeuvre du procédé selon l'invention, & la réception d'un message; - à la figure 7: un dispositif pour la mise en oeuvre du procédé selon l'invention. On a vu lors de la description de la figure 2 que les protocoles prévoient généralement un certain nombre d'unités temporelles élémentaires pendant lesquelles une unité d'émission n'émet plus aucun bit sur le canal de transmission. Le canal de transmission est ainsi laissé libre pour que l'unité destinatrice émette un bit d'acquittement de la communication. En fonction de la valeur logique de ce bit d'acquittement, le message élémentaire émis est considéré comme correctement reçu ou comme reçu de façon erronée. Dans le premier cas, on passe à la phase suivante de la séquence d'émission du message. Dans le second cas on réitère la totalité de la séquence d'émission du message. Le bit d'acquittement ne renvoie donc qu'une information purement binaire. L'invention présente une amélioration du rôle de ce bit d'acquittement. L'objectif de cette amélioration est de provoquer chez l'unité d'émission soit l'émission de la phase suivante de la séquence d'émission du message, soit la ré-émission de la dernière phase émise de la séquence d'émission du message, soit la ré-émission de la totalité de la séquence d'émission du message. Dans une première application, l'invention propose de tenir compte d'une part de la valeur du bit d'acquittement ACK, et d'autre part de sa position dans les unités temporelles élémentaires laissées libres par l'unité d'émission. Le bit d'acquittement est alors porteur d'une information plus riche qu'une information binaire. Le format de message élémentaire selon un exemple préféré de l'invention est représenté à la figure 5. Ce format de message élémentaire est conforme à celui de l'art antérieur représenté à la figure 2, sauf en ce que chaque message comprend deux bits ACK1 et ACK2 d'acquittement de réception. Ces deux bits ACK1 et ACK2 constituent un mot d'acquittement de réception MACK. Chaque message élémentaire est donc pourvu de deux bits d'acquittement constituant ainsi un mot d'acquittement. Par conséquent, le mot d'acquittement peut véhiculer une information plus riche qu'une simple information binaire. Ils permettent d'informer l'unité d'émission sur la phase de la séquence d'émission du message qui doit être émise. A la figure 5, on a représenté un organigramme d'un programme pour la mise en oeuvre d'un procédé selon l'invention à l'émission d'un message. Sur cette figure on a utilisé les indices suivants: - une lettre k qui désigne un indice pouvant prendre une valeur de 0 à 4. Cet indice est significatif de la phase courante de la séquence d'émission; - une lettre S qui détermine dans tous les cas, le nombre de phase dans la séquence d'émission; - des valeurs VAL1, VAL2 et VAL3 qui désignent les différentes valeurs que peuvent prendre le mot d'acquittement MACK. La valeur VAL1 signifie que la réception a été correctement acquittée au regard du bit de contrôle de parité. La valeur VAL2 signifie que la réception n'a pas été correctement acquittée au regard du bit de contrôle de parité, mais que l'on souhaite reprendre la séquence d'émission à la phase courante de la séquence d'émission. Le dernier message élémentaire émis est alors émis de nouveau. Enfin, la valeur VAL3 correspond à la valeur prise par le mot d'acquittement lorsque la réception n'a pas été correctement acquittée et que l'on souhaite reprendre l'émission à partir de la première phase de la séquence d'émission du message. Dans une première étape 101, après le début du programme, un test est effectué pour savoir si l'on se trouve dans la première phase de la séquence d'émission. La valeur de k est alors 0. Si la réponse est oui, alors le mot d'information utile est nécessairement une instruction de commande. Un test 102 permet alors de vérifier, grâce à un décodage des bits du mot d'information utile, si le mot d'information utile correspond à une instruction d'écriture. Si la réponse est oui, alors l'entier naturel S prend dans une étape 103 la valeur 4. Si la réponse est non, c'est-à-dire si l'instruction est un ordre de lecture, l'entier naturel S prend dans une étape 104 la valeur 3. Une fois le nombre de phases de la séquence d'émission déterminé, le message est effectivement émis dans une étape 105. Suite à cette étape 105, une étape 106 consiste en la réception du mot d'acquittement MACK. Puis vient une étape 107, qui est un test visant à vérifier, en fonction de la valeur du mot MACK, si la dernière émission a été correctement acquittée par l'unité de réception. Si l'émission a été correctement acquittée par l'unité de réception, l'indice k est agrémenté d'une unité dans l'étape 108. Suite à cette étape 108, vient une étape 109 qui est un test visant à vérifier si la valeur de l'indice k a atteint la valeur de l'entier S précédemment fixée. Si la réponse est positive, la séquence d'émission est achevée. Dans une étape 110, l'indice k est alors réinitialisé à la valeur 0. C'est la fin du programme. Si la réponse au test 109 est négative, la boucle du programme reprend à partir de l'étape 101. Dans le cas o la réponse au test 107, qui est le test permettant de vérifier si l'émission a été correctement acquittée, est négative, un test 111 est effectué. Ce test 111 effectue la comparaison entre le mot d'acquittement MACK à la valeur VAL2. S'il y a coïncidence entre ces deux valeurs, le programme reprend à l'étape 101. Nous sommes alors dans le cas de figure o l'émission n'a pas été correctement acquittée et o on réitère la phase courante de la séquence d'émission du message. Dans le cas o la réponse au test 111 est négative on réinitialise la variable k à la valeur 0 dans une étape 112, et on reprend le programme au test 102. Ce dernier cas de figure correspond en effet à une réception non correctement acquittée et à une reprise de la séquence d'émission à la première phase de cette séquence d'émission. A la figure 6, on a représenté l'organigramme d'un programme pour la mise en oeuvre du procédé selon l'invention lors de la réception d'un message. On introduit dans cette figure des variables k' et S' qui sont des entiers naturels dont les rôles sont identiques aux variables k et S présentes à la figure 5. Une variable CMPT est présente dans l'organigramme de la figure 6. Elle permet de compter le nombre d'émission successive d'une même phase de la séquence d'émission d'un message. Une constante LIM est également introduite. Cette constante est arbitrairement choisie. Cette constante LIM permet de limiter le nombre d'émission successive d'une même phase d'une séquence d'émission à la valeur qui lui a été attribuée. Dans une première étape 200, après le début du programme, le message émis par l'unité d'émission est reçu. Dans une étape 201, qui fait suite à la première étape 200, un test est effectué pour savoir si on se trouve dans la première phase de la séquence de réception, c'est à dire si k'=0. Si la réponse est oui, alors le mot d'information utile est nécessairement une instruction de commande. Un test 202 permet alors de vérifier, par un décodage des bits du mot d'information utile, si le mot d'information utile correspond à une instruction d'écriture. Si la réponse est oui, alors l'entier naturel S' prend dans une étape 203 la valeur 4. Si la réponse est non alors l'entier naturel S' prend dans une étape 204 la valeur 3. A l'issue de l'étape 204, ou à l'issue de l'étape 202 si la réponse au test 201 est négative, un test de parité 205 est effectué. Si le test de parité 205 s'avère bon, selon le principe précédemment exposé, une étape 206 attribue la valeur VAL1 au mot d'acquittement MACK. Puis dans une étape 207, la variable CMPT est réinitialisée à 1. Faisant suite à cette étape 207, vient une étape 208 dans laquelle l'indice k' est incrémenté d'une unité. On effectue ensuite un test 209, qui compare les entiers k' et S'. Si ces valeurs sont égales, c'est-à- dire si la séquence de réception est à sa dernière phase, alors l'indice k' est réinitialisé à O dans une étape 210, et le mot d'acquittement correct, dont la valeur est VAL1, est émis dans une étape 211. La fin du programme est alors atteinte. Si le test de parité 205 a révélé une erreur de transmission, la variable CMPT est incrémentée d'une unité dans une étape 212. Suite à l'étape 212, vient un test 213, o la variable CMPT est comparée à la constante LIM. Si ces deux valeurs sont différentes, on attribue dans une étape 214 la valeur VAL2 au mot d'acquittement MACK. Une ré-émission du dernier message élémentaire émis est ainsi sollicitée. Ce mot d'acquittement est émis dans une étape 218. Si les valeurs des variables CMPT et LIM sont égales, on attribue dans une étape 215 la valeur VAL3 au mot d'acquittement MACK. Suite à cette étape 215, viennent alors deux étapes 216 et 217, dans lesquelles on réinitialise la variable CMPT à la valeur 1 et la variable k' à la valeur 0. L'émission du mot d'acquittement MACK est alors effectuée dans l'étape 218. Une ré-émission de la totalité de la séquence d'émission du message est ainsi sollicitée. Ainsi, en cas d'une transmission non correctement acquittée, la transmission du dernier message élémentaire transmis est sollicitée un certain nombre de fois avant que la transmission soit reprise au premier message élémentaire du message courant. Dans tous les cas, l'étape 218 replace l'exécution du programme à l'étape 200 qui est la réception d'une phase de la séquence d'émission. A la figure 7, on a représenté schématiquement un dispositif pour la mise en oeuvre du procédé selon l'invention. L'unité esclave 2 comprend une unité de réception pour recevoir un message élémentaire, et des moyens 71 pour analyser la cohérence du message élémentaire reçu au regard de la valeur du bit de contrôle de parité. Ces moyens 71, peuvent être un circuit à base de portes logiques élémentaires. En outre, des moyens d'attribution 72 affectent le bit de réception approprié ACK ou, le cas échéant, le mot de réception approprié MACK. Un compteur 73 est incrémenté si une ré-émission est sollicitée. Ce compteur 73 peut être réinitialisé pas des moyens de réinitialisation 74 après un certain nombre de réémissions du même message élémentaire. Enfin, l'unité esclave 2 comprend une unité d'émission 75 pour émettre le bit de réception ACK ou, le cas échéant, le mot de réception MACK approprié. REVENDICATIONS 1. Procédé de communication entre une unité maîtresse 1 et une unité esclave 2, du type consistant à transmettre des messages constitués de messages élémentaires, chaque message élémentaire comportant un mot d'information utile (INFO) d'un type déterminé, par exemple une instruction, une adresse ou une donnée, et des bits de service, caractérisé en ce que les messages élémentaires comprennent au moins un bit de réception (ACK) émis par l'unité esclave permettant de déterminer l'étape suivante de la transmission. 2. Procédé de communication selon la revendication 1 caractérisé en ce que les messages élémentaires comprennent un mot (MACK) d'au moins deux bits de réception (ACK 1, ACK 2) émis par l'unité esclave dont la valeur est significative du message élémentaire suivant à transmettre. 3. Procédé de communication selon la revendication 1 ou 2 caractérisé en ce que le bit de réception (ACK) ou les bits de réception (ACK 1, ACK 2) acquittent la réception du message élémentaire. 4. Procédé de communication selon l'une quelconque des revendications précédentes caractérisé en ce que, en cas d'une transmission non correctement acquittée, la transmission du dernier message élémentaire transmis est sollicitée un certain nombre de fois avant que la transmission soit reprise au premier message élémentaire du message courant. 5. Dispositif pour la mise en oeuvre d'un procédé de communication selon l'une quelconque des revendications précédentes caractérisé en ce qu'il comporte une unité maîtresse 1 et une unité esclave 2 et en ce que l'unité esclave 2 comprend: - des moyens (71) pour analyser la cohérence du message élémentaire reçu selon la valeur du bit de contrôle de parité, des moyens (72) d'attribution du bit de réception (ACK) ou du mot de réception (MACK), - un compteur (73) d'émission pour compter le nombre de réceptions successives du même message élémentaire, - des moyens (74) pour réinitialiser le compteur.