Вопрос

В надежде избавиться от ошибки CAN «нет сообщения», которую не могут/не хотят решить даже инженеры BMW в Мюнхене

На моём BMW F30 осталась одна постоянная информационная ошибка, от которой не избавляет даже обсессивно-компульсивное расстройство. Компания BMW также махнула на это рукой, как описано в бюллетене NHTSA: https://static.nhtsa.gov/odi/tsbs/2013/MC-10149299-9999.pdf


CDA904 Нет сообщения (статус, трейлер, 0x2E4), приёмник DME, передатчик AHM


Не могли бы вы подсказать мне, в каком направлении двигаться? Какой идентификатор сообщения CANBUS мне нужно отслеживать? Я зашёл в тупик.


Предыстория: К автомобилю никогда не подключался прицеп, поэтому модуль прицепа (AHM) отсутствует. Возможно, некоторое время назад я случайно запрограммировал некоторые или все блоки управления с помощью VO/FA (заказа на транспортное средство), содержащего код «3AC». Это добавляет в программное обеспечение автомобиля модуль прицепа. В некоторых блоках управления были изменены настройки, и они начали ожидать связи с модулем AHM (блоком управления прицепом).


Вкратце о проблеме: В памяти ошибок ЭБУ DME есть указанная выше ошибка. Похоже, это указывает на то, что DME (или другой ЭБУ, с которым взаимодействует DME) ожидает от AHM сообщения о том, что «я здесь, жив и т. д.». Очевидно, что физически AHM не может отправлять какие-либо сообщения по CAN-шине.


Автомобиль и его сеть CANBUS: BMW F30, 2012, 328i, двигатель N26. DME подключен к PT_CAN(1) и PT-CAN2 (резервный канал) с пропускной способностью 500 кбит/с. Он также подключен к FlexRay (кажется, 1 Мбит/с)


PT-CAN(1) шина соединяет DME с FEM (корпусом) и BKOMBI (кластером). FEM и KOMBI — это конечные узлы с сопротивлением 120 Ом каждый.


PT-CAN2 соединяет DME с EGS (трансмиссией) и GWS (переключателем выбора передач).


FlexRay связывает DME с DSC (системой динамической стабилизации), EPS (системой рулевого управления), ICM (шасси).


AHM (прицепной модуль, при наличии физических возможностей, будет подключаться к сети K-CAN2, которая связывает REM (задний электронный модуль) с некоторыми другими ECU.


Я думаю, что ZGM (шлюз ЭБУ) подключается ко всем ЭБУ через все сети.


BMW F30


Что я уже сделал, но это не сработало:



  • Когда я воспользовался программным обеспечением для диагностики BMW ISTA+ (которым пользуются все дилеры BMW) для устранения этой конкретной ошибки, мне предложили повторно инициализировать FlexRay. (и другие CAN-шины?)



  • Перекодировал все блоки управления с помощью заводского VO/FA, в котором никогда не было кода прицепа AHM 3AC, чтобы отключить все настройки, связанные с AHM.



  • Все ЭБУ (кроме NBT_HU) были обновлены до последней версии прошивки.



  • Исходный код ошибки был CF2501 «Нет сообщения (статус, трейлер, 0x2E4)», приёмник EGS, передатчик AHM. Но я использовал программу BMW TOOL32 для работы с EEPROM и сбросил все адаптации/связи в EGS (передача), а также функцию обучения CAN. Этот код ошибки исчез, но сразу же появился в DME с кодом CDA904 «Нет сообщения (статус, трейлер, 0x2E4)», приёмник DME, передатчик AHM.



  • Также сбросьте настройки DME. Для этого ЭБУ не было возможности сбросить настройки CAN-обучения (если оно было).



  • Судя по тому, что я прочитал, DME либо ищет ошибку каждые 8 секунд, либо каждые 1 минуту. Не могу подтвердить, что из этого верно. И если DME не получает сообщение «Я жив» от AHM (или от другого модуля, которому поручено считывать сообщения AHM), то DME выдаст ошибку.



  • Подключил модуль/программу для перехвата и анализа данных CANBUS напрямую к сетям PT-CAN(1), PT-CAN2 и K-CAN2 по отдельности. Специально не использовал порт OBDII, чтобы он не считывал данные из изолированного сегмента сети. Я искал шестнадцатеричный идентификатор 2E4 (из сообщения об ошибке), но он так и не появился. (Отличная программа на основе QT с использованием Arduino и дешевого модуля CANBUS для перехвата данных:) https://github.com/adamtheone/canDrive




Было бы очень полезно определить/подтвердить, какой идентификационный код CANBUS мне следует искать при анализе. Вот список соответствующих кодов CANBUS, которые могут быть вам полезны:


0xCD98 52632 PT-CAN, сообщение отсутствует (состояние прицепа, 2E4): функция диагностики отслеживает получение сообщения.


«0xCD98 Сообщение (Запрос крутящего момента DSC, B6)» // запрос крутящего момента


0x2E4 Прицеп (8) Прицепы (8) 0x71 AHM


0x4F1 Управление сетью 0x71 AHM


0x5F1 Dienste services 0x71 AHM


BO_ 740 Status_trailer: 8 AHM (740 в десятичной системе = 2E4 в шестнадцатеричной)


Двигатель-DME Motor Elec. Cd98: ошибка в сообщении, приёмник DME, передатчик AHM/DSC


Вот какие варианты я вижу, не считая решения самой проблемы:



  • Запретите DME искать/получать отсутствующее сообщение AHM



  • Автоматическое удаление ошибки DME с помощью команды CANBUS через регулярные промежутки времени (менее 8 секунд)



  • Отправьте поддельное сообщение AHM CANBUS о том, что AHM на месте и всё в порядке.



  • Установите физический модуль AHM (от 80 долларов) (если не можете их победить... присоединяйтесь к ним!)




Спасибо вам за любую помощь!



Перевод вопроса с Mechanics Stack Exchange
Лицензия: CC BY-SA (2.5–4.0)
Оригинальный вопрос: https://mechanics.stackexchange.com/questions/93700/hoping-to-get-rid-of-no-message-can-error-that-even-bmw-engineers-in-munich-ca

3 Комментария

  1. В итоге я установил ЭБУ прицепного модуля, чтобы удовлетворить потребность ЭБУ DME и EGS в связи с модулем AHM (прицепным). Это не то решение, которое я себе представлял, но оно оказалось дешевле других.


  1. Спасибо, @Pᴀᴜʟsᴛᴇʀ2. Я здесь новичок, но состою в нескольких других сообществах.
  1. Добро пожаловать в компанию по техническому обслуживанию и ремонту автомобилей!
Вы уже ответили на этот вопрос