Каталог статей

Главная » Статьи » Мои статьи

PIC24H - 18.0 Улучшенный модуль CAN (ECAN)2

18.6.4 Фазовые сегменты

Фазовые сегменты используются для оптимального размещения точки выборки принимаемого бита внутри битового интервала. Точка выборки располагается между Phase1 Seg и Phase2 Seg. Эти сегменты удлиняются или укорачиваются при ресинхронизации (синхронизация с восстановлением тактовых интервалов). Конец Phase1 Seg определяет точку выборки внутри битового периода. Длина сегмента программируется от 1 TQ до 8TQ. Phase2 Seg обеспечивает задержку перед следующим переходом передаваемых данных. Сегмент программируется от 1TQ до 8TQ, либо может задаваться как наибольшее из двух значений - Phase1 Seg и времени обработки информации (равно 2TQ). Phase1 Seg инициализируется установкой битов SEG1PH<2:0> (CiCFG2<5:3>), а Phase2 Seg инициализируется установкой SEG2PH<2:0> (CiCFG2<10:8>).

При установке длины фазовых сегментов необходимо соблюдать следующее условие:

Prop Seg + Phase1 Seg ≥ Phase2 Seg

18.6.5 Точка выборки

Точка выборки - это точка времени, в которой уровень шины считывается и интерпретируется в качестве значения передаваемого бита. Она размещается в конце Phase1 Seg. Если битовая синхронизация медленная и содержит много TQ, существует возможность задать множественную выборку. В этом случае значение бита определяется по преобладающему значению уровня шины из трёх измеренных. Выборка происходит в точке выборки и дважды до неё с расстоянием в TQ/2. Модуль CAN позволяет пользователю выбирать между троекратной и однократной выборкой установкой или сбросом бита SAM (CiCFG2<6>). Как правило, в зависимости от параметров системы, выборка бита происходит примерно в 60-70% от начала битового интервала.

18.6.6 Синхронизация

Чтобы компенсировать сдвиги фазы между частотами генераторов различных узлов шины, каждый контроллер CAN должен уметь синхронизироваться по значимому фронту входящего сигнала. Когда в передаваемых данных обнаруживается фронт, логика сравнивает размещение фронта с ожидаемым временем его появления (сегмент синхронизации). Затем схема откорректирует значения Phase1 Seg и Phase2 Seg. Существует два механизма синхронизации.

18.6.6.1 Аппаратная синхронизация

Аппаратная синхронизация происходит, когда во время простоя шины возникает переход с рецессивного состояния на доминантное, обозначая начало сообщения. После неё счётчики битового интервала перезапускаются, начинаясь с SyncSeg. Аппаратная синхронизация принудительно помещает вызвавший её фронт внутрь сегмента синхронизации перезапущенного битового интервала. Если произошла аппаратная синхронизация, то внутри данного битового интервала ресинхронизации не будет.

18.6.6.2 Ресинхронизация

В результате ресинхронизации может быть удлинён Phase1 Seg, либо укорочен Phase2 Seg. Величина удлинения или укорочения сегмента фазового буфера имеет верхнюю границу, известную как ширина перехода синхронизации (synchronization jump width - SJW), и определяется битами SJW<1:0> (CiCFG1<7:6>). Значение ширины перехода синхронизации будет добавлено к Phase1 Seg, либо вычтено из Phase2 Seg. Ширина перехода ресинхронизации программируется от 1TQ до 4Q.

При установке битов SJW<1:0> должны соблюдаться следующие требования.

Phase2 Seg > SJW

Регистры модуля ECAN

Примечание: в описаниях регистров, приведённых ниже "i" в названии регистра обозначает один из модулей (ECAN1 или ECAN2); "n" обозначает номер буфера, фильтра или маски; "m" обозначает номер слова внутри конкретного поля данных CAN.

Примечание: в изображениях регистров приняты следующие обозначения:
R = читаемый бит
W = записываемый бит
U = бит не реализован, читается как "0"
-n = значение при POR:
   "1" = бит установлен
   "0" = бит сброшен
   "x" = значение бита неизвестно

Регистр 18-1. CiCTRL1 - первый управляющий регистр модуля ECAN

CiCTRL1 - первый управляющий регистр модуля ECAN

Биты 15-14Не реализованы, читаются как "0"

 
Бит 13CSIDL - бит останова в режиме Idle

1 = останавливать работу модуля, если устройство входит в режим Idle
0 = в режиме Idle модуль продолжает работу

 
Бит 12ABAT - бит отмены всех ожидающих передачи сообщений

Сигнализирует всем передающим буферам отменить передачу. Модуль сбросит этот бит, когда все передачи будут отменены.

 
Бит 11CANCKS - бит выбора главного тактового генератора CAN

1 = тактовая частота CAN FCAN - это FCY
0 = тактовая частота CAN FCAN - это FOSC

 
Биты 10-8REQOP<2:0> - биты запроса режима работы

000 = Установить нормальный режим работы
001 = Установить выключенный режим
010 = Установить режим петли
011 = Установить режим прослушивания
100 = Установить режим настройки
101 = Зарезервировано - не используйте
110 = Зарезервировано - не используйте
111 = Установить режим прослушивания всех сообщений

 
Биты 7-5OPMODE<2:0> - биты текущего режима работы

000 = Модуль в нормальном режиме работы
001 = Модуль выключен
010 = Модуль в режиме петли
011 = Модуль в режиме прослушивания
100 = Модуль в режиме настройки
101 = Зарезервировано
110 = Зарезервировано
111 = Модуль в режиме прослушивания всех сообщений

 
Бит 4Не реализован, читается как "0"

 
Бит 3CANCAP - бит включения события захвата таймера по приёму сообщения CAN

1 = Включить вход захвата по приёму сообщения CAN
0 = Отключить захват CAN

 
Бит 2-1Не реализован, читается как "0"

 
Бит 0WIN - бит выбора окна отображения SFR

1 = Использовать окно фильтров
0 = Использовать окно буферов

Регистр 18-2. CiCTRL2 - второй управляющий регистр модуля ECAN

CiCTRL2 - второй управляющий регистр модуля ECAN

Биты 15-5Не реализованы, читаются как "0"
  
Биты 4-0DNCNT<4:0> - биты номера битового фильтра DeviceNet
 10010 - 11111 = неправильный выбор
10001 = Сравнивать до байта данных 3, бит 6 с EID<17>
.....
00001 = Сравнивать до байта данных 1, бит 7 с EID<0>
00000 = Не сравнивать байты данных

Регистр 18-3. CiVEC - регистр кода прерывания модуля ECAN

CiVEC - регистр кода прерывания модуля ECAN

Биты 15-13Не реализованы, читаются как "0"
  
Биты 12-8FILHIT<4:0> - биты номера сработавшего фильтра
 10000 - 11111 = Зарезервированы
01111 = Фильтр 15
.....
00001 = Фильтр 1
00000 = Фильтр 0
  
Бит 7Не реализован, читается как "0"
 ICODE<6:0> - биты кода флагов прерывания
 1000101 - 1111111 = зарезервированы
1000100 = Прерывание по почти заполненному FIFO
1000011 = Прерывание по переполнению при приёме сообщений
1000010 = Прерывание по пробуждению
1000001 = Прерывание по ошибке
1000000 = Нет прерывания
0010000 - 0111111 = Зарезервировано
0001111 = Прерывание от приёмного буфера RB15
.......
0001001 = Прерывание от приёмного буфера RB9
0001000 = Прерывание от приёмного буфера RB8
0000111 = Прерывание от буфера TRB7
0000110 = Прерывание от буфера TRB6
0000101 = Прерывание от буфера TRB5
0000100 = Прерывание от буфера TRB4
0000011 = Прерывание от буфера TRB3
0000010 = Прерывание от буфера TRB2
0000001 = Прерывание от буфера TRB1
0000000 = Прерывание от буфера TRB0

