Здравствуйте! Наша команда занимается ремонтом и исследованием автомобильной электроники (и не только) более десяти лет. Мы изучаем устройство стороннего ПО, и разрабатываем утилиты для взаимодействия с прошивками и программами. Нередко мы сталкиваемся с интересными задачами. На страницах этого блога мы планируем делиться интересными исследованиями и историями ремонта. Мы надеемся, что наш опыт может быть полезным другим профессионалам в этой области. Сегодня мы хотим поделиться случаем ремонта блока SRS от Volkswagen Crafter, который помог нам углубиться в детали и выявить важные моменты.
ЭБУ SRS
, номер 5QF 959 655 AH
. Для того, чтобы убедиться в необходимости ремонта блока управления, в нашей компании тестируемое оборудование запускается сначала на столе.
Блок управления диагностировался по CAN шине платформой CantracerFD посредством интерфейса Tactrix OpenPort 2.0. Также его можно было считать другими инструментами для диагностики автомобилей VAG. В блоке, как мы видим, записана актуальная внутренняя ошибка B2000
. В автомобилях группы компаний VAG
такие ошибки нестираемые и удаляются только посредством модификации дампов ЭБУ SRS
.
В ремонтируемом блоке управления стоит процессор Infineon Tricore TC233-32
серии. Ранее нам встречались похожие блоки, но там был процессор TC222-16
серии. Дампы очень похожи, но имеют немного больший размер. Поэтому первое, что было сделано, это анализ и сравнение дампов с аналогами донорских ЭБУ
. Номера доноров:
5QF959655L
(TC22xx-16)
5QF959655A
5QF959655AA
Первичный анализ дампа показал, что блок разбит на три секции. Секции отделены друг от друга заголовками:
3A F5 AF AF F5 F5 AF AF
Изначально мы обратились за помощью на форумы, где нам предложили полностью стереть третью секцию. Очистка третей секции никаких изменений в блоке управления не вызвала. Таким образом, было определено, что внутренняя ошибка находится во второй секции и править нужно её. Изменения во второй секции вызвали появление множества внутренних ошибок в ЭБУ,
свидетельствующих о нарушении целостности дампа. Следующим этапом мы провели более глубокий анализ дампа. Просматривались сигнатуры блоков данных, фрагменты, из которых состоит дамп, где они начинаются и где они заканчиваются, где определяется тип блока, где определяется размер блока, где определяются флаги блока, где контрольная сумма и так далее. Разобрать такой большой дамп вручную - трудоёмкая задача. Мы приняли решение автоматизировать процесс, для этого был написан скрипт на языке Python. До написания скрипта мы обнаружили алгоритм контрольной суммы, она определяется в формате:
CRC-16/CCITT-FALSE
Затем дампы обработали калькулятором. Проверили как оригинальный дамп, в котором есть внутренняя ошибка, так и донорские дампы, в которых её нет. В процессе обнаружилось, что контрольная сумма не совпадает по трём блокам. Мы не стали их править, потому что эти же блоки, на донорских дампах имеют такие же проблемы. Далее произвели анализ посредством сравнения блоков, из которых удалено всё лишнее, и есть только данные. Для этого скрипт был модифицирован таким образом, чтобы сортировать блоки данных по типам. Было произведено сравнение однотипных блоков. Далее на скриншоте сравнения текстовых отчётов скрипта, который определяет типы блоков. Видно, что блок типа 0х400
размером 0x468
, а у донорского блока размер 0x5F0
, он находится слева.
Этот метод помог нам выделить блок данных типа 0хА00
, содержимое которого радикально отличается от донорского, и было сделано предположение, что по этой причине записывается внутренняя ошибка ЭБУ
.
После чего этот блок данных был перелит из донорского целиком в наш оригинальный дамп. Замена блока с типом 0xA00
привела к тому, что внутренняя ошибка исчезла. Помимо этого мы модифицировали блок, в котором хранятся ошибки и пересчитали контрольную сумму, чтобы ЭБУ
был полностью работоспособным.
Как итог, важно отметить, что анализ структуры дампа и выявление контрольных сумм являются ключевыми этапами в процессе ремонта электронных блоков автомобилей. Использование программы на Python
для анализа блоков дампа делает подход к устранению ошибок и восстановлению работоспособности блока SRS
более эффективным. Кроме того, копирование данных из донорского блока и последующее удаление ошибок с поправкой контрольной суммы имеют важность точности и надёжности процесса восстановления. Шаги, проделанные в нашем исследовании, не только позволяют устранить ошибки в блоке SRS
, но и гарантируют безопасность и надёжность работы системы пассивной безопасности автомобиля. Важно подчеркнуть, что процесс ремонта электронных блоков требует высокой квалификации и тщательного подхода к каждому этапу.
Автор: ecurep