Calcul Checksum pour Transfert RS232
Répondre à la discussion
Affichage des résultats 1 à 2 sur 2

Calcul Checksum pour Transfert RS232



  1. #1
    invitee9004dcd

    Unhappy Calcul Checksum pour Transfert RS232


    ------

    Salut, j'ai un problème avec le calcul du checksum suivant, je dois le calculer sur la chaîne suivante (exemple) : P000001I009619010

    Les instructions que j'ai sont :

    Le checksum doit être calculé comme XOR des caractères individuels.

    h = Résultat de XOR en AND avec &h70 décalé à droite de 4 places en OR avec &h30.

    k = Résultat du xor en AND avec &h0F en OR avec &h30

    Mais sur un autre document que j'ai ils disent ça :

    Le checksum doit être calculé comme XOR des caractères individuels.

    les 4 bit bas de XOR en OR avec &h30 constituent k pendant que les 4 bit hauts (8ième bit à 0) décalé en bas en OR avec &h30 sont h.

    Comme vous pouvez le constater, ce n'est pas évident et je dois trouver la solution le plus tôt possible. Si quelqu'un pouvait m'aider ça serait tellement gentil!

    Merci à l'avance!

    -----

  2. #2
    umfred

    Re : Calcul Checksum pour Transfert RS232

    Les 2 explications sont équivalentes:

    - il faut dans un premier faire un XOR de tous les éléments individuels (résultat sur un octet)
    - ensuite il faut transformé ton checksum en ASCII:
    -- pour h, tu prends les 4 bits de poids forts, tu mets à 0 le bit7 (opération de "AND &h70" avec décalage de 4 bits vers la droite) et tu rajoute (ou fait un OR avec) &h30
    -- pour k, tu prends les 4 bits de poids faible, (opération de "AND &h0F") et tu rajoute (ou fait un OR avec) &h30

    Par exemple, si ton checksum vaut &h86
    tu aura:
    h = ((&h86 AND &h70) >> 4 ) OR &h30
    h = (&h00>>4) OR &h30
    h = &h00 OR &h30 = &h30 (caractère '0')
    et
    k = (&h86 AND &h0F) OR &h30
    k = &h06 OR &h30
    k = &h36 (caractère '6')

    Autre exemple checksum = &h53
    tu aura:
    h = ((&h53 AND &h70) >> 4 ) OR &h30
    h = (&h50>>4) OR &h30
    h = &h05 OR &h30 = &h35 (caractère '5')
    et
    k = (&h53 AND &h0F) OR &h30
    k = &h03 OR &h30
    k = &h33 (caractère '3')

Discussions similaires

  1. Commande RS232 pour vidéoprojecteur
    Par invite7701bb8e dans le forum Électronique
    Réponses: 1
    Dernier message: 10/11/2007, 11h07
  2. calcul fonction de transfert d'un RSIL???
    Par invited011c727 dans le forum Électronique
    Réponses: 4
    Dernier message: 13/01/2007, 15h58
  3. rs232 and checksum
    Par Xman_fr dans le forum Logiciel - Software - Open Source
    Réponses: 21
    Dernier message: 03/08/2006, 15h37
  4. Calcul de fonction de transfert d'un montage
    Par invite78e09aa3 dans le forum Électronique
    Réponses: 20
    Dernier message: 15/05/2006, 13h19
  5. Calcul de composant a partir de la fonction de transfert
    Par purge31 dans le forum Électronique
    Réponses: 4
    Dernier message: 20/03/2006, 20h47
Découvrez nos comparatifs produits sur l'informatique et les technologies.