Калькулятор контрольной суммы прошивки ЭБУ
Обновлено: 20.11.2024
SAE J1939 – это открытый стандарт для сетей и связи в секторе коммерческого транспорта. Центральным элементом приложения является сетевое взаимодействие силовой передачи.
Характеристикой SAE J1939 является использование технологии CAN для организации сети и связи, а также совместимость с производителями. Протокол J1939 создан Сообществом автомобильных инженеров (SAE) и работает на физическом уровне с высокоскоростной шиной CAN в соответствии со стандартом ISO11898.
Характеристики
- Использует 29-битный расширенный идентификатор CAN.
- Стандартная скорость передачи данных CAN: 250 кбит/с и 500 кбит/с.
- Имеет двухточечную адресацию (адресацию узлов) и глобальную адресацию (адресацию сообщений).
- Можно передать до 1785 байт в многопакетных сообщениях.
- Управление доступом к шине через собственное управление сетью
- Стандартные сообщения для связи в автомобиле.
- Разрешает определение сообщения производителя.
- Определяет собственный диагностический интерфейс
SAE J1939 и CAN
Консорциум и другие спецификации
Существует ряд стандартов, основанных на SAE J1939. Эти стандарты используют базовое описание J1939 и часто отличаются только определением данных и адаптацией физического уровня, где это необходимо.
ISO 11783 — Тракторы и техника для сельского и лесного хозяйства — Последовательный контроль и связь
NMEA 2000® — последовательная передача данных в сеть морских электронных устройств
Определяет связь ECU между транспортными средствами в морской среде. Здесь также используется расширение многопакетного протокола — так называемый протокол Fast Packet.
ISO 11992 – Обмен цифровой информацией между буксирующим и буксируемым транспортным средством
Определяет обмен сообщениями дорожных транспортных средств между тягачом и буксируемым транспортным средством. ISO 11992 основан на формате сообщений J1939, но использует другую конфигурацию физического уровня, а именно только 125 кбит/с.
FMS — система управления автопарком
Стандарт FMS определяет шлюз между сетью J1939 и FMS.
Структура документа J1939
За отдельные главы спецификации J1939 взимается плата, т. е. к ним нельзя получить бесплатный доступ. Отдельные главы систематизированы и в общих чертах основаны на эталонной модели ISO/OSI. Только на слабой основе, поскольку структура документа J1939 содержит главу 8, которая не определена в модели OSI.
В таблице справа перечислены существующие главы и документы.
Физический слой
Сравнение спецификаций J1939-14/14/15
Группа параметров
Разделы PGN
Два бита «Страница данных» (DP) и «Расширенная страница данных» (EDP) также являются частью PGN и учитываются как два старших бита. В результате числовой диапазон расположен на четырех страницах PGN, но только 3 используются для J1939.
Транспортный протокол
Сообщения длиной более 8 байт слишком велики, чтобы поместиться в один фрейм данных CAN. Поэтому они должны быть разделены отправителем на отдельные пакеты, каждый из которых затем может быть отправлен с сообщением CAN. Получатель должен рекомбинировать отдельные фрагменты в их первоначальном порядке. Для этого в стандарте J1939 определен набор правил: так называемый транспортный протокол.
Два транспортных протокола определены в соответствии с типами связи.
Специальная связь — передача данных в режиме соединения (RTS/CTS)
С помощью этого протокола отправитель устанавливает соединение с получателем.Приемник имеет возможность контролировать и влиять на управление потоком отдельных пакетов данных. И получатель, и отправитель могут разорвать соединение (например, в случае ошибок).
Протокол передачи данных в режиме подключения не имеет ограничений по времени. Все узлы потенциально обмениваются данными друг с другом с максимально возможной скоростью.
Глобальная коммуникация — широковещательное объявление (BAM)
Отправитель самостоятельно управляет потоком. Сообщение всегда отправляется всем узлам. Получатель не может вмешиваться в общение. Если получатель пропускает сообщение, он не может сигнализировать об этом. При необходимости получатель должен дождаться нового сообщения.
Поскольку получатель не может влиять на управление потоком в протоколе BAM, отправитель должен поддерживать минимальный интервал между отдельными пакетами. Это 10-200 мс. Это позволяет возможным медленным сетевым узлам отслеживать связь.
Диагностика
Диагностический интерфейс J1939 определяет стандартный диагностический разъем, а также набор PGN для работы с различными диагностическими службами. PGN, обозначенные как диагностическое сообщение (DM), в основном выполняют функции диагностики UDS (унифицированной диагностической службы). Они также соответствуют директивам ЕС и «Калифорнийскому кодексу правил» для бортовой диагностики (OBD II), а также OBD HD (OBD для тяжелых условий эксплуатации) и WWH (согласованный во всем мире) OBD (ISO 27145).
В отличие от диагностики UDS, в которой службы должны активно инициироваться с помощью программного инструмента, ЭБУ J1939 также отправляют диагностические сообщения независимо во время стандартной работы. Возникающие ошибки оцениваются непосредственно в сети и при необходимости отображаются визуально. Параллельно с этим ошибки можно считать прибором через диагностический разъем. Единые коды ошибок — так называемые диагностические коды неисправностей (DTC) — содержат неисправный SPN, шаблон ошибки и частоту возникновения ошибки.
Диагностический код неисправности (DTC)
DTC (диагностический код неисправности) указывает на неисправность в системе. В первую очередь он представляет имя участника-службы, текущее состояние которого является ненормальным. Это может иметь разные причины. Индикатор, указывающий причину состояния, используется, чтобы попытаться сузить фактическую причину ошибки. DTC имеет единую структуру и состоит из следующих элементов:
Может ли кто-нибудь помочь мне и правильно сказать, что означает контрольная сумма, или дать ссылку, где я могу это прочитать?? Спасибо заранее!
Simanic Сообщений: 18 Присоединился: вс, 17 февраля 2013 г., 17:50 Местоположение: Сараево
следуйте этому названию файла
Brand_Commercialtype_ecubrand_ecutype_ecuid_softwareid_otheridenditicationinfo.zip
Audi_A7_3000TDI_0281018892_522832_4G0907311E_001_Original-custom.zip
kennfeld Сообщений: 393 Присоединился: вс, 11 ноября 2012 г., 12:34 Местоположение: europe and philippines
В ЭБУ контрольная сумма используется, чтобы сообщить ЭБУ, что файл во флэш-памяти не был изменен. По этой причине ЭБУ не принимает файлы с неверной контрольной суммой.
Основная информация о контрольной сумме: если она неверна, то будет 2 варианта
1. Двигатель не запускается
2. Внутренняя ошибка ЭБУ, но двигатель заводится
Так что, если что-то поменялось-считайте КС. Winols делают это автоматически.
VitalyR Сообщений: 8 Присоединился: Вт, 26 февр. 2013 г., 14:43 Место: Беларусь, г. Лида
Насколько я понимаю, в зависимости от ЭБУ может быть несколько контрольных сумм. Кроме того, я считаю, что необходимо иметь дополнительные модули (OLSxxx), чтобы WinOLS мог вычислить соответствующие контрольные суммы. Пожалуйста, подтвердите, поскольку я все еще учусь.
mmaigret Сообщений: 4 Присоединился: 04 марта 2013 г., 9:44 Местоположение: Калифорния
Здравствуйте,
Покрывает ли демо-версия ols эту автоматическую контрольную сумму правильно?
Отображается ли это изменение по адресу, чтобы увидеть исходное и измененное?
Я еще не купил полную версию
Tunez1 Сообщений: 5 Присоединился: 8 марта 2013 г., 9:11 Местоположение: Австралия
Это называется контрольной суммой по историческим причинам, главным образом потому, что 1-й тип защиты от несанкционированного доступа представлял собой простую сумму байтов.В наши дни правильнее было бы называть это хешами.
Все зависит от производителя (блока управления), какие алгоритмы он будет использовать и в каких областях.
bibinox Сообщений: 3 Присоединился: пт, 08 марта 2013 г., 21:43 Местоположение: Италия
случайно... может ли кто-нибудь помочь мне с исправлением контрольной суммы для suzuki swift mjd merelli ecu (OLS294)?
с уважением,
Sj
sgjpro Сообщений: 7 Присоединился: 04 марта 2013 г., 11:35 Местоположение: планета земля
sgjpro написал: всем привет,
случайно... может ли кто-нибудь помочь мне с исправлением контрольной суммы для suzuki swift mjd merelli ecu (OLS294)?
с уважением,
Sj
опубликуйте ori и mod!
чтобы кто-нибудь мог вам помочь!
mexanico1971 Сообщений: 87 Присоединился: Ср, 19 сентября 2012 г., 3:08 Местоположение: Португалия
Небольшой вопрос. Когда вы меняете карты любого ORI, вы собираетесь изменить контрольную сумму файла 100%. Как именно WinOLS или любое другое программное обеспечение может сохранить одинаковые вычисления контрольной суммы для уже измененного файла?
<Р>Приложение представляет собой продвинутый калькулятор для ремонта электронных счетчиков и драйверов автомобилей (ЭБУ).
NeoX – это приложение, обеспечивающее максимальную гибкость и удобство при сохранении простоты использования.
Постоянно растущая база данных решений.
Огромное количество довольных клиентов показывает, что NEOX — лучший среди доступных калькуляторов.
Возможности:
• восстановление пробега и редактор VIN с автоматической CRC Aurix
PSA MD1CS003 - MERCEDES MD1CP001 - RENAULT MD1CS006 - AUDI MD1CP004 - VW MG1CS011
• ремонт пробега с автоматическим подсчетом контрольной суммы в eeprom SID 208 Citroen Jumper, Peugeot Boxer, Fiat Ducato
• ремонт пробега с автоматическим подсчетом контрольной суммы в eeprom SIMOS 18.1 VAG group
• Auto CRC - коррекция контрольной суммы eeprom Cranchi Zaffiro 36, модель Caterpillar C32, Mercury Varado, Volvo Penta D6
• БАЗА ДАННЫХ ЭБУ ЭСППЗУ + ФЛЭШ
• ремонт пробега с автоматическим подсчетом контрольной суммы в eeprom DCM6.1 FORD
• ремонт пробега с автоматическим подсчетом контрольной суммы в eeprom SID310 Mercedes, Renault, Nissan, Dacia
• ремонт пробега с автоматическим подсчетом контрольной суммы в eeprom DCM3.7 Kia, Hyundai
• программирование и редактирование в EDC17, MED17, MEV17 с CRC
• программирование и редактирование электронных счетчиков
• программирование и редактирование тракторов
• программирование и редактирование в с/х и комбайнах
• программирование и редактирование вилочных погрузчиков
• программирование и редактирование строительных машин
• ремонт электронных счетчиков (если данные в приборной панели повреждены)
• ремонт и программирование модулей AIRBAG
• ПИН-код - считывание с ЭБУ автомобиля (CIM, BSI, ЦЭКБС и т.д.)
• программирование и редактирование мотоциклов, скутеров и квадроциклов
• чтение, программирование и изменение кода в магнитоле
Покупая NeoX, вы получаете:
- доступ к онлайн-программе
- лицензия действует 1 год
- все обновления в день покупки
- действующая лицензия на один стенд (ПК)
– 30 бесплатных токенов каждый месяц
- функционал технической поддержки в панели пользователя
Токены, которые вы можете использовать для базы данных и технической поддержки в пользовательской панели программного обеспечения.
Если решения нет в программе, вы всегда можете воспользоваться панелью поддержки и отправить этот файл на доработку, заплатив за это токенами.
Панель поддержки дополнительных файлов - стартовая цена токенов:
ADBLUE OFF - 80 токенов
AIRBAG - 10 токенов
BURBLES - 80 токенов
CRC EDC17 - 10 токенов
CRC SID208/305/307/309 - 10 токенов
CRC SID310 - 20 токенов
DPF OFF - 30 токенов
DPF+EGR OFF - 50 токенов
DTC OFF - 15 жетоны
EGR OFF - 30 жетонов
ЗАЩИТЫ ВЫКЛЮЧЕНЫ - 30 жетонов
ГОРЯЧИЙ СТАРТ - 30 жетонов
IMMO CLONE OTHER - 20 жетонов
IMMO CLONE VAG - 20 жетонов
IMMO CLONE VAG - 20 жетонов
/>MILAGE DASHBOARD - 10 жетонов
MILAGE ECU - 10 жетонов
MILAGE ECU SID208 - 40 жетонов
MOD-TUNNING - 60 жетонов
ДАТЧИК NOX-02 - 30 жетонов
ПОПКОРН - 80 жетонов
Требования к оборудованию: компьютер с 64-разрядной версией ОС Windows7 не ниже
ВАЖНО
После покупки лицензия активируется в течение 24 рабочих часов. То же самое относится и к переносу лицензии на другой компьютер.
Возможность переноса лицензии на другой ПК, ноутбук - 2 раза на время действия лицензии бесплатно.
После использования лимита обратитесь в отдел продаж для передачи лицензии.
Стоимость переноса лицензии составляет 60 € каждый раз, если лимит использован.
Цель этой статьи — научить вас взламывать автомобили быстро, дешево и просто. Для этого в качестве примера мы подделаем датчик RPM.
Данное руководство ни в коем случае не является исчерпывающим. Вместо этого он стремится предоставить достаточно информации, чтобы вы могли начать работу. Если вы хотите копнуть глубже, вы можете ознакомиться с обязательным чтением в конце.
Если вы решите выполнить это руководство в реальной жизни, вам понадобится компьютер с Linux (или виртуальная машина с Linux) и устройство CAN-to-USB (которое мы рассмотрим позже). р>
Автомобиль — это сеть
Автомобиль состоит из нескольких компьютеров, которые управляют двигателем, коробкой передач, окнами, замками, светом и т. д. Эти компьютеры называются электронными блоками управления (ЭБУ) и обмениваются данными друг с другом по сети.
Например, когда вы нажимаете кнопку на рулевом колесе, чтобы увеличить громкость радио, ЭБУ рулевого колеса отправляет команду увеличить громкость в сеть, затем ЭБУ радио видит эту команду и действует соответствующим образом. р>
В автомобиле несколько сетей, обычно не менее двух:
- Один для важных данных, таких как сообщения о двигателе и трансмиссии.
- И один для менее важных данных, таких как радио и дверные замки.
Критически важная сеть использует быстрый и надежный протокол, тогда как некритическая сеть использует более медленный, менее надежный, но более дешевый протокол. Количество сетей, а также то, какие ЭБУ объединены в сеть, зависит от марки, модели и года выпуска автомобиля. ECU также может быть подключен к нескольким сетям.
Подключение к сети
Доступ к некоторым сетям можно получить через порт OBD-II. OBD-II является обязательным для всех легковых автомобилей и легких грузовиков, произведенных в США после 1996 года и в Европе после 2004 года.
Разъем находится на расстоянии вытянутой руки от сиденья водителя. Возможно, вам придется снять пластиковую крышку, но она всегда доступна без инструментов.
Стандарт OBD-II допускает использование пяти сигнальных протоколов. Какой из них использовать, решает производитель. CAN является наиболее популярным, и именно его мы и обсудим. Доступ к нему осуществляется через контакты 6 и 14 разъема OBD-II. Если в вашем автомобиле есть шина CAN, вы увидите металлические выводы на штырях, как на изображении выше.
Шина CAN — это надежная высокоскоростная шина, которая используется для отправки важных данных. К сожалению, пакеты данных на шине не стандартизированы, поэтому вам нужно будет перевернуть их, чтобы узнать, что они означают. Стандарт OBD-II также оставляет место для контактов, специфичных для поставщика, которые можно использовать для протоколов, специфичных для поставщика. Это облегчает дилеру диагностику проблем.
В моем автомобиле (GM) у меня есть стандартная шина CAN на контактах 6 и 14 и однопроводная шина CAN конкретного производителя на контакте 1. Стандартная шина CAN также является надежным высокоскоростным (500 кбит/с) протоколом. называется высокоскоростной CAN (HS-CAN). Он используется для критических данных. Однопроводная шина CAN (SW-CAN) или GMLAN медленнее (33,3 кбит/с) и менее надежна, но дешевле, поскольку использует только один провод. Эта шина используется для некритических данных.
Если вы видите пин-код, специфичный для поставщика, и не знаете, какой протокол используется, погуглите «контакт OBD». Существует также низкоскоростная CAN (LS-CAN) и среднескоростная CAN (MS-CAN). MS-CAN обычно подключается к контактам 3 и 11 и работает на скорости 125 кбит/с на автомобилях Ford и Volvo.
Инструменты
Вам потребуется как устройство, способное интерпретировать данные CAN, так и программное обеспечение для анализа данных
Оборудование
Чтобы принимать и передавать CAN-пакеты, вам необходимо устройство, которое на это способно. Вы часто будете сталкиваться с устройствами на базе ELM327. Хотя у них есть свое применение, они ужасны для взлома. Они слишком медленные, чтобы контролировать шину CAN.
Есть также устройства высокого класса, такие как Kvaser, Peak или EMS Wünsche. Они выполнят свою работу, но будут излишними и довольно дорогими.
Для некоторых высококлассных устройств также необходимо приобрести программное обеспечение. USB2CAN — это родной интерфейс CAN для Linux, предлагающий отличное соотношение цены и качества.
Вы также можете использовать Cantact или CANUSB. Однако это не родные устройства CAN в Linux, и они используют протокол на основе ASCII. Это означает, что они немного сложнее в настройке и имеют меньшую производительность. С другой стороны, они хорошо поддерживаются во многих операционных системах.
Я использую CANalyze, который разработал для своих нужд.Он похож на USB2CAN тем, что это доступный собственный интерфейс CAN, но он использует более новый микроконтроллер, имеет открытый исходный код и может быть создан с использованием инструментов с открытым исходным кодом. В оставшейся части этого руководства предполагается, что вы используете собственный интерфейс CAN.
Программное обеспечение
Для связи с устройством вам необходимо установить пакет can-utils на свой компьютер с Linux. Вы можете сделать это, введя в командной строке Linux следующее:
Can-utils упрощает отправку, получение и анализ пакетов CAN. Это команды, которые мы будем использовать.
- cansniffer отображает только те пакеты, которые изменяются
- создать дамп всех полученных пакетов
- можно отправить пакет
Linux имеет встроенную в ядро поддержку CAN через SocketCAN. Это упрощает написание собственных дополнительных программ. Вы можете взаимодействовать с CAN-шиной так же, как и с любой другой сетью, то есть через сокеты.
CAN-шина
Прежде чем начать движение задним ходом, вы должны иметь некоторое представление о том, как работает шина CAN. Он состоит из 2 проводов и использует дифференциальную сигнализацию. Поскольку это шина, к этим двум проводам можно подключить несколько устройств. Когда кадр CAN отправляется по шине, он принимается всеми ЭБУ, но обрабатывается только в том случае, если он полезен для ЭБУ. Если несколько кадров CAN отправляются одновременно, выигрывает тот, у которого наивысший приоритет. Фрейм CAN состоит из 3 важных для нас частей.
- Идентификатор арбитража Идентификатор сообщения. ECU использует его для принятия решения об обработке или игнорировании полученного кадра. Он также представляет приоритет сообщения. Меньшее число имеет более высокий приоритет. Так, например, если бы вы были инженером, проектирующим сеть, вы бы присвоили кадру для развертывания подушек безопасности очень высокий приоритет или низкий идентификатор арбитража. С другой стороны, вы бы присвоили более низкий приоритет или более высокий идентификатор арбитража данным, предназначенным для дверных замков.
- код длины данных (DLC) Указывает длину поля данных в байтах. Кадр CAN может содержать не более 8 байт данных.
- поле данных Содержит до 8 байт данных.
Реверсирование шины CAN
Общий подход к реверсированию шины CAN заключается в том, чтобы сгенерировать поведение, которое вы хотите имитировать, и найти сообщение, вызывающее это поведение. Например, предположим, что система помощи при удержании полосы движения (LKAS) в вашем автомобиле дерьмовая, и вы сделали свою собственную.
Чтобы он мог контролировать рулевое управление, вам нужно знать, какие сообщения отправлять. Способ выяснить это — включить оригинальный LKAS, проконтролировать CAN-шину и выявить пакеты, отвечающие за поворот руля. После того, как вы идентифицировали эти пакеты, вы можете заставить свой собственный LKAS отправлять эти пакеты на шину CAN для управления рулевым колесом.
В нашем случае мы хотим подделать тахометр, поэтому нам нужно изменить число оборотов, нажав на газ на включенной и нейтральной машине, а затем попытаться найти пакет, отвечающий за изменение числа оборотов.
Настройка
Подключите устройство CAN к порту OBD-II автомобиля и порту USB компьютера. Поднимите интерфейс CAN, запустив в командной строке Linux следующее:
который вызывает интерфейс can0 (всегда can0, если у вас подключено только одно устройство) со скоростью передачи данных 500 кбит/с, что является стандартным.
Определить
Когда машина выключена, блоки управления двигателем обычно находятся в спящем режиме, поэтому вам нужно включить машину или перевести ее в вспомогательный режим. Вы можете просмотреть необработанные данные CAN, запустив это в командной строке Linux:
При этом данные CAN выводятся на экран сразу после их получения. Однако это очень неорганизованно, и очень трудно увидеть, какие пакеты соответствуют определенному событию. Вы можете нажать ctrl+c, чтобы остановить программу. Чтобы сделать данные более читабельными, мы используем cansniffer, который группирует пакеты по идентификатору арбитража и показывает только пакеты, которые изменяются. Чтобы запустить его, выполните команду в командной строке Linux:
где -c раскрашивает изменяющиеся байты, а can0 — это интерфейс для прослушивания. Удаление постоянных пакетов занимает несколько секунд.
Вы должны увидеть что-то похожее на изображение ниже, хотя цифры, вероятно, будут совершенно другими.
Cansniffer с неработающим двигателем.
Первый столбец (дельта) показывает скорость в секундах, с которой принимаются пакеты с этим идентификатором арбитража. Второй столбец (ID) содержит идентификатор арбитража. Остальные буквенно-цифровые столбцы (данные…) содержат байты данных. Если данные представлены в формате ASCII, их можно увидеть справа, в противном случае это точка.
Когда вы нажимаете на педаль газа при работающем двигателе, чтобы увеличить обороты, на экране могут появляться новые сообщения CAN и/или изменяться существующие.
Нам нужно найти сообщение CAN, в котором изменение байтов соответствует изменению числа оборотов в минуту. Мы, вероятно, можем ожидать, что значение будет увеличиваться/уменьшаться по мере увеличения/уменьшения RPM.
Первый кадр CAN в cansniffer, который, по-видимому, зависит от RPM, — это кадр с идентификатором арбитража C9 . Вероятно, есть несколько потенциальных пакетов, которые зависят от RPM, это только первый.
Обнаружен пакет, относящийся к RPM.
В этом сообщении изменяются 4 байта (выделены красным цветом), но не все из них обязательно указывают на RPM. Изменения в третьем байте 07, похоже, не коррелируют с изменением числа оборотов в минуту. Последний байт 1B подходит.
Однако, как только мы отпускаем педаль газа, она достигает 00 . Это будет означать, что он представляет положение дроссельной заслонки, а не число оборотов в минуту.
И, наконец, есть два байта 21 C0, которые, кажется, соответствуют изменению RPM. Более того, он изменяется как 16-байтовое целое число, т.е. когда второй байт C0 переполняется, первый байт 21 увеличивается на единицу. Также кажется, что 21 соответствует примерно 2000 об/мин. Это следует учитывать при повторном воспроизведении сообщения.
Повтор
Получив кандидата, отправьте его на шину CAN с помощью следующей команды в командной строке Linux:
Для этого ваш автомобиль может работать или находиться в режиме аксессуаров. Обязательно используйте пакет, который вы получили, когда движок не простаивал, иначе вы не увидите никаких изменений при его воспроизведении, пока ваш движок не работает.
Если вы просто отправите пакет один раз, вы, вероятно, не увидите никаких изменений на комбинации приборов. Это связано с тем, что исходное сообщение все еще постоянно отправляется по шине с интервалом в 0,2 секунды от ЭБУ, поэтому ваше сообщение будет просто проигнорировано.
Напоминаем, что скорость указана в первой колонке cansniffer. Есть два способа обойти это, помимо отключения ECU, который генерирует эти сообщения. Один из вариантов — отправлять пакеты на гораздо более высокой частоте, чем те, которые отправляются в данный момент. Вы можете сделать это, запустив в командной строке Linux следующее:
и заменив сообщение CAN тем, которое вы идентифицировали. Нажмите ctrl+c, чтобы остановить.
Еще один вариант — отслеживать шину и каждый раз, когда вы обнаруживаете пакет, который хотите подделать, сразу после этого отправлять свой собственный пакет. Это можно сделать, запустив в командной строке Linux:
где вам нужно заменить сообщение CAN и 0C9 на сообщение CAN, которое вы идентифицировали, и его идентификатор арбитража соответственно. Вы можете поэкспериментировать с обоими подходами, чтобы увидеть, какой из них работает лучше.
Если тахометр меняется, молодец, ты его нашел! Если нет, определите следующее сообщение, связанное с RPM, и воспроизведите его повторно.
Фазз
Теперь, когда у вас есть кадр CAN, который устанавливает число оборотов в минуту на комбинации приборов, вы можете поиграться с отправляемыми данными и посмотреть, что произойдет. Мы заметили, что два байта, которые соответствуют RPM, ведут себя как 16-битное целое число, поэтому, чтобы установить тахометр на 8k RPM, мы запускаем в командной строке Linux следующее:
и результат…
Поддельные обороты при выключенном двигателе.
Вот оно! Теперь вы можете попробовать управлять спидометром, радио, светом, дверными замками и т. д., используя тот же подход.
Читайте также: