Главная » Электроника » Двунаправленный усилитель CAN шины
Двунаправленный усилитель CAN шины

Двунаправленный усилитель CAN шины

Я уже рассматривал возможность построения двунаправленного усилителя (репитера) для CAN шины на специализированных микросхемах. Какие-же еще есть способы? Читайте дальше!

Узел двунаправленного усилителя может быть реализован несколькими различными путями.

Применение микроконтроллера для CAN репитера

Путь первый — применение микроконтроллера. Подробно рассматривать не буду, т.к. для решения задачи берется микроконтроллер с двумя CAN контроллерами и получается что-то похожее на рис. 1:

CAN репитер на MCU

Рис. 1. CAN репитер на микроконтроллере.

Преимущества данного решения:

  • возможность вести прием или передачу сообщений одновременно по двум CAN шинам;
  • возможность буферирования большого кол-ва информации в памяти МК и построения очереди сообщений по приоритету;
  • возможность активно запрашивать состояние данного узла с пульта, штрекового ПК;
  • возможность блокировать неисправный сегмент и сообщать о нем оператору на пульт или штрековый ПК;
  • увеличение скорости передачи данных внутри сегмента.

Недостатки данного решения:

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

Напоминаю, что применение специальных микросхем было рассмотрено в одной из предыдущих статей по ссылке //pro-diod.ru/article/can-repiter.html.

Два приемопередатчика с дополнительной логикой управления

Рассмотрим сигналы в дифференциальной CAN шине и TTL уровни интерфейса CAN.

Сигналы CAN

Рис. 2. Сигналы CAN шины

“0” является доминантным, “1” – рецессивной. Это означает, что при появлении в дифференциальной линии бита “0” от одного приемопередатчика и бита “1” от другого приемопередатчика на линии будет бит “0”. На выходе приемопередатчика будет бит “0”. Поскольку приемопередатчик принимает им самим же передаваемые биты, то в режиме передачи, биты на TTL выходе всегда будут соответствовать битам на TTL входе. В режиме приема на TTL входе необходимо установить “1”. Таким образом, невозможно просто соединить два приемопередатчика TTL входами/выходами, т.к. это приведет к защелкиванию на доминантном бите.

Защелкивание CAN

Рис. 3. Схема включения двух CAN приемопередатчиков приводящая к защелкиванию

Поэтому необходимо на внешней логике реализовывать схему определения направления передачи данных. Работа схемы заключается в том, чтобы при появлении бита “0” на TTL выходе первого сегмента подать его на TTL вход второго сегмента, но не допустить появление нулевого бита на TTL входе первого сегмента. Иначе говоря, при появлении бита “0” на TTL выходе одного из сегментов, на TTL входе этого же сегмента необходимо установить бит “1”. Ключевой элемент – шинный усилитель 74AC244 с тремя состояниями на выходе. Схема базового решения показана на рис. 4.

Репитер CAN на шинном усилителе

Рис. 4. Репитер CAN на шинном усилителе 74AC244.

Контроль отказа сегментов CAN шины

Контроль сегментов CAN шины производится контролем длительности активных битов. Можно предположить, что активные биты, в отличие от рецессивных, не могут превышать некоторую длительность. Например, 0,01 сек. таким образом, при появлении активного бита длительностью более 0,01 сек на одном из сегментов необходимо перестать транслировать этот бит в другой сегмент. Если сбойная шина поменяла свое состояние, и бит стал рецессивным, считаем, что сбойный сегмент восстановился. Схема цепи защиты показана на рис. 5:

Цепь защиты

Рис. 5. Цепь защиты CAN сегмента

Время отключения сбойного сегмента зависит от цепи R1C1, время возобновления связи с сегментом после его восстановления зависит от цепи R2C1.

Но все что было описано выше — это теоретические догадки, где же реальная схема? А реальную схему CAN репитера с гальванической развязкой можно скачать в формате PDF:

Canrepeater
Canrepeater
canrepeater.pdf
99.5 KiB
343 Downloads
Детали

Как показала практика, понять схему с «наскока»  получается не у всех людей, поэтому привожу упрощенную схему, позволяющую понять принцип работы CAN репитера на микросхемах общей логики:

Принцип работы схемы репитера CAN

Рис. 6. Принцип работы схемы репитера CAN

Для остановки канала необходимо, чтобы цепи защиты (сброса) сгенерировали логическую “1”.

Цепь сброса по питанию осуществляет начальную установку схемы.

Цепь слежения за сбоем сегмента – отключает сегмент, если доминантный бит более 0,1 сек.

Цепь слежения за конфликтами – кратковременно отключает оба сегмента, если на TTL входах обеих приемопередатчиков логический “0”.

Диоды обеспечивают небольшую задержку сигнала.

Цепи контроля и сброса показаны на рис. 7

Цепи контроля и сброса сегментов CAN шины

Рис. 7. Цепи контроля и сброса

Схема была собрана и испытана. Выводы по схеме:

Схема работает стабильно на любых разумных скоростях обмена данными.
Проверено на длинной линии, работает стабильно, результаты по скорости передачи близки к результатам без устройства.

Вопросы и предложения — в комментариях к статье!

Метки:: ,

7 Отзывы Ваш отзыв

  1. Ballamoon #

    Блин, зачем такая сложная схема can хабу? Проще нет?

    • Мне когда-то в официальном описании CAN шины попадалась схема на стандартной логике, там описывался многопортовый хаб на 2, 3, 100, n шин включенных звездой. Схема простая, но без каких-либо защит. Направление поиска дал, если сам найду — выложу.

  2. Сергей #

    ссылку на схему CAN-repeater-a обновите. Ссылка мертвая.

    • Спасибо, поправил!
      После смены хостинга WP-Filebase глюкает страшно.

  3. crackintosh #

    Нет. не получилось, всё равно ссылка мертва: //pro-diod.ru/?wpfb_dl=20

  4. crackintosh #

    Оперативно… Спасибо! поправьте остальные ссылки если возможно тоже.

Описание характеристик на сайте http://www.psc-cp.com/info/info_comp_045.php поможет с выбором принтера

Ваш отзыв