MCP2515 CAN Bus Модуль

Аватара пользователя
AVGN
Капитан
Сообщения: 727
Зарегистрирован: 03 фев 2017, 12:23

MCP2515 CAN Bus Модуль

Сообщение AVGN »

stapmoff, модуль пока жду. Железа нет проверить не могу.
Если вы не можете объяснить это просто – значит, вы сами не понимаете этого до конца.
☆Альберт Эйнштейн
Аватара пользователя
stapmoff
Лейтенант
Сообщения: 341
Зарегистрирован: 16 май 2016, 10:21

MCP2515 CAN Bus Модуль

Сообщение stapmoff »

AVGN писал(а):Железа нет проверить не могу.
Просто я взял железяку под названием CAN-LOG она для переворачивания протоколов спец.техники в протокол понятный нашему оборудованию! Так вот в ней есть постоянная попылка статических данных в кан шину, я прочитал их и взял первую попавшеюся строку ID: 18FEC101 Data: EA 80 00 00 FF FF FF FF
Нааше оборудование определяет это как уровень топлива в баке, попытался сделать на дуине, не вышло оборудование данных не видит
Аватара пользователя
DrMario
Лейтенант
Сообщения: 378
Зарегистрирован: 07 ноя 2016, 13:11
Откуда: Камень-на-Оби
Имя: Евгений
Контактная информация:

MCP2515 CAN Bus Модуль

Сообщение DrMario »

stapmoff писал(а):Попробывал этот проэкт, прием работает данные читаетБ только подскажите как переделать скейтч чтоб ID был 18FEC101 а данные вот такие к примеру EA 80 00 00 FF FF FF FF
Пока не приехал модуль, для меня эти данные не понятны, что такое ID: 18FEC101 ?
У любого устройства есть адрес, на который нужно отсылать запросы. Для 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 раз.
omich66
Рядовой
Сообщения: 33
Зарегистрирован: 17 дек 2015, 19:37

MCP2515 CAN Bus Модуль

Сообщение omich66 »

DrMario писал(а):для меня эти данные не понятны, что такое ID: 18FEC101 ?
Посмотрите здесь п. 10.5.3 29-битные заголовки сообщений CAN
Аватара пользователя
stapmoff
Лейтенант
Сообщения: 341
Зарегистрирован: 16 май 2016, 10:21

MCP2515 CAN Bus Модуль

Сообщение stapmoff »

DrMario писал(а):что такое ID: 18FEC101 ?
Это выдает сам модуль при чтении данных из устройства которое их шлет
Последний раз редактировалось stapmoff 20 апр 2017, 19:30, всего редактировалось 1 раз.
Аватара пользователя
ElectroMechaniC
Сержант
Сообщения: 230
Зарегистрирован: 21 сен 2016, 06:50
Откуда: Донецк
Имя: Юрий

MCP2515 CAN Bus Модуль

Сообщение ElectroMechaniC »

Вопрос к 
support писал(а):Ребята, у меня пришли такие платки, к следующей версии постараюсь сделать блоки.
Не подскажете, платки пришли? И скиньте ссылочку на блок готовый? А то уже версий с апреля вышло много, а блока всё нет и нет!!!!
:newrus: Все в руках человека. Поэтому всегда мойте руки перед и зад! :victory:
:smile225: :smile469: :smile427:
Аватара пользователя
ElectroMechaniC
Сержант
Сообщения: 230
Зарегистрирован: 21 сен 2016, 06:50
Откуда: Донецк
Имя: Юрий

MCP2515 CAN Bus Модуль

Сообщение ElectroMechaniC »

Что то тема заглохла? Кто то сможет блок запилить для MCP 2515?
:newrus: Все в руках человека. Поэтому всегда мойте руки перед и зад! :victory:
:smile225: :smile469: :smile427:
Аватара пользователя
ElectroMechaniC
Сержант
Сообщения: 230
Зарегистрирован: 21 сен 2016, 06:50
Откуда: Донецк
Имя: Юрий

Помогите по выводу информации

Сообщение ElectroMechaniC »

Доброго времени. Есть код, который читает из кан-шины автомобиля данные и печатает их в ком-порт! Всё работает прекрасно,но по задумке нужно проводить операции над этими данными, а не тупо читать их. Вопрос в том, как правильно и вообще как их перевести в переменные... может не корректно выражаюсь...
Нужно в общем что бы содержимое буфера( это 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();
    }
У вас нет необходимых прав для просмотра вложений в этом сообщении.
:newrus: Все в руках человека. Поэтому всегда мойте руки перед и зад! :victory:
:smile225: :smile469: :smile427:
Deuce
Сержант
Сообщения: 170
Зарегистрирован: 20 июл 2017, 17:35

