CAN-шина в автомобилях и мотоциклах

 

    В современных автомобилях и мотоциклах для обмена информацией между всевозможными исполнительными механизмами и контроллерами требовалась надежная коммуникационная сеть. В середине 80-х годов прошлого столетия компанией BOSCH была предложена новая концепция сетевого интерфейса CAN (Controller Area Network). В данной статье рассмотрена структура CAN-шины на примере мотоцикла Ducati Monster 2008.
ducati can

    К концам диагностической колодки CAN-шины подключается резистор-терминатор (около 120 Ом), далее стоит проверить сигнал при помощи осциллографа (CAN-сигнал хорошо виден, уровень дискретных сигналов порядка 3.3 Вольта) и подсоединяем CAN-адаптер сигналов (преобразователь сообщений CAN в USB пакеты и соответствующее ПО на ноутбуке) и подбираем скорость из стандартных. Адаптер может быть как самодельным (многие процессоры ARM7tdmi имеют usb и can), так и уже готовый (Ориентировочная цена usb-can адаптера - около 5 тысяч рублей). CAN-адаптер можно сделать и с помощью готовых отладочных наборов, например, http://www.starterkit.ru/html/index.php?name=shop&op=view&id=9 , прошивку с исходными кодами можно скачать с нашего сайта.

    Структура каждого CAN-сообщения очень простая, оно содержит до 8 байт и имеет некоторый id (см. рис, все данные в 16-ном виде), сообщение с каждым id имеет некоторый период отправки (см. ниже).

ducati can

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

Часть полученных показаний:

80h - 4 байт - ручка газа

211h - 3 байт - (температура у впускного коллектора - 40 градусов)

211h - 0 байт - (температура двигателя -40 градусов)

 

Тем не менее возможно передавать свои дополнительные данные по шине, блокировать идущие данные (например, посылая сообщение с тем же id, но другого содержания чаще) и т.д., что позволит создавать уникальные сигнализации. Данный сниффинг позволил реализовывать различные функции приборной панели - можно сделать светодиодный тахометр, датчик температуры.

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

can diagnostic ducati