MCP2515 CAN Bus Модуль
MCP2515 CAN Bus Модуль
stapmoff, модуль пока жду. Железа нет проверить не могу.
Если вы не можете объяснить это просто – значит, вы сами не понимаете этого до конца.
☆Альберт Эйнштейн
☆Альберт Эйнштейн
MCP2515 CAN Bus Модуль
Просто я взял железяку под названием CAN-LOG она для переворачивания протоколов спец.техники в протокол понятный нашему оборудованию! Так вот в ней есть постоянная попылка статических данных в кан шину, я прочитал их и взял первую попавшеюся строку ID: 18FEC101 Data: EA 80 00 00 FF FF FF FFAVGN писал(а):Железа нет проверить не могу.
Нааше оборудование определяет это как уровень топлива в баке, попытался сделать на дуине, не вышло оборудование данных не видит
- DrMario
- Лейтенант
- Сообщения: 378
- Зарегистрирован: 07 ноя 2016, 13:11
- Откуда: Камень-на-Оби
- Имя: Евгений
- Контактная информация:
MCP2515 CAN Bus Модуль
Пока не приехал модуль, для меня эти данные не понятны, что такое ID: 18FEC101 ?stapmoff писал(а):Попробывал этот проэкт, прием работает данные читаетБ только подскажите как переделать скейтч чтоб ID был 18FEC101 а данные вот такие к примеру EA 80 00 00 FF FF FF FF
У любого устройства есть адрес, на который нужно отсылать запросы. Для CAN 11_500 выглядит примерно так:
Req:08 07 DF 02 01 00 FF FF FF FF FF
Ans:08 07 E8 06 41 00 90 07 E0 11 00
Расшифровывается так:
1 строка (отправляемые данные)
7DF - запрос по адресу (в данном случае общий протокол)
02 - количество отправляемых байт
01 00 - непосредственно данные (общий протокол, OBD-II PIDs (0-20))
FF FF FF FF FF - заполнение пустоты
2 строка (принимаемые данные)
7E8 - физический адрес ЭБУ
06 - кол-во байт данных в строке
41 - зеркальный байт + 40
00 - зеркальный байт
90 07 E0 11 - непосредственно данные о поддерживаемых PIDs
после определение поддерживаемых параметров (сравнив ответ с таблицей) можно делать запросы непосредственно самих параметров.
К примеру запрос температуры ОЖ будет таким:
Req:08 07 DF 02 01 05 FF FF FF FF FF
Ans:08 07 E8 03 41 05 28 00 00 00 00
7E8 - физический адрес ЭБУ
03 - кол-во байт данных в строке
41 05 - зеркальные байты команды запроса (01 05)
28 - непосредственно байт информации о температуре ОЖ
Подставив 0x28 в формулу расчета температуры (A-40), получаем результат 0 °C
Вот как то так
Последний раз редактировалось DrMario 20 апр 2017, 10:46, всего редактировалось 1 раз.
MCP2515 CAN Bus Модуль
Посмотрите здесь п. 10.5.3 29-битные заголовки сообщений CANDrMario писал(а):для меня эти данные не понятны, что такое ID: 18FEC101 ?
MCP2515 CAN Bus Модуль
Это выдает сам модуль при чтении данных из устройства которое их шлетDrMario писал(а):что такое ID: 18FEC101 ?
Последний раз редактировалось stapmoff 20 апр 2017, 19:30, всего редактировалось 1 раз.
- ElectroMechaniC
- Сержант
- Сообщения: 230
- Зарегистрирован: 21 сен 2016, 06:50
- Откуда: Донецк
- Имя: Юрий
MCP2515 CAN Bus Модуль
Вопрос к
Не подскажете, платки пришли? И скиньте ссылочку на блок готовый? А то уже версий с апреля вышло много, а блока всё нет и нет!!!!support писал(а):Ребята, у меня пришли такие платки, к следующей версии постараюсь сделать блоки.





- ElectroMechaniC
- Сержант
- Сообщения: 230
- Зарегистрирован: 21 сен 2016, 06:50
- Откуда: Донецк
- Имя: Юрий
MCP2515 CAN Bus Модуль
Что то тема заглохла? Кто то сможет блок запилить для MCP 2515?





- ElectroMechaniC
- Сержант
- Сообщения: 230
- Зарегистрирован: 21 сен 2016, 06:50
- Откуда: Донецк
- Имя: Юрий
Помогите по выводу информации
Доброго времени. Есть код, который читает из кан-шины автомобиля данные и печатает их в ком-порт! Всё работает прекрасно,но по задумке нужно проводить операции над этими данными, а не тупо читать их. Вопрос в том, как правильно и вообще как их перевести в переменные... может не корректно выражаюсь...
Нужно в общем что бы содержимое буфера( это 8 байт информации) и ID можно было дальше в программе умножать, делить, конвертировать, перекладывать отправлять в ком порт....ну в общем сделать их работо-пригодными а не просто читать их в терминалке....Помогите...Братья...
Файлы проекта приложил...
Нужно в общем что бы содержимое буфера( это 8 байт информации) и ID можно было дальше в программе умножать, делить, конвертировать, перекладывать отправлять в ком порт....ну в общем сделать их работо-пригодными а не просто читать их в терминалке....Помогите...Братья...
Файлы проекта приложил...
Код: Выделить всё
if(CAN_MSGAVAIL == CAN.checkReceive()) // check if data coming
{
CAN.readMsgBuf(&len, buf); // read data, len: data length, buf: data buf
unsigned int canId = CAN.getCanId();
Serial.print("ID: ");
Serial.print(canId, HEX);
for(int i = 0; i<len; i++) // print the data
{
Serial.print(buf[i], HEX);
Serial.print("\t");
}
Serial.println();
}
У вас нет необходимых прав для просмотра вложений в этом сообщении.





Помогите по выводу информации
А где это должно производиться и каким образом? В ардуине? или допускается использование компьютера для всех этих операций?ElectroMechaniC писал(а): 03 апр 2018, 17:03Нужно в общем что бы содержимое буфера( это 8 байт информации) и ID можно было дальше в программе умножать, делить, конвертировать, перекладывать отправлять в ком порт
"У меня достаточно хлопот с собственными недостатками, чтобы ещё раздражаться из-за того, что Бог не позаботился равномерно распределить между людьми умственные способности" (Дейл Карнеги)
- nalnik
- Подполковник
- Сообщения: 1320
- Зарегистрирован: 14 май 2016, 17:12
- Откуда: Кисловодск
- Имя: Александр
Помогите по выводу информации
Сколько можно?
НЕ потянет ардуино!
кУПИТЕ себе БК - их много, есть дешевле - дороже. Не экономьте и не экспериментируйте на своих и чужих жизнях.
Девять лет у меня работает (старый - голосом не говорит -- зато все в реальном времени на экране и по Русски - все коды и их описание).
Пример - не реклама.
Прочтите его возможность -- дешевле Вы даже при помощи всех форумов НЕ сделаете.
http://microline.ru/products/Car-Comput ... -CAN-Plus/
НЕ потянет ардуино!
кУПИТЕ себе БК - их много, есть дешевле - дороже. Не экономьте и не экспериментируйте на своих и чужих жизнях.
Девять лет у меня работает (старый - голосом не говорит -- зато все в реальном времени на экране и по Русски - все коды и их описание).
Пример - не реклама.
Прочтите его возможность -- дешевле Вы даже при помощи всех форумов НЕ сделаете.
http://microline.ru/products/Car-Comput ... -CAN-Plus/
Я хочу быть добрее, но люди сами нарываются.
- ElectroMechaniC
- Сержант
- Сообщения: 230
- Зарегистрирован: 21 сен 2016, 06:50
- Откуда: Донецк
- Имя: Юрий
Помогите по выводу информации
[ref]Deuce[/ref], нет нужно средствами ардуино!
Отправлено спустя 2 минуты 56 секунд:
[ref]nalnik[/ref], спасибо за ссылочку, обязательно прочту! Но я ведь задал вполне конкретный вопрос! Как вместо написания информации в порт запихнуть её в переменные!? Если не можете помочь, лучше не пишите...
Отправлено спустя 3 минуты 15 секунд:
[ref]nalnik[/ref], и что по вашему не сможет Atmega328, перевести 4е переменные из hex в dec и передать их по последовательному соединению? Если не знаете то не пишите...повторюсь.
Отправлено спустя 2 минуты 56 секунд:
[ref]nalnik[/ref], спасибо за ссылочку, обязательно прочту! Но я ведь задал вполне конкретный вопрос! Как вместо написания информации в порт запихнуть её в переменные!? Если не можете помочь, лучше не пишите...
Отправлено спустя 3 минуты 15 секунд:
[ref]nalnik[/ref], и что по вашему не сможет Atmega328, перевести 4е переменные из hex в dec и передать их по последовательному соединению? Если не знаете то не пишите...повторюсь.