Регистр 18-4. CiFCTRL - регистр управления FIFO модуля ECAN

CiFCTRL - регистр управления FIFO модуля ECAN

Бит 15-13DMABS<2:0> - биты размера DMA-буфера
 111 = зарезервировано
110 = 32 буфера в DMA RAM
101 = 24 буфера в DMA RAM
100 = 16 буферов в DMA RAM
011 = 12 буферов в DMA RAM
010 = 8 буферов в DMA RAM
001 = 6 буферов в DMA RAM
000 = 4 буфера в DMA RAM
  
Биты 12-5Не реализованы, читаются как "0"
  
Биты 4-0FSA<4:0> - биты начала области FIFO
 11111 = буфер RB31
11110 = буфер RB30
.....
00001 = буфер TRB1
00000 = буфер TRB0

Регистр 18-5. CiFIFO - регистр состояния FIFO-буфера модуля ECAN

CiFIFO - регистр состояния FIFO-буфера модуля ECAN

Биты 15-14Не реализованы, читаются как "0"
  
Биты 13-8FBP<5:0> - биты указателя записи для FIFO-буфера
 011111 = буфер RB31
011110 = буфер RB30
......
000001 = буфер TRB1
000000 = буфер TRB0
  
Биты 7-6Не реализованы, читаются как "0"
  
Биты 5-0FNRB<5:0> - биты указателя чтения для FIFO-буфера
 011111 = буфер RB31
011110 = буфер RB30
......
000001 = буфер TRB1
000000 = буфер TRB0

Регистр 18-6. CiINTF - регистр флагов прерываний модуля ECAN

CiINTF - регистр флагов прерываний модуля ECAN

Биты 15-14Не реализованы, читаются как "0"
  
Бит 13TXBO - бит отключения передатчика от шины из-за переполнения счётчика ошибок
  
Бит 12TXBP - бит состояния пассивной ошибки передатчика
  
Бит 11RXBP - бит состояния пассивной ошибки приёмника
  
Бит 10TXWAR - бит состояния предупреждения передатчика
  
Бит 9RXWAR - бит состояния предупреждения приёмника
  
Бит 8EWARN - бит состояния предупреждения передатчика или приёмника
  
Бит 7IVRIF - бит флага прерывания по приёму неправильного сообщения
  
Бит 6WAKIF - бит флага прерывания по пробуждению при обнаружении активности на шине
  
Бит 5ERRIF - бит флага прерывания по ошибке (множество источников, указаны в регистре CiINTF<13:8>)
  
Бит 4Не реализован, читается как "0"
  
Бит 3FIFOIF - бит флага прерывания по почти полному FIFO
  
Бит 2RBOVIF - флаг прерывания по переполнению приёмного буфера
  
Бит 1RBIF - флаг прерывания от приёмного (RX) буфера
  
Бит 0TBIF - флаг прерывания от передающего (TX) буфера

Регистр 18-7. CiINTE - регистр разрешения прерываний модуля ECAN

CiINTE - регистр разрешения прерываний модуля ECAN

Биты 15-8Не реализованы, читаются как "0"
  
Бит 7IVRIE - бит разрешения прерывания по приёму недействительного сообщения
  
Бит 6WAKIE - бит разрешения прерывания по пробуждению при обнаружении активности на шине
  
Бит 5ERRIE - бит разрешения прерывания по ошибке
  
Бит 4Не реализован, читается как "0"
  
Бит 3FIFOIE - бит разрешения прерывания по почти полному FIFO
  
Бит 2RBOVIE - бит разрешения прерывания по переполнению приёмного буфера RX
  
Бит 1RBIE - бит разрешения прерывания от приёмного буфера RX
  
Бит 0TBIE - бит разрешения прерывания от передающего буфера TX

Регистр 18-8. CiEC - регистр счётчика ошибок приёма/передачи модуля ECAN

CiEC - регистр счётчика ошибок приёма/передачи модуля ECAN

Биты 15-8TERRCNT<7:0> - биты счётчика ошибок передачи
  
