Herunterladen Inhalt Inhalt Diese Seite drucken

Thermokon JOY Anleitung Und Beschreibung Seite 72

Inhaltsverzeichnis

Werbung

Beschreibung JOY
Die Dauer der Übertragungspausen zur Trennung von Telegrammen ist abhängig von der eingestellten
Baudrate und beträgt 3,5 * Wort-Übertragungszeit (11 Bit). Bei 9600 Baud müssen damit mindestens 4ms
und bei 19200 mindestens 2ms zwischen zwei Telegrammen vergehen.
Telegrammaufbau
Adresse
Steuerbefehl
1 Byte
1 Byte
Berechnung der CRC-Checksumme
Die CRC - Prüfsumme (Cyclical Redundancy Check) wird vom Sender aus allen übertragenen Bytes
berechnet und der Botschaft angehängt.
Der Empfänger berechnet dann die CRC-Prüfsumme erneut und vergleicht sie mit der Empfangenen
Prüfsumme. Stimmen die Werte nicht überein, dann ist von einem Übertragungsfehler auszugehen und
die empfangenen Daten werden verworfen. Das niederwertige Byte der 16 Bit großen Prüfsumme wird
im Telegramm an vorletzter und das höherwertige Byte an letzter Stelle gesendet.
Berechnung der Prüfsumme (Programmbeispiel in C):
crc = 0xFFFF;
for(i = 0; i < telegram_length-2; i++)
crc = crc_calc(crc, telegram_data[i]);
crc_low = crc & 0x00FF;
crc_high = (crc & 0xFF00) >> 8;
// Calculate CRC
unsigned
int
crc_calc(unsigned
{
unsigned
int
Index_CC=0;
unsigned
int
LSB=0;
crc_temp = ( ( crc_temp ^ data) | 0xFF00) & (crc_temp | 0x00FF) ;
for(Index_CC = 0; Index_CC<8; Index_CC++)
{
LSB = (crc_temp & 0x0001);
crc_temp
if(LSB)
crc_temp = crc_temp ^ 0xA001;
}
return(crc_temp);
}
Thermokon Sensortechnik GmbH
Daten
0 - 100 Byte
// CRC-Check, Init
// Low-Byte
// High-Byte
int
crc_temp, unsigned
>>= 1;
int
data)
// calculation polynominal for CRC16
Checksumme
Low
High
Seite 71

Quicklinks ausblenden:

Werbung

Inhaltsverzeichnis
loading

Inhaltsverzeichnis