Помогите по выводу информации

Сообщение Deuce »

ElectroMechaniC писал(а): 03 апр 2018, 17:03Нужно в общем что бы содержимое буфера( это 8 байт информации) и ID можно было дальше в программе умножать, делить, конвертировать, перекладывать отправлять в ком порт
А где это должно производиться и каким образом? В ардуине? или допускается использование компьютера для всех этих операций?
"У меня достаточно хлопот с собственными недостатками, чтобы ещё раздражаться из-за того, что Бог не позаботился равномерно распределить между людьми умственные способности" (Дейл Карнеги)
Аватара пользователя
nalnik
Подполковник
Сообщения: 1320
Зарегистрирован: 14 май 2016, 17:12
Откуда: Кисловодск
Имя: Александр

Помогите по выводу информации

Сообщение nalnik »

Сколько можно?
НЕ потянет ардуино!
кУПИТЕ себе БК - их много, есть дешевле - дороже. Не экономьте и не экспериментируйте на своих и чужих жизнях.
Девять лет у меня работает (старый - голосом не говорит -- зато все в реальном времени на экране и по Русски - все коды и их описание).
Пример - не реклама.
Прочтите его возможность -- дешевле Вы даже при помощи всех форумов НЕ сделаете.
http://microline.ru/products/Car-Comput ... -CAN-Plus/
Я хочу быть добрее, но люди сами нарываются.
Аватара пользователя
ElectroMechaniC
Сержант
Сообщения: 230
Зарегистрирован: 21 сен 2016, 06:50
Откуда: Донецк
Имя: Юрий

Помогите по выводу информации

Сообщение ElectroMechaniC »

[ref]Deuce[/ref], нет нужно средствами ардуино!

Отправлено спустя 2 минуты 56 секунд:
[ref]nalnik[/ref], спасибо за ссылочку, обязательно прочту! Но я ведь задал вполне конкретный вопрос! Как вместо написания информации в порт запихнуть её в переменные!? Если не можете помочь, лучше не пишите...

Отправлено спустя 3 минуты 15 секунд:
[ref]nalnik[/ref], и что по вашему не сможет Atmega328, перевести 4е переменные из hex в dec и передать их по последовательному соединению? Если не знаете то не пишите...повторюсь.
:newrus: Все в руках человека. Поэтому всегда мойте руки перед и зад! :victory:
:smile225: :smile469: :smile427:
Аватара пользователя
Sancho
Полковник
Сообщения: 4066
Зарегистрирован: 25 дек 2015, 17:32
Откуда: Ярославль.
Имя: Александр
Поблагодарили: 5 раз
Контактная информация:

Помогите по выводу информации

Сообщение Sancho »

Так Вы же их получили в виде массива (buf[]) и canId - делайте, что хотите.

Отправлено спустя 34 секунды:
сейчас гляну проекты...

Отправлено спустя 3 минуты 13 секунд:
Если я правильно понимаю, речь о блоке в САN-BUS.flp ?
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.
Аватара пользователя
ElectroMechaniC
Сержант
Сообщения: 230
Зарегистрирован: 21 сен 2016, 06:50
Откуда: Донецк
Имя: Юрий

Помогите по выводу информации

Сообщение ElectroMechaniC »