Биты 7-0RERRCNT<7:0> - биты счётчика ошибок приёма

Регистр 18-9. CiCFG1 - первый регистр настройки скорости передачи модуля ECAN

CiCFG1 - первый регистр настройки скорости передачи модуля ECAN

Биты 15-8Не реализованы, читаются как "0"
  
Биты 7-6SJW<1:0> - биты ширины перехода синхронизации
 11 = 4TQ
10 = 3TQ
01 = 2TQ
00 = 1TQ
  
Биты 5-0BRP<5:0> - биты предделителя скорости передачи
 111111 = TQ = 2 x 64 x 1/FCAN
......
000010 = TQ = 2 x 3 x 1/FCAN
000001 = TQ = 2 x 2 x 1/FCAN
000000 = TQ = 2 x 1 x 1/FCAN

Регистр 18-10. CiCFG2 - второй регистр настройки скорости передачи модуля ECAN

CiCFG2 - второй регистр настройки скорости передачи модуля ECAN

Бит 15Не реализован, читается как "0"
  
Бит 14WAKFIL - бит включения линейного фильтра шины CAN для пробуждения
 1 = Использовать линейный фильтр шины CAN для пробуждения
0 = Не использовать линейный фильтр шины CAN для пробуждения
  
Биты 13-11Не реализованы, читаются как "0"
  
Биты 10-8SEG2PH<2:0> - биты фазового сегмента 2
 111 = 8TQ
...
000 = 1TQ
  
Бит 7SEG2PHTS - биты выбора способа установки времени фазового сегмента 2
 1 = свободное программирование
0 = используется наибольшее значение из SEG1PH и времени обработки информации (IPT)
  
Бит 6SAM - бит способа выборки уровня на шине CAN
 1 = Уровень шины CAN измеряется трижды в точке выборки
0 = Уровень шины CAN измеряется один раз в точке выборки
  
Биты 5-3SEG1PH<2:0> - биты фазового сегмента 1
 111 = 8TQ
...
000 = 1TQ
  
Биты 2-0PRSEG<2:0> - биты сегмента распространения
 111 = 8TQ
...
000 = 1TQ

Регистр 18-11. CiFEN1 - регистр включения приёмных фильтров модуля ECAN

CiFEN1 - регистр включения приёмных фильтров модуля ECAN

Биты 15-0FLTENn - бит включения фильтра n для принимаемых сообщений
 1 = Включить фильтр n
0 = Выключить фильтр n

Регистр 18-12. CiBUFPNT1 - первый регистр указателя буфера фильтров 0-3 модуля ECAN

CiBUFPNT1 - первый регистр указателя буфера фильтров 0-3 модуля ECAN

Биты 15-12F3BP<3:0> - биты, указывающие, в какой буфер попало сообщение, прошедшее фильтр 3
  
Биты 11-8F2BP<3:0> - биты, указывающие, в какой буфер попало сообщение, прошедшее фильтр 2
  
Биты 7-4F1BP<3:0> - биты, указывающие, в какой буфер попало сообщение, прошедшее фильтр 1
  
Биты 3-0F0BP<3:0> - биты, указывающие, в какой буфер попало сообщение, прошедшее фильтр 0
  
 Для всех групп битов:
1111 = сообщение, прошедшее фильтр, попало в буфер RX FIFO
1110 = сообщение, прошедшее фильтр, попало в буфер RX 14
....
0001 = сообщение, прошедшее фильтр, попало в буфер RX 1
0000 = сообщение, прошедшее фильтр, попало в буфер RX 0

Регистр 18-13. CiBUFPNT2 - второй регистр указателя буфера фильтров 4-7 модуля ECAN

CiBUFPNT2 - второй регистр указателя буфера фильтров 4-7 модуля ECAN

Биты 15-12F7BP<3:0> - биты, указывающие, в какой буфер попало сообщение, прошедшее фильтр 7
  
Биты 11-8F6BP<3:0> - биты, указывающие, в какой буфер попало сообщение, прошедшее фильтр 6
  
