реклама на сайте
подробности

 
 
> Нужна помощь с CAN на lpc1752
kuken
сообщение Aug 22 2011, 13:30
Сообщение #1





Группа: Новичок
Сообщений: 5
Регистрация: 30-04-09
Пользователь №: 48 485



Стоит следующая задача: посылать определенный пакет (протокол j1939) через определенные промежутки времени. На другом конце линии находиться устройство в режиме listen only.
Если слать пакеты из обычного режима, can-контроллер вываливается в bus-off и нечего не передает. Если перевести контроллер в режим self-test и слать из него, то в пакете отсутствует crc, ack и прочая ерунда, и пакет не распознается.
Как все-таки выслать эти пакеты?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
sysel
сообщение Aug 23 2011, 09:49
Сообщение #2


Знающий
****

Группа: Свой
Сообщений: 601
Регистрация: 3-07-07
Пользователь №: 28 852



Можно попробовать TX PHY подключить к MOSI (SSP) и формировать сообщения шины CAN программно (как поток бит).
Кривовато, потребует изучение кодирования сообщений, но реально.
Go to the top of the page
 
+Quote Post
Andy Mozzhevilov
сообщение Aug 23 2011, 13:53
Сообщение #3


Знающий
****

Группа: Свой
Сообщений: 877
Регистрация: 26-01-05
Из: Екатеринбург
Пользователь №: 2 206



Цитата(sysel @ Aug 23 2011, 13:49) *
Можно попробовать TX PHY подключить к MOSI (SSP) и формировать сообщения шины CAN программно (как поток бит).
Кривовато, потребует изучение кодирования сообщений, но реально.

Чушь полная. Если только на низких скоростях (и то не при помощи SSP), и то неясно, зачем такое извращение.

PS: Автору топика. Если у вас именно в bus-off вываливается, то ищите где. Подключенный в listen only узел не должен никак влиять на шину. То есть можете вообще нагрузить кабель терминаторами, и передавать пакеты, эффект с точки зрения передатчика должен быть таким же, как и при наличии на другом конце узла с listen only.
При всем этом, как вам выше сказали, в bus off передающий контроллер не будет падать, только в error passive.
Сам Listen only узел CAN будет принимать сообщения только в том случае, если на шине существует нормальный обмен, т.е. CAN пакеты подтверждаются принимающими узлами, находящимися в активном режиме.


ЗЫ: Почему прием нужно осуществлять именно в listen only? Какой в этом глубокий смысл? Почему нельзя перевести принимающий узел в активный режим?


--------------------
Пасу котов...
Go to the top of the page
 
+Quote Post
sysel
сообщение Aug 23 2011, 14:47
Сообщение #4


Знающий
****

Группа: Свой
Сообщений: 601
Регистрация: 3-07-07
Пользователь №: 28 852



Цитата(Andy Mozzhevilov @ Aug 23 2011, 17:53) *
Чушь полная. Если только на низких скоростях (и то не при помощи SSP), и то неясно, зачем такое извращение.

Делал софтовый SPDIF трансмиттер с помощью этого SSP, программно формируя поток бит. Так что насчет скорости - это Вы зря.
А извращение - передать в шину сообщение с уже выставленным ACK-ом.
Go to the top of the page
 
+Quote Post
Andy Mozzhevilov
сообщение Aug 24 2011, 11:30
Сообщение #5


Знающий
****

Группа: Свой
Сообщений: 877
Регистрация: 26-01-05
Из: Екатеринбург
Пользователь №: 2 206



Цитата(sysel @ Aug 23 2011, 18:47) *
Делал софтовый SPDIF трансмиттер с помощью этого SSP, программно формируя поток бит. Так что насчет скорости - это Вы зря.
А извращение - передать в шину сообщение с уже выставленным ACK-ом.

Для чего? Оно же не сможет участвовать в арбитраже и поэтому не будет соответствовать стандарту CAN. То есть потенциально оно может вклиниться в шину и разрушить все, что там происходит в данный момент.

Цитата(kuken @ Aug 23 2011, 21:30) *
Я не создавал бы топик, если бы он слал biggrin.gif

А pic походу и шлет пока не получит подтверждение.


Сдается мне, что вы сильно "плаваете" в мат.части, оттого вопросы ваши непонятны, терминология сумбурна и не соответствует стандартной. Отчего помочь вам в решении вашей проблемы сильно затруднительно.


--------------------
Пасу котов...
Go to the top of the page
 
+Quote Post
sysel
сообщение Aug 24 2011, 16:41
Сообщение #6


Знающий
****

Группа: Свой
Сообщений: 601
Регистрация: 3-07-07
Пользователь №: 28 852



Цитата(Andy Mozzhevilov @ Aug 24 2011, 15:30) *
Для чего? Оно же не сможет участвовать в арбитраже и поэтому не будет соответствовать стандарту CAN. То есть потенциально оно может вклиниться в шину и разрушить все, что там происходит в данный момент.


Так проблема-то как раз в том, что в шине нет никого, кто бы мог выставить ACK.
Один вещает, все остальные слушают. Конфликтовать не с кем.
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 21st July 2025 - 06:02
Рейтинг@Mail.ru


Страница сгенерированна за 0.01441 секунд с 7
ELECTRONIX ©2004-2016