
Конфликт по CAN шине c Techstream.
Проблема возникает во время сеанса диагностики с помощью j2534 совместимого адаптера в диагностическом ПО Toyota Techstream ( далее по тексту TIS ). В данном случае используется адаптер Dialink https://almisoft.ru/J2534.htm
Все тесты проводились совместно с разработчиком данного адаптера.
Во время сеанса считывания текущих показаний от некоторых ECU, происходит разрыв соединения между адаптером и ECU. О разрыве сообщает TIS и предлагает, либо прервать сеанс, либо повторить попытку. При повторе, сеанс восстанавливается и данные ещё некоторое время продолжают поступать без сбоя. Обрывы могу возникать по несколько раз в минуту. Кол-во метрик не влияет на частоту обрывов.
Экспериментальным путём было выявлено, что на обрывы влияет наличие сконфигурированной на обмен по CAN шине s96bt. Обрывы прекратились как только в настройках StarLine Master были деактивированы выходы отвечающие за обмен по CAN и LIN.
Скорее всего, проблема возникает в связи с особенностью работы TIS в паре с протоколом can ISO-15765-4, а именно в способе получения данных от различных ECU автомобиля в виде асинхронного потока с периодическими поддерживающими запросами.
TIS отправляет запрос на получение данных PID в режиме потоковой передачи, после чего ECU начинает передачу ответа и продолжает её до момента истечения таймера, который обновляется при получении поддерживающих запросов, в среднем 1 раз в 2500ms. Возможно, s96bt втискивает свои запросы в общий поток, тем самым вызывая сбой потоковой передачи.
На стороне адаптера видно, что обрыв происходит из-за ошибки в блоке данных поступившего по can шине.
Так же необходимо учесть, что некоторые блоки ECU не поддерживают режим потоковой передачи и отдают данные только по прямым запросам. С такими блоками обрывы не наблюдаются.
Хотелось бы как минимум изменить поведение сигнализации, реализовать возможность отключение взаимодействия с can шиной в сервисном режиме. Как мне кажется, этот режим должен обеспечивать минимизацию влияния на системы автомобиля. Ну а если возможно, то внести изменения в алгоритм работы с can шиной во всех режимах работы, учитывая описанную особенность.
Всё вышеописанное касается автомобиля Toyota Prius PHV RHD, 2012 г.в.
Customer support service by UserEcho
Здравствуйте.
Прошу проверить работу диагностики когда сигнализация будет в Сервисном режиме.
Я ожидал этот вопрос, хотя и надеялся, что вы догадаетесь исходя из текста, что раз я предлагаю реализовать это в Сервисном режиме, то в данный момент это в нём не работает.
В текущей прошивке, в сервисном режиме у меня приходят оповещения в приложение о различных манипуляциях с автомобилем, таких как открытие дверей и т.п. Учитывая, что сигнализация подключена только по can, можно сделать вывод, что взаимодействие с шиной продолжается и в сервисном режиме. Хотя, признаться, я надеялся на обратное так как видел, что в приложении в этом режиме, заблокированы всё активные действия.
Верно ли я понял, что в Сервисном режиме сигнализация мешает работе оборудования Techstream?
Да.
Спасибо за сообщение. Информацию переслал разработчикам. Для теста прошу Вас выключить в настройках CAN в сигнализации чтение кодов ошибок сигнализации.
Да, вы правы. Подтверждаю, отключение чтения ошибок исправляет ситуацию.
Проверил несколько раз. Этот способ однозначно помогает избавиться от обрывов в соединении адаптер->ECU
Нужно и у себя проверить. Месяца три назад кабель работал, а недели две назад пробовал - не получается даже подключиться! В настройках сигнализации однозначно что-то за это время делал.