Биты 7-4F5BP<3:0> - биты, указывающие, в какой буфер попало сообщение, прошедшее фильтр 5
  
Биты 3-0F4BP<3:0> - биты, указывающие, в какой буфер попало сообщение, прошедшее фильтр 4
  
 Для всех групп битов:
1111 = сообщение, прошедшее фильтр, попало в буфер RX FIFO
1110 = сообщение, прошедшее фильтр, попало в буфер RX 14
....
0001 = сообщение, прошедшее фильтр, попало в буфер RX 1
0000 = сообщение, прошедшее фильтр, попало в буфер RX 0

Регистр 18-14. CiBUFPNT3 - третий регистр указателя буфера фильтров 8-11 модуля ECAN

CiBUFPNT3 - третий регистр указателя буфера фильтров 8-11 модуля ECAN

Биты 15-12F11BP<3:0> - биты, указывающие, в какой буфер попало сообщение, прошедшее фильтр 11
  
Биты 11-8F10BP<3:0> - биты, указывающие, в какой буфер попало сообщение, прошедшее фильтр 10
  
Биты 7-4F9BP<3:0> - биты, указывающие, в какой буфер попало сообщение, прошедшее фильтр 9
  
Биты 3-0F8BP<3:0> - биты, указывающие, в какой буфер попало сообщение, прошедшее фильтр 8
  
 Для всех групп битов:
1111 = сообщение, прошедшее фильтр, попало в буфер RX FIFO
1110 = сообщение, прошедшее фильтр, попало в буфер RX 14
....
0001 = сообщение, прошедшее фильтр, попало в буфер RX 1
0000 = сообщение, прошедшее фильтр, попало в буфер RX 0

Регистр 18-15. CiBUFPNT4 - четвёртый регистр указателя буфера фильтров 12-15 модуля ECAN

CiBUFPNT4 - четвёртый регистр указателя буфера фильтров 12-15 модуля ECAN

Биты 15-12F15BP<3:0> - биты, указывающие, в какой буфер попало сообщение, прошедшее фильтр 15
  
Биты 11-8F14BP<3:0> - биты, указывающие, в какой буфер попало сообщение, прошедшее фильтр 14
  
Биты 7-4F13BP<3:0> - биты, указывающие, в какой буфер попало сообщение, прошедшее фильтр 13
  
Биты 3-0F12BP<3:0> - биты, указывающие, в какой буфер попало сообщение, прошедшее фильтр 12
  
 Для всех групп битов:
1111 = сообщение, прошедшее фильтр, попало в буфер RX FIFO
1110 = сообщение, прошедшее фильтр, попало в буфер RX 14
....
0001 = сообщение, прошедшее фильтр, попало в буфер RX 1
0000 = сообщение, прошедшее фильтр, попало в буфер RX 0

Регистр 18-16. CiRXFnSID - стандартный идентификатор приёмного фильтра n модуля CAN (n = 0, 1, ..., 15)

CiRXFnSID - стандартный идентификатор приёмного фильтра n модуля CAN (n = 0, 1, ..., 15)

Биты 15-5SID<10:0> - биты стандартного идентификатора
 1 = Бит SIDx идентификатора сообщения должен быть "1", чтобы совпасть с фильтром
0 = Бит SIDx идентификатора сообщения должен быть "0", чтобы совпасть с фильтром
  
Бит 4Не реализован, читается как "0"
  
Бит 3EXIDE - бит включения расширенного идентификатора
 Если MIDE = 1, тогда:
1 = Принимать только сообщения с расширенным идентификатором
0 = Принимать только сообщения со стандартным идентификатором
Если MIDE = 0, тогда бит EXIDE игнорируется.
  
Бит 2Не реализуется, читается как "0"
  
Бит 1-0EID<17:16> - биты расширенного идентификатора
 1 = Бит EIDx идентификатора сообщения должен быть "1", чтобы совпасть с фильтром
0 = Бит EIDx идентификатора сообщения должен быть "0", чтобы совпасть с фильтром

