Herunterladen Inhalt Inhalt Diese Seite drucken

Crc-Checksumme - Bosch Rexroth SMART Flex Effector Betriebsanleitung

Vorschau ausblenden Andere Handbücher für Rexroth SMART Flex Effector:
Inhaltsverzeichnis

Werbung

50
6.3.2

CRC-Checksumme

Die zyklische Redundanzprüfung (cyclic redundancy check = CRC) ist eine Methode zur
Bestimmung einer Prüfsumme für Daten, um Fehler bei Übertragung oder Speicherung erkennen zu
können. Der SFE ermöglicht optional die Nutzung dieses Verfahrens, um die Korrektheit der Daten,
die vom Benutzer an die SFE-Einheit bzw. von der SFE-Einheit an den Benutzer geschickt werden,
abzusichern.
Zum Einsatz kommt als Prüfsumme Modbus CRC16.
Nutzung der Checksumme bei der Kommunikation über serielle Schnittstelle
Die Daten (Responses) der SFE-Einheit enthalten immer eine Prüfsumme, die an den eigentlichen
Rückgabewert angehängt werden, die Trennung vom Rückgabewert erfolgt durch ein "!". Beispiel:
GET;BAUD;921600!37EF
Mit dieser Prüfsumme können die empfangenen Daten vom Nutzer auf Übertragungsfehler überprüft
werden. Diese Überprüfung ist optional. Hierzu kann auf Nutzerseite die Prüfsumme berechnet
werden. Beispielfunktion in C (Copyright (c) 1999-2016 Lammert Bies -
https://github.com/lammertb/libcrc, Lizenztext:
Prüfsumme Modbus CRC16
1
/*
2
* uint16_t crc_modbus( const unsigned char *input_str, size_t num_bytes );
3
*
4
* The function crc_modbus() calculates the 16 bits Modbus CRC in one pass for
5
* a byte string of which the beginning has been passed to the function. The
6
* number of bytes to check is also a parameter.
7
*/
8
9
uint16_t crc_modbus( const unsigned char *input_str, size_t num_bytes ) {
10
11
uint16_t crc;
12
const
13
size_t
14
15
if
( ! crc_tab16_init ) init_crc16_tab();
16
17
crc = CRC_START_MODBUS;
18
ptr = input_str;
19
20
if
( ptr != NULL )
21
22
crc = (crc >> 8) ^ crc_tab16[ (crc ^ (uint16_t) *ptr++) & 0x00FF ];
23
}
24
25
return
26
27
}
/* crc_modbus */
de
unsigned char *ptr;
a;
for
(a=0; a<num_bytes; a++) {
crc;
Schnittstellenbeschreibung
MIT License
im Kapitel
Lizenzhinweise
Dritter):
6

Werbung

Inhaltsverzeichnis
loading

Inhaltsverzeichnis