Calculateur de somme de contrôle SUM/XOR/LRC

Calculez SUM-8, SUM-16, XOR-8 et LRC-8 à partir d’octets HEX ou de texte UTF-8.

Les calculs sont effectués dans votre navigateur. Les données ne sont pas envoyées à un serveur.

Format d’entrée

Utilisez du HEX continu ou des groupes d’octets complets séparés par des espaces, virgules ou points-virgules. Le préfixe 0x est accepté. Taille maximale : 64 KiB.

Résultats des sommes de contrôle

Entrée : 4 octets

Aperçu des octets (HEX)

01 02 03 04

SUM-8

Additionnez les octets et gardez les 8 bits de poids faible.

HEX
0x0A
Décimal
10
Binaire
00001010

SUM-16

Additionnez les octets et gardez les 16 bits de poids faible.

HEX
0x000A
Décimal
10
Binaire
0000000000001010

XOR-8

Appliquez XOR à chaque octet, en partant de 0.

HEX
0x04
Décimal
4
Binaire
00000100

LRC-8

Complément à deux de SUM-8 : (256 − SUM-8) mod 256.

HEX
0xF6
Décimal
246
Binaire
11110110

LRC-8 utilise le complément à deux de la somme selon Modbus ASCII. Seuls les octets saisis sont calculés ; les en-têtes et fins de trame ne sont pas supprimés automatiquement.

Calculer une somme de contrôle

Choisissez les octets HEX ou le texte UTF-8, puis saisissez les données. Les quatre résultats se mettent à jour automatiquement. HEX accepte 01020304, 01 02 03 04 ou 0x01, 0x02. Les demi-octets, signes négatifs, deux-points et trames Modbus ASCII complètes ne sont pas acceptés. Changer de format réinterprète le contenu sans le convertir.

Différences entre les algorithmes

  • SUM-8 : somme des valeurs des octets modulo 256.
  • SUM-16 : somme des octets individuels modulo 65536. Les octets ne sont pas assemblés en mots de 16 bits ; ce n’est pas le checksum Internet.
  • XOR-8 : XOR de tous les octets en partant de zéro. Certains protocoles l’appellent BCC ; vérifiez la définition de votre appareil.
  • LRC-8 : complément à deux de SUM-8, selon Modbus ASCII. D’autres protocoles peuvent définir LRC autrement.

Pour les octets HEX 01 02 03 04 :

SUM-8 SUM-16 XOR-8 LRC-8
0x0A 0x000A 0x04 0xF6

Exemple LRC Modbus ASCII

L’exemple 01 03 00 00 00 0A donne le LRC-8 0xF2. Il s’agit de six octets HEX, pas des codes UTF-8 des caractères hexadécimaux affichés.

Pour générer le LRC, saisissez uniquement l’adresse, la fonction et les données. Excluez le deux-points initial, un LRC existant et CR/LF. Ajoutez F2 pour obtenir :01030000000AF2, suivi de CR/LF. Voir le guide Modbus Serial Line, §6.2.1.

Pour vérifier un LRC existant, saisissez les données et le LRC en HEX : 01 03 00 00 00 0A F2. SUM-8 doit être 0x00. Cela vérifie la relation de somme, pas la structure complète de la trame.

Pourquoi le texte et le HEX diffèrent-ils ?

Le texte 01 devient les octets UTF-8 30 31 ; HEX 01 est un seul octet. Les espaces et sauts de ligne comptent en mode texte ; les caractères non ASCII peuvent occuper plusieurs octets. Vérifiez l’aperçu. La limite est de 64 KiB ; seuls les 32 premiers octets sont affichés, mais tous sont calculés.

Ces sommes détectent certaines erreurs de transmission ; elles ne protègent pas contre la falsification. Pour CRC, MD5 ou SHA, utilisez les outils liés sur cette page.