LES LIAISONS "SERIE"
LE BUS LIN

 

Hugues ANGELIS

page  3

Calcul du checksum

Pour calculer le checksum, on somme un à un les octets de données de la réponse. Si la somme est supérieure à 255, on effectue l’opération suivante : soustraction de 256 à la somme et ajout de 1. A la fin de l’addition, on complémente le résultat.

Par exemple si on a le message suivant sur 3 octets : 0x94 / 0x75 / 0xE0, l’opération devient la suivante :

·         0x94 + 0x75 = 0x109 (le résultat est supérieur à 0xFF (255) donc la somme est 0x0A (0x09 + 1)).

·         0x0A + 0xE0 = 0xEA (résultat inférieur à 0xFF donc la somme ne change pas).

·         La somme a été calculée et on n’a plus qu’à complémenter le résultat  QUOTE  , c’est notre checksum.

Agenda de transmission

Le principe de l’Agenda de transmission est de créer un cycle de fonctionnement qui permette d’effectuer, de façon automatique, une communication avec les nœuds qui forment le bus LIN, sans conflit et en permettant à tous de parler.

Il y a plusieurs stratégies d’agenda :

·       la première consiste à effectuer un polling de tous les nœuds du réseau susceptible de parler. Les nœuds reçoivent des trames inconditionnelles, ils doivent alors impérativement répondre (même s’ils n’ont rien de particulier à dire). L’inconvénient de cette technique c’est que le temps de cycle risque d’être long (jusqu’à 200 ms en fonction du nombre de nœuds et de la taille des messages envoyés).

·       La seconde consiste à utiliser des trames évènementielles pour identifier tous les nœuds qui auraient des données nouvelles à transmettre. La réactivité du bus est très largement améliorée par cette technique, mais elle impose d’une part des composants assez intelligents (pour pouvoir signaler des changements d’état de leurs entrées) et d’autre part elle entraine des collisions qu’il faut résoudre par l’envoi de trames inconditionnelles aux machines potentiellement en collision.

·       La troisième consiste à panacher les 2 stratégies précédentes. Ce qui permet à la fois d’avoir de la réactivité, si nécessaire, en limitant les risques de collisions, et de parler facilement à des nœuds peu ou pas intelligents.

La base de temps de l’agenda est liée au temps de transmission d’une trame. Cette est fixée par le débit du bus et par la longueur de la trame. Si on considère une trame de longueur maximum, soit 8 octets de données, la trame contient :

13 bits de Break + 10 bits dans chacun des 11 champs suivants (sychro + ident + 8 données + checksum)
soit 123 bits.

Au débit classique (soit 10,4 Kbits/s), la durée d’une trame est de 123 x 962µs = 12 ms (sans tenir compte des intertrames de la liaison série). On prendra toujours comme base de calcul une durée supérieure à cette valeur. Cette valeur sera le temps de base du bus. Le temps de base permet de fixer la durée entre deux émissions d’entête.

La durée du cycle de l’agenda sera donc obtenue en prenant en compte le nombre de trames inconditionnelles, le nombre de trame évènementielle inscrite dans le cycle et la résolution des potentielles collisions, et en le multipliant par le temps de base.