Регистр 18-17. CiRXFnEID - расширенный идентификатор приёмного фильтра n модуля CAN (n = 0, 1, ..., 15)

CiRXFnEID - расширенный идентификатор приёмного фильтра n модуля CAN (n = 0, 1, ..., 15)

Биты 15-0EID<15:0> - биты расширенного идентификатора
 1 = Бит EIDx адреса сообщения должен быть "1", чтобы совпасть с фильтром
0 = Бит EIDx адреса сообщения должен быть "0", чтобы совпасть с фильтром

Регистр 18-18. CiFMSKSEL1 - регистр выбора маски для фильтров 7-0 модуля ECAN

CiFMSKSEL1 - регистр выбора маски для фильтров 7-0 модуля ECAN

Биты 15-14F7MSK<1:0> - биты выбора маски для фильтра 7
  
Биты 13-12F6MSK<1:0> - биты выбора маски для фильтра 6
  
Биты 11-10F5MSK<1:0> - биты выбора маски для фильтра 5
  
Биты 9-8F4MSK<1:0> - биты выбора маски для фильтра 4
  
Биты 7-6F3MSK<1:0> - биты выбора маски для фильтра 3
  
Биты 5-4F2MSK<1:0> - биты выбора маски для фильтра 2
  
Биты 3-2F1MSK<1:0> - биты выбора маски для фильтра 1
  
Биты 1-0F0MSK<1:0> - биты выбора маски для фильтра 0
  
 Для всех групп битов:
11 = Нет маски
10 = Приёмная маска 2
01 = Приёмная маска 1
00 = Приёмная маска 0

Регистр 18-18-2. CiFMSKSEL1 - регистр выбора маски для фильтров 7-0 модуля ECAN1

CiFMSKSEL1 - регистр выбора маски для фильтров 7-0 модуля ECAN

Биты 15-14F15MSK<1:0> - биты выбора маски для фильтра 15
  
Биты 13-12F14MSK<1:0> - биты выбора маски для фильтра 14
  
Биты 11-10F13MSK<1:0> - биты выбора маски для фильтра 13
  
Биты 9-8F12MSK<1:0> - биты выбора маски для фильтра 12
  
Биты 7-6F11MSK<1:0> - биты выбора маски для фильтра 11
  
Биты 5-4F10MSK<1:0> - биты выбора маски для фильтра 10
  
Биты 3-2F9MSK<1:0> - биты выбора маски для фильтра 9
  
Биты 1-0F8MSK<1:0> - биты выбора маски для фильтра 8
  
 Для всех групп битов:
11 = Нет маски
10 = Приёмная маска 2
01 = Приёмная маска 1
00 = Приёмная маска 0

1 В исходном документе про этот регистр забыли. Обозначим его "Регистр 18-18-2", чтобы сохранить нумерацию. - прим. пер.

Регистр 18-19. CiRXMnSID - стандартный идентификатор маски n приёмных фильтров модуля ECAN

CiRXMnSID - стандартный идентификатор маски n приёмных фильтров модуля ECAN

Биты 15-5SID<10:0> - биты стандартного идентификатора
 1 = Включать бит фильтра SIDx в сравнение
0 = Бит фильтра SIDx не участвует в сравнении
  
Бит 4Не реализован, читается как "0"
  
Бит 3MIDE - бит режима приёма идентификатора
 1 = Принимать только те типы сообщений, которые соответствуют биту EXIDE фильтра (т. е. либо только стандартные, либо только расширенные, в зависимости от значения бита EXIDE)
0 = Принимать и стандартные, и расширенные сообщения, если они соответствуют фильтру (т. е. если SID фильтра = SID сообщения, либо SID/EID фильтра = SID/EID сообщения)
  
Бит 2Не реализован, читается как "0"
  
Биты 1-0EID<17:16> - биты расширенного идентификатора
 1 = Включать бит фильтра EIDx в сравнение
0 = Бит фильтра EIDx не участвует в сравнении

Регистр 18-20. CiRXMnEID - расширенный идентификатор маски n приёмных фильтров модуля ECAN

CiRXMnEID - расширенный идентификатор маски n приёмных фильтров модуля ECAN

Биты 15-0EID<15:0> - биты расширенного идентификатора
 1 = Включать бит фильтра EIDx в сравнение
0 = Бит фильтра EIDx не участвует в сравнении

Регистр 18-21. CiRXFUL1 - первый регистр состояния заполнения приёмных буферов модуля ECAN

CiRXFUL1 - первый регистр состояния заполнения приёмных буферов модуля ECAN

Биты 15-0RXFUL<15:0> - биты заполнения приёмных буферов n
 1 = Буфер полон (устанавливается модулем)
0 = Буфер пуст (сбрасывается программно)

Регистр 18-22. CiRXFUL2 - второй регистр состояния заполнения приёмных буферов модуля ECAN

CiRXFUL2 - второй регистр состояния заполнения приёмных буферов модуля ECAN

Биты 15-0RXFUL<31:16> - биты заполнения приёмных буферов n
 1 = Буфер полон (устанавливается модулем)
0 = Буфер пуст (сбрасывается программно)

Регистр 18-23. CiRXOVF1 - первый регистр переполнения приёмных буферов модуля ECAN

CiRXOVF1 - первый регистр переполнения приёмных буферов модуля ECAN

Биты 15-0RXOVF<15:0> - биты переполнения приёмных буферов n
 1 = Попытка модуля выполнить запись в полный буфер (устанавливается модулем)
0 = Переполнение очищено (сбрасывается программно)

Регистр 18-24. CiRXOVF2 - второй регистр переполнения приёмных буферов модуля ECAN

CiRXOVF2 - второй регистр переполнения приёмных буферов модуля ECAN

Биты 15-0RXOVF<31:16> - биты переполнения приёмных буферов n
 1 = Попытка модуля выполнить запись в полный буфер (устанавливается модулем)
0 = Переполнение очищено (сбрасывается программно)

Регистр 18-25. CiTRmnCON - управляющий регистр буферов TX/RX m модуля ECAN (m = 0, 2, 4, 6; n = 1, 3, 5, 7)

CiTRmnCON - управляющий регистр буферов TX/RX m модуля ECAN (m = 0, 2, 4, 6; n = 1, 3, 5, 7)

Биты 15-8Управляют буферами n, см. определение для битов 7-0
  
Бит 7TXENm - бит выбора буфера TX/RX
 1 = Буфер TRBm используется как передающий буфер
0 = Буфер TRBm используется как приёмный буфер
  
Бит 6TXABTm - бит отмены сообщения(1)
 1 = Сообщение было отменено
0 = Сообщение успешно завершило передачу
  
Бит 5TXLARBm - бит потери арбитража сообщением(1)
 1 = Сообщение при отправке потеряло арбитраж
0 = Сообщение не теряло арбитраж во время отправки
  
Бит 4TXERRm - бит обнаружения ошибки во время передачи сообщения(1)
 1 = Во время отправки сообщения на шине возникла ошибка
0 = Во время отправки сообщения ошибок на шине не возникало
  
Бит 3TXREQm - бит запроса отправки сообщения
 Установка этого бита в "1" запросит отправку сообщения. Бит будет автоматически сброшен после успешной отправки сообщения. Сброс этого бита в "0", когда он установлен, запросит отмену сообщения.
  
Бит 2RTRENm - бит включения автоматической передачи по удалённому запросу
 1 = При получении удалённого запроса передачи бит TXREQ автоматически установится
0 = При получении удалённого запроса передачи бит TXREQ останется без изменений
  
Биты 1-0TXmPRI<1:0> - биты приоритета передачи сообщения
 11 = наивысший приоритет сообщения
10 = высокий приоритет сообщения
01 = низкий приоритет сообщения
00 = низший приоритет сообщения

Примечание:
1) Этот бит сбрасывается, когда устанавливается TXREQ.

Примечание: буферы (SID, EID, DLC, поле данных) и регистры состояния приёма хранятся в DMA RAM. Они не являются регистрами специального назначения.

