82

Помогите разобрать протокол

Возникла необходимость прочитать и имитировать данные, посылаемые датчиком в ЭБУ. Датчик измеряет 4 параметра и шлёт их по шине LIN с нестандартной скоростью в ЭБУ. ЭБУ, в свою очередь, отображает полученные данные в ПО на компе.

Вопрос как считать поток и как вычленить нужные данные я решил. Промерял осциллом единичный бит, посчитал частоту.

Помогите разобрать протокол Электроника, Нужна помощь в ремонте, Arduino

Выяснил, скорость 8000 бод. Считал поток в терминал, вычленил ID отключая разные исполнительные девайсы, висящие на шине. Нашёл нужный мне ID, который давал данные при подключенном датчике, и не давал при отключенном.

Далее написал прошивку, которая отвечает на запрос ЭБУ вместо датчика. В ПО присутствие эмулятора видно (начинают появляться данные), корректность получаемых данных тоже подтверждена. Формат пакета стандартный LIN: синхра(0х55), ID (в моём случае 47), 4 байта данных, контрольная сумма один байт. Если просчитатся с контролькой и отправить некорректную, то датчик в ПО отваливается. Отсюда-данные передаются и воспринимаются ЭБУ и ПО корректно.

И вот тут затык. Из 4 байтов данных два средних байта не влияют на данные, отображаемые ПО. А малейшее изменение первого и последнего меняют три параметра, отображаемые ПО, один параметр постоянно болтается в ноле. На него 1 и 4 байт не влияют.

Как такое может быть? Как четырьмя тетрадами можно закодировать минимум три трёхзначных параметра, два с дробной частью до десятых и два до сотых? Четвёртый параметр тоже шевелится посредством реального датчика, но этот снимок я не сделал.

Провёл несколько экспериментов, полученные данные свёл в таблицу. Жёлтый столбик данные датчика, зелёный отображаемые в ПО.

Помогите разобрать протокол Электроника, Нужна помощь в ремонте, Arduino

TECHNO BROTHER

2K поста13.5K подписчиков

Правила сообщества

1-Мы А-политическое сообщество. 2-Запрещено оскорбление: Администрации Пикабу, сообщества, участников сообщества а также родных, близких выше указанных.

3-Категорически запрещается разжигание межнациональной розни или действий, направленных на возбуждение национальной, расовой вражды, унижение национального достоинства, а также высказывания о превосходстве либо неполноценности пользователей по признаку их отношения к национальной принадлежности или политических взглядов. Мат - Нежелателен. Учитесь выражать мысли без матерщины

Вы смотрите срез комментариев. Показать все
15
Автор поста оценил этот комментарий

попробуйте по очереди закинуть в эмуляторе "1" в каждый бит, чтобы увидеть какие биты на какие параметры влияют. если получится разделить на группы(например, бит по 8-10 на параметр), то дальше экспериментируйте с каждым параметров отдельно. если один бит будет менять сразу несколько параметров, то, скорее всего, кодируются не абсолютные значения параметров, возможно, дельты

раскрыть ветку (4)
4
Автор поста оценил этот комментарий

Все верно, меняем побитово и смотрим как параметры сгруппированы. Один параметр может состоять из произвольного количества бит (4-5-6). А группа может начинаться и заканчиваться где нибудь на середине байта. Ещё непонятно LE там или BE

1
Автор поста оценил этот комментарий
Завтра (уже сегодня) попробую прогнать один бит по 8х4=32 разрядам.
раскрыть ветку (2)
0
Автор поста оценил этот комментарий

как успехи? заинтриговали и тишина.

на всякий случай, пересылайте каждый бит по паре-тройке раз, так увидите, относительные или абсолютные значения кодируются

раскрыть ветку (1)
0
Автор поста оценил этот комментарий

