PDA

Просмотр полной версии : CRC 8



kanadchikov
27.09.2012, 10:53
Имеется прибор ФСТ-03м (сигнализатор загазованности) посылаю запросы, получаю ответы. Все прекрасно CO, CH4, но не могу рассчитать CRC8 полином беру 16#AB, помогите сделать расчет. Попытался изменить имеющийся CRC16, пока ничего не получается.

YuriBel
27.09.2012, 11:49
А разве там CRC, а не простая контрольная сумма?

Yegor
27.09.2012, 12:30
Строковые шестнадцатеричные проще читать функцией STRING_TO_YYY: STRING_TO_WORD('16#BC'). CRC8 для полинома AB:
FUNCTION CRC8 : BYTE
VAR_INPUT
BUF: STRING;
LEN: DWORD;
END_VAR
VAR
I: DWORD := 0;
B: POINTER TO BYTE;
END_VAR
VAR CONSTANT
TABLE: ARRAY [0..255] OF BYTE :=
0, 171, 253, 86, 81, 250, 172, 7, 162, 9, 95, 244, 243, 88, 14, 165, 239, 68,
18, 185, 190, 21, 67, 232, 77, 230, 176, 27, 28, 183, 225, 74, 117, 222, 136,
35, 36, 143, 217, 114, 215, 124, 42, 129, 134, 45, 123, 208, 154, 49, 103, 204,
203, 96, 54, 157, 56, 147, 197, 110, 105, 194, 148, 63, 234, 65, 23, 188, 187,
16, 70, 237, 72, 227, 181, 30, 25, 178, 228, 79, 5, 174, 248, 83, 84, 255, 169,
2, 167, 12, 90, 241, 246, 93, 11, 160, 159, 52, 98, 201, 206, 101, 51, 152, 61,
150, 192, 107, 108, 199, 145, 58, 112, 219, 141, 38, 33, 138, 220, 119, 210, 121,
47, 132, 131, 40, 126, 213, 127, 212, 130, 41, 46, 133, 211, 120, 221, 118, 32,
139, 140, 39, 113, 218, 144, 59, 109, 198, 193, 106, 60, 151, 50, 153, 207, 100,
99, 200, 158, 53, 10, 161, 247, 92, 91, 240, 166, 13, 168, 3, 85, 254, 249, 82,
4, 175, 229, 78, 24, 179, 180, 31, 73, 226, 71, 236, 186, 17, 22, 189, 235, 64,
149, 62, 104, 195, 196, 111, 57, 146, 55, 156, 202, 97, 102, 205, 155, 48, 122,
209, 135, 44, 43, 128, 214, 125, 216, 115, 37, 142, 137, 34, 116, 223, 224, 75,
29, 182, 177, 26, 76, 231, 66, 233, 191, 20, 19, 184, 238, 69, 15, 164, 242, 89,
94, 245, 163, 8, 173, 6, 80, 251, 252, 87, 1, 170;
END_VAR

CRC8 := 0;
FOR I := 0 TO LEN - 1 DO
B := ADR(BUF) + I;
CRC8 := TABLE[CRC8 XOR B^];
END_FOR

kanadchikov
28.09.2012, 08:27
Что-то не выходит. Появляется ошибка при переходе в режим RUN.

Yegor
28.09.2012, 09:00
Покажите проект.

kanadchikov
28.09.2012, 09:32
Пожалуйста, ткните пальцем

Yegor
28.09.2012, 11:15
Я что-то не вижу там тестовых данных. Попробуйте вот так хотя бы:

http://images.devs-on.net/Image/GgxodBlHBQPXMLF6-CoDeSysCRC8pro.png