Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Совместимость CAN и RS485
Форум разработчиков электроники ELECTRONIX.ru > Интерфейсы > Форумы по интерфейсам > Controller Area Network (CAN)
Axel
Совместимы ли по уровням драйверы CAN и RS485 (напр SN65HVD230 и SN65HVD10)? К сожалению проверить самому сейчас нет возможности, а ответ нужен... Судя по описаниям, проблем быть не должно, но все же...
MrYuran
по-моему, CAN и RS-485 это протоколы разного уровня, вернее RS-485 вообще не протокол, а интерфейс.
Поэтому говорить о совместимости уровней некорректно.
Можно говорить о реализации протокола CAN посредством интерфейса RS-485
Andy Mozzhevilov
В протоколе CAN есть требование на доминантные и рецессивные уровни. Логический 0 на выходе контроллера CAN должен преобразовываться в доминантный уровень на физической шине, и этот уровень должен уметь пересилить все рецессивные уровни, которые выдают другие передатчики на эту шину. Интерфейс RS485 под это дело не заточен, насколько я знаю.
rezident
Цитата(Axel @ Jun 24 2008, 12:36) *
Совместимы ли по уровням драйверы CAN и RS485 (напр SN65HVD230 и SN65HVD10)? К сожалению проверить самому сейчас нет возможности, а ответ нужен... Судя по описаниям, проблем быть не должно, но все же...
ИМХО в общем случае нет, драйверы не совместимы. В линиях CAN коллизия это штатная ситуация, в линиях RS-485 это аварийная ситуация.
Цитата(MrYuran @ Jun 24 2008, 12:46) *
по-моему, CAN и RS-485 это протоколы разного уровня, вернее RS-485 вообще не протокол, а интерфейс.
Поэтому говорить о совместимости уровней некорректно.
Можно говорить о реализации протокола CAN посредством интерфейса RS-485
Вопрос про драйверы CAN и RS-485 вообще-то.
Axel
Видимо необходимо уточнить вопрос. Речь идет об обмене между двумя устройствами: с одной стороны - "закрытый" девайс с RS485, с другой - доступный для перепрограммирования девайс с контроллером и CAN драйвером. Логику обмена можно реализовать, дергая пинами, коллизий в этой ситуации можно избежать, вопрос только в электрической совместимости.
Andy Mozzhevilov
Цитата(Axel @ Jun 24 2008, 13:40) *
Видимо необходимо уточнить вопрос. Речь идет об обмене между двумя устройствами: с одной стороны - "закрытый" девайс с RS485, с другой - доступный для перепрограммирования девайс с контроллером и CAN драйвером. Логику обмена можно реализовать, дергая пинами, коллизий в этой ситуации можно избежать, вопрос только в электрической совместимости.

Ваше уточнение внесло ещё большую путаницу.
Что значит "закрытый".
Кто будет дергать пинами? Нужно CAN драйвером сделать эмуляцию протокола для RS485, программно дергая ногами CAN контроллера?
Axel
Цитата(Andy Mozzhevilov @ Jun 24 2008, 11:58) *
Что значит "закрытый".


"Закрытый" - доступный только для обмена, но не для модификации (в отличие от другого, программу которого можно модифицировать).

Цитата(Andy Mozzhevilov @ Jun 24 2008, 11:58) *
Нужно CAN драйвером сделать эмуляцию протокола для RS485, программно дергая ногами CAN контроллера?


Именно так.
Andy Mozzhevilov
Цитата(Axel @ Jun 24 2008, 14:13) *
Именно так.

Электрически в этом случае наверное должно получиться.
Axel
Спасибо всем откликнувшимся, попробую...
navy2000
Есть еще одна тонкость. В RS-485 линии A и B обе "гуляют" от нуля до питания, а в CAN от половины питания до нуля или питания. Точнее, CANH - Vcc/2 Vcc, CANL Vcc/2 GND. Определение состояния на приеме происходит по разнице (очень упрощенно) данных уровней. Чувствительность у приемников может быть разная, и при большой длинне линий и/или высокой скорости данные могут читаться не корректно.
Имею в виду только Phi-уровень, про CAN-кие прибамбасы в пакетах и скоростях опускаю, так как понял из вопроса там CAN как таковой использоваться не будет.
spf
Цитата(navy2000 @ Jun 28 2008, 21:28) *
Чувствительность у приемников может быть разная, и при большой длинне линий и/или высокой скорости данные могут читаться не корректно.

Где такое написано и что такое "Чувствительность у приемников"?
Для каждого физического уровня микросхемы делаются по одному документу - уровни у них одинаковые.
navy2000
Цитата
Для каждого физического уровня микросхемы делаются по одному документу - уровни у них одинаковые.

Речь шла о физической совместимости CAN и RS485 приемопередатчиков. То есть, будет ли RS-485 приемник стабильно принимать сигнал от CAN-передатчика и наоборот. Так вот, в состоянии, CAN не активен обе линии CANH и CANL будут с потенциалом Vcc/2, а для RS-485 приемника - это нестабильное состояние, поэтому там линии A и B "растягивают" к питанию и земле. Получаем электрический конфликт. Передатчик тянет линии к одному потенциалу, а приемник к другому. Это может привести к получению ложных бит на приеме в отсутствии передачи или установке доминанты на CAN-передатчике (что, в условиях нормального CAN-контроллера привело бы к BusOff).
Цитата
и что такое "Чувствительность у приемников"?

Для приемника RS-485 стандартом описано пороговая характеристика −200мВ до +200мВ
При этом, для передатчика:
|Uвых|=1,5:5,0В (не <1,5В и не >6,0В);
состояние логической «1»: Ua больше Ub (Реально Ua=Vcc, Ub=GND) — MARK, OFF;
состояние логического «0»: Ua меньше Ub (Реально Ub=Vcc, Ua=GND) — SPACE, ON;
Для CAN приемника (например SN65HVD234) типовое значение 100мВ, то есть при этой разнице будет определено доминантное состояние.
Хочу уточнить. Сам, я таких опытов не проводил. В таком соединении не вижу смысла. Я лишь высказываю свои сомнения автору темы. Чтоб не упустил при проектировании и осмыслил.
j2j2j2
Цитата(navy2000 @ Jun 30 2008, 11:04) *
Речь шла о физической совместимости CAN и RS485 приемопередатчиков. То есть, будет ли RS-485 приемник стабильно принимать сигнал от CAN-передатчика и наоборот.


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

dangiz
Цитата(j2j2j2 @ May 18 2012, 08:54) *
Приведу пример такой реализации [/url], а вот и схема адаптации уровней. Проверено, работает со счетчиками Меркурий.

Схема vlad rusanov, на которую ссылается j2j2j2,

скорее всего работоспособна только для односторонней передачи от прибора с интерфейсом CAN к устройству с интерфейсом RS-485. Действительно, с помощью подтягивающих резисторов можно физический уровень рецессии исказить так, что на входе компаратора RS-485 возникнет разность потенциалов между "А" и "В" порядка 0,25 - 0,27 В, что будет воспринято контроллером RS-485 как "1". Соответственно доминанта даст разность потенциалов -5 В, означающую "0". При необходимости передать что-либо прибору с интерфейсом CAN по линии с интерфейсом RS-485 по способу vlad rusanov уже ничего не получиться. Доминанта, конечно, пройдет, но вот рецессия никак. Отсюда вывод: заманчивая дешевизна использования модемов с интерфейсом RS-485 для удаленного контроля и управления электросчетчиков с интерфейсом CAN не катит. Увы, необходимо использовать квалифицированные модемы, разработанные под этот интерфейс, либо, что более хлопотно, применять конверторы интерфейсов и преобразователи линии, специально созданные под эти задачи.


Velund
На самом деле вопросы там есть... CAN трансивер должен уйти в защиту шины, если слишком долго держится доминанта. При низких скоростях с RS485 в эту ситуацию можно попасть на некоторых сочетаниях данных.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.