Выбери свою прошивку!

Что такое контрольная сумма КС

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

Итак, начнем с определения (этот абзац рекомендуем прочитать медленно и вдумчиво). Контрольная сумма (КС) - это результат работы некоторой функции, преобразующей исходные данные фиксированной или произвольной длины в набор данных фиксированной длины. Условно говоря, КС рассчитывается по некоторому алгоритму, некоторой формуле, на вход которой подаются данные, а на выходе получается результат вычислений над этими данными. 
По контрольной сумме ЭБУ определяет целостность информации, записанной в его память.

А что если КС не сошлась бы? В таком случае, машина бы просто не завелась. Ведь на этапе самодиагностики (в процессе включения), ЭБУ бы пересчитал КС каждой строки, увидел бы несхождения (хотя бы одной строке), и принял это за нарушение целостности данных, что бывает при неисправностях элементов памяти ЭБУ.
 

К слову, каждый ЭБУ использует собственные способы расчета КС. Более того, для разных областей данных могут использоваться разные способы расчета.
 

Ладно. Оставим теорию и вернемся к практике. На практике нам требуется записывать тюнинговые прошивки (калибровки) в ЭБУ двигателя. И, очевидно, что эти прошивки должны быть с пересчитанной КС. Иначе, если мы запишем прошивку с непересчитанной КС, то при запуске ЭБУ увидит несхождение КС и, как минимум, зафиксирует ошибку. Как максимум, запуск двигателя не состоится.
 

Впрочем, не стоит сильно переживать по этому поводу. Редакторы калибровок, в которых мы работаем, в большинстве случаев, пересчитывают КС в сохраняемой прошивке. Более того, сами флэшеры перед записью прошивки всегда проверяют и пересчитывают КС (если она некорректна), исключая ну совсем уж уникальные случаи. Единственное место, где следует работать крайне внимательно - инженерные способы записи (BSL, BDM, JTAG). В зависимости от используемого оборудования, автоматического пересчета КС при записи может и не быть.