Прием пакетов данных (CAN(1|2)_RCV)

     
в палитре на схеме

Блок использует прерывания процессора при получении пакета данных по сети CAN.

Входы

  • Initcan – порт подключения выхода блока инициализации CAN контроллера.

Выходы

  • Data0 – данные, полученные по сети CAN, размер uint32_t;
  • Data1 – данные, полученные по сети CAN, размер uint32_t;
  • Dlc – размер данных в пакете, максимальный размер Data0 + Data1, может быть равен 8 байт;
  • Newdata – флаг имеет значение 1 в том случае, если пришел пакет с данными; 0 - если данных нет;
  • Can_status – статус CAN контроллера.

Свойства:

  • Перезапись приемного буфера – OVER_WRITE - в буфере может быть включено разрешение перезаписи принятого сообщения. Если принимаемое сообщение не может быть сохранено в свободный буфер, то оно может быть сохранено в буфер с ранее полученным сообщением, если для него выставлен бит OVER_EN. При этом выставляется флаг OVER_WR. Таким образом, если у буфера разрешена перезапись принятых сообщений, после прочтения сообщения необходимо проверить флаг OVER_WR. Если он выставлен в 1, то необходимо сбросить OVER_WR (не сбрасывая флаг RX_FULL), затем еще раз прочесть сообщение, после чего снова проверить флаг OVER_WR и, если он не выставлен повторно, то сбросить флаг RX_FULL. И считанное значение считать корректным. По умолчанию - DISABLE.
  • Фильтр ID – FILTER_ID - для уменьшения затрат процессорного ядра на обработку принимаемых сообщений, контроллер CAN интерфейса может автоматически фильтровать принимаемые сообщения. По умолчанию - 0.
  • Маска – MASK_ID - вторая часть фильтра. По умолчанию - 0.
  • Номер буфер – NUM_BUF - Номер буфера для приема пакета с данными. По умолчанию - 0.

Параметры

нет