Вопрос

Сигналы ЭБУ на шину CAN

Какие существуют методы или идеи, которые могут сопоставить или изменить сигналы или коды ЭБУ SR20det, чтобы новая система CAN-шины могла считывать, например, данные о работе гидроусилителя руля и показания тахометра и датчика давления масла на приборной панели?



Перевод вопроса с Mechanics Stack Exchange
Лицензия: CC BY-SA (2.5–4.0)
Оригинальный вопрос: https://mechanics.stackexchange.com/questions/21748/ecu-signals-to-can-bus

6 Комментариев

  1. CAN — это среда широковещательной передачи. Когда ваш ЭБУ отправляет бит в кадре CAN, другие ЭБУ на шине должны считывать этот бит в то же время (приёмники восстанавливают тактовую частоту в режиме реального времени за счёт передискретизации сигнала шины). Добавление аппаратного обеспечения для преобразования нарушит это свойство, и в итоге у вас будет две разные шины CAN (одна только для ЭБУ, шина CAN «98 S14», и шина CAN «04 RX8»), а ваш блок преобразования будет выполнять функции шлюза (принимать данные, распаковывать и переупаковывать сигналы и передавать переупакованные данные по другой шине).



    Вот какие проблемы я вижу:




    • Вы добавите задержку. Поскольку это сигналы двигателя, они могут быть неприемлемы для всех сигналов. Для простого информирования водителя о состоянии, скорее всего, всё в порядке. Но механические элементы управления, такие как гидроусилитель руля или антиблокировочная система, скорее всего, не рассчитаны на большую задержку.

    • Существуют базы данных, в которых описаны сигналы CAN для электронных блоков управления, но они строго контролируются автопроизводителями. Вряд ли вы найдёте эту информацию. Поэтому вам придётся реконструировать сигналы CAN двигателя '04 RX8. Вам также нужно будет знать, что означают сигналы от электронного блока управления SR20det. Эту информацию найти проще, но если нет, то придётся снова заниматься реверс-инжинирингом! Это легче сказать, чем сделать, но возможно.



    Если вы знаете, какие переводы нужно выполнить, создать переводчик будет относительно просто. Найдите микроконтроллер с двумя каналами CAN и напишите программное обеспечение для перевода. Не забудьте провести тщательное тестирование! Возможно, вам даже удастся обойтись имеющимся оборудованием TI Tiva C LaunchPad, которое включает в себя 2 канала CAN и имеет экосистему, похожую на Arduino, Energia.


  1. Блок управления двигателем SR20det — это проприетарная деталь, которая, скорее всего, содержит чип, разработанный кем-то вроде Broadcom, который затем был интегрирован в плату поставщиком автомобильной электроники первого уровня, например Bosch, который затем поместил его в металлический корпус, добавил роскошные разъёмы и продал Nissan. У Nissan есть собственные инженеры, которые разработали или используют протокол CAN-шины для своей системы (стандартизированный способ представления/передачи информации).



    Иногда поставщики первого уровня (например, те, кто занимается нанесением штриховки) соглашаются соблюдать какой-либо автомобильный стандарт, например Autosar



    Итак, вопрос номер один, требующий изучения: существует ли стандарт CAN-шины, применимый к вашему автомобилю? Определённо, существуют автомобильные стандарты, которые применялись в то время, когда автомобиль был запущен в производство. J2534 — хороший пример такого стандарта



    Как только вы узнаете, каким был этот стандарт, вы можете использовать что-то вроде диагностического сканера OBD2, чтобы начать процесс «разбора чёрного ящика». Отсоедините что-нибудь или нажмите на что-нибудь и посмотрите, получите ли вы ожидаемый результат. Например, когда вы отсоединяете тормоз, появляется ли код ошибки?



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



    Когда вы разберетесь, как расшифровывать все старые сообщения... вам нужно будет проделать то же самое с новой системой. Какие сигналы мне нужно отправлять, чтобы все заработало? Существуют адаптеры USB-CAN, с которыми можно начать экспериментировать: http://www.systec-electronic.com/en/products/industrial-communication/interfaces-and-gateways/can-usb-adapter-usb-canmodul1



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



    Я могу порекомендовать вам сходить в местный хаб/мейкерспейс и пообщаться там с людьми, которые интересуются электроникой. Если у вас есть ЭБУ, они могут помочь вам начать работу с такими инструментами, как http://dangerousprototypes.com/docs/Bus_Pirate и CAN-плагин для Arduino



    Ваш проект ни в коем случае не является простым, но нет ничего невозможного!


  1. Весь двигатель и трансмиссия были переделаны под корпус RX8. Двигатель с ЭБУ от S14 1998 года выпуска, а RX8 — 2004 года. Он погружается, но для корректной работы приборной панели нам нужно попытаться сопоставить сигналы от Nissan с сетью Canbus от Mazda. Мы будем рады любым альтернативным советам
  1. Вы пытаетесь установить старый ЭБУ на новый автомобиль? Даже если вы переходите со старой модели (до 2000 года) SR20DET на более новую, маловероятно, что это сработает.
  1. Проблема в том, что мы пытаемся это объяснить. Нам нужно преобразовать данные из ЭБУ Nissan в формат, совместимый с автомобильной системой CANBUS, чтобы работали некоторые функции автомобиля, например гидроусилитель руля.
  1. Я понимаю, что вы, скорее всего, не являетесь носителем английского языка, но я не совсем понимаю, о чём вы спрашиваете. Не могли бы вы объяснить попроще?
Вы уже ответили на этот вопрос