Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: CAN-шина авто + MCP2515
Форум разработчиков электроники ELECTRONIX.ru > Интерфейсы > Форумы по интерфейсам > Controller Area Network (CAN)
Alt.F4
Добрый день.
Задача: узнать обороты двигателя авто.
Сперва думал считать импульсы, но так как в современных авто на тахометр приходит CAN-шина, то идея провалилась и уважаемый Vasily_ предложил считывать данные оборотов двигателя с этой самой шины.

Погулял по форуму и прикинул, что для меня будет лучшим решением заюзать MCP2515 + AVR.
Так как я в этой теме профан, то возникло несколько вопросов:
1. Необхоидимо ли для связи с авто использовать приемопередатчик MCP2551 для согласования уровней с MCP2515?
2. Надо ли настраивать MCP2515 для работы с CAN-шиной или просто впаял и читай по SPI буфер?
Спасибо.

з.ы. или проще заюзать at90can128 (с меньшим флешем нигде нету) + MCP2551?
zksystem
Посоветовал бы Вам вначале на простых примерах поучиться, так как влезать в шину HS-CAN автомобиля может привести к непредсказуемым последствиям
M&P
Самое простое решение - возьмите ELM327 или STN1110 и любой микроконтроллер к которому можно их подключить по UART.
Myron
Цитата(Alt.F4 @ Jul 12 2012, 06:48) *
1. Необхоидимо ли для связи с авто использовать приемопередатчик MCP2551 для согласования уровней с MCP2515?

Разных приемопередатчиков достаточно много для разных целей. Я, например, в серийном оборудовании использую связку MCP2515 + ADМ3053. Все зависит от задач. Замечу, что CAN-bus у разных компаний отличаются уровнями и деталями протоколов. У нас программисты всегда испытывали трудности с CAN-bus и приходилось отбиваться и помогать, делая дополнительные ненужные телодвижения.
IXFN50N80Q2
Если J1939 то почти любой PIC
Даже под J1939 либа есть http://www.microchip.com/stellent/idcplg?I...ppnote=en020237

Работал с ней на PIC18F2580I/SO в связке с TJA1050
Глюков не наблюдаю.
редактор
Цитата
Сперва думал считать импульсы, но так как в современных авто на тахометр приходит CAN-шина, то идея провалилась и уважаемый Vasily_ предложил считывать данные оборотов двигателя с этой самой шины.

Тахометр считает те же импульсы, и передает их в CAN. Может быть подключиться параллельно? Хотя если разобраться с CAN, то перспектив больше.
lead_seller
MCP2551 - это дравер физического уровня HS-CAN. К нему нужен еще сам приемо-передатчик - либо внешний, вроде того же MCP2515, либо внутренний - сейчас у большинства производителей микрокоонтроллеров есть камни со встроенным CAN передатчиком (у PIC в 18 серии что-то было, у ST CAN есть в сериях старше 103-ей). На мой взгляд удобней внутренний - у того же STM в их stm32f103 серии очень вменяемая и удобная CAN-периферия.
KARLSON
А разве J1939 имеется в обычных авто? Или какие авто имеются ввиду?
Я думал, что J1939 только для спец транспорта, грузовых машин.
ZASADA
да, J1939 для грузовиков. но это просто софтовый протокол, так что железо может быть любое и MCP2515+MCP2551 будет работать на любой автомобильной шине CAN
KARLSON
дело не в железе. Для общения нужен протокол, а в обычных авто, как правило, производители держат его в секрете.
ZASADA
вопрос изначально стоял про железо. топикстартер или знает в каких пакетах что искать или еще не дошел до этого этапа.
Sanich
Хотелось бы узнать, реализована ли идея? Дело в том, что стоит идентичная задача, но помимо оборотов, ещё и скорость, форсунки, уровень топлива и др. полезные вещи. Знаю что есть уже готовые связки ELM327 BT и на устройства под андроид или Win. Но там нет математики, которую надо ввести для получения определённых расчётов. Как всё же получить данные с датчиков авто для м/контроллера?Может есть уже такая тема и я просмотрел? Спасибо.
0xC2
Самая простая сборка для кана - MCP2551 -физический уровень, MCP2515 - непосредственно CAN ну и любой МК например MEGA8. Кварц нужен только для 2515, меге достаточно собственного RC гены.МК с 2515 соединяем по SPI + внешнее прерывание. Хотя как писали выше есть уже STM32F103, сравнимый по цене с мегой и тогда 2515 не нужен вовсе.
mempfis_
Цитата(0xC2 @ Jun 17 2014, 17:00) *
Самая простая сборка для кана - MCP2551 -физический уровень, MCP2515 - непосредственно CAN ну и любой МК например MEGA8. Кварц нужен только для 2515, меге достаточно собственного RC гены.МК с 2515 соединяем по SPI + внешнее прерывание. Хотя как писали выше есть уже STM32F103, сравнимый по цене с мегой и тогда 2515 не нужен вовсе.



У NXP есть LPC11C. При чтении доков на этот процессор выяснилось что в семействе есть процессоры со встроенной физикой. Также они имеют зашитые в ROM процедуры работы с CAN. Как заявляет NXP это позволяет сэкономить кучу коды + есть возможность строить CAN-загрузчик. К сожалению применять их не приходилось, но держим на заметке что есть процессоры, позволяющие построить весьма компактное CAN-устройство.
Sanich
Как считаете, если есть возможность записать последовательности на шине I-BUS (BMW E39) можно будет разобраться с кодом? Задумка только считывать инфу, затем матеметикой выводить всякие вкусности на свой мультимедиа Dynavin
0xC2
Цитата(Sanich @ Jun 17 2014, 20:23) *
Как считаете, если есть возможность записать последовательности на шине I-BUS (BMW E39) можно будет разобраться с кодом? Задумка только считывать инфу, затем матеметикой выводить всякие вкусности на свой мультимедиа Dynavin

Теоритически - да. Обычно для мультимедиа информация не кодируется, но конкретно по BMW информации не имею. Решал подобные задачи для хонды и пежо, там было не очень сложно.
Sanich
Я уже записывал последовательности, но вот не могу с протоколом разобраться. Часть пачек схожи друг с другом, а вот некоторые имеют либо большую, либо меньшую длительность. Планирую продолжить, записывая код при этом меняя какой либо параметр, например обороты, громкость, номер трека и тд. Может получится разобраться.
На форуме
было обсуждение, я там выкладывал последовательности. Правда идею посчитали бредовой, много воды в теме, а потом у нас в Севастополе всё закрутилось, не до того было!
0xC2
Цитата(Sanich @ Jun 17 2014, 21:22) *
Я уже записывал последовательности, но вот не могу с протоколом разобраться. Часть пачек схожи друг с другом, а вот некоторые имеют либо большую, либо меньшую длительность. Планирую продолжить, записывая код при этом меняя какой либо параметр, например обороты, громкость, номер трека и тд. Может получится разобраться.
На форуме
было обсуждение, я там выкладывал последовательности. Правда идею посчитали бредовой, много воды в теме, а потом у нас в Севастополе всё закрутилось, не до того было!

Пытаться читать протокол по осциллограммам это круто, примерно как играть в шахматы разглядывая одну пешку. Вам надо сначала превратить в байты весь трафик.
ZASADA
1. I-BUS это К-line, а тема про CAN
2. для начала, как уже сакзали выше, переведите все в ноормальные битики
3. в гугле полно ссылок на описание I-BUS, например
Sanich
Цитата(0xC2 @ Jun 18 2014, 05:13) *
Вам надо сначала превратить в байты весь трафик.

Делал тут, но сравнить не с чем было.
ZASADA спасибо, буду изучать. Правда с английским туго, так и не смог постичь.
0xC2
Цитата(Sanich @ Jun 18 2014, 21:20) *
Делал тут, но сравнить не с чем было.
ZASADA спасибо, буду изучать. Правда с английским туго, так и не смог постичь.

Это бесконечно мало, нельзя прочесть книгу по двум трем словам. Распишите трафик за несколько секунд, затем делайте захват при определенных дествиях с оборудованием и т.д. и т.п.
Sanich
Цитата(0xC2 @ Jun 18 2014, 19:33) *
Это бесконечно мало, нельзя прочесть книгу по двум трем словам. Распишите трафик за несколько секунд, затем делайте захват при определенных дествиях с оборудованием и т.д. и т.п.

Да, именно так и планирую, во вчерашнем посте обозначил. Пока смутно представляю сам протокол, где что. Пишу на асме, вот думаю нюхач прикрутить на PIC, чтоб сразу в h коде записывать. Тактовую знаю.
Спасибо за помощь.
PS. на самом деле записей последовательностей много, но не привязывал к событию.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.