|
Как лучше организовать протокол (логический) для 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 оттуда и произошёл. Кстати, не удивлюсь, если и модбас оттуда - и протокол и времянки то очень похожи. Только модбас не мультимастерный. А вообще, закладывать модбас в новую разработку, ИМХО это не есть гуд.
|
|
|
|
Сообщений в этой теме
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       Itch Цитата(galjoen @ Feb 25 2010, 16:03) А во... Feb 25 2010, 10:38        galjoen Цитата(Itch @ Feb 25 2010, 13:38) чем не ... Feb 25 2010, 11:08     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
|
|
|