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

 
 
> Как ограничить количество попыток достучаться до устройства по CAN
Yaumen
сообщение Nov 4 2009, 06:02
Сообщение #1


Частый гость
**

Группа: Свой
Сообщений: 187
Регистрация: 22-06-05
Из: Минск, Беларусь
Пользователь №: 6 213



Стоит следующая задача на LPC2366 попытаться ограничить количество попыток отправить пакет одному из устройств.

По умолчанию сообщение будет отсылаться отправлять до 255 раз пока CAN не перейдет в режим "Bus OFF". Можно конечно настроить регистр CANEWL чтобы получить прерывание при достижении определенного количества ошибок, но насколько я понял, этот счетчик ошибок инкрементируется при возникновении любой ошибки, связанной с работой CAN, включая борьбу за шину между несколькими устройствами. Поэтому если я установлю маленькое значение, а наступит момент когда несколько устройств будут пытаться захватить шину, то моему устройству может не хватить попыток передать сообщение, а если я настрою большое значение, то при свободной шине и недоступности устройства, которому предназначен пакет, он все равно будет пытаться отправляться большое число раз.

Как резюме, может кто подскажет как научить CAN считать только отстуствие ACK от устройства назначения!!!?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Step_ARM
сообщение Nov 4 2009, 07:00
Сообщение #2


Частый гость
**

Группа: Участник
Сообщений: 132
Регистрация: 11-07-08
Пользователь №: 38 870



Я просто сбрасываю контроллер как когда ES в CANGSR устанавливается в "1" по заданному количеству ошибок.
Тем не менее, любую ошибку можно посмотреть в CANICR биты 16:20 , в том числе и ACK...
Можно сделать так -- включить прерывание по шинной ошибке в CANIER (бит 7) и определять в прерывании тип ошибки и код ошибки по CANICR.
Пить пиво...

Сообщение отредактировал IgorKossak - Nov 4 2009, 07:22
Причина редактирования: Бездумное цитирование
Go to the top of the page
 
+Quote Post



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

 


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


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