Модуль ECAN для dsPIC. Типичная сеть ECAN. 16 приемных фильтров для фильтрования сообщения, страница 3

Рисунок 7. Формат расширенного удалённого запроса

2.4 Фрейм ошибки

Фрейм ошибки генерируется любым из узлов, который обнаруживает ошибку шины. Фрейм ошибки состоит из поля Error Flag, сопровождаемой полем Error Delimiter. Разделитель Ошибки состоит из 8 recessive битов и позволяет узлам в шине перезапускать коммутацию только после того, как фрейм ошибки завершился.

Есть два типа поля Error Flag, в зависимости от статуса ошибки:

ErrorActiveFlag (Флаг активной ошибки) - содержит 6 последовательных dominant битов, которые принуждает все другие узлы в сети генерировать Error Echo Flags, таким образом заканчивающиеся серией 6 - 12 dominant битов в шине.

ErrorPassiveFlag (Флаг пассивной ошибки) - содержит 6 последовательных recessive битов, так что в итоге если шинная ошибка не обнаружена узлом передачи, передаётся флаг Error Passive не будет оказывать влияние на коммутацию любого другого узла в сети.

2.5 Фрейм перезагрузки

Фрейм перезагрузки может быть сгенерирован узлом когда был обнаружен dominant бит в течение межфреймовой паузы или когда узел еще не готов получить следующее сообщение (например, если он всё ещё обрабатывает предыдущее полученное сообщение. Фрейм перезагрузки имеет тот же самый формат как и фрейм ошибки а активным флагом, но может быть выполнена только в течении межфреймового интервала. Этот фрем состоит из поля Overload Flag с 6 dominant битами, сопровождаемыми полем Overload Delimiter с 8  recessive битами. Узел может произвести максимум 2 последовательные фрейма перезагрузки, чтобы задержать начало следующего сообщения.

2.6 Межфреймовый интервал

Межфреймовый интервал отделяет последовательность фреймов, передаваемых по шине CAN. Этот интервал состоит по крайней мере из 3 recessive битов, названных как Intermission (Перерыв). Межкадровый интервал даёт немного времени узлам внутренне обработать предварительно полученное сообщение перед началом следующего фрейма. Если передающий узел находится в состоянии пассивной ошибки, то будут вставлены в межфреймовый интервал дополнительные 8 recessive прежде, чем любое другое сообщение будет передано узлом. Этот период называют полем Suspend Transmit и предоставляет некоторое время для других узлов, чтобы взять контроль за управлением шиной.

3. РЕГИСТРЫ ECAN

ECAN модуль имеет большое число регистров специального назначения (SFRs), которые используются для конфигурации фильтров сообщений приёмника и буферов сообщений. Для эффективного использования области RAM, множество SFRs находятся по одинаковому адресу памяти. Бит Window Select (Выбор Окна)(WIN) SFR в ECAN регистре управления 1 (CiCTRL<0>) используется для выбора доступа к одному из этих SFRs.

Если CiCTRL1<WIN>=1, значит регистры фильтров сообщений приёмника, регистры масок и регистры указатели буферов фильтра доступны для пользователя.

Если CiCTRL1<WIN>=0, то для пользователя доступны регистры управления и статуса буферов, регистры передачи и приема данных.

3.1 Регистры управления скоростью обмена

CiCFG1: регистр конфигурации скорости обмена

Этот регистр состоит из битов управления установками периода каждого временного кванта, используя предварительный делитель скорости обмена, и специфицируя скачки синхронизации во временных квантах (Смотрите Регистр 1).

Примечание: «i» определяет регистр или ECAN1 или ECAN2

CiCFG2: регистр конфигурации синхронизации 2

Этот регистр используется для программирования числа квантов времени для каждого CAN сегмента, включая распространенный и фазовый сегмент1 и 2 (Смотрите регистр 2).

3.2 Регистры фильтров сообщений

CiFEN1: регистр включения приемных фильтров

Этот регистр включает/выключает приемные фильтры 0-15 для фильтрации сообщений (Регистр 3).

CiRXFnSID: регистр стандартного идентификатора приемного фильтра n

Эти 16 регистров устанавливают стандартный идентификатор сообщений для приемных фильтров 0-15. Биты идентификатора выборочно маскируются перед определением принять или не принять сообщение (См Регистр 4). Эти регистры доступны только если пользователь установил WIN бит (CiCTRL<0>=1 использовать окно фильтров).