|
Помогите определиться с интерфейсом, или вероятнее что-то полу-свое? ) |
|
|
|
Mar 2 2009, 23:17
|
Участник

Группа: Свой
Сообщений: 73
Регистрация: 17-10-07
Из: Киев
Пользователь №: 31 422

|
Нужно сделать сеть 1 Мбит, до 20-30 устройств. Топология шина, длинна не более 15м. Думал сначала почти однозначно RS485, но есть и другие идеи =)
Т.к. сеть не большая, хотелось бы обойтись без драйвера одной токовой петлей и, предположим, АТмегой на внутреннем РЦ генераторе 8 МГц. В связи с этим есть идея сделать нечто на СИНХРОННОМ уарте. Использовать шлейф IDC с разьемами в нужных местах, , типа как в ПК шлейф IDE, питание тоже по нему на слейвы подавать. Теперь вопрос =) Нужно ли оно? Какие могут быть проблемы-сложности? Может лучше сделать стандартный рс 485 с витой парой и драйверами и кварцами на слейвах?
Вроде все. Спасибо за внимание )
|
|
|
|
|
 |
Ответов
Guest_@Ark_*
|
Mar 3 2009, 18:40
|
Guests

|
Цитата(galjoen @ Mar 3 2009, 18:58)  В RS485 обычно 90% сообщений типа таких: Ведущий: Ведомый N17, у тебя что-нибудь случилось? Ведомый N17: У меня всё в поряде. И совсем не обязательно организовывать обмен именно таким образом. Можно, например, так: свободна линия и есть, что передавать - передаем, занята - ждем. В посылке можно указывать адрес получателя. Физический уровень RS485 это, вполне, позволяет. В отличие, например, от сдвоенных линий RS422 или прямых соединений UART. И физический конфликт на шине (одновременная передача многими) для RS485, как правило, не приводит к катастрофическим последствиям - выходу из строя драйверов. А вот в случае прямого объединения UART - это не гарантировано. Потом, все таки, RS-485 - стандартное решение, есть готовые драверы... А вот способен ли UART МК "прокачать" 15-ти метровую линию на 1МГц - большой вопрос. И не "собрать" при этом все возможные помехи и наводки.... В общем, на физическом уровне, я бы выбрал RS485, как оптимальный вариант для небольших скоростей обмена по соотношению цена/качество. Конечно, я не совсем объективен, так как, в основном, занимаюсь промэлектроникой. А на программном уровне - останется полная свобода действий. Почему обязательно асинхронный обмен? Можно и синхронный, если есть такое желание. Единственное ограничение - полудуплексный режим обмена...
|
|
|
|
|
Mar 4 2009, 11:48
|
Участник

Группа: Свой
Сообщений: 73
Регистрация: 17-10-07
Из: Киев
Пользователь №: 31 422

|
Цитата(@Ark @ Mar 3 2009, 22:40)  .... В общем, на физическом уровне, я бы выбрал RS485, как оптимальный вариант для небольших скоростей обмена по соотношению цена/качество. Конечно, я не совсем объективен, так как, в основном, занимаюсь промэлектроникой. А на программном уровне - останется полная свобода действий. Почему обязательно асинхронный обмен? Можно и синхронный, если есть такое желание. Единственное ограничение - полудуплексный режим обмена... На этом наверное и остановлюсь. Под синхронным я имел ввиду не обмен, а сам физ уровень тоесть клок+дата =) Но уже от этого отказался. Цитата(galjoen @ Mar 4 2009, 01:02)  К тому-же если в данный момент в сети только 3 устройства, ведущий не будет тратить время на опрос остальных 60-ти. И в сети ОДНОВРЕМЕННО могут находится 64 девайса, а всего их м.б. много больше. Да и за счёт отсутствия собственно пакетов запроса и ожидания (безрезультатного) ответа на них (а м.б. пакет от ведущего был просто повреждён и нужно повторить запрос) ещё трафик уменьшается. Т.е. кругом сплошные преимущества. Кстати мне кажется, что у топикстартера 1 мбод - это многовато. Возможно это как-раз из-за опроса? Не многовато. Из-за опроса. И риалтаймовости. Но устройства которых нет впустую опрашиваться не будут, будет один опрос при старте системы для определения подключенных слейвов. Ожидания тоже не будет т.к. если пакет по црц не прошел, он игнорируется и ждется следующий, т.к. перезапраивать предидущий нет смысла. Кстати спасибо всем ответившим =) Цитата(Огурцов @ Mar 4 2009, 00:56)  В остальных случаях я (бы) выбрал RS422 и объединение всех концов в хабе. Для исходных параметров драйвер обязан быть, витая пара весьма желательна, терминировать концы (485/422) необязательно. Можно поподробнее про конци и хаб? ) Зачем это нужно и что куда обьединять?
Сообщение отредактировал overloaded - Mar 4 2009, 11:45
|
|
|
|
|
Mar 4 2009, 14:31
|
Знающий
   
Группа: Свой
Сообщений: 841
Регистрация: 10-05-07
Из: Чебоксары (Россия)
Пользователь №: 27 640

|
Цитата(Rst7 @ Mar 4 2009, 10:32)  Вы плохо знаете эзернетовскую матчасть. При обнаружении коллизии передача данных тут же прекращается. Никто не ждет, пока пройдет весь пакет. Да и коллизия может возникнуть только в начале пакета (ведь все абоненты слушают, а не началась ли чужая передача, и если началась, то не начинают свою).
Кроме того, эзернет на общей шине давно мертв. Согласен. Я плохо знаю эзернет. Давным-давно попробовал и понял, что реалтайма от эзернета добится не получится, с тех пор и забросил т.к. все задачи у меня с жёстким реалтаймом связаны. А вот насчёт общей шины я не знал... Я считал, что до сих пор хабы пакеты во все стороны передают. Раньше ведь так было? Т.е. хоть шина и не общая, но везде кол-во пакетов одинаковое. Разве не так? Кстати не подскажете где бы про нынешнее состояние эзернета почитать? Простите за оффтоп. Но вот в случае мультимастерности на RS485 смысла в преамбулах я не вижу. Т.е. я имел ввиду, что сам пакет (он д.б. достаточно коротким) будет играть роль преамбулы. Цитата(overloaded @ Mar 4 2009, 14:48)  ... Ожидания тоже не будет т.к. если пакет по црц не прошел, он игнорируется и ждется следующий, т.к. перезапраивать предидущий нет смысла. ... "Ожидания не будет т.к. ждётся следующий" - несколько противоречиво... 1. Что будет делать ведущий RS485 после того, как он отправил ведомому пакет? 2. По каким признакам ведущий сможет узнать был-ли пакет отброшен ведомым т.к. CRC не совпало или ведомый просто сдох? 3. Если один из ведомых на некоторое время сдох, а потом опять заработал (например ватчдог перезапустил его процессор) восстановится ли связь с ним в вашем случае?
|
|
|
|
|
Mar 4 2009, 16:07
|
Участник

Группа: Свой
Сообщений: 73
Регистрация: 17-10-07
Из: Киев
Пользователь №: 31 422

