|
Как лучше организовать протокол (логический) для RS-485 |
|
|
|
 |
Ответов
|
Feb 22 2010, 15:42
|
Вечный студент
   
Группа: Участник
Сообщений: 500
Регистрация: 11-09-06
Из: Питер
Пользователь №: 20 262

|
Цитата(rezident @ Feb 22 2010, 17:53)  Первый весьма замороченный, т.к. требует постоянной прослушки линии всеми устройствами сети и передачи маркеров по которым устройства имеют право занять линию для передачи. Основная сложность в том, что RS485 не имеет штатных аппаратных средств для детектирования и "разруливания" коллизий. Цитата(Сергей Борщ @ Feb 22 2010, 17:05)  А как он узнает, что в этот момент канал свободен и он своей передачей никому не помешает? Цитата(Diusha @ Feb 22 2010, 12:15)  Если случайно 2 периферийных пошлют одновременно, то контрольная сумма не совпадет -> не будет подтверждения -> повтор. Дело в том, что передачи относительно редки => вероятность коллизии невысока. Коллизии разрулятся с помощью контрольной суммы. Прослушивать ничего не надо. 2-й вариант смущает тем, что линию придется держать занятой на несколько порядков бóльшее время (лишние помехи), т.к. главный должен получить данные быстро => запросы придется слать с большой частотой. Цитата(rezident @ Feb 22 2010, 17:53)  Если вам нужен именно первый вариант, то переходите на CAN. САN - в следующий раз, сейчас железо сделано под 485 Какие будут советы в свете моих уточнений? Может есть еще какой-нибудь 3-й вариант?
|
|
|
|
|
Feb 24 2010, 13:28
|

Гуру
     
Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095

|
Цитата(Ruslan1 @ Feb 24 2010, 14:31)  Назовите мне модель драйвера RS-485, для которого коллизия является нештатной и который от этого крякнется. Я эту фирму буду обходить стороной.  У Sipex в даташитах специфицирован только ток КЗ по выходу и макс. рассеиваимая мощность корпуса. Про коллизию не нашел ни в одном даташите. Есть защита от КЗ, но это как бы совсем не коллизия. Обходите. Цитата(Ruslan1 @ Feb 24 2010, 14:31)  Как правило в даташите пишут нечто подобное (это из ST485): "Current limiting and thermal shutdown for driver overload protection".
так что производители гарантируют. Согласен, многие гарантируют. И тем не менее: вы считаете, что доводить систему до срабатывания защиты - это нормально? Или вы считаете, что возможные периодические временные отказы связи из-за thermal shutdown - это штатный режим работы системы?
--------------------
На любой вопрос даю любой ответ"Write code that is guaranteed to work, not code that doesn’t seem to break" ( C++ FAQ)
|
|
|
|
|
Feb 25 2010, 05:47
|
Вечный студент
   
Группа: Участник
Сообщений: 500
Регистрация: 11-09-06
Из: Питер
Пользователь №: 20 262

|
Цитата(galjoen @ Feb 24 2010, 13:45)  включите драйвера RS-485 так, чтобы они только 0 передавали, а 1 за счёт резисторных растяжек формировалась. А не знаете, нет ли микосхемки, совместимой по выводам с МАХ485, только с открытым коллектором? Цитата(Ruslan1 @ Feb 24 2010, 15:31)  Назовите мне модель драйвера RS-485, для которого коллизия является нештатной и который от этого крякнется. Я эту фирму буду обходить стороной.  Как правило в даташите пишут нечто подобное (это из ST485): "Current limiting and thermal shutdown for driver overload protection". Из портянки на МАХ485: "Drivers are short-circuit current limited and are protected against excessive power dissipation by thermal shutdown circuit" Провел эксперимент: замкнул А и В. Секунд через 7 микросхема (в ДИПе) нагрелась градусов до 45, дальше температура не росла; thermal shutdown не было; ток 100 мА. Не лучший вариант... Из той же портянки: "The receiver input has a fail-safe feature that guarantees a logic-high output if the input is open circuit." Я правильно понял, имеется в виду, что если линия болтается в воздухе, то "фича гарантирует", что на выходе приемника болтанки не будет? Но тогда непонятно, как фича догадается, что это наводки, а не сигнал?
|
|
|
|
|
Feb 25 2010, 10:03
|
Знающий
   
Группа: Свой
Сообщений: 841
Регистрация: 10-05-07
Из: Чебоксары (Россия)
Пользователь №: 27 640

|
Цитата(Diusha @ Feb 25 2010, 08:47)  А не знаете, нет ли микосхемки, совместимой по выводам с МАХ485, только с открытым коллектором? Это стандартный драйвер CAN. Насчёт совместимости по ногам - смотрите сами. Но так-то ничего не мешает использовать его вместо драйверов RS-485. Всё будет работать абсолютно так-же, только терминаторы в этом случае обязательны. Ещё можно приёмником USART слушать линию во время передачи, и если принятое будет отличаться от переданного - коллизия. Собственно всё так же, как при включении драйверов RS-485 по стандарту J1708 - CAN оттуда и произошёл. Кстати, не удивлюсь, если и модбас оттуда - и протокол и времянки то очень похожи. Только модбас не мультимастерный. А вообще, закладывать модбас в новую разработку, ИМХО это не есть гуд.
|
|
|
|
|
Feb 25 2010, 10:38
|
Местный
  
