
Вы записали изменённый файл в ЭБУ, устройство сообщило «успешно», но автомобиль не заводится или приборная панель горит предупреждениями. Одна из самых частых причин — неверная контрольная сумма (checksum). В этой статье объясняется, что такое контрольная сумма, как её использует ЭБУ и как избежать проблем с ней.
Что такое контрольная сумма?
Контрольная сумма — это контрольное значение, вычисляемое по фиксированной формуле из байтов блока данных. Программа ЭБУ использует эти значения, чтобы убедиться, что её области памяти не изменены и не повреждены. Когда производитель готовит программу, он вычисляет контрольное значение для каждой защищённой области и записывает его в файл.
При включении питания или через заданные интервалы ЭБУ выполняет то же вычисление и сравнивает результат с сохранённым значением. Если они не совпадают, ЭБУ считает эту область недостоверной.
Что происходит при неверной контрольной сумме?
Это зависит от ЭБУ и области, в которой возникла ошибка. Типичные симптомы:
- Автомобиль не заводится, либо стартёр крутит, но двигатель не запускается
- Индикатор неисправности двигателя и сохранённые коды ошибок
- Двигатель переходит в аварийный режим с ограничением мощности
- ЭБУ перестаёт отвечать и требует восстановления
Как бы аккуратно ни были подготовлены карты, файл с неисправленной контрольной суммой непригоден к использованию.
Виды контрольных сумм
В простом старом программном обеспечении контрольная сумма может быть просто суммой байтов области. Новые ЭБУ используют более надёжные алгоритмы, например CRC, с несколькими защищёнными областями в одном файле. Большинство современных ЭБУ дополнительно проверяют программу цифровой подписью. Подпись — это не контрольная сумма: её нельзя пересчитать без ключа производителя. Такие ЭБУ можно изменять только решениями для чтения/записи, умеющими обходить проверку подписи.
Кто исправляет контрольную сумму?
На практике есть два пути:
- Автоматическое исправление устройством записи: большинство профессиональных устройств рассчитывают контрольную сумму во время записи для поддерживаемых ЭБУ. Эта опция обычно включена по умолчанию.
- Исправление сервисом файлов: сервис, готовящий файл, поставляет его с уже исправленной контрольной суммой.
Оба пути допустимы. Важно знать, какой из них применяется, поэтому укажите в заявке, каким устройством вы читаете и каким будете записывать.
Как избежать проблем с контрольной суммой
- Записывайте обратно тем же устройством и методом, которыми читали. Разные устройства могут сохранять файлы в разных форматах (полная флэш-память, область калибровок, пакет, специфичный для устройства).
- Не редактируйте полученный файл вручную. Даже небольшое изменение в hex-редакторе ломает контрольную сумму. Если нужна правка, запросите у сервиса ревизию.
- Проверьте размер файла перед записью. Полученный файл должен иметь тот же размер, что и считанный.
- Всегда храните оригинальный файл. Это единственная надёжная точка возврата, если что-то пойдёт не так. См. резервную копию оригинального файла ЭБУ.
- Используйте поддержку аккумулятора при записи. Прерванную запись восстановить бывает сложнее, чем ошибку контрольной суммы.
Частые вопросы
Повреждает ли ошибка контрольной суммы ЭБУ навсегда?
Как правило, нет. ЭБУ обычно можно восстановить, записав оригинальный файл методом Bench или Boot. Методы чтения мы сравниваем в этой статье.
Нужно ли мне самому исправлять контрольную сумму?
Это зависит от вашего устройства чтения/записи. Указав устройство в заявке, вы проясните, как обращаться с полученным файлом при записи.
Как понять, что контрольная сумма верна?
На поддерживаемых ЭБУ ваше устройство записи сообщает о проверке контрольной суммы. Если сомневаетесь, спросите нашего инженера в чате заявки перед записью файла.
