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

 
 
 
Reply to this topicStart new topic
> Нужна помощь с 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
HARMHARM
сообщение Aug 22 2011, 20:28
Сообщение #2


читатель даташитов
****

Группа: Свой
Сообщений: 853
Регистрация: 5-11-06
Из: Днепропетровск
Пользователь №: 21 999



Была подобная проблема. Без подтверждения пакеты, как ошибочные, не распознаются listen-only устройством. Для тестирования Listen-only отключали. Вариант решения - еще один простейший CAN-контроллер, выдающий подтверждение.
Go to the top of the page
 
+Quote Post
KRS
сообщение Aug 22 2011, 21:22
Сообщение #3


Профессионал
*****

Группа: Модераторы
Сообщений: 1 951
Регистрация: 27-08-04
Из: Санкт-Петербург
Пользователь №: 555



Цитата(HARMHARM @ Aug 23 2011, 00:28) *
Была подобная проблема. Без подтверждения пакеты, как ошибочные, не распознаются listen-only устройством.

Но при этом у отсылающего устройства не должен возникать Bus OFF, а всего лишь ошибка подтверждения и через некоторое время переход в error passive, и бесконечная попытка отправиьт пакет...
Go to the top of the page
 
+Quote Post
sysel
сообщение Aug 23 2011, 09:49
Сообщение #4


Знающий
****

Группа: Свой
Сообщений: 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
Сообщение #5


Знающий
****

Группа: Свой
Сообщений: 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
kuken
сообщение Aug 23 2011, 14:21
Сообщение #6





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



Извиняюсь, контроллер конечно в режиме error passive.
Сегодня проверил: с другим аналогичным девайсом общается без проблем и без ошибок.
На принимающей стороне pic2480 в виде расходомера fms.

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

Расходомеры делались давно и много, тут ничего не поменяешь.

Вся штука в том, что тот же pic2480 шлет пакеты без подтверждения без проблем, а lpc при отсутствии подтверждения замолкает на передаче первого же пакета.
Go to the top of the page
 
+Quote Post
KRS
сообщение Aug 23 2011, 14:46
Сообщение #7


Профессионал
*****

Группа: Модераторы
Сообщений: 1 951
Регистрация: 27-08-04
Из: Санкт-Петербург
Пользователь №: 555



Цитата(kuken @ Aug 23 2011, 18:21) *
Вся штука в том, что тот же pic2480 шлет пакеты без подтверждения без проблем

Это как это? полное нарушение стандарта!

Цитата(kuken @ Aug 23 2011, 18:21) *
, а lpc при отсутствии подтверждения замолкает на передаче первого же пакета.

он не замолкает, а продолжает отправлять пакет, пока не дождется подтверждения!
в любом случае вы можете подать команду Abort Transmission (можно например еще смотреть код ошибки в CANxICR регистре)

Go to the top of the page
 
+Quote Post
sysel
сообщение Aug 23 2011, 14:47
Сообщение #8


Знающий
****

Группа: Свой
Сообщений: 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
kuken
сообщение Aug 23 2011, 17:30
Сообщение #9





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



Цитата
он не замолкает, а продолжает отправлять пакет, пока не дождется подтверждения!


Я не создавал бы топик, если бы он слал biggrin.gif

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

Сообщение отредактировал kuken - Aug 23 2011, 17:32
Go to the top of the page
 
+Quote Post
KRS
сообщение Aug 23 2011, 18:31
Сообщение #10


Профессионал
*****

Группа: Модераторы
Сообщений: 1 951
Регистрация: 27-08-04
Из: Санкт-Петербург
Пользователь №: 555



Цитата(kuken @ Aug 23 2011, 21:30) *
А pic походу и шлет пока не получит подтверждение.

Вы уж определитесь! А то

Цитата(kuken @ Aug 22 2011, 17:30) *
can-контроллер вываливается в bus-off и нечего не передает.



Цитата(kuken @ Aug 23 2011, 18:21) *
Вся штука в том, что тот же pic2480 шлет пакеты без подтверждения без проблем

пакет считается отосланным если статус есть TX OK

self test mode - выключен?
TX ABORT команда не подается?
Go to the top of the page
 
+Quote Post
Andy Mozzhevilov
сообщение Aug 24 2011, 11:30
Сообщение #11


Знающий
****

Группа: Свой
Сообщений: 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
Сообщение #12


Знающий
****

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



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


Так проблема-то как раз в том, что в шине нет никого, кто бы мог выставить ACK.
Один вещает, все остальные слушают. Конфликтовать не с кем.
Go to the top of the page
 
+Quote Post
Andy Mozzhevilov
сообщение Aug 24 2011, 16:57
Сообщение #13


Знающий
****

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



Цитата(sysel @ Aug 24 2011, 20:41) *
Так проблема-то как раз в том, что в шине нет никого, кто бы мог выставить ACK.
Один вещает, все остальные слушают. Конфликтовать не с кем.

Если это касательно проблемы, озвученной автором топика, то я не могу понять, в чем проблема, поскольку автор путается в терминологии и сумбурно излагает свои мысли. Поэтому особого смысла тратить свое время и играть в угадайку - не вижу. Если будут понятно сформулированы вопросы, однозначно описана проблема - будут и рекомендации.


--------------------
Пасу котов...
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 19th July 2025 - 08:30
Рейтинг@Mail.ru


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