Jump to content

    
Sign in to follow this  
Vny4ek

устройство для чтения CAN и передачи UART

Recommended Posts

Здраствуйте, подскажите пожалуйста, задача вроде простая

Хочу поиграться с автомобильной CAN шиной, тоесть планирую сделать устройство которое можно подключить к шине и для начала прочитать пакеты гуляющие в ней с выводом в UART.

Сразу вопросы следующего порядка

1) Хочу использовать AVR с CAN на борту, но вижу что есть еще CAN трансиверы, нужны ли мне они при использовании AVR с поддержкой CAN, ну и как оптимальней вообще организовать схему и на каких деталях, что еще нужно в обвязке как правило.

2) если по программной части видели на Си исходники где все не слишком сложно, хотелось бы тоже посмотреть.

Устройство не промышленное, просто любительская поделка

 

Share this post


Link to post
Share on other sites
1) Хочу использовать AVR с CAN на борту, но вижу что есть еще CAN трансиверы, нужны ли мне они при использовании AVR с поддержкой CAN, ну и как оптимальней вообще организовать схему и на каких деталях, что еще нужно в обвязке как правило.

2) если по программной части видели на Си исходники где все не слишком сложно, хотелось бы тоже посмотреть.

Устройство не промышленное, просто любительская поделка

1). Даже если в микроконтроллере есть CAN-контроллер, это вовсе не означает отсутствие т.н. CAN-физики.

Правда, есть контроллеры от NXP где все-в-одном, но это AVR...

2). Если Си, устройство поделочное, исходников все равно нет, функционала кроме CAN и UART не предпологается (?) - тогда может проще взять демку для какого-нить другого камня. Делал переходник CAN-UART на STM32. Могу помочь схемой и прошивкой, если AVR не принципиально.

Share this post


Link to post
Share on other sites

Спасибо за ответ.

Тоесть трансивер+всю обвязку все же необходимо использовать (если разговор про AVR)

Функционал предполагается такой (посмотреть что в шине передается, в последующем попытаться что нибудь отправить) Скорее изучение интересно

STM23 к сожалению не подойдет. А для таких задач реально ли найти какие-нибудь примеры на Си. что бы освоить или достаточно закрытая тема?

Share this post


Link to post
Share on other sites

Если в основном интересует прием и передача пакетов CAN в авто, то совсем не обязательно изучать STM32 досконально.

Грубо говоря, по готовой схеме можно спаять макет и прошить прошивку с фиксированным функционалом (CAN-UART) не особо разбираясь что к чему - в этом могу помочь. А большую часть своего времени потратить на изучение CAN-пакетов в шине.

Share this post


Link to post
Share on other sites
Конечно, был бы очень признателен если дали бы посмотреть примеры

Пример, в данном случае получается тривиальный.

 

int main(void)

{

initUART();

initCAN();

while(1){};

}

 

Функции с префиксом init сильно зависят от платформы. Плюс нужно написать обработчики прерываний CAN и UART.

Я думал предложить Вам "черный ящик", который решил бы поставленные задачи (работа с шиной CAN).

Исходники (пример) Вас только запутает (запугает).

Готовое устройство будет на STM32F103T8U6 - сможете достать такой?

Или LPC11C24FBD48?

Правда, они не очень дружественны для радиолюбительства...

 

Может кто поможет сделать на AVR?!

Share this post


Link to post
Share on other sites

Спасибо, но "черный ящик" мне не нужно, хочется разобраться, полностью согласен что исходник с другой платформы скорее запутает.

"Будем искать" (с)

Share this post


Link to post
Share on other sites

имеются готовые библиотеки под WinAVR полной поддержки контроллеров типа AT90CANxxx - в комплекте идет даже исходник сниффера CAN-шины с отправкой в комп через RS232 (правда, у меня он так и не заработал). так что особо искать не нужно - есть все готовое (и даже на этом форуме я выкладывал эти библиотеки, кажется).

 

а у меня встречный вопрос: может ли кто-нибудь сказать, с какой "плотностью" гуляют пакеты в автомобильном CAN-е? не скорость передачи битов интересует (точнее, скорость интересует, но во вторую очередь), а сколько пакетов в секунду (хотя бы в среднем)?

Share this post


Link to post
Share on other sites

Vny4ek, удалось найти что-нибудь?

 

У меня задача ещё более сложная. Нужно запилить собственную шину CAN, т.е. надо сразу разработать и устройство USB2CAN и контроллеры, общающиеся по CAN. Т.е. для отладки одного нужно иметь второе и наоборот :) Покупать готовое точно не буду. p.s. склоняюсь к внешним контроллерам, т.к. дешевле.

Edited by пай-мальчик

Share this post


Link to post
Share on other sites
имеются готовые библиотеки под WinAVR полной поддержки контроллеров типа AT90CANxxx - в комплекте идет даже исходник сниффера CAN-шины с отправкой в комп через RS232 (правда, у меня он так и не заработал). так что особо искать не нужно - есть все готовое (и даже на этом форуме я выкладывал эти библиотеки, кажется).

 

вот этот проект под AVR точно заработает: http://www.mictronics.de/projects/usb-can-bus/

правда там от AVR ядро лишь.

 

 

 

Делал переходник CAN-UART на STM32. Могу помочь схемой и прошивкой, если AVR не принципиально.

это интересно.

можете поделиться и описать какой протокол по UART вы использовали (стандартный SLCAN или что-то своё)?

 

Share this post


Link to post
Share on other sites
а у меня встречный вопрос: может ли кто-нибудь сказать, с какой "плотностью" гуляют пакеты в автомобильном CAN-е? не скорость передачи битов интересует (точнее, скорость интересует, но во вторую очередь), а сколько пакетов в секунду (хотя бы в среднем)?

 

CAN-FMS симулятор имитирующий грузовик выдавал около 100 пакетов в секунду с длиной данных от 2х до 8 байт. Но это симулятор. В реальном автомобиле чёрт его знает. Самому интересно сколько там пакетов чтобы хоть както оптимизмровать обработку потока данных. Установщики оборудования на автомобили не интересуются подобными вещами, а самим получить доступ к грузовикам проблематично.

 

Share this post


Link to post
Share on other sites
CAN-FMS симулятор имитирующий грузовик выдавал около 100 пакетов в секунду с длиной данных от 2х до 8 байт. Но это симулятор. В реальном автомобиле чёрт его знает. Самому интересно сколько там пакетов чтобы хоть както оптимизмровать обработку потока данных. Установщики оборудования на автомобили не интересуются подобными вещами, а самим получить доступ к грузовикам проблематично.

в грузовиках обычно can sae j1939. там длинна кадра фиксирована и равна 8 байт. Несколько изолированных шин с мостами между ними. На разных шинах загрузка разная, 10-25-50%, все зависит какая шина и какое железо висит. Причем загрузка неравномерная, часто пакеты выстраиваются друг за другом в непрерывные паровозы и надо успевать вычитывать приемные буфера.

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this