Jump to content

    

CAN-шина авто + MCP2515

Добрый день.

Задача: узнать обороты двигателя авто.

Сперва думал считать импульсы, но так как в современных авто на тахометр приходит CAN-шина, то идея провалилась и уважаемый Vasily_ предложил считывать данные оборотов двигателя с этой самой шины.

 

Погулял по форуму и прикинул, что для меня будет лучшим решением заюзать MCP2515 + AVR.

Так как я в этой теме профан, то возникло несколько вопросов:

1. Необхоидимо ли для связи с авто использовать приемопередатчик MCP2551 для согласования уровней с MCP2515?

2. Надо ли настраивать MCP2515 для работы с CAN-шиной или просто впаял и читай по SPI буфер?

Спасибо.

 

з.ы. или проще заюзать at90can128 (с меньшим флешем нигде нету) + MCP2551?

Edited by Alt.F4

Share this post


Link to post
Share on other sites

Посоветовал бы Вам вначале на простых примерах поучиться, так как влезать в шину HS-CAN автомобиля может привести к непредсказуемым последствиям

Share this post


Link to post
Share on other sites

Самое простое решение - возьмите ELM327 или STN1110 и любой микроконтроллер к которому можно их подключить по UART.

Share this post


Link to post
Share on other sites
1. Необхоидимо ли для связи с авто использовать приемопередатчик MCP2551 для согласования уровней с MCP2515?

Разных приемопередатчиков достаточно много для разных целей. Я, например, в серийном оборудовании использую связку MCP2515 + ADМ3053. Все зависит от задач. Замечу, что CAN-bus у разных компаний отличаются уровнями и деталями протоколов. У нас программисты всегда испытывали трудности с CAN-bus и приходилось отбиваться и помогать, делая дополнительные ненужные телодвижения.

Share this post


Link to post
Share on other sites
Сперва думал считать импульсы, но так как в современных авто на тахометр приходит CAN-шина, то идея провалилась и уважаемый Vasily_ предложил считывать данные оборотов двигателя с этой самой шины.

Тахометр считает те же импульсы, и передает их в CAN. Может быть подключиться параллельно? Хотя если разобраться с CAN, то перспектив больше.

Share this post


Link to post
Share on other sites

MCP2551 - это дравер физического уровня HS-CAN. К нему нужен еще сам приемо-передатчик - либо внешний, вроде того же MCP2515, либо внутренний - сейчас у большинства производителей микрокоонтроллеров есть камни со встроенным CAN передатчиком (у PIC в 18 серии что-то было, у ST CAN есть в сериях старше 103-ей). На мой взгляд удобней внутренний - у того же STM в их stm32f103 серии очень вменяемая и удобная CAN-периферия.

Edited by lead_seller

Share this post


Link to post
Share on other sites

А разве J1939 имеется в обычных авто? Или какие авто имеются ввиду?

Я думал, что J1939 только для спец транспорта, грузовых машин.

Share this post


Link to post
Share on other sites

да, J1939 для грузовиков. но это просто софтовый протокол, так что железо может быть любое и MCP2515+MCP2551 будет работать на любой автомобильной шине CAN

Share this post


Link to post
Share on other sites

дело не в железе. Для общения нужен протокол, а в обычных авто, как правило, производители держат его в секрете.

Share this post


Link to post
Share on other sites

вопрос изначально стоял про железо. топикстартер или знает в каких пакетах что искать или еще не дошел до этого этапа.

Share this post


Link to post
Share on other sites

Хотелось бы узнать, реализована ли идея? Дело в том, что стоит идентичная задача, но помимо оборотов, ещё и скорость, форсунки, уровень топлива и др. полезные вещи. Знаю что есть уже готовые связки ELM327 BT и на устройства под андроид или Win. Но там нет математики, которую надо ввести для получения определённых расчётов. Как всё же получить данные с датчиков авто для м/контроллера?Может есть уже такая тема и я просмотрел? Спасибо.

Share this post


Link to post
Share on other sites

Самая простая сборка для кана - MCP2551 -физический уровень, MCP2515 - непосредственно CAN ну и любой МК например MEGA8. Кварц нужен только для 2515, меге достаточно собственного RC гены.МК с 2515 соединяем по SPI + внешнее прерывание. Хотя как писали выше есть уже STM32F103, сравнимый по цене с мегой и тогда 2515 не нужен вовсе.

Share this post


Link to post
Share on other sites
Самая простая сборка для кана - MCP2551 -физический уровень, MCP2515 - непосредственно CAN ну и любой МК например MEGA8. Кварц нужен только для 2515, меге достаточно собственного RC гены.МК с 2515 соединяем по SPI + внешнее прерывание. Хотя как писали выше есть уже STM32F103, сравнимый по цене с мегой и тогда 2515 не нужен вовсе.

 

 

У NXP есть LPC11C. При чтении доков на этот процессор выяснилось что в семействе есть процессоры со встроенной физикой. Также они имеют зашитые в ROM процедуры работы с CAN. Как заявляет NXP это позволяет сэкономить кучу коды + есть возможность строить CAN-загрузчик. К сожалению применять их не приходилось, но держим на заметке что есть процессоры, позволяющие построить весьма компактное CAN-устройство.

Share this post


Link to post
Share on other sites

Как считаете, если есть возможность записать последовательности на шине I-BUS (BMW E39) можно будет разобраться с кодом? Задумка только считывать инфу, затем матеметикой выводить всякие вкусности на свой мультимедиа Dynavin

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this