Биты CANICR |
Название |
Описание |
Значение после сброса |
Установка RM |
20:16 |
ERRBIT |
Код ошибки захвата: когда CAN-контроллер обнаруживает шинную ошибку, ее местоположение в пределах фрейма фиксируется в этом поле. Значение кода содержится во внутренней переменной. 00010: ID28:21. 00011: Начало фрейма. 00100: SRTR бит. 00101: IDE бит. 00110: ID20:18. 00111: ID17:13. 01000: CRC. 01001: Зарезервированный бит 0. 01010: Поле данных. 01011: DLC. 01100: RTR бит. 01101: Зарезервированный бит 1. OHIO: ID4:0. 01111: ID12:5. 10001: Флаг активной ошибки. 10010: Перерыв. 10011: Доминирующие биты ОК. 10110: Флаг пассивной ошибки. 10111: Разделитель ошибки. 11000: CRC разделитель. 11001: Слот подтверждения (Ack). 11010: Конец фрейма. 11011: Ack разделитель. 11100: Флаг переполнения. Чтение этого байта разрешает следующее прерывание от шинной ошибки |
0 |
X |
21 |
ERRDIR |
Когда CAN-контроллер обнаруживает шинную ошибку, направление следования текущего бита фиксируется в этом бите: 1 = прием, 0 = передача |
0 |
X |
23:22 |
ERRC |
Когда CAN-контроллер обнаруживает шинную ошибку, тип ошибки фиксируется в этом поле: 00 = bit-ошибка, 01 = Form-ошибка, 10 = Stuff-ошибка, 11 = другая ошибка |
0 |
X |
28:24 |
ALCBIT |
Каждый раз, когда теряется арбитраж, в то время как производится попытка пересылки через CAN, количество битов в составе фрейма фиксируется в этом поле. Значение 0 указывает на потерю арбитража в первом (MS) бите идентификатора,значение 31 указывает на потерю арбитража в бите RTR расширенного фрейма. После того, как байт читается, бит ALI в регистре CANICR сбрасывается, и может происходить новое прерывание от потери арбитража CAN |
0 |
X |
Содержимое битов 16...23 захватывается (фиксируется до тех пор, пока не будет прочитано), когда на шине происходит ошибка. В этот момент, в случае, если бит BEIE в регистре CANIER установлен, в регистре CANICR устанавливается бит BEI и может произойти прерывание CAN.
Содержимое битов 24...31 захватывается, когда теряется арбитраж CAN. В этот момент, в случае, если бит ALIE в регистре CANIER установлен, в регистре CANICR устанавливается бит ALI и генерация прерывания CAN разрешается.
Как только происходит захват любого из этих байтов (биты 16...23 или 24...31), содержимое байта сохраняется, пока не будет прочитано, с тем, чтобы можно было захватить новое значение.
Сброс битов 1...9 и выгрузка битов 16...23 и 24...31 производятся при любой операции чтения регистра CANICR, независимо от того, читается часть регистра или весь регистр целиком. Это означает, что программа-пользователь должна всегда при чтении рассматривать регистр CANICR, как 32-битное слово и обрабатывать в пользовательском приложении все биты регистра как значащие.
Регистр разрешения прерываний (CANIER — ОхЕООххОЮ)
Битовая структура регистра CANIER приведена в Табл. 14.9. Регистр доступен для чтения и записи и управляет разрешением прерываний от различных событий в контроллере CAN. Биты 7:0 этого регистра соответствуют битам 7:0 регистра CANICR. Конкретный адрес регистра CANIER (в зависимости от его принадлежности к одному из четырех возможных для микроконтроллера LPC2000 контроллеров CAN) см. в Табл. 14.4.
НА ГЛАВНУЮ | | ЧТО ТАКОЕ PIC ? | | ПРОГРАММАТОР | | ПРОЕКТЫ | | СТАТЬИ | | ССЫЛКИ | | КАРТА САЙТА |