4.7 Somme de contrôle (CRC16)
Mode de calcul
Exemple 1
Exemple 2
La somme de contrôle (CRC16) permet de détecter les erreurs de transmis-
sion. Si une erreur est détectée lors de l'analyse, l'appareil correspondant ne
répond pas.
CRC = 0xFFFF
CRC = CRC XOR ByteOfMessage
For (1 à 8)
CRC = SHR(CRC)
if (drapeau report à droite = 1)
then
CRC = CRC XOR 0xA001
while (tous les octets du message ne sont pas traités);
L'octet de poids faible de la somme de contrôle est transmis en
premier.
Lecture de l'entrée de mesure 2 (valeur actuelle = 58.272)
de l'enregistreur sans papier 20 (0x14).
Demande de données à l'esclave 0x14 : lecture de deux mots à l'adresse 0x37
(CRC16 = 0x0077)
14
03
0037
Réponse (CRC = 0x1DFA) :
14
03
04
Mot 1 et mot 2 contiennent la réponse 58.272.
Consultation de l'état des sorties relais.
Ordre : lecture d'un mot à l'adresse 0x31 (CRC16 = 0x00D7)
14
03
0031
Réponse (CRC = 0x4774) :
14
03
02
D'après le mot 1, seule la sortie 1 est active.
4 Description du protocole
0002
7700
1687
4269
mot 1
mot 2
0001
D700
0001
7447
mot 1
else
FA1D
15