[ref=#ff8000]Sancho[/ref], так точно! Об этом блоке! Мне бы из него грамотно хвостики(выходы)сделать! Дело в том что данные обновляются очень быстро и их много! Мне их прийдётся ещё как то сортировать и выборочно обрабатывать. Вот и нужно разделить их. Я сейчас выложу ссылочку на видео, что прилетает в ком порт. Для ясности! Так вот например в кадре с ID:318(прим), в 3м и 4м байтах лежит инфо об оборотах мне нужно сначала выделить ID из потока, затем прочитать то что записано в 3м и 4м байта этого ID, после сложить эти 2 байта и перевести в dec. Полученное число(обороты) отправить дальше по серийному порту уже в виде переменной! Но если с последними операциями я споконенько разберусь средствами flprog, то с выводами блока на "Cи" туго туго)))

Отправлено спустя 3 минуты 14 секунд:
https://youtu.be/oB7RzafajnE вот!
:newrus: Все в руках человека. Поэтому всегда мойте руки перед и зад! :victory:
:smile225: :smile469: :smile427:
Аватара пользователя
Sancho
Полковник
Сообщения: 4066
Зарегистрирован: 25 дек 2015, 17:32
Откуда: Ярославль.
Имя: Александр
Поблагодарили: 5 раз
Контактная информация:

Помогите по выводу информации

Сообщение Sancho »

Ок, если никто не поможет сегодня - завтра обязательно сделаю.
Сегодня пока всё - танки зовут...
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.
Аватара пользователя
ElectroMechaniC
Сержант
Сообщения: 230
Зарегистрирован: 21 сен 2016, 06:50
Откуда: Донецк
Имя: Юрий

Помогите по выводу информации

Сообщение ElectroMechaniC »

[ref=#ff8000]Sancho[/ref], Спасибо! С надеждой буду ждать вестей!
:newrus: Все в руках человека. Поэтому всегда мойте руки перед и зад! :victory:
:smile225: :smile469: :smile427:
Аватара пользователя
Sancho
Полковник
Сообщения: 4066
Зарегистрирован: 25 дек 2015, 17:32
Откуда: Ярославль.
Имя: Александр
Поблагодарили: 5 раз
Контактная информация:

Помогите по выводу информации

Сообщение Sancho »

[ref]ElectroMechaniC[/ref],
Проба 1
У вас нет необходимых прав для просмотра вложений в этом сообщении.
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.
Аватара пользователя
ElectroMechaniC
Сержант
Сообщения: 230
Зарегистрирован: 21 сен 2016, 06:50
Откуда: Донецк
Имя: Юрий

Помогите по выводу информации

Сообщение ElectroMechaniC »

[ref=#ff8000]Sancho[/ref], пробую)

Отправлено спустя 33 минуты 27 секунд:
[ref=#ff8000]Sancho[/ref], все работает, огроменное спасибо! Для проверки повесил на выходы конвертацию в строки и отправил в порт. Получил начальный результат! ))) То есть всё верно. И я могу теперь управлять этим потоком.
Возник вопрос. Как лучше разделить данные? Если мне нужно считывать определённый ID и его буфер, мне нужно повесить на выход ID блок сравнения? И если пришел нужный ID - разрешить считывать байты? Так?
А можно сделать один общий блок для инициализации модуля, а к нему дочерние блоки, что бы считывать разные ID? так можно? что бы в дочерних стояли фильтры только на приём нужного ID?

Отправлено спустя 1 минуту 19 секунд:
Нужного ID и его буфера...
У вас нет необходимых прав для просмотра вложений в этом сообщении.
:newrus: Все в руках человека. Поэтому всегда мойте руки перед и зад! :victory:
:smile225: :smile469: :smile427:
Аватара пользователя
Sancho
Полковник
Сообщения: 4066
Зарегистрирован: 25 дек 2015, 17:32
Откуда: Ярославль.
Имя: Александр
Поблагодарили: 5 раз
Контактная информация:

Помогите по выводу информации

Сообщение Sancho »

ElectroMechaniC писал(а): 04 апр 2018, 10:52А можно сделать один общий блок для инициализации модуля, а к нему дочерние блоки, что бы считывать разные ID? так можно? что бы в дочерних стояли фильтры только на приём нужного ID?
Это самое простое, что можно сделать!
Нужны номера ID и алгоритмы сборки данных из байтов по нему - наверняка разные!
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.
Аватара пользователя
ElectroMechaniC
Сержант
Сообщения: 230
Зарегистрирован: 21 сен 2016, 06:50
Откуда: Донецк
Имя: Юрий

Помогите по выводу информации

Сообщение ElectroMechaniC »

Алгоритмы сборки, если я Вас правильно понял, для меня не составляют препятствий...
Главное что я могу понимать и читать нужную мне информацию... Мне для понимания нужно получать информацию в .hex и по ID и по байтам...
Приведу пример того что понятно мне...
К примеру: у нас получен (.hex)
ID= 0x217
и его буфер (.hex)
FF FF A0 00 00 00 00 38
Я знаю что 4й, 5й, 6й байты это скорость автомобиля
С этими данными я уже понимаю как работать.
Я эти байты сложу, переведу в десятичное число и умножу по формуле...
Соответственно мне нужно получать такой формат данных ID и его 8мь байт полезной информации, раздельно, как в вашем примере.... только таких блоков по задумке может быть несколько... Обороты, скорость, концевики дверей, всё что можно достать из кана...
:newrus: Все в руках человека. Поэтому всегда мойте руки перед и зад! :victory:
:smile225: :smile469: :smile427:
Аватара пользователя
Sancho
Полковник
Сообщения: 4066
Зарегистрирован: 25 дек 2015, 17:32
Откуда: Ярославль.
Имя: Александр
Поблагодарили: 5 раз
Контактная информация:

Помогите по выводу информации

Сообщение Sancho »

Тогда так, пока особо мыслей других нет.
Просто пример
[spoiler]
Пример Алгоритма V1.png
[/spoiler]
У вас нет необходимых прав для просмотра вложений в этом сообщении.
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.
Ответить

Вернуться в «CAN»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 5 гостей