IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Réseau C Discussion :

CRC, besoins de précision sur la facon de calculer svp


Sujet :

Réseau C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2006
    Messages
    501
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2006
    Messages : 501
    Par défaut CRC, besoins de précision sur la facon de calculer svp
    Bonjour,

    J'ai besoin de précisions pour le calcul du CRC.

    En cours, on a vu un exemple mais le problème c'est que 2 profs nous ont donné 2 réponses différentes lol

    Le mot de départ est 807E
    Le polynome générateur est A001

    L'algo utilisé est un CRC-16 (mode RTU, MODBUS : je sais pas trop si ca caractérise l'algo mais je marque ce qui est sur la feuille ou l'algo est détaillé)

    En fait, les différences qu'il y a dans le calcul du CRC, c'est au moment du décalage à droite des bits.

    Un prof décale en faisant une boucle, c'est a dire que le dernier bit se retrouve en tête.
    ex : 10011 devient 11001

    Le deuxième prof décale aussi mais le dernier bit est comme "jeté" à la poubelle et n'est pas remis au début. Du coup il met un 0 par défaut en tête...
    ex : 10011 devient 01001


    Donc, par décalage, est-ce qu'on veut dire que ca fait une boucle et du coup ce qui est à la fin se retrouve au début ou ca veut vraiment dire décalage brut et du coup au début on met un 0 par défaut ?

    Merci
    ++

    Ps : a moins qu'il y a des logiciels pour calculer le CRC, je pourrais voir quelle solution est juste comme ca ?

  2. #2
    Expert confirmé

    Inscrit en
    Août 2006
    Messages
    3 967
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 3 967
    Par défaut
    Gao,

    Si l'algorithme parle de décalage à droite, c'est le 2ème qui a raison, le 1er faisant une rotation, pas un décalage.

  3. #3
    Membre éclairé
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2006
    Messages
    501
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2006
    Messages : 501
    Par défaut
    Oui ca parait logique...

    Mais de façon générale, quand on calcule un CRC, on fait comment le décalage ?
    Quelqu'un si connait ?

    J'ai trouvé une source intéressante :
    http://www.efg2.com/Lab/Mathematics/CRC.htm

    Mais l'ennui c'est que ca calcule en fonction d'un polynome générateur défini qui est différent du mien.

    Quelqu'un saurait comment modifier le polynôme générateur dans ce code ?

    Merci
    ++

  4. #4
    Rédacteur

    Avatar de ram-0000
    Homme Profil pro
    Consultant en sécurité
    Inscrit en
    Mai 2007
    Messages
    11 517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant en sécurité
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2007
    Messages : 11 517
    Par défaut
    Je confirme, dans un CRC, c'est un décalage, pas une rotation donc on fait rentrer des 0.

    Il faut savoir qu'il existe pleins de CRC 16 et que tous sont valides (mais pas égaux). Ce qui les différencie, c'est leur polynome générateur qui a des caractéristiques mathématiques bien particulières (que je ne suis pas sûr de bien comprendre).

    Dans ton cas, ton polynome générateur est A001 ce qui peut se traduire en x15 + x13 + 1 (sauf erreur).

    Dans le lien que tu donne http://www.efg2.com/Lab/Mathematics/CRC.htm, le programme utilise un CRC32 (celui utilisé par pkzip) et un CRC16 dont le polynome est x16 + x15 + x2 + 1. Donc les 2 CRC 16 ne donneront pas le même résultat.

    Il te faut trouver un autre programme qui calcule un CRC16 dont tu puisse spécifier le polynome. Désolé, j'ai pas.
    Raymond
    Vous souhaitez participer à la rubrique Réseaux ? Contactez-moi

    Cafuro Cafuro est un outil SNMP dont le but est d'aider les administrateurs système et réseau à configurer leurs équipements SNMP réseau.
    e-verbe Un logiciel de conjugaison des verbes de la langue française.

    Ma page personnelle sur DVP
    .

  5. #5
    Membre éclairé
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2006
    Messages
    501
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2006
    Messages : 501
    Par défaut
    Citation Envoyé par ram_0000 Voir le message
    Je confirme, dans un CRC, c'est un décalage, pas une rotation donc on fait rentrer des 0.
    Merci, c'est ce que je voulais savoir

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Besoin de précision sur le compilo
    Par mensoif dans le forum C#
    Réponses: 2
    Dernier message: 03/03/2009, 21h24
  2. Map trois dim : Besoin de précision sur un tuto de gamedev.net
    Par TheDrev dans le forum Développement 2D, 3D et Jeux
    Réponses: 1
    Dernier message: 04/09/2008, 19h29
  3. Besoin de précision sur Regex
    Par Kyo-AzN dans le forum Langage
    Réponses: 4
    Dernier message: 25/02/2008, 16h56
  4. [POO Basique] Besoin de précision sur une notion de base
    Par alois.cochard dans le forum Langage
    Réponses: 8
    Dernier message: 15/09/2006, 09h01
  5. Besoin de précision sur TThread
    Par psau dans le forum C++Builder
    Réponses: 2
    Dernier message: 15/02/2005, 23h35

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo