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

 
 
> AT90CAN128, Вопрос по CAN интерфейсу
AlexPT
сообщение Jun 13 2007, 08:02
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 19
Регистрация: 22-12-06
Пользователь №: 23 780



Здравствуйте!
Вопрос по фильтрации принимаемых сообщений. В даташите на микроконтроллер на стр. 243 описана работа фильтра. Если я правильно понимаю, если к примеру я запишу в регистр CANIDM первого канала маску 0x007, а регистр CANIDM второго канала маску 0x0FF, то при приеме сообщения с идентификатором 0x0FF оно может быть принято как фильтром первого так фильтром второго каналов. Если так, то получается, что все сообщения с идентификатором большим 0x007 будут приниматься первым каналом и он будет постоянно загружен. Тогда не понятно в чем смысл такой фильтрации. Нельзя ли так организовать фильтрацию, чтобы первым каналом принимались сообщения с идентификатором в диапазоне 0x007 ... 0x0FE, а вторым каналом сообщения с идентификатором 0x0FF и больше. Или я не верно разобрался с фильтрацией.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
KRS
сообщение Jun 13 2007, 08:26
Сообщение #2


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

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



Цитата(AlexPT @ Jun 13 2007, 12:02) *
Здравствуйте!
Вопрос по фильтрации принимаемых сообщений. В даташите на микроконтроллер на стр. 243 описана работа фильтра. Если я правильно понимаю, если к примеру я запишу в регистр CANIDM первого канала маску 0x007, а регистр CANIDM второго канала маску 0x0FF, то при приеме сообщения с идентификатором 0x0FF оно может быть принято как фильтром первого так фильтром второго каналов. Если так, то получается, что все сообщения с идентификатором большим 0x007 будут приниматься первым каналом и он будет постоянно загружен. Тогда не понятно в чем смысл такой фильтрации. Нельзя ли так организовать фильтрацию, чтобы первым каналом принимались сообщения с идентификатором в диапазоне 0x007 ... 0x0FE, а вторым каналом сообщения с идентификатором 0x0FF и больше. Или я не верно разобрался с фильтрацией.

У CAN128 фильтр основан на маске, а не на диапазоне. Можно настротить фильтр что бы в 1 mailbox принимались фреймы с id от 0 до 0xff, а во второй все остальные.
т.е в 1 mailbox поставить маску 0x7F0 tag 0x000
а в 2 mailbox маску 0 и любой tag

Как вариант можно добавить еще один mailbox, который принимает только 0xff, тогда получится 1 mailbox принимает 0xff второй от 0 до 0xfe третий все остальное

Сообщение отредактировал KRS - Jun 13 2007, 09:03
Go to the top of the page
 
+Quote Post
=GM=
сообщение Jun 13 2007, 11:27
Сообщение #3


Ambidexter
*****

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



Цитата(KRS @ Jun 13 2007, 07:26) *
У CAN128 фильтр основан на маске, а не на диапазоне. Можно настроить фильтр что бы в 1 mailbox принимались фреймы с id от 0 до 0xff, а во второй все остальные.
т.е в 1 mailbox поставить маску 0x7F0 tag 0x000
а в 2 mailbox маску 0 и любой tag

По-моему неверно, тогда в первом боксе вы примете только фреймы с ид от 0х000 до 0х00F, а во втором все фреймы.


--------------------
Делай сразу хорошо, плохо само получится
Go to the top of the page
 
+Quote Post
KRS
сообщение Jun 13 2007, 12:36
Сообщение #4


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

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



Цитата(=GM= @ Jun 13 2007, 15:27) *
По-моему неверно, тогда в первом боксе вы примете только фреймы с ид от 0х000 до 0х00F, а во втором все фреймы.

Да точно! Слишком много 1 поставил (привык к extended 29 bit id)
маска нужна 0x700
Go to the top of the page
 
+Quote Post



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

 


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


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