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
Биты 15-14 | Не реализованы, читаются как "0" |
| |
Бит 13 | CSIDL - бит останова в режиме Idle |
| 1 = останавливать работу модуля, если устройство входит в режим Idle 0 = в режиме Idle модуль продолжает работу |
| |
Бит 12 | ABAT - бит отмены всех ожидающих передачи сообщений |
| Сигнализирует всем передающим буферам отменить передачу. Модуль сбросит этот бит, когда все передачи будут отменены. |
| |
Бит 11 | CANCKS - бит выбора главного тактового генератора CAN |
| 1 = тактовая частота CAN FCAN - это FCY 0 = тактовая частота CAN FCAN - это FOSC |
| |
Биты 10-8 | REQOP<2:0> - биты запроса режима работы |
| 000 = Установить нормальный режим работы 001 = Установить выключенный режим 010 = Установить режим петли 011 = Установить режим прослушивания 100 = Установить режим настройки 101 = Зарезервировано - не используйте 110 = Зарезервировано - не используйте 111 = Установить режим прослушивания всех сообщений |
| |
Биты 7-5 | OPMODE<2:0> - биты текущего режима работы |
| 000 = Модуль в нормальном режиме работы 001 = Модуль выключен 010 = Модуль в режиме петли 011 = Модуль в режиме прослушивания 100 = Модуль в режиме настройки 101 = Зарезервировано 110 = Зарезервировано 111 = Модуль в режиме прослушивания всех сообщений |
| |
Бит 4 | Не реализован, читается как "0" |
| |
Бит 3 | CANCAP - бит включения события захвата таймера по приёму сообщения CAN |
| 1 = Включить вход захвата по приёму сообщения CAN 0 = Отключить захват CAN |
| |
Бит 2-1 | Не реализован, читается как "0" |
| |
Бит 0 | WIN - бит выбора окна отображения SFR |
| 1 = Использовать окно фильтров 0 = Использовать окно буферов |
Регистр 18-2. CiCTRL2 - второй управляющий регистр модуля ECAN
Биты 15-5 | Не реализованы, читаются как "0" |
| |
Биты 4-0 | DNCNT<4:0> - биты номера битового фильтра DeviceNet |
| 10010 - 11111 = неправильный выбор 10001 = Сравнивать до байта данных 3, бит 6 с EID<17> ..... 00001 = Сравнивать до байта данных 1, бит 7 с EID<0> 00000 = Не сравнивать байты данных |
Регистр 18-3. CiVEC - регистр кода прерывания модуля ECAN
Биты 15-13 | Не реализованы, читаются как "0" |
| |
Биты 12-8 | FILHIT<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
Бит 15-13 | DMABS<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-0 | FSA<4:0> - биты начала области FIFO |
| 11111 = буфер RB31 11110 = буфер RB30 ..... 00001 = буфер TRB1 00000 = буфер TRB0 |
Регистр 18-5. CiFIFO - регистр состояния FIFO-буфера модуля ECAN
Биты 15-14 | Не реализованы, читаются как "0" |
| |
Биты 13-8 | FBP<5:0> - биты указателя записи для FIFO-буфера |
| 011111 = буфер RB31 011110 = буфер RB30 ...... 000001 = буфер TRB1 000000 = буфер TRB0 |
| |
Биты 7-6 | Не реализованы, читаются как "0" |
| |
Биты 5-0 | FNRB<5:0> - биты указателя чтения для FIFO-буфера |
| 011111 = буфер RB31 011110 = буфер RB30 ...... 000001 = буфер TRB1 000000 = буфер TRB0 |
Регистр 18-6. CiINTF - регистр флагов прерываний модуля ECAN
Биты 15-14 | Не реализованы, читаются как "0" |
| |
Бит 13 | TXBO - бит отключения передатчика от шины из-за переполнения счётчика ошибок |
| |
Бит 12 | TXBP - бит состояния пассивной ошибки передатчика |
| |
Бит 11 | RXBP - бит состояния пассивной ошибки приёмника |
| |
Бит 10 | TXWAR - бит состояния предупреждения передатчика |
| |
Бит 9 | RXWAR - бит состояния предупреждения приёмника |
| |
Бит 8 | EWARN - бит состояния предупреждения передатчика или приёмника |
| |
Бит 7 | IVRIF - бит флага прерывания по приёму неправильного сообщения |
| |
Бит 6 | WAKIF - бит флага прерывания по пробуждению при обнаружении активности на шине |
| |
Бит 5 | ERRIF - бит флага прерывания по ошибке (множество источников, указаны в регистре CiINTF<13:8>) |
| |
Бит 4 | Не реализован, читается как "0" |
| |
Бит 3 | FIFOIF - бит флага прерывания по почти полному FIFO |
| |
Бит 2 | RBOVIF - флаг прерывания по переполнению приёмного буфера |
| |
Бит 1 | RBIF - флаг прерывания от приёмного (RX) буфера |
| |
Бит 0 | TBIF - флаг прерывания от передающего (TX) буфера |
Регистр 18-7. CiINTE - регистр разрешения прерываний модуля ECAN
Биты 15-8 | Не реализованы, читаются как "0" |
| |
Бит 7 | IVRIE - бит разрешения прерывания по приёму недействительного сообщения |
| |
Бит 6 | WAKIE - бит разрешения прерывания по пробуждению при обнаружении активности на шине |
| |
Бит 5 | ERRIE - бит разрешения прерывания по ошибке |
| |
Бит 4 | Не реализован, читается как "0" |
| |
Бит 3 | FIFOIE - бит разрешения прерывания по почти полному FIFO |
| |
Бит 2 | RBOVIE - бит разрешения прерывания по переполнению приёмного буфера RX |
| |
Бит 1 | RBIE - бит разрешения прерывания от приёмного буфера RX |
| |
Бит 0 | TBIE - бит разрешения прерывания от передающего буфера TX |
Регистр 18-8. CiEC - регистр счётчика ошибок приёма/передачи модуля ECAN
Биты 15-8 | TERRCNT<7:0> - биты счётчика ошибок передачи |
| |
Биты 7-0 | RERRCNT<7:0> - биты счётчика ошибок приёма |
Регистр 18-9. CiCFG1 - первый регистр настройки скорости передачи модуля ECAN
Биты 15-8 | Не реализованы, читаются как "0" |
| |
Биты 7-6 | SJW<1:0> - биты ширины перехода синхронизации |
| 11 = 4TQ 10 = 3TQ 01 = 2TQ 00 = 1TQ |
| |
Биты 5-0 | BRP<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
Бит 15 | Не реализован, читается как "0" |
| |
Бит 14 | WAKFIL - бит включения линейного фильтра шины CAN для пробуждения |
| 1 = Использовать линейный фильтр шины CAN для пробуждения 0 = Не использовать линейный фильтр шины CAN для пробуждения |
| |
Биты 13-11 | Не реализованы, читаются как "0" |
| |
Биты 10-8 | SEG2PH<2:0> - биты фазового сегмента 2 |
| 111 = 8TQ ... 000 = 1TQ |
| |
Бит 7 | SEG2PHTS - биты выбора способа установки времени фазового сегмента 2 |
| 1 = свободное программирование 0 = используется наибольшее значение из SEG1PH и времени обработки информации (IPT) |
| |
Бит 6 | SAM - бит способа выборки уровня на шине CAN |
| 1 = Уровень шины CAN измеряется трижды в точке выборки 0 = Уровень шины CAN измеряется один раз в точке выборки |
| |
Биты 5-3 | SEG1PH<2:0> - биты фазового сегмента 1 |
| 111 = 8TQ ... 000 = 1TQ |
| |
Биты 2-0 | PRSEG<2:0> - биты сегмента распространения |
| 111 = 8TQ ... 000 = 1TQ |
Регистр 18-11. CiFEN1 - регистр включения приёмных фильтров модуля ECAN
Биты 15-0 | FLTENn - бит включения фильтра n для принимаемых сообщений |
| 1 = Включить фильтр n 0 = Выключить фильтр n |
Регистр 18-12. CiBUFPNT1 - первый регистр указателя буфера фильтров 0-3 модуля ECAN
Биты 15-12 | F3BP<3:0> - биты, указывающие, в какой буфер попало сообщение, прошедшее фильтр 3 |
| |
Биты 11-8 | F2BP<3:0> - биты, указывающие, в какой буфер попало сообщение, прошедшее фильтр 2 |
| |
Биты 7-4 | F1BP<3:0> - биты, указывающие, в какой буфер попало сообщение, прошедшее фильтр 1 |
| |
Биты 3-0 | F0BP<3:0> - биты, указывающие, в какой буфер попало сообщение, прошедшее фильтр 0 |
| |
| Для всех групп битов: 1111 = сообщение, прошедшее фильтр, попало в буфер RX FIFO 1110 = сообщение, прошедшее фильтр, попало в буфер RX 14 .... 0001 = сообщение, прошедшее фильтр, попало в буфер RX 1 0000 = сообщение, прошедшее фильтр, попало в буфер RX 0 |
Регистр 18-13. CiBUFPNT2 - второй регистр указателя буфера фильтров 4-7 модуля ECAN
Биты 15-12 | F7BP<3:0> - биты, указывающие, в какой буфер попало сообщение, прошедшее фильтр 7 |
| |
Биты 11-8 | F6BP<3:0> - биты, указывающие, в какой буфер попало сообщение, прошедшее фильтр 6 |
| |
Биты 7-4 | F5BP<3:0> - биты, указывающие, в какой буфер попало сообщение, прошедшее фильтр 5 |
| |
Биты 3-0 | F4BP<3:0> - биты, указывающие, в какой буфер попало сообщение, прошедшее фильтр 4 |
| |
| Для всех групп битов: 1111 = сообщение, прошедшее фильтр, попало в буфер RX FIFO 1110 = сообщение, прошедшее фильтр, попало в буфер RX 14 .... 0001 = сообщение, прошедшее фильтр, попало в буфер RX 1 0000 = сообщение, прошедшее фильтр, попало в буфер RX 0 |
Регистр 18-14. CiBUFPNT3 - третий регистр указателя буфера фильтров 8-11 модуля ECAN
Биты 15-12 | F11BP<3:0> - биты, указывающие, в какой буфер попало сообщение, прошедшее фильтр 11 |
| |
Биты 11-8 | F10BP<3:0> - биты, указывающие, в какой буфер попало сообщение, прошедшее фильтр 10 |
| |
Биты 7-4 | F9BP<3:0> - биты, указывающие, в какой буфер попало сообщение, прошедшее фильтр 9 |
| |
Биты 3-0 | F8BP<3:0> - биты, указывающие, в какой буфер попало сообщение, прошедшее фильтр 8 |
| |
| Для всех групп битов: 1111 = сообщение, прошедшее фильтр, попало в буфер RX FIFO 1110 = сообщение, прошедшее фильтр, попало в буфер RX 14 .... 0001 = сообщение, прошедшее фильтр, попало в буфер RX 1 0000 = сообщение, прошедшее фильтр, попало в буфер RX 0 |
Регистр 18-15. CiBUFPNT4 - четвёртый регистр указателя буфера фильтров 12-15 модуля ECAN
Биты 15-12 | F15BP<3:0> - биты, указывающие, в какой буфер попало сообщение, прошедшее фильтр 15 |
| |
Биты 11-8 | F14BP<3:0> - биты, указывающие, в какой буфер попало сообщение, прошедшее фильтр 14 |
| |
Биты 7-4 | F13BP<3:0> - биты, указывающие, в какой буфер попало сообщение, прошедшее фильтр 13 |
| |
Биты 3-0 | F12BP<3:0> - биты, указывающие, в какой буфер попало сообщение, прошедшее фильтр 12 |
| |
| Для всех групп битов: 1111 = сообщение, прошедшее фильтр, попало в буфер RX FIFO 1110 = сообщение, прошедшее фильтр, попало в буфер RX 14 .... 0001 = сообщение, прошедшее фильтр, попало в буфер RX 1 0000 = сообщение, прошедшее фильтр, попало в буфер RX 0 |
Регистр 18-16. CiRXFnSID - стандартный идентификатор приёмного фильтра n модуля CAN (n = 0, 1, ..., 15)
Биты 15-5 | SID<10:0> - биты стандартного идентификатора |
| 1 = Бит SIDx идентификатора сообщения должен быть "1", чтобы совпасть с фильтром 0 = Бит SIDx идентификатора сообщения должен быть "0", чтобы совпасть с фильтром |
| |
Бит 4 | Не реализован, читается как "0" |
| |
Бит 3 | EXIDE - бит включения расширенного идентификатора |
| Если MIDE = 1, тогда: 1 = Принимать только сообщения с расширенным идентификатором 0 = Принимать только сообщения со стандартным идентификатором Если MIDE = 0, тогда бит EXIDE игнорируется. |
| |
Бит 2 | Не реализуется, читается как "0" |
| |
Бит 1-0 | EID<17:16> - биты расширенного идентификатора |
| 1 = Бит EIDx идентификатора сообщения должен быть "1", чтобы совпасть с фильтром 0 = Бит EIDx идентификатора сообщения должен быть "0", чтобы совпасть с фильтром |
Регистр 18-17. CiRXFnEID - расширенный идентификатор приёмного фильтра n модуля CAN (n = 0, 1, ..., 15)
Биты 15-0 | EID<15:0> - биты расширенного идентификатора |
| 1 = Бит EIDx адреса сообщения должен быть "1", чтобы совпасть с фильтром 0 = Бит EIDx адреса сообщения должен быть "0", чтобы совпасть с фильтром |
Регистр 18-18. CiFMSKSEL1 - регистр выбора маски для фильтров 7-0 модуля ECAN
Биты 15-14 | F7MSK<1:0> - биты выбора маски для фильтра 7 |
| |
Биты 13-12 | F6MSK<1:0> - биты выбора маски для фильтра 6 |
| |
Биты 11-10 | F5MSK<1:0> - биты выбора маски для фильтра 5 |
| |
Биты 9-8 | F4MSK<1:0> - биты выбора маски для фильтра 4 |
| |
Биты 7-6 | F3MSK<1:0> - биты выбора маски для фильтра 3 |
| |
Биты 5-4 | F2MSK<1:0> - биты выбора маски для фильтра 2 |
| |
Биты 3-2 | F1MSK<1:0> - биты выбора маски для фильтра 1 |
| |
Биты 1-0 | F0MSK<1:0> - биты выбора маски для фильтра 0 |
| |
| Для всех групп битов: 11 = Нет маски 10 = Приёмная маска 2 01 = Приёмная маска 1 00 = Приёмная маска 0 |
Регистр 18-18-2. CiFMSKSEL1 - регистр выбора маски для фильтров 7-0 модуля ECAN1
Биты 15-14 | F15MSK<1:0> - биты выбора маски для фильтра 15 |
| |
Биты 13-12 | F14MSK<1:0> - биты выбора маски для фильтра 14 |
| |
Биты 11-10 | F13MSK<1:0> - биты выбора маски для фильтра 13 |
| |
Биты 9-8 | F12MSK<1:0> - биты выбора маски для фильтра 12 |
| |
Биты 7-6 | F11MSK<1:0> - биты выбора маски для фильтра 11 |
| |
Биты 5-4 | F10MSK<1:0> - биты выбора маски для фильтра 10 |
| |
Биты 3-2 | F9MSK<1:0> - биты выбора маски для фильтра 9 |
| |
Биты 1-0 | F8MSK<1:0> - биты выбора маски для фильтра 8 |
| |
| Для всех групп битов: 11 = Нет маски 10 = Приёмная маска 2 01 = Приёмная маска 1 00 = Приёмная маска 0 |
1 В исходном документе про этот регистр забыли. Обозначим его "Регистр 18-18-2", чтобы сохранить нумерацию. - прим. пер.
Регистр 18-19. CiRXMnSID - стандартный идентификатор маски n приёмных фильтров модуля ECAN
Биты 15-5 | SID<10:0> - биты стандартного идентификатора |
| 1 = Включать бит фильтра SIDx в сравнение 0 = Бит фильтра SIDx не участвует в сравнении |
| |
Бит 4 | Не реализован, читается как "0" |
| |
Бит 3 | MIDE - бит режима приёма идентификатора |
| 1 = Принимать только те типы сообщений,
которые соответствуют биту EXIDE фильтра (т. е. либо только стандартные,
либо только расширенные, в зависимости от значения бита EXIDE) 0 =
Принимать и стандартные, и расширенные сообщения, если они соответствуют
фильтру (т. е. если SID фильтра = SID сообщения, либо SID/EID фильтра =
SID/EID сообщения) |
| |
Бит 2 | Не реализован, читается как "0" |
| |
Биты 1-0 | EID<17:16> - биты расширенного идентификатора |
| 1 = Включать бит фильтра EIDx в сравнение 0 = Бит фильтра EIDx не участвует в сравнении |
Регистр 18-20. CiRXMnEID - расширенный идентификатор маски n приёмных фильтров модуля ECAN
Биты 15-0 | EID<15:0> - биты расширенного идентификатора |
| 1 = Включать бит фильтра EIDx в сравнение 0 = Бит фильтра EIDx не участвует в сравнении |
Регистр 18-21. CiRXFUL1 - первый регистр состояния заполнения приёмных буферов модуля ECAN
Биты 15-0 | RXFUL<15:0> - биты заполнения приёмных буферов n |
| 1 = Буфер полон (устанавливается модулем) 0 = Буфер пуст (сбрасывается программно) |
Регистр 18-22. CiRXFUL2 - второй регистр состояния заполнения приёмных буферов модуля ECAN
Биты 15-0 | RXFUL<31:16> - биты заполнения приёмных буферов n |
| 1 = Буфер полон (устанавливается модулем) 0 = Буфер пуст (сбрасывается программно) |
Регистр 18-23. CiRXOVF1 - первый регистр переполнения приёмных буферов модуля ECAN
Биты 15-0 | RXOVF<15:0> - биты переполнения приёмных буферов n |
| 1 = Попытка модуля выполнить запись в полный буфер (устанавливается модулем) 0 = Переполнение очищено (сбрасывается программно) |
Регистр 18-24. CiRXOVF2 - второй регистр переполнения приёмных буферов модуля ECAN
Биты 15-0 | RXOVF<31:16> - биты переполнения приёмных буферов n |
| 1 = Попытка модуля выполнить запись в полный буфер (устанавливается модулем) 0 = Переполнение очищено (сбрасывается программно) |
Регистр 18-25. CiTRmnCON - управляющий регистр буферов TX/RX m модуля ECAN (m = 0, 2, 4, 6; n = 1, 3, 5, 7)
Биты 15-8 | Управляют буферами n, см. определение для битов 7-0 |
| |
Бит 7 | TXENm - бит выбора буфера TX/RX |
| 1 = Буфер TRBm используется как передающий буфер 0 = Буфер TRBm используется как приёмный буфер |
| |
Бит 6 | TXABTm - бит отмены сообщения(1) |
| 1 = Сообщение было отменено 0 = Сообщение успешно завершило передачу |
| |
Бит 5 | TXLARBm - бит потери арбитража сообщением(1) |
| 1 = Сообщение при отправке потеряло арбитраж 0 = Сообщение не теряло арбитраж во время отправки |
| |
Бит 4 | TXERRm - бит обнаружения ошибки во время передачи сообщения(1) |
| 1 = Во время отправки сообщения на шине возникла ошибка 0 = Во время отправки сообщения ошибок на шине не возникало |
| |
Бит 3 | TXREQm - бит запроса отправки сообщения |
| Установка этого бита в "1" запросит отправку
сообщения. Бит будет автоматически сброшен после успешной отправки
сообщения. Сброс этого бита в "0", когда он установлен, запросит отмену
сообщения. |
| |
Бит 2 | RTRENm - бит включения автоматической передачи по удалённому запросу |
| 1 = При получении удалённого запроса передачи бит TXREQ автоматически установится 0 = При получении удалённого запроса передачи бит TXREQ останется без изменений |
| |
Биты 1-0 | TXmPRI<1:0> - биты приоритета передачи сообщения |
| 11 = наивысший приоритет сообщения 10 = высокий приоритет сообщения 01 = низкий приоритет сообщения 00 = низший приоритет сообщения |
Примечание:
1) Этот бит сбрасывается, когда устанавливается TXREQ.
Примечание: буферы (SID, EID, DLC, поле данных) и регистры
состояния приёма хранятся в DMA RAM. Они не являются регистрами
специального назначения.
Регистр 18-26. CiTRBnSID - стандартный идентификатор буфера n модуля ECAN (n = 0, 1, ..., 31)
Бит 15-13 | Не реализованы, читаются как "0" |
| |
Бит 12-2 | SID<10:0> - биты стандартного идентификатора |
| |
Бит 1 | SRR - бит-заменитель удалённого запроса |
| 1 = Это сообщение запросит удалённую передачу 0 = Обычное сообщение |
| |
Бит 0 | IDE - бит использования расширенного идентификатора |
| 1 = Сообщение будет передано с расширенным идентификатором 0 = Сообщение будет передано со стандартным идентификатором |
Регистр 18-27. CiTRBnEID - расширенный идентификатор буфера n модуля ECAN (n = 0, 1, ..., 31)
Бит 15-12 | Не реализованы, читаются как "0" |
| |
Бит 11-0 | EID<17:6> - биты расширенного идентификатора |
Регистр 18-28. CiTRBnDLC - регистр длины данных буфера n модуля ECAN (n = 0, 1, ..., 31)
Биты 15-10 | EID<5:0> - биты расширенного идентификатора |
| |
Бит 9 | RTR - бит удалённого запроса передачи |
| 1 = Сообщение запросит удалённую передачу 0 = Обычное сообщение |
| |
Бит 8 | RB1 - зарезервированный бит 1 |
| Согласно протоколу CAN пользователь должен установить этот бит в 0 |
| |
Биты 7-5 | Не реализованы, читаются как "0" |
| |
Бит 4 | RB0 - зарезервированный бит 0 |
| Согласно протоколу CAN пользователь должен установить этот бит в 0 |
| |
Биты 3-0 | DLC<3:0> - биты кода длины сообщения |
Регистр 18-29. CiTRBnDm - байт m поля данных буфера n модуля ECAN (n = 0, 1, ..., 31; m = 0, 1, ..., 7)(1)
Биты 7-0 | TRnDm<7:0> - биты байта "m" поля данных буфера "n" |
Примечание:
1) Самый старший байт содержит (m + 1) байт буфера.
Регистр 18-30. CiTRBnSTAT - регистр состояния приёмного буфера n модуля ECAN (n = 0, 1, ..., 31)
Биты 15-13 | Не реализованы, читаются как "0" |
| |
Бит 12-8 | FILHIT<4:0> - Биты кода
фильтра (записываются модулем только для приёмных буферов, для
передающих буферов не используется). Кодируют номер фильтра, в
результате совпадения с которым сообщение записалось в этот буфер. |
| |
Биты 7-0 | Не реализованы, читаются как "0" |
© PIClist-RUS (piclist.ru), 2009 г.
|