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

Совместимость CAN и RS485

Совместимы ли по уровням драйверы CAN и RS485 (напр SN65HVD230 и SN65HVD10)? К сожалению проверить самому сейчас нет возможности, а ответ нужен... Судя по описаниям, проблем быть не должно, но все же...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

по-моему, CAN и RS-485 это протоколы разного уровня, вернее RS-485 вообще не протокол, а интерфейс.

Поэтому говорить о совместимости уровней некорректно.

Можно говорить о реализации протокола CAN посредством интерфейса RS-485

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В протоколе CAN есть требование на доминантные и рецессивные уровни. Логический 0 на выходе контроллера CAN должен преобразовываться в доминантный уровень на физической шине, и этот уровень должен уметь пересилить все рецессивные уровни, которые выдают другие передатчики на эту шину. Интерфейс RS485 под это дело не заточен, насколько я знаю.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Совместимы ли по уровням драйверы CAN и RS485 (напр SN65HVD230 и SN65HVD10)? К сожалению проверить самому сейчас нет возможности, а ответ нужен... Судя по описаниям, проблем быть не должно, но все же...
ИМХО в общем случае нет, драйверы не совместимы. В линиях CAN коллизия это штатная ситуация, в линиях RS-485 это аварийная ситуация.

по-моему, CAN и RS-485 это протоколы разного уровня, вернее RS-485 вообще не протокол, а интерфейс.

Поэтому говорить о совместимости уровней некорректно.

Можно говорить о реализации протокола CAN посредством интерфейса RS-485

Вопрос про драйверы CAN и RS-485 вообще-то.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Видимо необходимо уточнить вопрос. Речь идет об обмене между двумя устройствами: с одной стороны - "закрытый" девайс с RS485, с другой - доступный для перепрограммирования девайс с контроллером и CAN драйвером. Логику обмена можно реализовать, дергая пинами, коллизий в этой ситуации можно избежать, вопрос только в электрической совместимости.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Видимо необходимо уточнить вопрос. Речь идет об обмене между двумя устройствами: с одной стороны - "закрытый" девайс с RS485, с другой - доступный для перепрограммирования девайс с контроллером и CAN драйвером. Логику обмена можно реализовать, дергая пинами, коллизий в этой ситуации можно избежать, вопрос только в электрической совместимости.

Ваше уточнение внесло ещё большую путаницу.

Что значит "закрытый".

Кто будет дергать пинами? Нужно CAN драйвером сделать эмуляцию протокола для RS485, программно дергая ногами CAN контроллера?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Что значит "закрытый".

 

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

 

Нужно CAN драйвером сделать эмуляцию протокола для RS485, программно дергая ногами CAN контроллера?

 

Именно так.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Именно так.

Электрически в этом случае наверное должно получиться.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Есть еще одна тонкость. В RS-485 линии A и B обе "гуляют" от нуля до питания, а в CAN от половины питания до нуля или питания. Точнее, CANH - Vcc/2 Vcc, CANL Vcc/2 GND. Определение состояния на приеме происходит по разнице (очень упрощенно) данных уровней. Чувствительность у приемников может быть разная, и при большой длинне линий и/или высокой скорости данные могут читаться не корректно.

Имею в виду только Phi-уровень, про CAN-кие прибамбасы в пакетах и скоростях опускаю, так как понял из вопроса там CAN как таковой использоваться не будет.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Где такое написано и что такое "Чувствительность у приемников"?

Для каждого физического уровня микросхемы делаются по одному документу - уровни у них одинаковые.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для каждого физического уровня микросхемы делаются по одному документу - уровни у них одинаковые.

Речь шла о физической совместимости 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мВ, то есть при этой разнице будет определено доминантное состояние.

Хочу уточнить. Сам, я таких опытов не проводил. В таком соединении не вижу смысла. Я лишь высказываю свои сомнения автору темы. Чтоб не упустил при проектировании и осмыслил.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Речь шла о физической совместимости CAN и RS485 приемопередатчиков. То есть, будет ли RS-485 приемник стабильно принимать сигнал от CAN-передатчика и наоборот.

 

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

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Приведу пример такой реализации [/url], а вот и схема адаптации уровней. Проверено, работает со счетчиками Меркурий.

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

CANvs_RS-485.gif

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

 

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

На самом деле вопросы там есть... CAN трансивер должен уйти в защиту шины, если слишком долго держится доминанта. При низких скоростях с RS485 в эту ситуацию можно попасть на некоторых сочетаниях данных.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...