Программы для диагностики автомобилей с can шиной

В частности, CAN-шлюз . Ставится в разрыв любого канала. Как ещё можно использовать?
Сейчас можно:
1. Определить поканально, от какого блока какие сообщения идут.
2. Осуществлять подмену данных на лету с целью диагностики.
3. Подменить данные от полностью неисправного блока на эталонные — известные заранее.
4. Реверс-инженеринг
5.

Для Demonoid:
«хоть чуть-чуть» понимаю — камень, он, думаю, даже у вас в африке камень А уж какая у него обвязка периферией, не особо-то и важно. Хотя не удивлюсь, если под свои цели та же ардуинка и сами камни «подпиливает» в плане изменения инструкций работы с процем (однако, сильно сомневаюсь). Кроме периферии отладочных плат другой разницы я не знаю — но это никак не касается функциональности самого контроллера. У вас там по-другому?.
В этом плане, чтобы не быть голословными, предлагаю здесь выставить свои проекты я — свои, ты — свои. Можно в виде видео (здесь-ссылку), или хотя бы фото, только на листке подписать, чтобы понятно было, что не стырено с нета. (А то знаю я таких брехливых — а как поймают у теплой кучи — так — в кусты и подвякивать из подворотни) Прикинь, покажешь всем, как ты круто диодами моргаешь К тому же, у тебя и на шарпе проекты есть..

Компьютерная диагностика авто. K-линия и CAN шина

Про коды помню — сегодня.

Alexo

Священнослужитель
Регистрация: 19.06.2009 Сообщений: 6,654 Адрес: ЦФО РФ, Кострома
#2 Polikarpov, 04.12.2017 12:16
Ожидается серьезный замес?

Polikarpov

диагностика
Регистрация: 22.05.2007 Сообщений: 3,191 Адрес: Павлоград
#3 wdwd, 04.12.2017 13:21
«И тут Остапа понесло»

wdwd

Alexo Завсегдатай
программист
Регистрация: 30.03.2015 Сообщений: 22 Адрес: Ростов-на-Дону
#4 Alexo, 04.12.2017 14:41

