Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: устройство для чтения CAN и передачи UART
Форум разработчиков электроники ELECTRONIX.ru > Сайт и форум > В помощь начинающему > MCS51, AVR, PIC, STM8, 8bit
Vny4ek
Здраствуйте, подскажите пожалуйста, задача вроде простая
Хочу поиграться с автомобильной CAN шиной, тоесть планирую сделать устройство которое можно подключить к шине и для начала прочитать пакеты гуляющие в ней с выводом в UART.
Сразу вопросы следующего порядка
1) Хочу использовать AVR с CAN на борту, но вижу что есть еще CAN трансиверы, нужны ли мне они при использовании AVR с поддержкой CAN, ну и как оптимальней вообще организовать схему и на каких деталях, что еще нужно в обвязке как правило.
2) если по программной части видели на Си исходники где все не слишком сложно, хотелось бы тоже посмотреть.
Устройство не промышленное, просто любительская поделка
adnega
Цитата(Vny4ek @ Mar 5 2012, 12:52) *
1) Хочу использовать AVR с CAN на борту, но вижу что есть еще CAN трансиверы, нужны ли мне они при использовании AVR с поддержкой CAN, ну и как оптимальней вообще организовать схему и на каких деталях, что еще нужно в обвязке как правило.
2) если по программной части видели на Си исходники где все не слишком сложно, хотелось бы тоже посмотреть.
Устройство не промышленное, просто любительская поделка

1). Даже если в микроконтроллере есть CAN-контроллер, это вовсе не означает отсутствие т.н. CAN-физики.
Правда, есть контроллеры от NXP где все-в-одном, но это AVR...
2). Если Си, устройство поделочное, исходников все равно нет, функционала кроме CAN и UART не предпологается (?) - тогда может проще взять демку для какого-нить другого камня. Делал переходник CAN-UART на STM32. Могу помочь схемой и прошивкой, если AVR не принципиально.
Vny4ek
Спасибо за ответ.
Тоесть трансивер+всю обвязку все же необходимо использовать (если разговор про AVR)
Функционал предполагается такой (посмотреть что в шине передается, в последующем попытаться что нибудь отправить) Скорее изучение интересно
STM23 к сожалению не подойдет. А для таких задач реально ли найти какие-нибудь примеры на Си. что бы освоить или достаточно закрытая тема?
adnega
Если в основном интересует прием и передача пакетов CAN в авто, то совсем не обязательно изучать STM32 досконально.
Грубо говоря, по готовой схеме можно спаять макет и прошить прошивку с фиксированным функционалом (CAN-UART) не особо разбираясь что к чему - в этом могу помочь. А большую часть своего времени потратить на изучение CAN-пакетов в шине.
Vny4ek
Конечно, был бы очень признателен если дали бы посмотреть примеры
adnega
Цитата(Vny4ek @ Mar 5 2012, 15:45) *
Конечно, был бы очень признателен если дали бы посмотреть примеры

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

int main(void)
{
initUART();
initCAN();
while(1){};
}

Функции с префиксом init сильно зависят от платформы. Плюс нужно написать обработчики прерываний CAN и UART.
Я думал предложить Вам "черный ящик", который решил бы поставленные задачи (работа с шиной CAN).
Исходники (пример) Вас только запутает (запугает).
Готовое устройство будет на STM32F103T8U6 - сможете достать такой?
Или LPC11C24FBD48?
Правда, они не очень дружественны для радиолюбительства...

Может кто поможет сделать на AVR?!
Vny4ek
Спасибо, но "черный ящик" мне не нужно, хочется разобраться, полностью согласен что исходник с другой платформы скорее запутает.
"Будем искать" (с)
ARV
имеются готовые библиотеки под WinAVR полной поддержки контроллеров типа AT90CANxxx - в комплекте идет даже исходник сниффера CAN-шины с отправкой в комп через RS232 (правда, у меня он так и не заработал). так что особо искать не нужно - есть все готовое (и даже на этом форуме я выкладывал эти библиотеки, кажется).

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

У меня задача ещё более сложная. Нужно запилить собственную шину CAN, т.е. надо сразу разработать и устройство USB2CAN и контроллеры, общающиеся по CAN. Т.е. для отладки одного нужно иметь второе и наоборот sm.gif Покупать готовое точно не буду. p.s. склоняюсь к внешним контроллерам, т.к. дешевле.
Tarbal
Я делал лет 10 назад на PIC18 под ОС SALVO. Могу дать коды, но не знаю насколько оно вам поможет.
Если интересно -- киньте в личку емайл адрес.
ClockworkOrange
Цитата(ARV @ Mar 6 2012, 12:32) *
имеются готовые библиотеки под WinAVR полной поддержки контроллеров типа AT90CANxxx - в комплекте идет даже исходник сниффера CAN-шины с отправкой в комп через RS232 (правда, у меня он так и не заработал). так что особо искать не нужно - есть все готовое (и даже на этом форуме я выкладывал эти библиотеки, кажется).


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



Цитата(adnega @ Mar 5 2012, 13:49) *
Делал переходник CAN-UART на STM32. Могу помочь схемой и прошивкой, если AVR не принципиально.

это интересно.
можете поделиться и описать какой протокол по UART вы использовали (стандартный SLCAN или что-то своё)?
mempfis_
Цитата(ARV @ Mar 6 2012, 11:32) *
а у меня встречный вопрос: может ли кто-нибудь сказать, с какой "плотностью" гуляют пакеты в автомобильном CAN-е? не скорость передачи битов интересует (точнее, скорость интересует, но во вторую очередь), а сколько пакетов в секунду (хотя бы в среднем)?


CAN-FMS симулятор имитирующий грузовик выдавал около 100 пакетов в секунду с длиной данных от 2х до 8 байт. Но это симулятор. В реальном автомобиле чёрт его знает. Самому интересно сколько там пакетов чтобы хоть както оптимизмровать обработку потока данных. Установщики оборудования на автомобили не интересуются подобными вещами, а самим получить доступ к грузовикам проблематично.
ZASADA
Цитата(mempfis_ @ Nov 21 2013, 15:01) *
CAN-FMS симулятор имитирующий грузовик выдавал около 100 пакетов в секунду с длиной данных от 2х до 8 байт. Но это симулятор. В реальном автомобиле чёрт его знает. Самому интересно сколько там пакетов чтобы хоть както оптимизмровать обработку потока данных. Установщики оборудования на автомобили не интересуются подобными вещами, а самим получить доступ к грузовикам проблематично.

в грузовиках обычно can sae j1939. там длинна кадра фиксирована и равна 8 байт. Несколько изолированных шин с мостами между ними. На разных шинах загрузка разная, 10-25-50%, все зависит какая шина и какое железо висит. Причем загрузка неравномерная, часто пакеты выстраиваются друг за другом в непрерывные паровозы и надо успевать вычитывать приемные буфера.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.