Регистр 18-26. CiTRBnSID - стандартный идентификатор буфера n модуля ECAN (n = 0, 1, ..., 31)

CiTRBnSID - стандартный идентификатор буфера n модуля ECAN (n = 0, 1, ..., 31)

Бит 15-13Не реализованы, читаются как "0"
  
Бит 12-2SID<10:0> - биты стандартного идентификатора
  
Бит 1SRR - бит-заменитель удалённого запроса
 1 = Это сообщение запросит удалённую передачу
0 = Обычное сообщение
  
Бит 0IDE - бит использования расширенного идентификатора
 1 = Сообщение будет передано с расширенным идентификатором
0 = Сообщение будет передано со стандартным идентификатором

Регистр 18-27. CiTRBnEID - расширенный идентификатор буфера n модуля ECAN (n = 0, 1, ..., 31)

CiTRBnEID - расширенный идентификатор буфера n модуля ECAN (n = 0, 1, ..., 31)

Бит 15-12Не реализованы, читаются как "0"
  
Бит 11-0EID<17:6> - биты расширенного идентификатора

Регистр 18-28. CiTRBnDLC - регистр длины данных буфера n модуля ECAN (n = 0, 1, ..., 31)

CiTRBnDLC - регистр длины данных буфера n модуля ECAN (n = 0, 1, ..., 31)

Биты 15-10EID<5:0> - биты расширенного идентификатора
  
Бит 9RTR - бит удалённого запроса передачи
 1 = Сообщение запросит удалённую передачу
0 = Обычное сообщение
  
Бит 8RB1 - зарезервированный бит 1
 Согласно протоколу CAN пользователь должен установить этот бит в 0
  
Биты 7-5Не реализованы, читаются как "0"
  
Бит 4RB0 - зарезервированный бит 0
 Согласно протоколу CAN пользователь должен установить этот бит в 0
  
Биты 3-0DLC<3:0> - биты кода длины сообщения

Регистр 18-29. CiTRBnDm - байт m поля данных буфера n модуля ECAN (n = 0, 1, ..., 31; m = 0, 1, ..., 7)(1)

CiTRBnDm - байт m поля данных буфера n модуля ECAN (n = 0, 1, ..., 31; m = 0, 1, ..., 7)

Биты 7-0TRnDm<7:0> - биты байта "m" поля данных буфера "n"

Примечание:
1) Самый старший байт содержит (m + 1) байт буфера.

Регистр 18-30. CiTRBnSTAT - регистр состояния приёмного буфера n модуля ECAN (n = 0, 1, ..., 31)

CiTRBnSTAT - регистр состояния приёмного буфера n модуля ECAN (n = 0, 1, ..., 31)

Биты 15-13Не реализованы, читаются как "0"
  
Бит 12-8FILHIT<4:0> - Биты кода фильтра (записываются модулем только для приёмных буферов, для передающих буферов не используется). Кодируют номер фильтра, в результате совпадения с которым сообщение записалось в этот буфер.
  
Биты 7-0Не реализованы, читаются как "0"


© PIClist-RUS (piclist.ru), 2009 г.

Категория: Мои статьи | Добавил: MAS (25.11.2012)
Просмотров: 539 | Рейтинг: 0.0/0
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Категории раздела
Мои статьи [51]
Справочные данные [165]
Справочные данные
Наш опрос
Оцените мой сайт
Всего ответов: 30
Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0
Форма входа
Баннер
$$
Друзья сайта
  • Спортсменам
  • Огородникам СЮД(А
  • Строим вместе
  • Мир развлечений
  • Кто хочет похудеть
  • Здоровье у нас одно
  • Юмор
  • Кулинарные рецепты
  • Картинки_Заставки_Демотивоторы
  • Семья
  • Кто на мальчишник
  • Металлообработка
  • Кто на девишник
  • Блоки питания
  • Смерть соседям
  • Радиомедведь
  • Кибермедведь
  • Радиосайт
  • Деревообработка
  • Поиск