Если ваш вопрос не влез ни в одну из вышеперечисленных тем, вам сюда.
Ответить

Как рассчитывается контрольная сумма?

Чт фев 25, 2021 11:56:24

Есть электронный блок, он передает пакет информации (наверное по SPI интерфейсу, но я программно AVRкой тактую и считываю данные).

В пакете всегда 6 байт. 5 байт информация, а 6й контрольный. Выглядит так (hex):
29, 10, 12, 4D, 06, [E2 контрольный]. Сумма 6 байт = 80 (b10000000)
29, 11, 53, 50, 00, [A3 контрольный]. Сумма 6 байт = 80 (b10000000)
2A, 11, 53, 58, 1A, [80 контрольный]. Сумма 6 байт = 80 (b10000000)
29, 18, 12, 4D, 06, [D9 контрольный]. Сумма 6 байт = 7F (b01111111)

Помогите пожалуйста понять как рассчитывается контрольная сумма в данном конкретном случае, это какой то стандарт или что...
Не понятно также, почему сумма с проверочным байтом может отличаться, хотя там есть некоторая закономерность.
Спасибо!
Последний раз редактировалось Alexeus Чт фев 25, 2021 12:15:59, всего редактировалось 2 раз(а).

Re: Как рассчитывается контрольная сумма?

Чт фев 25, 2021 12:01:54

Совпадает ли 6-ой байт всегда, когда первые 5 одни и те же?
Может, это вовсе и не контрольная сумма :roll:

PS: Ну, а вообще, алгоритм может быть совсем любой. Даже каким-то своим.
PSPS: 2 варианта мало для анализа.

Re: Как рассчитывается контрольная сумма?

Чт фев 25, 2021 12:09:52

"Совпадает ли 6-ой байт всегда, когда первые 5 одни и те же?"
Вот на это я не обращал внимание, но скорее всего да.

В подавляющем большинстве вариаций байт, сумма последнего байта с предыдущими 5ю даёт 80, гораздо реже дает 7F.

Re: Как рассчитывается контрольная сумма?

Чт фев 25, 2021 13:50:40

7F и 80 - это может быть циклический перенос со старшего разряда.....

Re: Как рассчитывается контрольная сумма?

Чт фев 25, 2021 16:23:17

В подавляющем большинстве вариаций байт, сумма последнего байта с предыдущими 5ю даёт 80, гораздо реже дает 7F.
Какой-то самопальный колхоз.
Возможно туда ещё суммируется некая неявная инфа о кадре: в одних случаях она == 80h, в других =81h. А правильный результат должен быть ==0.
Например - какой-то набор битов-флагов (бит-карта):
там где результат ==80h, установлен только 7-й бит в бит-карте;
там где результат ==7Fh, установлены 0-й и 7-й бит в бит-карте.

ЗЫ: А вообще - может быть что угодно. Спрашивайте разработчика.

Добавлено after 53 seconds:
7F и 80 - это может быть циклический перенос со старшего разряда.....

Не может быть. Воспользуйтесь калькулятором.

Re: Как рассчитывается контрольная сумма?

Чт фев 25, 2021 16:26:30

Есть электронный блок, он передает пакет информации (наверное по SPI интерфейсу, но я программно AVRкой тактую и считываю данные).

Скорее всего это CRC8. Причем с неизвестным полиномом и начальным значением.
Ответить