Перейти к содержанию

CAN-трансивер

Микроконтроллер с CAN, MCP2515 или TWAI в ESP32 знает протокол, но не умеет работать с самой шиной: у него логические выводы TX и RX, а шина — это витая пара с дифференциальным сигналом. Между ними всегда стоит CAN-трансивер.

Обновлено Редакция GAW

CAN-трансивер (CAN transceiver) — микросхема физического уровня, которая соединяет контроллер протокола CAN с шиной. Со стороны контроллера у неё логические выводы TXD и RXD, со стороны шины — дифференциальные CANH и CANL. Трансивер переводит логический ноль на TXD в доминантное состояние шины и обратно сообщает контроллеру, что на шине (NXP TJA1050).

Контроллер и трансивер

РольЧто делаетПримеры
Контроллер CANкадры, CRC, арбитраж, фильтры, повторыMCP2515, bxCAN в STM32, TWAI в ESP32
Трансивер CANдифференциальные уровни, защита, приём с шиныTJA1050, TJA1051

Microchip показывает типовую систему так: микроконтроллер по SPI — MCP2515 — трансивер — шина CANH/CANL (DS20001801K, рис. 1-2).

Уровни на шине (TJA1050)

СостояниеCANHCANLРазность
Рецессивное (TXD = 1)2,0–3,0 В2,0–3,0 Воколо 0
Доминантное (TXD = 0)3,0–4,25 В0,5–1,75 В1,5–3,0 В при нагрузке 42,5–60 Ом

Приёмник считает шину доминантной при разности выше порога 0,5–0,9 В и работает при синфазном напряжении −12…+12 В. Подробно о состояниях — в термине «Доминантный и рецессивный уровни».

Что ещё умеет трансивер

  • Защита. Ограничение тока при замыкании CANH или CANL, тепловая защита около 165 °C (TJA1050).
  • Тайм-аут TXD. Если TXD «залип» в нуле, трансивер отключает передатчик — см. тайм-аут доминантного состояния.
  • Режим silent. Передатчик выключен, приём работает — для контроллера, который может нарушить обмен (TJA1050, вывод S).
  • Скорость и уровни. TJA1050 — до 1 Мбит/с, TJA1051 — тайминги до 5 Мбит/с в фазе данных CAN FD и вывод VIO для логики 3–5 В.

Общие правила шины — в статье «CAN».

Не путать

С трансивером RS-485: похожая роль и дифференциальная пара, но в CAN доминантный бит «перебивает» рецессивный, на чём построен арбитраж, а в RS-485 одновременно передавать может только один узел.

Частые вопросы

Чем CAN-трансивер отличается от CAN-контроллера?

Контроллер — например, MCP2515 или модуль CAN внутри микроконтроллера — реализует протокол: собирает кадры, считает CRC, ведёт арбитраж и фильтрацию. Трансивер — физический уровень: превращает логический сигнал TX контроллера в дифференциальное напряжение на CANH и CANL и обратно. Microchip на схеме системы ставит их последовательно: МК — MCP2515 — трансивер — шина (DS20001801K, рис. 1-2).

Можно ли соединить два микроконтроллера по CAN без трансиверов?

Протокол CAN требует, чтобы узел видел шину во время передачи — иначе не работают арбитраж и подтверждение. Трансивер это обеспечивает. Без него нет дифференциального сигнала, защиты от замыканий и синфазного диапазона −12…+12 В, как у TJA1050; на длинном проводе такое соединение не будет работать надёжно (наш вывод).

Какой трансивер ставить к микроконтроллеру на 3,3 В?

Тот, что допускает такие уровни логики. Например, у TJA1051T/3 и TJA1051TK/3 есть вывод VIO: его подключают к питанию микроконтроллера 3–5 В, и уровни TXD, RXD и S подстраиваются под уровни микроконтроллера, а сам трансивер питается от VCC 4,5–5,5 В (NXP TJA1051, разд. 7.3). Версии без VIO рассчитаны на 5-вольтовую логику. TJA1050 рассчитан на питание 4,75–5,25 В.

Источники

  1. NXP (Philips). TJA1050 High speed CAN transceiver, product specification (22 October 2003) — интерфейс между контроллером протокола CAN и физической шиной, 60 кбит/с … 1 Мбит/с, ISO 11898; рецессивное напряжение CANH и CANL 2,0–3,0 В (тип. 2,5); доминантное CANH 3,0–4,25 В, CANL 0,5–1,75 В; дифференциальное при нагрузке 42,5–60 Ом 1,5–3,0 В; порог приёмника 0,5–0,9 В, гистерезис 50–100 мВ; синфазный диапазон −12…+12 В; ограничение тока КЗ, тепловая защита около 165 °C; режим silent (вывод S); тайм-аут доминантного TXD
  2. NXP. TJA1051 High-speed CAN transceiver, product data sheet Rev. 9 (28 November 2017) — тайминги до 5 Мбит/с в фазе данных CAN FD; вывод VIO у TJA1051T/3 и TJA1051TK/3 — прямое подключение к микроконтроллерам 3–5 В; отключение от шины при пониженном VCC или VIO; без питания — пассивен для шины
  3. Microchip. MCP2515 Stand-Alone CAN Controller with SPI Interface (DS20001801K) — разд. 1.0, рис. 1-2: автономный контроллер CAN 2.0B до 1 Мбит/с с SPI; выводы TXCAN и RXCAN подключают к трансиверу (XCVR), который выходит на CANH и CANL

Нашли ошибку?