Все доброго времени сток! Я уже несколько месяцев пытаюсь разобраться с дампом от всем полюбившейся приборки WRX. На текущий момент нет четкого руководства и понимая по конфигурированию дампа приборной панели. Все что делается людьми на данный момент, это попытки подогнать дамп приборки под свои нужды путем копирования строк из дампов родных приборок или путем склеивания дампов от разных приборок. Что хочу сделать я: Создать ПО для конфигурирования дампа. В идеале пользователь указывает фал с дампом, ПО его декодирует, пользователь настраивает необходимые параметры и сохраняет дамп. Далее дамп прошивается в приборку. Что достигнуто на данный момент: • По моим предположениям все основные параметры приборной панли хранятся в первых 3-х строках состоящих из 10 байт каждая. • В каждой строке хранятся такие параметры как, модель авто, тип коробки, параметры Si-Drive, регион(страна) и куча других кастомизируемых параметров которые меняются в зависимости от модели и комплектации авто. • Каждая строка с параметрами состоит из 10 байт. Первые 8 байт в строке это непостредственно параметры, оставшиеся 2 байта - это контрольная сумма строки. • Контрольная сумма необходима для проверки целостности дампа и параметров. • Контрольная сумма при расчетах использует NOT, так как если вся строка заполнена 00 то контрольная панель запускается при контрольной сумме FF FF, и наоборот. • Контрольная сумма это сумма всех 8 байт в строке, но там не просто сложение. Алгоритм расчета нужно уточнять. • Скорее всего Контрольная сумма расчитывается для группы байт, по 2 байта так как если поменять группу из 2-х байты местами с другой группой то панель запускается. • Собран тестовый программно аппаратный комплекс по прошивке и проверке дампа приборной панели. Аппаратный комплекс собран из ВЭБ камеры, Арудино и 3-х Релей Шилдов (Блоков Реле), вынесенного наружу чипа EEPROM, и монтажной платы. Программная часть комплекса позволяет поставить контрольную сумму для строки на перебор до последующего ее вычисления. Каждая контрольная сумма в автомотическом режиме правит дамп, записывает его в приборную панель, запускает приборку, отслеживает дисплей посредством ВЭБ камеры, фиксирует картинку дисплея, распознает показания на дисплее и сохраняет скрин с информацией о контрольной сумме в папке для дальнейшей работы пользователя. На проверку одной контрольной суммы уходит порядка 8 сек. Таким образом за сутки вполне реально подобрать контрольную сумму для одной строки. Что удалось выяснить: Путем эксперементальных подборов контрольных сумм удалось выяснить следующие варианты: B1-00-00-00-00-00-00-00 CRC = 4E-00 (Тут как все понятно. Делаем просто not(B1) и получаем 4E) Дальше буду писать только байты. Все байты идут в порядке с начала строки, все последующие не описанные байты равны 00. Напрмер если пишу B1-27 заничит по факту проверялась строка B1-27-00-00-00-00-00-00 и т.д. Во всех примерах сумма байт равна FF (1111 1111) Опыт №1 (B1-4E-00-00-00-00-00-00) CRC = 00-00 (Тут тоже действует правило суммы байт и применение NOT к конечному результату) B1 : 1011 0001 4E : 0100 1110 CRC (00) : 0000 0000 Опять таки не важно на какой позиции будут стоять байты B1 и 4E и в каком прядке следования. CRC не меняется. Опыт №2 (B1-27-27-00-00-00-00-00) CRC = 0E-00 (Тут схема с суммой байт уже не работает) B1 : 1011 0001 27 : 0010 0111 27 : 0010 0111 CRC (0E) : 0000 1110 Тут уже позиция байт играет роль. Если менять местами B1 и 27(первые) то разницы нет, так же как и перенося весь блок в другое место строки. Но стоит перенести третий байт (27) в другую позицию как CRC уже не подходит. Причем для строки B1-27-27-00-00-00-00-00 CRC = 0E-00, для B1-27-00-27-00-00 уже не подходит этот CRC, для B1-27-00-00-27-00-00-00 опять подходит. Опыт №3 (B1-27-13-14-00-00-00-00) CRC = 2E-00 B1 : 1011 0001 27 : 0010 0111 13 : 0001 0011 14 : 0001 0100 CRC (2E) : 0010 1110 Исходя из вышесказанного получается что менять группы по 2 байта местами можно, а вот байты внутри группы уже нет. Значит в вычеслениях CRC как то завязан номе группы байт, а так-же игнорируются части в начале и конце строки запыленные 00. Собственно прошу помощи в поисках формулы расчета CRC, ибо моих мозгов уже не хватает. Надеюсь на то что найдется человек разбираюшийся в тебе контрольных сумм в бириборках и блока управления и натолкнет меня на нужные мысли. После того как получится выяснить алгоритм расчета контрольной сумы, приступлю к тестам с параметрами внутри строки, для того чтобы выяснить какой байт отвечает за какие параметры.