Регистр команды (CANCMR — 0хЕ00хх004)
Битовая структура регистра CANCMR приведена в Табл. 14.6. Запись в этот доступный только для записи регистр инициирует какое-либо действие контроллера. В биты этого регистра, которые не перечислены в таблице, должны быть записаны нули. Чтение регистра возвращает нулевое значение. Конкретный адрес регистра CANCMR (в зависимости от его принадлежности к одному из четырех возможных для микроконтроллера LPC2000 контроллеров CAN) см.. в Табл. 14.4.
Таблица 14.6. Биты регистра команды CAN (CANCMR — OxEOOx х004)
Биты CANCMR |
Название |
Функция |
0 |
TR |
1: Запрос передачи — сообщение, предварительно записанное в регистры CANTFI, CANTID и, возможно, в регистры CANTDA, CANTDB, поставлено в очередь для передачи |
1 |
AT |
1: Передача аварийного прекращения работы — ожидающий обработки запрос передачи отменен, если он еще не обрабатывается. Если этот бит и бит TR установлены одной и той же операцией записи, то передача фрейма производится однократно и повторная передача не предпринимается даже в случае, если устанавливается флаг ошибки или теряется арбитраж |
2 |
RRB |
1: Выгрузка приемного буфера — информация, содержащаяся в регистрах CANRFS, CANRID, а также в регистрах CANRDA, CANRDB, если последние используются в приложении, выгружается, после чего эти регистры готовы для размещения следующего принятого фрейма. Если следующий принятый фрейм недоступен, то запись этой команды сбрасывает бит RBS в регистре CANSR |
3 |
CDO |
1: Сброс переполнения данных — бит переполнения данных в регистре CANSR сбрасывается |
4 |
SRR |
1: Автозапрос приема — сообщение, предварительно записанное в регистры CANTFS, CANTID и, возможно, в регистры CANTDA, CANTDB, поставлено в очередь для передачи. Отличие этого бита от бита TR состоит в том, что приемник не отключается в ходе передачи, так что сообщение принимается, если его идентификатор распознан приемным фильтром |
5 |
STB1 |
1: Выбрать буфер Тх 1 для передачи |
6 |
STB2 |
1: Выбрать буфер Тх 2 для передачи |
7 |
STB3 |
1: Выбрать буфер Тх 3 для передачи |
Глобальный регистр состояния (CANGSR — ОхЕООххООв)
Битовая структура регистра CANGSR приведена в Табл. 14.7. Этот регистр доступен только для чтения, за исключением того, что в счетчики ошибок может быть произведена запись, если установлен бит RM в регистре CANMOD. Чтение не указанных в таблице битов этого регистра возвращает значение 0, и в эти биты должны быть записаны нули. Конкретный адрес регистра CANGSR (в зависимости от его принадлежности к одному из четырех возможных для микроконтроллера LPC2000 контроллеров CAN) см. в Табл. 14.4.
Таблица 14.7. Биты глобального регистра состояния CAN (CANGSR — OxEOOx х008)
Биты CANGSR |
Название |
Описание |
Значение после сброса |
Установка RM |
0 |
RBS |
1: Состояние приемного буфера — принятое сообщение доступно в регистрах CANRFS, CANRID и в регистрах CANRDA, CANRDB (если последние используются в приложении). Этот бит сбрасывается командой выгрузки приемного буфера в регистре CANCMR, если отсутствует следующее принятое сообщение |
0 |
0 |
1 |
DOS |
1: Состояние переполнения данных — сообщение было потеряно, потому что предыдущее сообщение не было прочитано контроллером CAN и не было выгружено достаточно быстро. 0: Никакого переполнения данных не произошло с тех пор, как последняя команда очистки переполнения данных была записана в регистр CANCMR (или после сброса) |
0 |
0 |
2 |
TBS |
1: Состояние буфера передачи — не передается сообщение, содержащееся в CAN-контроллере (в любом из трех буферов Тх), и возможна программная запись в любой из регистров CANTFI, CANTID, CANTDA и CANTDB. 0: Поскольку, по крайней мере, одно предварительно поставленное в очередь сообщение CAN-koht-роллер еще не передал, то пользовательская програ-ма не должна производить запись в регистры CANTFI, CANTID, CANTDA, CANTDB этого буфера Тх |
1 |
X |
3 |
TCS |
1: Состояние завершения передачи — все требуемые передачи успешно закончены. 0: По крайней мере, одна требуемая передача не была успешно закончена |
1 |
0 |
4 |
RS |
1: Состояние приема: CAN-контроллер принимает сообщение |
0 |
0 |
5 |
TS |
1: Состояние передачи: CAN-контроллер передает сообщение |
0 |
0 |
6 |
ES |
1: Состояние ошибки: содержимое одного или обоих счетчиков ошибок передачи и приема достигло значения, предварительно записанного в регистре предупреждения о лимите ошибок |
0 |
0 |
7 |
BS |
1: Состояние отключения шины: CAN-контроллеру в настоящее время запрещена деятельность на шине, потому что значение счетчика ошибок передачи достигло 255 (предельно возможная величина) |
0 |
0 |
23:16 |
RXERR |
Текущее значение счетчика ошибок приема |
0 |
X |
31:24 |
TXERR |
Текущее значение счетчика ошибок передачи |
0 |
X |
Регистр захвата и прерываний (CANICR — ОхЕООххООС)
НА ГЛАВНУЮ | | ЧТО ТАКОЕ PIC ? | | ПРОГРАММАТОР | | ПРОЕКТЫ | | СТАТЬИ | | ССЫЛКИ | | КАРТА САЙТА |