Предыдущая Следующая

Таблица 14.22. Биты регистра данных передачи В (CANTDB 1,2,3 — ОхЕООх хОЗС, 4С, 5С)

Биты CANTDB

Название

Описание

Значение после сброса

Установка RM

7:0

Data 5

Если RTR = 0 и значение поля DLC в передаваемом регистре CANTFI больше или равно 0101, то этот байт передается как пятый байт данных следующего передаваемого сообщения

0

X

15:8

Data 6

Если RTR = 0 и значение поля DLC в передаваемом регистре CANTFI больше или равно ОНО, то этот байт передается как шестой байт данных следующего передаваемого сообщения

0

X

23:16

Data 7

Если RTR = 0 и значение поля DLC в передаваемом регистре CANTFI больше или равно 0111, то этот байт передается как седьмой байт данных следующего передаваемого сообщения

0

X

31:24

Data 8

Если RTR = 0 и значение поля DLC в передаваемом регистре CANTFI больше или равно 1000, то этот байт передается как восьмой байт данных следующего передаваемого сообщения

0

X

14.5. Операции контроллера CAN

14.5.1. Обработка ошибок

Контроллеры CAN микроконтроллеров LPC2000, в соответствии со спецификацией протокола CAN 2.0В, подсчитывают и обрабатывают ошибки при передаче и приеме. Если во время операции приема или передачи была зафиксирована ошибка, соответствующий счетчик ошибок инкрементируется (его значение увеличивается на 1); если ошибок не было зафиксировано, счетчик декрементируется (его значение уменьшается на 1).

Когда значение счетчика ошибок передачи достигает 255, то, при обнаружении следующей ошибки, CAN-контроллер переходит в состояние «отключение шины» («Bus-Off»). В этом состоянии устанавливаются следующие биты: BS в регистре CANSR, BEI и EI в CANIR, если это разрешено, и RM в CANMOD. Установка бита RM сбрасывает и отключает большинство функций CAN-koht-роллера. В этот момент, в счетчик ошибок передачи автоматически записывается значение 127, а счетчик ошибок приема сбрасывается в 0. Затем пользовательская программа должна сбросить бит RM. После того, как этот сброс будет осуществлен, счетчик ошибок передачи переключается в режим счета на убывание (от 127 до 0). Каждый раз, когда на шине генерируется условие «шина свободна» («Bus-Free»), представляющее собой последовательность из 11 рецес-

сивных1* битов, значение счетчика ошибок передачи уменьшается на 1. Пользовательская программа может контролировать этот процесс, производя чтение содержимого счетчика. Когда счет на убывание будет закончен (т. е. будет обнаружено, что на шине сгенерировано 128-е по счету условие «Bus-Free»), CAN-контроллер сбросит биты BS и ES в регистре CANSR, и установит бит EI в регистре CANICR, если установлен бит EIE в регистре CANIER.

В счетчики ошибок передачи и приема может быть произведена запись, если установлен бит RM в регистре CANMOD. Запись числа 255 в счетчик ошибок передачи вынудит CAN-контроллер перейти в состояние «отключение шины». В случае, когда CAN-контроллер уже находится в состоянии «отключение шины» (бит BS в регистре CANSR установлен), запись любого значения от 0 до 254 в счетчик ошибок передачи приведет к выходу из этого состояния. Если теперь пользовательская программа сбросит бит RM в регистре CANMOD, то после появления на шине первого же условия «Bus-Free» (11 последовательных рецессивных битов) контроллер CAN перейдет в режим готовности к нормальным операциям обмена по шине.


Предыдущая Следующая






Warning: include(./news.php) [function.include]: failed to open stream: No such file or directory in /var/www/picprof/data/www/picprof.com/book/book4_173.html on line 218

Warning: include(./news.php) [function.include]: failed to open stream: No such file or directory in /var/www/picprof/data/www/picprof.com/book/book4_173.html on line 218

Warning: include() [function.include]: Failed opening './news.php' for inclusion (include_path='.:/usr/share/pear:/usr/share/php') in /var/www/picprof/data/www/picprof.com/book/book4_173.html on line 218