- Sancho
- Полковник
- Сообщения: 4066
- Зарегистрирован: 25 дек 2015, 17:32
- Откуда: Ярославль.
- Имя: Александр
- Поблагодарили: 5 раз
- Контактная информация:
Помогите по выводу информации
Так Вы же их получили в виде массива (buf[]) и canId - делайте, что хотите.
Отправлено спустя 34 секунды:
сейчас гляну проекты...
Отправлено спустя 3 минуты 13 секунд:
Если я правильно понимаю, речь о блоке в САN-BUS.flp ?
Отправлено спустя 34 секунды:
сейчас гляну проекты...
Отправлено спустя 3 минуты 13 секунд:
Если я правильно понимаю, речь о блоке в САN-BUS.flp ?
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.
- ElectroMechaniC
- Сержант
- Сообщения: 230
- Зарегистрирован: 21 сен 2016, 06:50
- Откуда: Донецк
- Имя: Юрий
Помогите по выводу информации
[ref=#ff8000]Sancho[/ref], так точно! Об этом блоке! Мне бы из него грамотно хвостики(выходы)сделать! Дело в том что данные обновляются очень быстро и их много! Мне их прийдётся ещё как то сортировать и выборочно обрабатывать. Вот и нужно разделить их. Я сейчас выложу ссылочку на видео, что прилетает в ком порт. Для ясности! Так вот например в кадре с ID:318(прим), в 3м и 4м байтах лежит инфо об оборотах мне нужно сначала выделить ID из потока, затем прочитать то что записано в 3м и 4м байта этого ID, после сложить эти 2 байта и перевести в dec. Полученное число(обороты) отправить дальше по серийному порту уже в виде переменной! Но если с последними операциями я споконенько разберусь средствами flprog, то с выводами блока на "Cи" туго туго)))
Отправлено спустя 3 минуты 14 секунд:
https://youtu.be/oB7RzafajnE вот!
Отправлено спустя 3 минуты 14 секунд:
https://youtu.be/oB7RzafajnE вот!





- Sancho
- Полковник
- Сообщения: 4066
- Зарегистрирован: 25 дек 2015, 17:32
- Откуда: Ярославль.
- Имя: Александр
- Поблагодарили: 5 раз
- Контактная информация:
Помогите по выводу информации
Ок, если никто не поможет сегодня - завтра обязательно сделаю.
Сегодня пока всё - танки зовут...
Сегодня пока всё - танки зовут...
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.
- ElectroMechaniC
- Сержант
- Сообщения: 230
- Зарегистрирован: 21 сен 2016, 06:50
- Откуда: Донецк
- Имя: Юрий
Помогите по выводу информации
[ref=#ff8000]Sancho[/ref], Спасибо! С надеждой буду ждать вестей!





- Sancho
- Полковник
- Сообщения: 4066
- Зарегистрирован: 25 дек 2015, 17:32
- Откуда: Ярославль.
- Имя: Александр
- Поблагодарили: 5 раз
- Контактная информация:
Помогите по выводу информации
[ref]ElectroMechaniC[/ref],
Проба 1
Проба 1
У вас нет необходимых прав для просмотра вложений в этом сообщении.
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.
- ElectroMechaniC
- Сержант
- Сообщения: 230
- Зарегистрирован: 21 сен 2016, 06:50
- Откуда: Донецк
- Имя: Юрий
Помогите по выводу информации
[ref=#ff8000]Sancho[/ref], пробую)
Отправлено спустя 33 минуты 27 секунд:
[ref=#ff8000]Sancho[/ref], все работает, огроменное спасибо! Для проверки повесил на выходы конвертацию в строки и отправил в порт. Получил начальный результат! ))) То есть всё верно. И я могу теперь управлять этим потоком.
Возник вопрос. Как лучше разделить данные? Если мне нужно считывать определённый ID и его буфер, мне нужно повесить на выход ID блок сравнения? И если пришел нужный ID - разрешить считывать байты? Так?
А можно сделать один общий блок для инициализации модуля, а к нему дочерние блоки, что бы считывать разные ID? так можно? что бы в дочерних стояли фильтры только на приём нужного ID?
Отправлено спустя 1 минуту 19 секунд:
Нужного ID и его буфера...
Отправлено спустя 33 минуты 27 секунд:
[ref=#ff8000]Sancho[/ref], все работает, огроменное спасибо! Для проверки повесил на выходы конвертацию в строки и отправил в порт. Получил начальный результат! ))) То есть всё верно. И я могу теперь управлять этим потоком.
Возник вопрос. Как лучше разделить данные? Если мне нужно считывать определённый ID и его буфер, мне нужно повесить на выход ID блок сравнения? И если пришел нужный ID - разрешить считывать байты? Так?
А можно сделать один общий блок для инициализации модуля, а к нему дочерние блоки, что бы считывать разные ID? так можно? что бы в дочерних стояли фильтры только на приём нужного ID?
Отправлено спустя 1 минуту 19 секунд:
Нужного ID и его буфера...
У вас нет необходимых прав для просмотра вложений в этом сообщении.





- Sancho
- Полковник
- Сообщения: 4066
- Зарегистрирован: 25 дек 2015, 17:32
- Откуда: Ярославль.
- Имя: Александр
- Поблагодарили: 5 раз
- Контактная информация:
Помогите по выводу информации
Это самое простое, что можно сделать!ElectroMechaniC писал(а): 04 апр 2018, 10:52А можно сделать один общий блок для инициализации модуля, а к нему дочерние блоки, что бы считывать разные ID? так можно? что бы в дочерних стояли фильтры только на приём нужного ID?
Нужны номера ID и алгоритмы сборки данных из байтов по нему - наверняка разные!
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.
- ElectroMechaniC
- Сержант
- Сообщения: 230
- Зарегистрирован: 21 сен 2016, 06:50
- Откуда: Донецк
- Имя: Юрий
Помогите по выводу информации
Алгоритмы сборки, если я Вас правильно понял, для меня не составляют препятствий...
Главное что я могу понимать и читать нужную мне информацию... Мне для понимания нужно получать информацию в .hex и по ID и по байтам...
Приведу пример того что понятно мне...
К примеру: у нас получен (.hex)
ID= 0x217
и его буфер (.hex)
FF FF A0 00 00 00 00 38
Я знаю что 4й, 5й, 6й байты это скорость автомобиля
С этими данными я уже понимаю как работать.
Я эти байты сложу, переведу в десятичное число и умножу по формуле...
Соответственно мне нужно получать такой формат данных ID и его 8мь байт полезной информации, раздельно, как в вашем примере.... только таких блоков по задумке может быть несколько... Обороты, скорость, концевики дверей, всё что можно достать из кана...
Главное что я могу понимать и читать нужную мне информацию... Мне для понимания нужно получать информацию в .hex и по ID и по байтам...
Приведу пример того что понятно мне...
К примеру: у нас получен (.hex)
ID= 0x217
и его буфер (.hex)
FF FF A0 00 00 00 00 38
Я знаю что 4й, 5й, 6й байты это скорость автомобиля
С этими данными я уже понимаю как работать.
Я эти байты сложу, переведу в десятичное число и умножу по формуле...
Соответственно мне нужно получать такой формат данных ID и его 8мь байт полезной информации, раздельно, как в вашем примере.... только таких блоков по задумке может быть несколько... Обороты, скорость, концевики дверей, всё что можно достать из кана...





- Sancho
- Полковник
- Сообщения: 4066
- Зарегистрирован: 25 дек 2015, 17:32
- Откуда: Ярославль.
- Имя: Александр
- Поблагодарили: 5 раз
- Контактная информация:
Помогите по выводу информации
Тогда так, пока особо мыслей других нет.
Просто пример
[spoiler] [/spoiler]
Просто пример
[spoiler] [/spoiler]
У вас нет необходимых прав для просмотра вложений в этом сообщении.
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 5 гостей