Группа: Свой
Сообщений: 358
Регистрация: 27-06-06
Из: Новосибирск
Пользователь №: 18 410

|
Цитата(galjoen @ Feb 25 2010, 16:03)  А вообще, закладывать модбас в новую разработку, ИМХО это не есть гуд. чем не угодил модбас? для простых устройств самое то, любой студент напишет его на любом контроллере. Цитата Это стандартный драйвер CAN. Насчёт совместимости по ногам - смотрите сами. Но так-то ничего не мешает использовать его вместо драйверов RS-485. Всё будет работать абсолютно так-же, только терминаторы в этом случае обязательны Терминаторы да, обязательны. Нетерминированый отрезок кабеля в 50м намертво убивал передачу на 19200.
|
|
|
|
|
Feb 25 2010, 11:08
|
Знающий
   
Группа: Свой
Сообщений: 841
Регистрация: 10-05-07
Из: Чебоксары (Россия)
Пользователь №: 27 640

|
Цитата(Itch @ Feb 25 2010, 13:38)  чем не угодил модбас? для простых устройств самое то, любой студент напишет его на любом контроллере. Вот и тянется эта фигня год за годом... Потом, ради совместимости, приходится такую же фигню делать. Ну никаких преимуществ у модбаса нет, кроме простоты реализации. Да и это преимущество весьма относительно. Кстати можно специальные микросхемы для J1708 использовать. MAX3444, например. Только дорогие они, но зато защищены всеми возможными способами (автоэлектроника). Они по ногам со стандартным драйвером RS-485 совместимы, только вход DE у них инверсный. Подключил туда провод вместо (можно и параллельно) DI и всё. А переключатель направления передачи в этом случае не нужен.
|
|
|
|
Сообщений в этой теме
Diusha Как лучше организовать протокол (логический) для RS-485 Feb 22 2010, 09:15 ASN Diusha
Второй способ используем достаточно давно. ... Feb 22 2010, 10:40  ASN Diusha
Линию в любом случае кто-то должен держать.... Feb 22 2010, 15:50      Ruslan1 Цитата(Diusha @ Feb 25 2010, 07:47) Из по... Feb 25 2010, 07:35     Ruslan1 Цитата(Сергей Борщ @ Feb 24 2010, 15:28) ... Feb 25 2010, 07:12  rezident Цитата(Diusha @ Feb 22 2010, 20:42) Дело ... Feb 22 2010, 17:32 rezident Цитата(Diusha @ Feb 22 2010, 14:15) Вроде... Feb 22 2010, 14:53 Andron_ а гарантированная доставка пакета от периферийного... Feb 22 2010, 17:06 SSerge Не мучайтесь, сделайте Модбас.
Заодно получите воз... Feb 23 2010, 04:40 Diusha Цитата(ASN @ Feb 22 2010, 18:50) Линию в ... Feb 23 2010, 08:04  ASN Diusha
Держать желательно, чтобы не линия "бо... Feb 23 2010, 10:12   Diusha Цитата(ASN @ Feb 23 2010, 13:12) Держать ... Feb 23 2010, 13:34    ASN Diusha
А если длина линии (в смысле ёмкость) больш... Feb 23 2010, 18:23     Diusha Цитата(ASN @ Feb 23 2010, 21:23) IMHO, Ва... Feb 24 2010, 03:46      galjoen Если так боитесь коллизий и скорость передачи у ва... Feb 24 2010, 10:45  rezident Цитата(Diusha @ Feb 23 2010, 13:04) Разру... Feb 23 2010, 13:48   Diusha Цитата(rezident @ Feb 23 2010, 16:48) Хе-... Feb 23 2010, 15:04 Don2 Цитата(Diusha @ Feb 22 2010, 12:15) Вроде... Feb 23 2010, 07:24 stells Цитата(Don2 @ Feb 23 2010, 10:24) можете ... Feb 23 2010, 07:45 bill_vs А сколько устройств на линии по максиму? Может и п... Feb 23 2010, 15:46 Diusha Цитата(bill_vs @ Feb 23 2010, 18:46) А ск... Feb 23 2010, 16:09  bill_vs Цитата(Diusha @ Feb 23 2010, 19:09) ... Е... Feb 23 2010, 17:46 Andron_ тут вот так вот на пальцах можно бесконечно долго ... Feb 23 2010, 16:36 Andron_ 2Ruslan1
Т.о. вы считаете, что система может стро... Feb 25 2010, 07:28 MrYuran Нда...
Как говорится, мы трудностей не боимся.
Не ... Feb 25 2010, 07:55 Andron_ ЦитатаНо с точки зрения программинга упаси Боже Ва... Feb 25 2010, 12:01 Diusha Цитата(Ruslan1 @ Feb 25 2010, 10:35) Не н... Feb 25 2010, 17:40
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|