|
Прием CAN2.0B на скоростях 250 и 500kbit/s, Подскажите если кто сталкивался |
|
|
|
Sep 23 2009, 15:39
|
Участник

Группа: Участник
Сообщений: 38
Регистрация: 25-02-09
Из: Россия, Москва
Пользователь №: 45 367

|
Вот, возникла задача написать прием и передачу в CAN шину на контроллере тини2313. На первый взгляд ничего сложного, протокол документирован и понятен, НО есть но! Это времена, к примеру на 500кбит/с один бит передается за 2мкс, а на 250 за 4мкс, т.е имеем максимум 40 циклов на обработку одного бита, при этом еще нужно выкинуть мусор из сигнала. Я использовал контроллер на частоте 20Мгц. Я пробывал уже следующие варианты: И чтение с задержкой в 2 и 4мкс соответственно -> вывод из-за длительности посылки, примерно в 100-150 бит, время уплывает, а так же ещё из-за ветвлений (1-2 цикла в один бит -> ~0.10мкс), провал! Второй вариант со счетчиком при изменении с 1 на 0 и с 0 на 1 с последующей записью времени для анализа и расчета кол-ва бит, провал по непонятной мне причине, это загадочное отставание счетчика и непредсказуемость его показаний, при расчетной погрешности в 1.1мкс (цикл ожидания), наблюдаются отставания в две и даже 3мкс! Для связи с CAN шиной использую MCP2551 микрочипа. Может кто писал что подобное? Если не трудно отзовитесь! Контроллер сменить немогу *TAUP*. Может у кого есть алгоритм?
|
|
|
|
|
 |
Ответов
|
Sep 24 2009, 09:20
|

Ambidexter
    
Группа: Свой
Сообщений: 1 589
Регистрация: 22-06-06
Из: Oxford, UK
Пользователь №: 18 282

|
Цитата(idle1 @ Sep 23 2009, 14:39)  Вот, возникла задача написать прием и передачу в CAN шину на контроллере тини2313. Может кто писал что подобное? Если не трудно отзовитесь! Может у кого есть алгоритм? Расхождение может проявляться как за счёт ветвлений в программе (или ошибок), так и за счёт разбега частот передатчика и приёмника. В кане аппаратно осуществляется постоянная подстройка частоты путём выкусывания и вставки 1..4 квантов времени (кратных 1/25..1/8 длительности бита) в среднем на каждом втором бите, сомневаюсь, что вы сможете это сделать программно за 40МЦ. Я бы вам посоветовал поставить отдельный САН контроллер, например МСР2510, и не мучаться, поскольку задача совершенно неблагодарная в смысле затрат времени и отдачи. С другой стороны, технически - интересная задача для проверки своего потенциала и знания протокола кана. Так что давайте ваш код, будем посмотреть (:-). Кстати, есть ещё один вариант решения задачи - с помощью последовательного интерфейса, если интересуетесь, расскажу подробнее.
--------------------
Делай сразу хорошо, плохо само получится
|
|
|
|
|
Oct 13 2009, 20:15
|

Ambidexter
    
Группа: Свой
Сообщений: 1 589
Регистрация: 22-06-06
Из: Oxford, UK
Пользователь №: 18 282

|
Цитата(Dog Pawlowa @ Oct 13 2009, 11:37)  Меня очень интересует дешевый CAN-bus из-за бюджетности проекта. Совместимость собственно с CAN не требуется, требуется неразрушающая коллизия Ну если вгрубе, то просто подаёте данные с кана в сдвиговый регистр ведомого спи. Синхронизацию формируете сами таймером с стс модой или с помощью чм-фм шима и проводом подаёте на склк. Ну и время от времени корректируете период синхро. Для приёма байта на обозначенных скоростях требуется порядка 320-640 тактов, всё это время - ваше, успеете и битстаффинг выкусить, и цкс посчитать, и адресата проверить, и даже на си.
--------------------
Делай сразу хорошо, плохо само получится
|
|
|
|
Сообщений в этой теме
idle1 Прием CAN2.0B на скоростях 250 и 500kbit/s Sep 23 2009, 15:39 Aner ... сочувствую, мы сменили контроллер, нормально н... Sep 23 2009, 18:44 idle1 Цитата(Aner @ Sep 23 2009, 22:44) ... соч... Sep 23 2009, 19:55 Aner ... на AT90CAN128-16AU, плату тоже пришлсь перераз... Sep 23 2009, 20:10 SasaVitebsk Я выравнивал ветвления. Прерывание само сожрёт 10-... Sep 24 2009, 09:57 idle1 Если бы была возможность, то я бы не задумываясь п... Sep 24 2009, 10:43 idle1 Может кто знает какой МК с CAN где 2-3 - UART; 4-5... Sep 24 2009, 12:40 Александр Куличок Может покажусь старомодным, но..
У вас идет счет н... Sep 24 2009, 20:05 idle1 Цитата(Александр Куличок @ Sep 25 2009, 00... Oct 12 2009, 22:05 SasaVitebsk Какой компилятор? Oct 13 2009, 09:21 idle1 Цитата(SasaVitebsk @ Oct 13 2009, 13:21) ... Oct 13 2009, 18:22
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|