Собсно, вот код, в инклудах особо интересного ничего нет — в основном заголовки функций. Си-шные тоже не при делах — они потом не менялись, а менялся именно этот — где прием-передача. Ну, ваш выход, коллега (иначе — брехло! (хотя это и так уже понятно):

#include «can.h»
#include «Attrdata.h»
#include «Ocbdata.h»
#include «can_srr.h»
#include «sja1000.h»
#include «rm_main.h»
#include
.
.

void Received(struct Attrdata * attrdata) unsigned to, from, size;
uint64_t buf_to;
uint64_t ibuf_from;
int msgs_to_read;
int msgs_unread;
int msgs_from_buf;
int rcvid;
int channel;
iov_t iov [2];
entry* item;
entry* next;
Ibuf* ibuf;
Irq_buf* irq_buf;
irq_buf = attrdata->irq_buf;
ibuf = attrdata->ibuf;
to = irq_buf->to;
from = irq_buf->from;
size = irq_buf->size;
while (from != to) buf_to = ibuf->to % ibuf->size;
ibuf->buf [buf_to] = irq_buf->buf [from];
ibuf->to++;
if (from != size — 1)
atomic_add (from, 1);
else
atomic_clr (from, 0xFFFFFFFF);

Читайте также:
Что такое слим программа

Простая проверка CAN шины. Сканер не видит автомобиль через OBD2. Как правильно выбрать изоленту.


from = irq_buf->from;
>
item = STAILQ_FIRST (iq);
while (item != NULL) rcvid = item->rcvid;
msgs_to_read = item->total;
ibuf_from = item->ocbdata->from;

msgs_unread = ibuf->to — ibuf_from;
msgs_from_buf = min (msgs_to_read, msgs_unread);
Ibuf_WhereToReadFrom (ibuf, iov, msgs_from_buf, ibuf_from);
MsgReplyv (rcvid, msgs_from_buf, iov, 2);
item->ocbdata->from += msgs_from_buf;
next = STAILQ_NEXT (item, entries);
STAILQ_REMOVE (iq, item, entry, entries);
free (item);
item = next;
>
channel = attrdata->channel;
if (IOFUNC_NOTIFY_INPUT_CHECK (all_the_attrs [channel]->notify, 1, 0)) iofunc_notify_trigger (all_the_attrs [channel]->notify, 1,
IOFUNC_NOTIFY_INPUT);
>
>
void Sent(struct Attrdata * attrdata) int rest, free_space;
int msgs_to_buf, shift;
int channel;
iov_t iov [2];
entry* item;
Obuf* obuf;
obuf = attrdata->obuf;
obuf->from++;
if (!STAILQ_EMPTY(oq)) item = STAILQ_FIRST(oq);
rest = item->total — item->already;
free_space = Obuf_FreeSpace (obuf);
if (rest == free_space || free_space == obuf->size) msgs_to_buf = free_space;
shift = sizeof (can_r_msg_t) + sizeof(can_msg_t) * item->already;
Obuf_WhereToWriteTo (obuf, iov, msgs_to_buf);
MsgReadv (item->rcvid, iov, 2, shift);
obuf->to += msgs_to_buf;
item->already += msgs_to_buf;
if (item->already == item->total) item->ocbdata->num_of_last = obuf->to;
MsgReply (item->rcvid, item->total, NULL, 0);
STAILQ_REMOVE_HEAD(oq, entries);
free (item);
>
>
>
item = STAILQ_FIRST (dq);
while (item != NULL) if (item->ocbdata->num_of_last from) MsgReply (item->rcvid, EOK, NULL, 0);
STAILQ_REMOVE (dq, item, entry, entries);
free (item);
break;
> else
item = STAILQ_NEXT (item, entries);
>
free_space = Obuf_FreeSpace (obuf);
if (free_space > 0) channel = attrdata->channel;
if (IOFUNC_NOTIFY_OUTPUT_CHECK (all_the_attrs [channel]->notify, 1))
iofunc_notify_trigger (all_the_attrs [channel]->notify, 1,
IOFUNC_NOTIFY_OUTPUT);
>
if (obuf->to > obuf->from)
SJA_WriteCanMsg (attrdata->base, Obuf_MsgToLine (obuf));
>

Источник: chiptuner.ru

Анализатор CAN шины CANHacker

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

Итак, какими исполнительными устройствами можно управлять по CAN? Список на самом деле может быть огромен, и может зависеть от конкретной марки и модели автомобиля. Для примера, по CAN может осуществляться снятие, постановка на охрану, складывание зеркал, управление стеклоподъемниками, срабатывание центрального замка, включение фар и т.д.

Кстати, многие автомобильные девайсы подключаются к CAN шине, и путем передачи в шину определенных данных осуществлять какие-то действия. Например, по такому принципу работают доводчики стекол. Такой доводчик ждет появления в CAN шине данных на постановку на охрану, и при получении этих данных осуществляет передачу данных в CAN шину, которые инициируют закрытие стекол. Как правило, такие доводчики вставляются в OBD-2 разъем автомобиля, в котором имеется выход CAN шины. Тут следует сказать, что на автомобиле может быть несколько CAN шин (высокоскоростная, низкоскоростная), которые разделены между собой.
Сразу возникает вопрос, есть ли в машине CAN шина. Определить это можно, посмотрев в OBD2 разъем наличие пинов 6 и 14.

Читайте также:
Hdd regenerator как пользоваться программой

Что представляет собой CAN пакет с данными? Грубо говоря он представляет собой CAN ID (идентификатор CAN, может быть 11-ти или 29-ти битным) и данные DATA (в одном CAN пакете возможно передача до 8 байт). CAN ID — это фактически поле адресата, т.е. кому адресуются данные DATA. Несколько CAN пакетов могут образовывать одно сообщение (чтобы преодолеть лимит на передачу более 8-ми байт).
Каждому исполнительному устройству или датчику автопроизводитель назначает уникальный CANID (у разных производителей они будут разными), благодаря чему можно адресовать посылку данных конкретному ЭБУ или устройству, или получив CAN пакет ЭБУ может определить ему ли он предназначался, и если ему, то что он должен с ним сделать (например, в нашем примере с доводчиком — поднять стекло).

До этого была теория. Теперь я расскажу, как посмотреть, что творится в CAN шине автомобиля и что для этого нужно. Для этого необходим специальный адаптер и программа, которая будет отображать состояние CAN шины. Вообще, таких программ и адаптеров в природе существует много, но самым популярным является CANHacker (такой себе стандарт «де-факто»), поэтому про него я и расскажу. В качестве адаптера я буду использовать CHIPSOFT J2534 Lite адаптер, который может работать в режиме J2534 устройства, K-Line адаптера и в необходимом нам режиме CANHacker.

Сама программа CANHacker бесплатна и может быть без труда найдена на просторах интернета. Обращаю внимание на то, что по состоянию на март 2016, данная программа не может работать в Windows 10. Что-то Microsoft в своей операционке так улучшило, что в ней перестали работать все программы написанные ранее на Visual Basic c использованием COM порта.

Итак, запускаем программу, открываем окно настроек, в которых выбираем COM порт, на котором висит наше устройство, скорость обмена (в нашем случае 500 Kb/s), и режим работы (Listen Only).

Следует отметить, что если неправильно задать скорость CAN шины, которую собираемся слушать, то мы ничего не увидим. В автомобилях высокоскоростная CAN шина работает на скорости 500 Kb/s, ее и будем слушать, подключив наш CHIPSOFT J2534 Lite адаптер, в OBD2 разъем автомобиля.
Что еще нужно сказать по настройке Listen mode. Она определяет, требуется ли адаптером отсылать подтверждение приема CAN пакета. В нашем случае мы просто слушаем сеть и ничего не подтверждаем. Вообще, этот режим может быть полезен в том числе и в поиске неисправностей или обрывов в CAN шине.
Если предполагается отправка CAN пакетов в шину, то галка Listen Only должна быть снята.

Читайте также:
Не работают горячие клавиши в программе

Нажимаем старт. Если все сделано правильно, то на экране увидим CAN пакеты, которые «бегают» в сети нашего авто. А бегать их там может быть очень много. Так, на моей машине при заведенном двигателе «бегает» более 1000 пакетов в секунду. Вот какое происходит движение при подключении одиночного ЭБУ:

Если нам необходимо отследить какие-то конкретные CAN ID, то мы можем задать фильтр, который отсеет лишнее.

Программа CANHacker может работать в режиме монитора (monitor) и трейсера (tracer). В режиме монитора CAN пакеты сгруппированы по CAN ID и отображается переиод следлования данного CAN ID. В режиме трейсера отображается непрерывный поток CAN пакетов в порядке их появления в CAN шине. Но особенностью режима «трейсер» является то, что можно затем вопроизвести в шину в таком же порядке.

Также программа может отправлять отдельные CAN пакеты пользователя в CAN шину с заданным периодом (область в окне программы для работы в этом режиме называется Transmit). Некоторые используют это свойство для создания так называемой подмотки пробега. Т.к. информация о скорости вращения каждого колеса приходит с ЭБУ ABS, то отправляя непрерывно в шину CAN пакеты, в которых будет закодирована скорость, скажем 500 км/ч мы заставим одометр думать, что мы машина таки движется с такой скоростью, в результате чего счетчик пробега на одометре будет увеличиваться очень быстро а машина по факту стоять неподвижно.

В данной статье я сделал небольшой обзор программы CANHacker. Если тема интересная, то можно продолжить в меру моих знаний 🙂

Источник: www.drive2.ru

Программы для диагностики автомобилей с can шиной

CAN Hacker (анализатор) CAN шины в корпусе OBD-II.

CAN Hacker или анализатор CAN шины предназначен для считывания информации с автомобильной или любой другой CAN шины. Может применяться для поиска нужного пакета для подмотки спидометра и последущей записи ее в подмотку. Поддерживает любую скорость до 1 Мбит/сек. Для подключения к другим устройствам можно использовать разъем OBD-II — мама

Достоинства:

1. Адаптер выполнен в OBD-II корпусе для удобного подключения к CAN-шине автомобиля

2. Качественная сборка

3. Поддержка любых скоростей до 1 Мбит/сек.

4. Гарантия 1 год

Возможности программного обеспечения:

1. Отображение CAN-посылок, принятых в CAN шине

2. Запись принятых CAN-посылок в файл

3. Передача CAN-посылок обратно в шину

4. Настраиваемый фильтр CAN-посылок по ID-посылки

Программа CANHacker V2.00.01 лежит здесь

Видео инструкция по работе с CANHacker V2.00.01 — здесь

Источник: autodev.ru

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru