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

Помогите определиться с интерфейсом

Вы плохо знаете эзернетовскую матчасть. При обнаружении коллизии передача данных тут же прекращается. Никто не ждет, пока пройдет весь пакет. Да и коллизия может возникнуть только в начале пакета (ведь все абоненты слушают, а не началась ли чужая передача, и если началась, то не начинают свою).

 

Кроме того, эзернет на общей шине давно мертв.

Согласен. Я плохо знаю эзернет. Давным-давно попробовал и понял, что реалтайма от эзернета добится не получится, с тех пор и забросил т.к. все задачи у меня с жёстким реалтаймом связаны. А вот насчёт общей шины я не знал... Я считал, что до сих пор хабы пакеты во все стороны передают. Раньше ведь так было? Т.е. хоть шина и не общая, но везде кол-во пакетов одинаковое. Разве не так? Кстати не подскажете где бы про нынешнее состояние эзернета почитать?

Простите за оффтоп.

Но вот в случае мультимастерности на RS485 смысла в преамбулах я не вижу. Т.е. я имел ввиду, что сам пакет (он д.б. достаточно коротким) будет играть роль преамбулы.

...

Ожидания тоже не будет т.к. если пакет по црц не прошел, он игнорируется и ждется следующий, т.к. перезапраивать предидущий нет смысла.

...

"Ожидания не будет т.к. ждётся следующий" - несколько противоречиво...

1. Что будет делать ведущий RS485 после того, как он отправил ведомому пакет?

2. По каким признакам ведущий сможет узнать был-ли пакет отброшен ведомым т.к. CRC не совпало или ведомый просто сдох?

3. Если один из ведомых на некоторое время сдох, а потом опять заработал (например ватчдог перезапустил его процессор) восстановится ли связь с ним в вашем случае?

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


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

Т.е. хоть шина и не общая, но везде кол-во пакетов одинаковое. Разве не так?

 

Давно не так. Свичи коммутируют пакеты только туда, куда надо. Если это конечно не широковещательные пакеты.

 

Кстати не подскажете где бы про нынешнее состояние эзернета почитать?

 

Дык хоть в закромах, хоть в инете берете комплект стандартов IEEE802.3 и курите до состояния дзен :)

 

Это для начала.

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


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

"Ожидания не будет т.к. ждётся следующий" - несколько противоречиво...

1. Что будет делать ведущий RS485 после того, как он отправил ведомому пакет?

2. По каким признакам ведущий сможет узнать был-ли пакет отброшен ведомым т.к. CRC не совпало или ведомый просто сдох?

3. Если один из ведомых на некоторое время сдох, а потом опять заработал (например ватчдог перезапустил его процессор) восстановится ли связь с ним в вашем случае?

 

1. Зависит от типа ведомого) Если от ведомого данные не нужны, то передавать следующему.

Если нужны данные от ведомого(а это зависит от его типа определенного при "энумерации" при запуске системы)

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

 

2. Ну просто сдох это как-то не тривиально =) Но вообще в каждом ведомом будет структура типа отладочная, отдельно запрашиваемая, в которую каждый ведомый заносит свое кол-во ошибок црц, оверфлов, может что-то еще.. И сдохший находится т.к. он ее вообще не выдаст) Как также находится и например плохо обжатый провод по большому кол-у ошибок относительно первых ведомых в сети.

Да, это в компутер выводится.. Как собственно и данные в\из сети.

 

3. Ну а что ей мешает восстановиться? Скорость общего опроса конечно упадет за счет таймаутов пока проц будет заново инициализироваться, но это же не нормальный режим работы а просто как крайний вариант - сброс по вачдогу и постоянно он не должен срабатывать..

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


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

Кроме того, эзернет на общей шине давно мертв.

А что стандарт уже отменили ? Я почему-то уверен, что нет - ставь хаб и пользуй общую шину в полный рост.

 

 

Можно поподробнее про конци и хаб? ) Зачем это нужно и что куда обьединять?

Топология - звезда на RS422, один конец от каждого девайса заводится на хаб, где они и объединяются в общую шину. Другой вариант - объединяются все TX слейвов на RX мастера и RX слейвов на TX мастера.

 

 

Давным-давно попробовал и понял, что реалтайма от эзернета добится не получится

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

 

Я считал, что до сих пор хабы пакеты во все стороны передают.

Хабы передают. Свитчи - не передают.

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


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

А что стандарт уже отменили ? Я почему-то уверен, что нет - ставь хаб и пользуй общую шину в полный рост.

 

Во-первых попробуйте сейчас найти хаб. Во-вторых, у обычного свича можно переполнить таблицу маков или отключить обучение и перевести его в такой режим, но, черт возьми, зачем???

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


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

Топология - звезда на RS422, один конец от каждого девайса заводится на хаб, где они и объединяются в общую шину. Другой вариант - объединяются все TX слейвов на RX мастера и RX слейвов на TX мастера.
Вообще-то такая схема подключения обычно называется "4-х проводный RS485", а не RS422. Отличие в том, что передатчики ведомых всегда выключены, включаются только на время передачи и поэтому не создают коллизию на приемной шине мастера, как это было бы в случае RS422. Не нужно забывать, что RS422 для соединения точка-точка предназначен.

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


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

Во-первых попробуйте сейчас найти хаб.

Вот проблема, для электронщика.

 

 

Вообще-то такая схема подключения обычно называется "4-х проводный RS485", а не RS422. Отличие в том, что передатчики ведомых всегда выключены, включаются только на время передачи и поэтому не создают коллизию на приемной шине мастера, как это было бы в случае RS422. Не нужно забывать, что RS422 для соединения точка-точка предназначен.

Вы, видимо, совсем неправильно поняли. Соединение точка-точка, поэтому я пишу RS422, а не RS485, все передатчики всегда включены, а общая шина получается внутри хаба, за трансиверами. Второй вариант - трансивер мастера подключается наоборот. Аплинк, если хотите.

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


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

Соединение точка-точка, поэтому я пишу RS422, а не RS485, все передатчики всегда включены, а общая шина получается внутри хаба, за трансиверами.
Пока представляю только ненужную сущность - какой-то хаб. Если немного подумать, то можно и без него обойтись, визуально имея соединение "звезда", а физически одну линию. Только заглушки для неиспользуемых линков нужны. По-моему в какой-то ветке мы с вами это уже обсуждали? :cranky:

Второй вариант - трансивер мастера подключается наоборот. Аплинк, если хотите.
Т.е. данные ретранслируются до тех пор, пока не нужно вставить кадр со своей собственной информацией? Хм. Тоже вариант. :laughing:

Только в обоих случаях для связи как минимум четыре провода нужны. Конечно если расстояния небольшие, то это не принципиально.

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


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

Только заглушки для неиспользуемых линков нужны

Если бы только. В общем, решение - по совокупности всех ограничений. Если рассматривать каждое ограничение отдельно, то будут другие решения. Повторяться почему так не буду - все в "тех" двух ветках.

 

Т.е. данные ретранслируются до тех пор, пока не нужно вставить кадр со своей собственной информацией? Хм. Тоже вариант.

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

 

Только в обоих случаях для связи как минимум четыре провода нужны. Конечно если расстояния небольшие, то это не принципиально.

Что вы, в самом деле, на четыре провода еще поискать придется. Проще найти на восемь. А на два - так вообще экзотика. Если только не гоните сотню-другую пар одновременно. Но это совсем другая история.

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


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

Если я правильно понял, то тут уже до эстафеты дообсуждались. Тогда рекомендую в качестве разъёмов использовать плинты - заглушки не нужны.

 

А вообще драйвер CAN стоит одинаково с драйвером RS422. Так что никаких преимуществ. А вот почему USART с драйверами CAN широкого распостранения не получил лично я не понимаю. М.б. это из-за отсутствия стандарта? Так давайте подумаем о стандарте. Или это лучше в оффтопе делать?

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


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

Вот проблема, для электронщика.

 

Шутите? Витуху на резисторном мосту соединять? Смысл??? 8мипортовый свич стоит менее $10 в любом ларьке.

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


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

Шутите? Витуху на резисторном мосту соединять?

Совсем не так. Несклько чипов, трансов, разъемов, блок питания...

 

 

А вообще драйвер CAN стоит одинаково с драйвером RS422.

Разница в цене с RS422 в два-четыре раза.

А если делать дуплексную передачу, то потребуется два драйвера CAN. Так тоже делал. После непродолжительного рассмотрения собранной платы пришел к выводу, что это как минимум неэстетично. Извращение, короче.

 

 

8мипортовый свич стоит менее $10 в любом ларьке.

Да, кстати, поднять эзернет было бы весьма неплохо - решение практически полностью соответсвует всем ограничениям. Для полного счастья не хватает только чипа уарт-эзернет.

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


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

Несклько чипов, трансов, разъемов, блок питания...

 

Найдите сейчас ядра хабов в виде Ваших "нескольких чипов".

 

Забудьте уже про хабы. Считайте, что их нет.

 

Да, кстати, поднять эзернет было бы весьма неплохо - решение практически полностью соответсвует всем ограничениям. Для полного счастья не хватает только чипа уарт-эзернет.

 

Ну, во-первых есть X-Port. Правда, это не очень бюджетно.

Во-вторых - есть WizNet. Дешевле. Стек реализован прямо в нем.

В-третьмх - есть всякие чипы аля ENC28J60 (или новые Micrel'овские). Тут уже стек внутри проца надо делать. Но цена еще ниже.

В-четвертых, на форуме я выкладывал дешевое решение озернечивания устройства. Там разговор идет о единицах долларов на все - т.е. сравнимо по цене с RS485.

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


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

Забудьте уже про хабы. Считайте, что их нет.

Почему же ? Есть объективные причины считать, что они есть. Детерминированный реалтайм, например.

 

Ну, во-первых есть X-Port. Правда, это не очень бюджетно.

Во-вторых - есть WizNet. Дешевле. Стек реализован прямо в нем.

По таким ценам можно считать, что их и нет. Не нужно, как минимум.

 

В-четвертых, на форуме я выкладывал дешевое решение озернечивания устройства. Там разговор идет о единицах долларов на все - т.е. сравнимо по цене с RS485.

Вкратце ?

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


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

Детерминированный реалтайм, например.

 

Да сколько уже можно носиться с этим жупелом под названием "реалтайм". Допустим, пакет будет битый. Че делать-то? Время подошло, а данных нет. Какой же тут реалтайм?

 

Вкратце?

 

http://electronix.ru/forum/index.php?showtopic=44276

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


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

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

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

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

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

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

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

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

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

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