Алгоритм контрольная сумма 11 бит

Смотрите также материалы по темам: [Шифрование, контрольная сумма, хэш]. Обсуждение материала [ 11-02-2005 12:49 ] 6 сообщений.

Определимся сразу, что под термином "прошивка" в данной статье будет подразумеваться программное обеспечение электронного блока управления (ЭБУ) системы управления двигателем автомобиля. Что же содержится внутри прошивки? Условно области данных прошивки можно разбить на две области. Первая область - это сам программный код, который осуществляет управление работой автомомобильного двигателя. Вторая область - это непосредственно калибровочные данные (таблицы, графики, параметры) для работы программного кода.
При изготовлении тюнинговой прошивки в подавляющем большинстве случаев осуществляется изменение только калибровочных данных, а сам программный код никакому изменению не подвергается. Прежде всего это объясняется большой сложностью в изменении программного кода, а также тем, что в подавляющем большинстве случаев для изготовления тюнинговой прошивки достаточно изменения лишь калибровочных данных. Однако, случаи, когда необходимо вмешиваться в программный код прошивки все же встречаются, поэтому приведу один из примеров, когда без вмешательства в программный код для изготовления тюнинговой прошивки не обойтись. Например, при замене в системе управления двигателем датчика массового расхода воздуха (ДМРВ) на датчик абсолютного давления (ДАД) потребуется заново переписать алгоритм расчета количества воздуха, который попадает в цилиндры двигателя. Это объясняется тем, что алгоритмы для расчета количества воздуха при использовании ДМРВ и ДАД различны, и одним изменением калибровочных данных этот вопрос решить нельзя.

Алгоритм проверки ОКПО: 1. Вычисляется контрольная сумма по 7-и цифрам со следующими весовыми коэффициентами: (1,2,3,4,5,6,7). 2

Современные системы управления двигателем осуществляют помимо самого управления, собственную самодиагностику. В число процедур самодиагностики, помимо прочих, входит и проверка исправности энергонезависимой памяти ЭБУ, которая содержит прошивку. Для такой проверки в прошивке хранится собственная контрольная сумма, которая получается суммированием байт определенной области прошивки (как области программного кода, так и калибровочных данных).
Программа ЭБУ в ходе своей работы рассчитывает значение контрольной суммы и сравнивает это значение со значением, которое хранится в прошивке (т.е. было заложено еще на заводе-изготовителе). Если эти значения не совпадают, то это считается ошибкой. У читателя в связи с эти может возникнуть вопрос: "Что же произойдет при изменении кем-либо, к примеру, калибровочных данных прошивки?". Ничего хорошего при этом не произойдет. В лучшем случае загорится лампа "Check Engine" в комбинации приборов, в худшем, автомобиль вообще не заведется. Естественно, контрольная сумма применяется не только для проверки исправности энергонезависимой памяти, а и для того, чтобы защитить саму прошивку (т.е. поставить преграду чип-тюнерам), от несанкционированного ее изменения.

Здесь расположен алгоритм проверки ИНН 10 знаков: 1. Вычисляется контрольная сумма со следующими весовыми коэффициентами: (2,4,10,3,5,9,4,6,8,0) 2

Таким образом, прежде чем производить тюнинг какой-либо прошивки необходимо разобраться с алгоритмом подсчета и расположением контрольной суммы в теле прошивки, иначе грош цена такому чип-тюнингу. Данное положение не относится к специализированным программам редактирования калибровок прошивок, которые автоматически корректируют, контрольную сумму, после внесения пользователем изменений в калибровочные параметры. Однако, для того, чтобы разобраться с алгоритмом подсчета контрольной суммы прошивки необходимо дизассемблировать прошивку, и в дизассемблированном листинге найти алгоритм вычисления контрольной суммы. Как правило, эти алгоритмы практически не меняются в нескольких поколениях ЭБУ у одного и того же производителя. Тут можно привести пример с ЭБУ GM. Алгоритм подсчета контрольной суммы прошивки на разных ЭБУ GM автомобилей Daewoo, Opel одинаков. Кроме того, только в прошивках ЭБУ GM, из всех исследованных мною, есть возможность штатной работы программного кода ЭБУ в случае ошибочной контрольной суммы. Для этих целей служит специальный байт в области калибровочных данных, определенное значение которого полностью отключает контроль за контрольной суммой прошивки. Следует также иметь ввиду, что в прошивке может одновременно присутствовать несколько контрольных сумм, которые соответствуют разным участкам прошивки. В качестве примера к данному замечанию можно привести прошивки ЭБУ Bosch ME.
Чтобы подытожить все вышесказанное, определим следующие положения:
- Прошивка состоит из двух областей: программного кода и калибровочных данных.
- Практически все прошивки содержат контрольную сумму для самодиагностики и воспрепятствования изменению данных.
- Любое изменение данных в области программного кода или калибровочных данных требует пересчет контрольной суммы прошивки.
- Поиск расположения и алгоритма подсчета контрольной суммы в некоторых случаях представляют собой нетривиальную задачу.

Циклический избыточный код (англ. Cyclic redundancy check, CRC) — алгоритм нахождения контрольной суммы, предназначенный для проверки целостности данных.

Алгоритм подсчета контрольной суммы прошивки на разных ЭБУ GM автомобилей Daewoo, Opel одинаков.

Алгоритм подсчёта контрольных сумм CRC32.  После подсчета всех данных в поле m_crc32 содержится контрольная сумма.