Перейти к содержанию
    

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

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

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

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

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

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

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

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

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

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

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

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

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

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Конечно, был бы очень признателен если дали бы посмотреть примеры

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

 

int main(void)

{

initUART();

initCAN();

while(1){};

}

 

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

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

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

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

Или LPC11C24FBD48?

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

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

 

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

Изменено пользователем пай-мальчик

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Я делал лет 10 назад на PIC18 под ОС SALVO. Могу дать коды, но не знаю насколько оно вам поможет.

Если интересно -- киньте в личку емайл адрес.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

 

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

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

 

 

 

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

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

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

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

 

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

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...