Цитата(vesago @ Jan 9 2018, 10:11)
Друзья, может надоумите, как считать контрольную сумму пакета? Есть железка (электронный замок), которая общается по интерфейсу LIN. Лин используется как физическая среда. Сам протокол специфический. Вот сэмплы:
7E 1E 03 4B 01 00 54 17
7E 1E 05 4B 01 00 56 17
7E 1E 83 48 01 00 D1 17
7E 1E 85 48 01 00 D3 17
7E 1E 03 4C 06 02 00 B3 00 00 00 0F 17
7E 1E 05 4C 06 02 00 A0 00 00 00 FE 17
7E 1E 03 31 12 00 09 00 00 00 00 00 00 00 4D 00 00 00 00 D4 C9 53 31 C2 17
7E 1E 05 31 12 00 09 00 00 00 00 00 00 00 4D 00 00 00 00 D4 C9 53 31 C4 17
7E - это начало пакета
17 - окончание
Предпоследний байт - контрольная сумма.
Пакеты я снимал салеа лоджиком на скорости 19200. LIN эта программа распознает, но на байты не раскладывает, т.к. протокол нестандартный. Поэтому я снимал как уарт. Данне точные, т.к. в данных есть точный код карты. Пробовал крутить - ксорить, складывать, инвертировать в разных направлениях. Пока не нашел решения.
во первых начало пакета 7E 1E
далее считаешь сумму после начала пакета всех байт до КС
и +5 дополнительно
Человек - это существо, которое охотнее всего рассуждает о том, в чем меньше всего разбирается.