|
Цитата(galjoen @ Mar 4 2009, 18:31)  "Ожидания не будет т.к. ждётся следующий" - несколько противоречиво... 1. Что будет делать ведущий RS485 после того, как он отправил ведомому пакет? 2. По каким признакам ведущий сможет узнать был-ли пакет отброшен ведомым т.к. CRC не совпало или ведомый просто сдох? 3. Если один из ведомых на некоторое время сдох, а потом опять заработал (например ватчдог перезапустил его процессор) восстановится ли связь с ним в вашем случае? 1. Зависит от типа ведомого) Если от ведомого данные не нужны, то передавать следующему. Если нужны данные от ведомого(а это зависит от его типа определенного при "энумерации" при запуске системы) то конечно ждать их с таймаутом, таймауты считать, если больше какого-то количества, то.. Но вообще я больше имел ввиду что устройства, которые не подключены, опрашиваться не будут. И посылаться им запросы тоже(кроме пары раз при запуске). 2. Ну просто сдох это как-то не тривиально =) Но вообще в каждом ведомом будет структура типа отладочная, отдельно запрашиваемая, в которую каждый ведомый заносит свое кол-во ошибок црц, оверфлов, может что-то еще.. И сдохший находится т.к. он ее вообще не выдаст) Как также находится и например плохо обжатый провод по большому кол-у ошибок относительно первых ведомых в сети. Да, это в компутер выводится.. Как собственно и данные в\из сети. 3. Ну а что ей мешает восстановиться? Скорость общего опроса конечно упадет за счет таймаутов пока проц будет заново инициализироваться, но это же не нормальный режим работы а просто как крайний вариант - сброс по вачдогу и постоянно он не должен срабатывать..
|
|
|
|
Сообщений в этой теме
overloaded Помогите определиться с интерфейсом Mar 2 2009, 23:17 @Ark Цитата(overloaded @ Mar 3 2009, 02:17) Ну... Mar 3 2009, 00:16 overloaded Цитата(@Ark @ Mar 3 2009, 03:16) А где се... Mar 3 2009, 02:04  Огурцов Можно еще CAN сделать, на такой длинне. Mar 3 2009, 06:20   overloaded Цитата(Огурцов @ Mar 3 2009, 10:20) Можно... Mar 3 2009, 13:28    galjoen Цитата(overloaded @ Mar 3 2009, 16:28) Мо... Mar 3 2009, 15:58     overloaded Цитата(galjoen @ Mar 3 2009, 19:58) Резко... Mar 3 2009, 17:58     rezident Цитата(galjoen @ Mar 3 2009, 20:58) Резко... Mar 3 2009, 19:09      @Ark Цитата(rezident @ Mar 3 2009, 22:09) Это ... Mar 3 2009, 20:07      galjoen Цитата(rezident @ Mar 3 2009, 22:09) Это ... Mar 3 2009, 21:02 Rst7 ЦитатаЭто не есть недостаток. Ведомый сообщает, чт... Mar 3 2009, 20:12 Огурцов Цитата(Rst7 @ Mar 3 2009, 21:12) Часто ис... Mar 3 2009, 20:56 Rst7 ЦитатаЯ бы даже сказал губительна для реалтайма, т... Mar 4 2009, 07:32 Огурцов Цитата(Rst7 @ Mar 4 2009, 08:32) Кроме то... Mar 4 2009, 17:26  rezident Цитата(Огурцов @ Mar 4 2009, 22:26) Топол... Mar 4 2009, 22:43 Rst7 ЦитатаТ.е. хоть шина и не общая, но везде кол-во п... Mar 4 2009, 14:35 Rst7 ЦитатаА что стандарт уже отменили ? Я почему-то ув... Mar 4 2009, 18:46 Огурцов Цитата(Rst7 @ Mar 4 2009, 18:46) Во-первы... Mar 5 2009, 00:08  rezident Цитата(Огурцов @ Mar 5 2009, 05:08) Соеди... Mar 5 2009, 00:50   Огурцов Цитата(rezident @ Mar 5 2009, 01:50) Толь... Mar 5 2009, 02:05    galjoen Если я правильно понял, то тут уже до эстафеты доо... Mar 5 2009, 05:08 Rst7 ЦитатаВот проблема, для электронщика.
Шутите? Вит... Mar 5 2009, 06:43 Огурцов Цитата(Rst7 @ Mar 5 2009, 07:43) Шутите? ... Mar 5 2009, 10:27  galjoen Цитата(Огурцов @ Mar 5 2009, 13:27) Разни... Mar 5 2009, 15:35   Огурцов Цитата(galjoen @ Mar 5 2009, 15:35) Зачем... Mar 5 2009, 16:09    galjoen Цитата(Огурцов @ Mar 5 2009, 19:09) Мне н... Mar 5 2009, 16:56     Огурцов Цитата(galjoen @ Mar 5 2009, 16:56) Именн... Mar 5 2009, 18:24      galjoen Цитата(Rst7 @ Mar 5 2009, 21:03) Но инфор... Mar 5 2009, 19:51       Огурцов Цитата(galjoen @ Mar 5 2009, 20:51) Так т... Mar 5 2009, 21:25        galjoen Цитата(Огурцов @ Mar 6 2009, 00:25) Вотже... Mar 5 2009, 21:50         Огурцов Цитата(galjoen @ Mar 5 2009, 22:50) Когда... Mar 5 2009, 22:17          galjoen Цитата(Огурцов @ Mar 6 2009, 01:17) Ну по... Mar 5 2009, 22:49           Огурцов Цитата(galjoen @ Mar 5 2009, 22:49) И в с... Mar 5 2009, 23:43            galjoen Цитата(Rst7 @ Mar 6 2009, 11:48) Да забуд... Mar 6 2009, 19:43             Огурцов Цитата(galjoen @ Mar 6 2009, 19:43) 3. Из... Mar 6 2009, 20:03              galjoen Цитата(Огурцов @ Mar 6 2009, 23:03) Любой... Mar 6 2009, 20:36               Огурцов Цитата(galjoen @ Mar 6 2009, 21:36) Откуд... Mar 6 2009, 21:06                galjoen Цитата(Огурцов @ Mar 7 2009, 00:06) Ну ка... Mar 6 2009, 21:26                 Огурцов Цитата(galjoen @ Mar 6 2009, 21:26) Поста... Mar 6 2009, 22:09                  galjoen Цитата(Огурцов @ Mar 7 2009, 01:09) И это... Mar 6 2009, 22:40                   Огурцов Цитата(galjoen @ Mar 6 2009, 22:40) Почем... Mar 7 2009, 08:15                    galjoen Цитата(Огурцов @ Mar 7 2009, 11:15) Потом... Mar 7 2009, 16:18                     Огурцов Но заваливать равномерно нужно. Mar 7 2009, 18:40                      galjoen Цитата(Огурцов @ Mar 7 2009, 21:40) Но за... Mar 8 2009, 06:07                       Огурцов Так у него и приемник CAN, а не 485/422 Mar 8 2009, 12:03 Rst7 ЦитатаНесклько чипов, трансов, разъемов, блок пита... Mar 5 2009, 10:43 Огурцов Цитата(Rst7 @ Mar 5 2009, 11:43) Забудьте... Mar 5 2009, 11:45 Rst7 ЦитатаДетерминированный реалтайм, например.
Да ск... Mar 5 2009, 12:00 Огурцов Цитата(Rst7 @ Mar 5 2009, 12:00) Допустим... Mar 5 2009, 12:14 Огурцов Цитата(Rst7 @ Mar 5 2009, 12:00) http://e... Mar 5 2009, 12:29 Rst7 ЦитатаНе вижу тут разницы между уарт и эзернет.
О... Mar 5 2009, 12:24 Rst7 ЦитатаДа, неплохо, уже тем, что работает.
Я Вам б... Mar 5 2009, 12:31 Огурцов Цитата(Rst7 @ Mar 5 2009, 12:31) Щас несп... Mar 5 2009, 12:44 Rst7 ЦитатаГотовый девайс с коробкой и документацией за... Mar 5 2009, 12:54 Огурцов Цитата(Rst7 @ Mar 5 2009, 13:54) Да и смо... Mar 5 2009, 14:56 Rst7 Цитата(Огурцов @ Mar 5 2009, 16:56) Хотел... Mar 5 2009, 18:03 Rst7 ЦитатаНужно построить ethernet на xmega only.
Это... Mar 5 2009, 18:41 Огурцов Цитата(Rst7 @ Mar 5 2009, 18:41) Или Вы х... Mar 5 2009, 19:49 Rst7 Цитата(Огурцов @ Mar 5 2009, 21:49) Да. Б... Mar 6 2009, 08:48
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|