PCCar.ru - Ваш автомобильный компьютер

PCCar.ru - Ваш автомобильный компьютер (http://pccar.ru/index.php)
-   Общение с машиной (http://pccar.ru/forumdisplay.php?f=14)
-   -   Arduino+CANBUS Shield (http://pccar.ru/showthread.php?t=23221)

Kos91 11.10.2018 23:13

А как посчитать CAN Boudrate для нужной скорости шины? Или это не нужно, если использовать CANHacker в режиме монитора?
https://a.radikal.ru/a34/1810/ef/79c3f337e097.jpg

T_r_D 11.10.2018 23:55

Это странный вопрос.
Ни как его не посчитать.
Это скорость шины автомобиля и она задана производителем.
И я выше писал что у скетча нет возможности считывать этот параметр с программы. Скорость шины нужно править в скетче.
Да, это не удобно если скорости шин разные в машине или если несколько авто, но когда я это делал мне это было не надо.
А ща уже не помню что там надо делать чтоб заработала настройка из программы.
Хотя можно взять описание протокола и дописать библиотеку.

Kos91 12.10.2018 00:03

Перефразирую.
Реальная скорость шины задается в скетче, но у CANHacker свой протокол. Поймет ли он, если я в скетче задам скорость 100kbps, а в программе укажу 500kbps?

Просто я вижу что CANHacker передает в шилд команду
if (lw232CanChannelMode == LW232_STATUS_CAN_CLOSED) {
idx = HexHelper:: parseNibbleWithLimit(lw232Message[1], LW232_CAN_BAUD_NUM);
lw232CanSpeedSelection = lw232CanBaudRates[idx];
И lw232CanSpeedSelection будет соответствовать 500kbps например

T_r_D 12.10.2018 08:34

Угу, только и всего.
А потом это ни где не обрабатывается.
Про это выше и написал.
От скорости структура посылки пакета не меняется, так что всё будет хорошо.
Но если хочется чтоб из программы устанавливалась скорость, то нужно её отлавливать в скетче и конфигурировать кан шилд.
Можете допилить, вам только спасибо скажут. :)

randy 12.10.2018 21:46

Цитата:

Сообщение от T_r_D (Сообщение 405496)
PS. Кстати из за того, что в Ардуино нельзя задать нормальные фильтры аппаратные на CAN, то бедной атмеге с 12 мегагерцами приходится жрать

После длительного затишья я уже и заходить сюда перестал. А тут веселуха...
Вдвойне удивительно слышать это от Вас. А чем Вас это не устраивает?

CAN.init_Mask(0, 0, 0x7F8); // there are 2 mask in mcp2515, you need to set both of them
CAN.init_Mask(1, 0, 0x7F8);

CAN.init_Filt(0, 0, PID_REPLY); // 0x7E8 - 0x7EF

И ничего в ардуину не валится.
В Ардуине нет фильтров, более того - вообще для CAN ничего нет. Но в MCP2515 то есть.

randy 12.10.2018 21:59

Вложений: 1
Цитата:

Сообщение от НСО154 (Сообщение 405691)
Я так и не понял, какой canbus лучше купить?
И что за разъём на первом?

DB9
Это для вот такого кабеля
http://pccar.ru/attachment.php?attac...1&d=1539367068

Misha2066 12.10.2018 22:41

Вложений: 1
Продолжаю свою эпопею.
Да, я могу подтвердить, что Канхакер в связке с Ардуиной конкретно глючит в вин 10. Что-то начудили мелкомягкие индусы в новой ОС. Переставил ОС в ноуте, поставил 8.1 и всё отлично работает!

Однако не всё так радостно. Мне нужно найти пакеты климата, один чел с Драйва (владелец Теаны, по факту одноплатформенная машина с моим Мурано), нашел адреса пакетов климата, 0х54А и 0х54В. НО! У меня на этих адресах ничего нет! Есть какой-то обмен на 0х54С, но там всего пара значений, которые меняются без прямой связи с нажатием кнопок климата. Я спросил у этого чела, что не так, на что он мне ответил, что "правильный, православный" CAN-Hacker видит ВСЕ пакеты, а моя поделка большую часть пакетов теряет. Сам он конечно использует правильный девайс. Как думаете, может быть так, что бы в одном адресном диапазоне часть пакетов отлавливается, а часть теряется?

T_r_D 12.10.2018 23:32

Отвечаю по порядку.
Про аппаратный фильтр МЦП. Он есть, но его мало.
В ардуине конечно нет ни чего для кана.
Если его хватит, то используйте, но как правило, этого фильтра мало. У него 11 или 12 ID всего можно фильтровать (могу ошибаться по количеству).

НСО154 любой покупай.
Разницы нет.

Про пакеты и "правильный" канхакер.
Нет, такого быть не может. Даже если ардуина не успеет отловить пакет, то они, как правило цикличны. Тоесть ID идёт с каким-то интервалом постоянно.
Только значения разные. Потери значений могут быть, а вот всего ID нет.
Рано или поздно его всё равно обработает ардуина.

Соответственно- открой нам уже тайну- разбери любой блок подключённый к КАН в авто.
Такие потери пакетов свойственны когда разные протоколы КАН.
Ну тоесть FS и FT.
Открыв блок поймём какой протокол.
Отличае протоколов не программное, а физическое!
Там уровни сигналов разные.

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

Вот что я имел в виду под РАЗНЫМИ:
HS CAN
https://upload.wikimedia.org/wikiped...1898-2.svg.png
FT CAN
https://upload.wikimedia.org/wikiped...veform.svg.png

Нравится?
Совсем похожи да?
Поэтому и сказал- вскрой блок, ну или если есть трансивер под FT(fault tolerant), то пробуй его.
Я пробовал FT читать трансивером HS (Или FS, что одно и тоже. F - fast, H- high), результат похож на твой, только ID побольше...
Но всё равно не полный список.
Так что вскрывай и смотри.

PS. "правильный" канхакер собран на СТМ. Пакетов не теряет, но на этом вся его правильность и заканчивается.
Ещё раз- пакеты, как правило, идут циклично. Тоесть с повтором в несколько миллисекунд. Данные там конечно разные, но ID одинаков.
Так что можно потерять одну посылку ID, но какую-то последующию всё равно поймаешь. Может данные нужные ты и пропустишь, но чтоб совсем пропустить ID не получится.
И "адресный диапазон" тут не подходит. Тут всё в диапазоне 11 или 29 бит пакета. Почитай описание протокола.

Misha2066 13.10.2018 10:11

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

T_r_D 13.10.2018 11:06

У тебя при подключении к шине в канхакере должно быть много ID. Если это не так, то или не туда подключился или несовпадение физического протокола.

И не адреса, а идентификаторы пакетов- ID.

Вскрывай блок для начала.


Часовой пояс GMT +4, время: 10:03.

Работает на vBulletin® версия 3.8.4.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot