October 17 2017 05:02:33
Навигация
Авторизация
Логин

Пароль



Вы не зарегистрированы?
Нажмите здесь для регистрации .

Забыли пароль?
Запросите новый здесь.
Идентификационный фильтр
МОДУЛЬ ВНЕШНЕЙ МАГИСТРАЛИ

Переполнение происходит в тех случаях, когда оба буфера заполнены и начинается прием нового пакета данных с шины. При обнаружении переполнения выставляется запрос на прерывание по ошибке с флагом, указывающим на переполнение буферов приема. Запись данных в буфер RxBG начинается при начале приема нового кадра без учета значения идентификатора. В случае переполнения буферов приема модуль msCANOS сохраняет возможность передачи данных, однако все входящие сообщения будут игнорироваться.

Структура буферов для передачи сообщений

В модуле msCANOS реализована тройная система буферизации передаваемых сообщений. Такая структура позволяет ставить несколько сообщений в очередь на передачу, что повышает производительность системы. Структура всех трех буферов передачи идентична структуре приемных буферов и содержит по 13 байт в каждом. Однако дополнительно для каждого буфера передачи определен регистр приоритета TBPR (Transmit Buffer Priority Register), который содержит 8-битное поле локального приоритета PRIO (Local Priority Field).

В процессе передачи сначала необходимо определить доступный для записи буфер. Возможность доступа к буферу определяется при чтении значения флага ТХЕ (Transmit Buffer Empty) регистра CTFLG. Если в этом бите содержится "Г, CPU записывает в регистры буфера значения идентификатора, битов управления и байтов данных. Затем CPU сбрасывает флаг ТХЕ. Далее сообщение этого буфера ставится в очередь на передачу. Приоритет буфера в очереди определяется значением поля PRIO. Наивысший приоритет имеет буфер с минимальным значением в PRIO.

В некоторых случаях необходимо осуществить замену сообщения в буфере на сообщение с более высоким приоритетом. Если передача кадра из этого буфера уже началась, следует выставить флаг ABTRQ (Abort Request Flag) регистра CTCR. После этого модуль msCANOS устанавливает флаги АВТАК (Abort Request Acknowledge) и ТХЕ, а также запрос на прерывание от передатчика. Для определения события, вызвавшего прерывание, подпрограмма обслуживания прерывания должна проверить значение флага АВТАК.

Идентификационный фильтр (Identifier Acceptance Filter)

Идентификационный фильтр используется для приема из всех входящих сообщений только тех, идентификатор которых соответствует необходимым требованиям. Фильтр может быть запрограммирован на три различные режима:

• Одиночный фильтр. Использует весь 29-битный идентификатор и управляющие биты (RTR, IDE, SRR) для фильтрации входящих сообщений.

• Двойной фильтр. Использует либо 11 бит идентификатора и бит RTR для фильтрации сообщений стандарта CAN 2.0A, либо 14 старших битов идентификатора сообщений в стандарте CAN 2.0B.

• Учетверенный фильтр. Использует 8 первых бит идентификатора.

В тех случаях, когда значения идентификаторов соответствуют значениям в фильтрах, по завершению приема сообщения копируются из буфера RxBG в буфер RxFG, и в тех случаях, когда разрешено прерывание, выставляется запрос на прерывание.

Комментарии
Нет комментариев.
Добавить комментарий
Пожалуйста, залогиньтесь для добавления комментария.
Рейтинги
Рейтинг доступен только для пользователей.

Пожалуйста, авторизуйтесьили зарегистрируйтесь для голосования.

Нет данных для оценки.

Время загрузки: 0.03 секунд 2,254,304 уникальных посетителей