Delta Electronics VFD-E Série Mode D'emploi page 192

Table des Matières

Publicité

Chapitre 4 Paramètres |
01H+03H+04H+01H+00H+01H=0AH, la négation complémentaire 2 de 0AH est F6H.
Mode RTU :
La CRC (vérification cyclique redondante) est calculée par les étapes suivantes :
Étape 1 : Chargement d'un registre de 16 bits (appelé le registre CRC) avec FFFFH.
Étape 2 : OR exclusif du premier octet du message de commande à 8 bits avec l'ordre bas
du registre CRC de 16 bits, en mettant le résultat dans le registre CRC.
Étape 3 : Examinez le registre LSB de CRC.
Étape 4 : Si le registre LSB de CRC est 0, décale le registre CRC d'un bit vers la droite en
remplissant MSB de zéros, puis répète l'étape 3. Si le registre LSB de CRC est 1, décale le
registre CRC d'un bit vers la droite en remplissant MSB de zéros, OU exclusif pour le
registre CRC avec valeur polynomiale A001H, puis répète l'étape 3.
Étape 5 : Répète les étapes 3 et 4 jusqu'à 8 décalages. Ensuite, un octet complet de 8 bits
a été traité.
Étape 6 : Répète les étapes 2 à 5 pour les 8 prochains bits du message de commande.
Continue ainsi jusqu'à ce que tous les octets soient traités. Les contenus finaux du registre
CRC correspondent à la valeur CRC. Lors de la transmission de la valeur CRC dans le
message, les octets supérieurs et inférieurs de la valeur CRC sont échangés, ainsi les
octets inférieurs sont transmis en premier.
Vous trouvez ci-après un exemple de la génération CRC à l'aide du langage C. La fonction
exige deux arguments :
Unsigned char* data
Unsigned char length
La fonction retourne la valeur CRC de type integer unsigned.
Unsigned int crc_chk(unsigned char* data, unsigned char length){
int j;
unsigned int reg_crc=0xFFFF;
while(length--){
reg_crc ^= *data++;
for(j=0;j<8;j++){
if(reg_crc & 0x01){ /* LSB(b0)=1 */
reg_crc=(reg_crc>>1) ^ 0xA001;
}else{
reg_crc=reg_crc >>1;
}
}
}
return reg_crc;
}
Adresse
Fonction
Adresse du début de la
donnée
Nombre de données
(décompte par mot)
CRC CHK Low
CRC CHK High
un pointeur vers le tampon du message
la quantité d'octets dans le tampon du message
01H
03H
21H
02H
00H
02H
6FH
F7H

Publicité

Table des Matières
loading

Table des Matières