отложил пока. Как тут советовали, взял другой, горелый датчик, расколупал, вытащил сенсоры давления и поставил переменные резисторы. ЭБУ такой датчик принял, резисторами настроил приемлемые давления. Всё завелось и поехало, смог восстановить ЭБУ. В итоге, конечная цель достигнута, промежуточная нет. Ну она как бы и не актуальна стала, можно теперь пользоваться эрзац-датчиком. Возможно, вернусь к этому вопросу позже, когда будет свободное время. Академически интересно, как же такое работает.


Лог обмена снял, не всегда на 47 ID посылки одинаковые. Но и соответствия не вижу.


55 47 00 00 00 61 9E 00

55 06 00 00 01 FE 00

55 85 87 00 01 D3 A3 00

55 47 14 00 00 16 D5 00

55 06 00 00 03 FC 00

55 3C 60 06 B4 11 7C 80 00 00 D6 00

55 06 00 00 03 FC 00

55 3C 60 06 B4 11 7C 80 00 00 D6 00

55 47 14 00 00 12 D9 00

55 06 00 00 00 FF 00

55 C4 01 14 EA 00

55 47 00 00 00 61 9E 00

55 06 00 00 01 FE 00

55 85 87 00 01 D2 A4 00

55 47 14 00 00 16 D5 00

55 06 00 00 02 FD 00

55 3C 60 06 B4 11 7C 80 00 00 D6 00

55 47 00 00 00 81 7E 00

55 06 00 00 00 FF 00

55 C4 01 14 EA 00

55 47 00 00 00 61 9E 00

55 06 00 00 01 FE 00

55 85 87 00 01 D3 A3 00

55 47 14 00 00 17 D4 00

55 06 00 00 03 FC 00

55 3C 60 06 B4 11 7C 80 00 00 D6 00

55 47 14 00 00 12 D9 00

55 06 00 00 00 FF 00

55 C4 01 14 EA 00

55 47 00 00 00 61 9E 00

55 06 00 00 01 FE 00

55 85 87 00 01 D2 A4 00

55 47 14 00 00 16 D5 00

55 06 00 00 02 FD 00

55 3C 60 06 B4 11 7C 80 00 00 D6 00

55 47 00 00 00 81 7E 00

55 06 00 00 00 FF 00

55 C4 01 14 EA 00

55 47 00 00 00 61 9E 00

55 06 00 00 01 FE 00

55 85 87 00 01 D2 A4 00

55 47 14 00 00 17 D4 00

55 06 00 00 03 FC 00

55 3C 60 06 B4 11 7C 80 00 00 D6 00

55 47 14 00 00 12 D9 00

55 06 00 00 00 FF 00

55 C4 01 14 EA 00

55 47 00 00 00 61 9E 00

55 06 00 00 01 FE 00

55 85 87 00 01 D2 A4 00

55 47 14 00 00 16 D5 00

55 06 00 00 02 FD 00

55 3C 60 06 B4 11 7C 80 00 00 D6 00

55 47 00 00 00 81 7E 00

55 06 00 00 00 FF 00

55 C4 01 14 EA 00

55 47 00 00 00 61 9E 00

55 06 00 00 01 FE 00

55 85 87 00 01 D3 A3 00

55 47 14 00 00 16 D5 00

55 06 00 00 03 FC 00

55 3C 60 06 B4 11 7C 80 00 00 D6 00

55 47 14 00 00 13 D8 00

55 06 00 00 00 FF 00

55 C4 01 14 EA 00

55 47 00 00 00 61 9E 00

55 06 00 00 01 FE 00

55 85 87 00 01 D2 A4 00

55 47 14 00 00 16 D5 00

55 06 00 00 02 FD 00

55 3C 60 06 B4 11 7C 80 00 00 D6 00

55 47 00 00 00 82 7D 00

55 06 00 00 00 FF 00

55 C4 01 14 EA 00

55 47 00 00 00 61 9E 00

55 06 00 00 01 FE 00

55 85 87 00 01 D2 A4 00

55 06 00 00 01 FE 00

55 85 87 00 01 D2 A4 00

55 47 14 00 00 16 D5 00

55 06 00 00 02 FD 00

