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)
| Состояние | CANH | CANL | Разность |
|---|---|---|---|
| Рецессивное (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 В.
Источники
- 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
- 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; без питания — пассивен для шины
- Microchip. MCP2515 Stand-Alone CAN Controller with SPI Interface (DS20001801K) — разд. 1.0, рис. 1-2: автономный контроллер CAN 2.0B до 1 Мбит/с с SPI; выводы TXCAN и RXCAN подключают к трансиверу (XCVR), который выходит на CANH и CANL
Нашли ошибку?
Смотрите также
- CANCAN_H и CAN_L, терминаторы, кадр, арбитраж, ошибки, тайминг, MCP2515
- TJA1050 и TJA1051Трансиверы CAN на 5 В: выводы, VIO у TJA1051T/3, уровни TXD и RXD, защиты
- MCP2515CAN по SPI: выводы, кварц и скорость, маски и фильтры, режимы
- Доминантный и рецессивный уровниДва состояния шины CAN: кто побеждает, уровни, связь с арбитражем
- Тайм-аут доминантного TXDОтключение передатчика CAN при слишком долгом нуле на TXD
- Изолированный трансиверТрансивер RS-485 или CAN со встроенной развязкой
- CAN-контроллерУзел протокола CAN: кадры, арбитраж, ошибки, битовое время, фильтры