174
В свою очередь контроллер протокола состоит из нескольких блоков, по-
казанных на рис. 4.9. Основной частью контроллера является управляющий
блок – FSM. Это последовательный конечный автомат с изменением управ-
ляющих сигналов при различных типах сообщений и различных состояниях
передачи/приема данных.
FSM выполняет следующие функции:
• управление последовательным потоком данных между TX/RX и
сдвиговым регистром
;
• вычисление и контроль CRC;
• обработка ошибок;
• управление параллельным потоком данных между сдвиговым реги-
стром и буфером;
• выполнение арбитража;
• сигнализация об ошибках согласно CAN протоколу;
• автоматическая повторная передача сообщений.
Интерфейс передачи данных от контроллера к буферу – параллельный 8-
разрядный. Сообщение разбивается на байты для побайтового обмена дан-
ными
между буфером и сдвиговым регистром. FSM контролирует последова-
тельность байтов от начала сообщения до его завершения.
Регистр циклического контроля избыточности (CRC) формирует CRC код,
который побайтно будет передан при передаче данных, и проверяет код CRC
при получении сообщения.
Логика управления обработкой ошибок (EML) формирует сигнал о неис-
правности CAN-модуля. Состояния счетчиков ошибок передачи и
приема
увеличиваются или уменьшаются сигналами процессора потока. Согласно
значениям счетчиков ошибок CAN модуль может находиться в состоянии:
• активной ошибки;
• пассивной ошибки;
• отключен от шины.
С помощью BTL осуществляется контроль линейного входа шины: обра-
батывается состояние шины и выполняется синхронизация бита с коррекцией
временных интервалов согласно CAN-протоколу. BTL синхронизируется при
переходе
от “recessive” к “dominant” биту. Синхронизация производится из-
менением программируемых временных сегментов битового интервала для
компенсации изменений времени распространения и смещения фазы приня-
того сигнала. Программирование BTL зависит от скорости передачи данных
и физического времени запаздывания сигналов в канале связи.