55 3C 60 06 B4 11 7C 80 00 00 D6 00

55 47 00 00 00 81 7E 00

55 06 00 00 00 FF 00

55 C4 01 14 EA 00

55 47 00 00 00 61 9E 00

55 06 00 00 01 FE 00

55 85 87 00 01 D3 A3 00

55 47 14 00 00 17 D4 00

55 06 00 00 03 FC 00

55 3C 60 06 B4 11 7C 80 00 00 D6 00

55 47 14 00 00 12 D9 00

55 06 00 00 00 FF 00

55 C4 01 14 EA 00

55 47 00 00 00 61 9E 00

55 06 00 00 01 FE 00

55 85 87 00 01 D2 A4 00

55 47 14 00 00 16 D5 00

55 06 00 00 02 FD 00

55 3C 60 06 B4 11 7C 80 00 00 D6 00

55 47 00 00 00 81 7E 00

55 06 00 00 00 FF 00

55 C4 01 14 EA 00

55 47 00 00 00 61 9E 00

55 06 00 00 01 FE 00

55 85 87 00 01 D2 A4 00

55 47 14 00 00 17 D4 00

55 06 00 00 03 FC 00

55 3C 60 06 B4 11 7C 80 00 00 D6 00

55 47 14 00 00 12 D9 00

55 06 00 00 00 FF 00

55 C4 01 14 EA 00

55 47 00 00 00 61 9E 00

55 06 00 00 01 FE 00

55 85 87 00 01 D2 A4 00

55 47 14 00 00 16 D5 00

55 06 00 00 02 FD 00

55 3C 60 06 B4 11 7C 80 00 00 D6 00

55 47 00 00 00 81 7E 00

55 06 00 00 00 FF 00

55 C4 01 14 EA 00

55 47 00 00 00 61 9E 00

55 06 00 00 01 FE 00

55 85 87 00 01 D3 A3 00

55 47 14 00 00 16 D5 00

55 06 00 00 03 FC 00

55 3C 60 06 B4 11 7C 80 00 00 D6 00

55 47 14 00 00 13 D8 00

55 06 00 00 00 FF 00

55 C4 01 14 EA 00

55 47 00 00 00 61 9E 00

55 06 00 00 01 FE 00

55 85 87 00 01 D2 A4 00

55 47 14 00 00 16 D5 00

55 06 00 00 02 FD 00

55 3C 60 06 B4 11 7C 80 00 00 D6 00

55 47 00 00 00 82 7D 00

55 06 00 00 00 FF 00

55 C4 01 14 EA 00

55 47 00 00 00 61 9E 00

55 06 00 00 01 FE 00

55 85 87 00 01 D2 A4 00 06 00 00 01 FE 00

55 85 87 00 01 D3 A3 00

55 47 14 00 00 16 D5 00

55 06 00 00 03 FC 00

55 3C 60 06 B4 11 7C 80 00 00 D6 00

55 47 14 00 00 12 D9 00

55 06 00 00 00 FF 00

55 C4 01 14 EA 00

55 47 00 00 00 61 9E 00

55 06 00 00 01 FE 00

55 85 87 00 01 D2 A4 00

55 47 14 00 00 17 D4 00

55 06 00 00 02 FD 00

55 3C 60 06 B4 11 7C 80 00 00 D6 00

55 47 00 00 00 81 7E 00

55 06 00 00 00 FF 00

55 C4 01 14 EA 00

55 47 00 00 00 61 9E 00

55 06 00 00 01 FE 00

55 85 87 00 01 D2 A4 00

55 47 14 00 00 16 D5 00

55 06 00 00 03 FC 00

55 3C 60 06 B4 11 7C 80 00 00 D6 00

55 47 14 00 00 13 D8 00

55 06 00 00 00 FF 00

55 C4 01 14 EA 00

55 47 00 00 00 61 9E 00

55 06 00 00 01 FE 00

55 85 87 00 01 D3 A3 00

Вы смотрите срез комментариев. Чтобы написать комментарий, перейдите к общему списку