S1 Frequenzumrichter
mit dem vom Sender generierten CRC-Bytes. Unterscheiden sich die Bytes, dann wird eine
Kommunikationsstörung ausgelöst.
Bei der CRC-Prüfung wird zunächst 0xFFFF gespeichert. Danach werden 6 aufeinanderfolgende
Bytes des Protokolls verarbeitet. CRC ist gültig für die 8 Datenbits jedes Zeichens. Es ist ungültig für
die Start-, End und Check-Bits. CRC macht eine XOR-Verknüpfung über jedes 8-Bit-Zeichen im
Protokoll. Das Ergebnis wird in den Bits - angefangen vom LSB - eingetragen. In das MSB wird 0
eingetragen. Wenn LSB=1, dann wird eine XOR-Verknüpfung über den aktuellen Wert und dem
eingestellen Wert gemacht. Bei LSB=0 wird keine Operation durchgeführt. Dieser Prozess wird 8 mal
durchgeführt. Nachdem die XOR-Verknüpfung mit dem 8. Bit durchgeführt wurde, wird die XOR-
Verknüpfung mit dem nächsten 8-Bit-Byte durchgeführt. Die letzten Werte sind die CRC-Werte.
Die CRC-Berechnung verwendet den internationalen Standard zur CRC-Prüfung. Der entsprechende
CRC-Algorithmus kann verwendet werden.
Im folgenden ein Beispiel zur Berechnung des CRC: (Programmiersprache C):
unsigned int crc_cal_value(unsigned char×data_value,unsigned char data_length)
{
int i;
unsigned int crc_value=0xffff;
while(data_length--)
{
crc_value^=×data_value++;
for(i=0;i<8;i++)
{
if(crc_value&0x0001)
else
}
}
return(crc_value);
}
Im Kontaktplan, CKSM verwendet das table look-up Verfahren zur Berechnung des CRC anhand der
Werte im Protokoll. Das Programm ist einfach, die Berechnung ist schnell, aber der erforderliche ROM-
Speicher ist groß. Use this program with caution in scenarios where there are space occupation limits
on programs.
crc_value=(crc_value>>1)^0xa001;
crc_value=crc_value>>1;
-179-