Типы сообщений сети CAN

Топология сети CAN.

Каждый узел образован собственно CAN контроллером, который обеспечивает взаимодействие с сетью и реализует протокол, и микропроцессором (CPU). CAN контроллеры соединяются с помощью дифференциальной шины, которая имеет две линии - CAN_H (can-high) и CAN_L (can-low), по которым передаются сигналы. Логический ноль регистрируется, когда на линии CAN_H сигнал выше, чем на линии CAN_L. Логическая единица – когда сигналы CAN_H и CAN_L одинаковы (отличаются менее чем на 0.5 В). Использование дифференциальной схемы передачи делает возможным работу CAN сети в сложных внешних условиях.

Логический ноль – доминантный бит, логическая единица – рецессивный. При одновременной передаче в шину лог. "нуля" и "единицы", на шине будет зарегистрирован логический ноль (доминантный сигнал), а логическая единица будет подавлена (рецессивный сигнал).

Когда шина свободна CAN-сообщение может быть передано любым узлом системы (мультимастерность). Эта особенность позволяет эффективно поддерживать передачу сообщений, ориентируемую на события.

Данные в CAN передаются короткими сообщениями-кадрами стандартного формата. В CAN существуют четыре типа сообщений:

  • Data Frame
  • Remote Frame
  • Error Frame

· Overload Frame

Data Frame – наиболее часто используемый тип сообщения; состоит из следующих основных частей:

поле арбитража (arbitration field) определяет приоритет сообщения в случае, когда два или более узлов одновременно пытаются передать данные в сеть.

Поле арбитража состоит в свою очередь из:

11-битного идентификатора + 1 бит RTR (retransmit) – для стандарта CAN-2.0A,

29-битного идентификатора + 1 бит RTR (retransmit) – для стандарта CAN-2.0B.

Каждое сообщение снабжается идентификатором, который определяет назначение передаваемых данных, но не адрес приемника. Отметим, что поле идентификатора никак не идентифицирует ни узел в сети, ни содержимое поля данных. Любой приемник может реагировать как на один идентификатор, так и на несколько. На один идентификатор могут реагировать несколько приемников.

- поле данных (data field) содержит от 0 до 8 байт данных

- поле CRC (CRC field) содержит 15-битную контрольную сумму сообщения, которая используется для обнаружения ошибок

- слот подтверждения (Acknowledgement Slot) (1 бит), каждый CAN-контроллер, который правильно принял сообщение посылает бит подтверждения в сеть. Узел, который послал сообщение слушает этот бит, и в случае если подтверждение не пришло, повторяет передачу. В случае приема слота подтверждения передающий узел может быть уверен лишь в том, что хотя бы один из узлов в сети правильно принял его сообщение.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: