реклама на сайте
подробности

 
 
2 страниц V   1 2 >  
Reply to this topicStart new topic
> Коммутатор по UART, подскажите наиболее удобный вариант
ikm
сообщение Feb 2 2018, 17:24
Сообщение #1


Знающий
****

Группа: Свой
Сообщений: 855
Регистрация: 25-12-06
Из: С-Пб
Пользователь №: 23 894



Уважаемые коллеги, помогите советом какую базу выбрать:
Встала задача разработать коммутатор на интерфейсах UART. Под коммутатором я понимаю, аналог Ethernet свитча, только без адресации.
В устройстве предполагается всего 3 порта, два для построения общей локальной сетки (либо простая цепочка, либо двунаправленное кольцо) и один порт идет непосредственно на терминал. Терминал умный сам пойёмет, что если пакет предназначен ему, то ответит на него. Таким образом Мастер сделает запрос,он пройдет по всем слейвам, и нужный ответит ему.
Вот теперь вопрос на чём всё это собирать.
1. Вариант 1 брать МК с 3-мя железными портами и городить на нём кольцевой буфер.
2. Вариант 2 брать разветвитель, что то типа tl16c754 и городить к нему HOST контроллер, который будет прогонять дату через себя.
И сразу доп вопросы. Если кто склоняется к первому вариант, где можно почитать грамотную реализацию кольцевого буфера?
Ну и по второму варианту, возможно ли сделать режим где host только конфигурирует расширитель, а тот сам уже организует кольцевой буфер по внутренней шине?
А также может есть третий вариант (кроме ПЛИС)?


--------------------
ОБХОДЯ РАЗЛОЖЕННЫЕ ГРАБЛИ - ТЫ ТЕРЯЕШЬ ДРАГОЦЕННЫЙ ОПЫТ!!!
Go to the top of the page
 
+Quote Post
iosifk
сообщение Feb 2 2018, 19:03
Сообщение #2


Гуру
******

Группа: Модераторы
Сообщений: 3 954
Регистрация: 8-09-05
Из: спб
Пользователь №: 8 369



Цитата(ikm @ Feb 2 2018, 20:24) *
Уважаемые коллеги, помогите советом какую базу выбрать:
Встала задача разработать коммутатор на интерфейсах UART. Под коммутатором я понимаю, аналог Ethernet свитча, только без адресации.

Вот когда задача "встает", то лучший способ это не добавлять не пойми что к "тому что было"... Потому как дальше идут слова "от этого я долго руки мыла"...
Лучше всего с самого начала определить стандаартный тип сети, протокол потом под него выбрать железо.
Ведь ничего не сказано о длине линий и скорости.
Есть же микроконтроллеры у которых по 4-6 UART..
А есть микроконтроллеры с LIN. А есть CAN... Зачем что-то придумывать особое?
Это то, что касается железа. А есть еще и протокол. Сначала слепите "коммутатор", потом вспомните, что надо данные отличать от команд. А потом выяснится, что кто-то полез в сеть и пакеты побились... И про передачу эстафеты.... И т.д.
А на самом деле, все эти проблемы давно решены для стандартных железок. И порты и интерфейсы и софт давно выложены и проверены...


--------------------
www.iosifk.narod.ru
Go to the top of the page
 
+Quote Post
ikm
сообщение Feb 5 2018, 08:23
Сообщение #3


Знающий
****

Группа: Свой
Сообщений: 855
Регистрация: 25-12-06
Из: С-Пб
Пользователь №: 23 894



Цитата(iosifk @ Feb 2 2018, 22:03) *
Вот когда задача "встает", то лучший способ это не добавлять не пойми что к "тому что было"... Потому как дальше идут слова "от этого я долго руки мыла"...
Лучше всего с самого начала определить стандаартный тип сети, протокол потом под него выбрать железо.
Ведь ничего не сказано о длине линий и скорости.
Есть же микроконтроллеры у которых по 4-6 UART..
А есть микроконтроллеры с LIN. А есть CAN... Зачем что-то придумывать особое?
Это то, что касается железа. А есть еще и протокол. Сначала слепите "коммутатор", потом вспомните, что надо данные отличать от команд. А потом выяснится, что кто-то полез в сеть и пакеты побились... И про передачу эстафеты.... И т.д.
А на самом деле, все эти проблемы давно решены для стандартных железок. И порты и интерфейсы и софт давно выложены и проверены...

А с чего ВЫ взяли, что сеть на UART не стандартная? под него и выбираем железо. Протокол MODBUS
Вы бы прежде чем давать советы, сначала спросили уточняющую информацию, если конечно у вас были намерения помочь, а не так ...
Скорость, да забыл указать до 115.2 Kbps. Длина линии не важно, условно "на столе" так как есть ретрансляторы. Сопряжение по уровням тоже отдельная задача.
При чём тут LIN и CAN как вы на них одновременно построите и соединение "по цепочке" и "двойное двунаправленное кольцо", если вдруг я выражаюсь непонятными терминами? то картинки во вложении.
Далее, я не утверждал, что нет МК с 3-мя и более железными UART, я их как раз и рассматривал в первом варианте.
Вы в себе обнаружили телепатические способности предвидеть мои потребности, или делитесь своим опытом того чего "слепили" ранее?

Эскизы прикрепленных изображений
Прикрепленное изображение
Прикрепленное изображение
 


--------------------
ОБХОДЯ РАЗЛОЖЕННЫЕ ГРАБЛИ - ТЫ ТЕРЯЕШЬ ДРАГОЦЕННЫЙ ОПЫТ!!!
Go to the top of the page
 
+Quote Post
jcxz
сообщение Feb 5 2018, 13:17
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 4 860
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713



Цитата(ikm @ Feb 5 2018, 10:23) *
А с чего ВЫ взяли, что сеть на UART не стандартная? под него и выбираем железо. Протокол MODBUS

А в чём тогда проблема? Протокол Вы знаете, как принять/передать кадр в этом протоколе - знаете, в чем тогда вопрос?
Берёте МК с необходимым кол-вом UART и пишете.
Go to the top of the page
 
+Quote Post
iosifk
сообщение Feb 5 2018, 14:02
Сообщение #5


Гуру
******

Группа: Модераторы
Сообщений: 3 954
Регистрация: 8-09-05
Из: спб
Пользователь №: 8 369



Цитата(ikm @ Feb 5 2018, 11:23) *
А с чего ВЫ взяли, что сеть на UART не стандартная? под него и выбираем железо. Протокол MODBUS
Вы бы прежде чем давать советы, сначала спросили уточняющую информацию, если конечно у вас были намерения помочь, а не так ...

Далее, я не утверждал, что нет МК с 3-мя и более железными UART, я их как раз и рассматривал в первом варианте.
Вы в себе обнаружили телепатические способности предвидеть мои потребности, или делитесь своим опытом того чего "слепили" ранее?

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


--------------------
www.iosifk.narod.ru
Go to the top of the page
 
+Quote Post
Lagman
сообщение Feb 5 2018, 14:19
Сообщение #6


Знающий
****

Группа: Свой
Сообщений: 875
Регистрация: 28-10-05
Пользователь №: 10 245



Цитата(ikm @ Feb 5 2018, 11:23) *
А с чего ВЫ взяли, что сеть на UART не стандартная? под него и выбираем железо. Протокол MODBUS

UART - точка точка. При соединении кольцом каждое устройство должно понимать что если информация не для нее то надо передать дальше, по стандарту MODBUS все времена описаны и каждому устройству придется ждать приема посылки (хотя можно и передавать сразу не дожидаясь разбора пакета) и сколько в итоге набежит времени простоя?

Делайте как и все на RS485 там и UART будет и все что изображено на второй картинке (только отключить от мастера второй конец линии)
Go to the top of the page
 
+Quote Post
jcxz
сообщение Feb 5 2018, 14:35
Сообщение #7


Гуру
******

Группа: Свой
Сообщений: 4 860
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713



Цитата(Lagman @ Feb 5 2018, 16:19) *
UART - точка точка. При соединении кольцом каждое устройство должно понимать что если информация не для нее то надо передать дальше, по стандарту MODBUS все времена описаны и каждому устройству придется ждать приема посылки (хотя можно и передавать сразу не дожидаясь разбора пакета) и сколько в итоге набежит времени простоя?

Ну и что? Принимающий МК может разобрать Modbus-кадр? Может. Значит может передать его дальше. А уже время ответа на этот кадр - это несколько другое время, чем интервалы между Modbus-кадрами.
Go to the top of the page
 
+Quote Post
ikm
сообщение Feb 5 2018, 14:42
Сообщение #8


Знающий
****

Группа: Свой
Сообщений: 855
Регистрация: 25-12-06
Из: С-Пб
Пользователь №: 23 894



Возможно Вас неправильно информировала первая картинка, так как я забыл там убрать "Device" из квадрата. А вместо земли стоит как раз оконечный терминальное устройство для которого и посылаются данные. Поэтому речь всё таки идет о коммутаторе. Так как в он стоит в каждом узле и "раскидывает" поток данных с одного порта в два других. Причём он эти данные не анализирует, и не знает ,что к его портам подключено, оконечное устройство или такой же коммутатор. Если уж совсем "на пальцах" мне нужно устройство с тремя равнозначными UART портами и буфером.

To jcxz
Так вот я и прошу помощи в рекомендации выбора железа и литературы по алгоритму.

Погодите, зачем коммутатору разбирать пакет, я надеялся получить что то типа циркулятора.


--------------------
ОБХОДЯ РАЗЛОЖЕННЫЕ ГРАБЛИ - ТЫ ТЕРЯЕШЬ ДРАГОЦЕННЫЙ ОПЫТ!!!
Go to the top of the page
 
+Quote Post
Baser
сообщение Feb 5 2018, 16:37
Сообщение #9


Просто Che
*****

Группа: Свой
Сообщений: 1 567
Регистрация: 22-05-07
Из: ExUSSR
Пользователь №: 27 881



Цитата(ikm @ Feb 5 2018, 16:42) *
Поэтому речь всё таки идет о коммутаторе. Так как в он стоит в каждом узле и "раскидывает" поток данных с одного порта в два других. Причём он эти данные не анализирует, и не знает ,что к его портам подключено, оконечное устройство или такой же коммутатор. Если уж совсем "на пальцах" мне нужно устройство с тремя равнозначными UART портами и буфером.

Вот только сейчас ваша мысль становится понятной sm.gif

Хаб с тремя равнозначными UART, имхо, построить не удастся. Порты все равно будут различными по функционалу, если хотите дуплекс. Как вы коллизии разгребать будете?
Если достаточно полудуплекса, то проще всего делать так, как все делают, т.е. возле всех мастеров/слейвов по преобразователю UART/RS-485, и дальше одна общая шина.
Go to the top of the page
 
+Quote Post
ikm
сообщение Feb 5 2018, 16:53
Сообщение #10


Знающий
****

Группа: Свой
Сообщений: 855
Регистрация: 25-12-06
Из: С-Пб
Пользователь №: 23 894



Цитата(Baser @ Feb 5 2018, 19:37) *
Вот только сейчас ваша мысль становится понятной sm.gif

Хаб с тремя равнозначными UART, имхо, построить не удастся. Порты все равно будут различными по функционалу, если хотите дуплекс. Как вы коллизии разгребать будете?
Если достаточно полудуплекса, то проще всего делать так, как все делают, т.е. возле всех мастеров/слейвов по преобразователю UART/RS-485, и дальше одна общая шина.

Ну понятно, что порты не совсем будут равнозначные. Всё равно в алгоритме мы как минимум должны выбрать в какой первый порт выкидываем из буфера, а в какой во вторую очередь, после чего очищаем буфер.
Те порты которые будут в первоочередными будут использованы в построение линии связи, а те,что второстепенные будут отданы оконечным устройствам.
С линией я к сожалению сделать ничего не могу, это UART и точка.
К тому же схема построена по разделенному во времени опросу оконечных устройств: Мастер запросил данные с определённого оконечника, тот ему ответил. Через 100мс опрос другого устройства.


--------------------
ОБХОДЯ РАЗЛОЖЕННЫЕ ГРАБЛИ - ТЫ ТЕРЯЕШЬ ДРАГОЦЕННЫЙ ОПЫТ!!!
Go to the top of the page
 
+Quote Post
kolobok0
сообщение Feb 5 2018, 17:16
Сообщение #11


практикующий тех. волшебник
*****

Группа: Участник
Сообщений: 1 182
Регистрация: 9-09-05
Пользователь №: 8 417



Цитата(ikm @ Feb 2 2018, 20:24) *
...коммутатор на интерфейсах UART. Под коммутатором я понимаю, аналог Ethernet свитча, только без адресации. ...
Терминал умный сам пойёмет,...,он пройдет по всем слейвам, и нужный ответит ему.
1. Вариант ...


3 Вариант 3
(Если на хостах софт готов сам разгребать адресацию. то это = не свитч а хабик.)
Делается всё на элементарной логике типа 155 серии пару корпусов(для 8 лучей). топология звезда. просто до безобразия - каждый слышит всех, кроме себя. если нужны преобразователи уровней -
плюс у каждого луча по преобразователю.

решение придумано, создано и проработало годы.. когда изернет и аркнет был в диковинку, а перекачивать винты(ну и игры шли на ура типа ф19) надо было sm.gif

удачи вам
(круглый)
ЗЫ
Но если хочется МК заюзать или ПЛИСИНу - то думаю можно. Ещё и бабло попилить повод к тому-же...
От задач зависит короче говоря...
biggrin.gif

Сообщение отредактировал kolobok0 - Feb 5 2018, 17:31
Go to the top of the page
 
+Quote Post
ikm
сообщение Feb 6 2018, 14:08
Сообщение #12


Знающий
****

Группа: Свой
Сообщений: 855
Регистрация: 25-12-06
Из: С-Пб
Пользователь №: 23 894



Цитата(kolobok0 @ Feb 5 2018, 20:16) *
3 Вариант 3
(Если на хостах софт готов сам разгребать адресацию. то это = не свитч а хабик.)
Делается всё на элементарной логике типа 155 серии пару корпусов(для 8 лучей). топология звезда. просто до безобразия - каждый слышит всех, кроме себя. если нужны преобразователи уровней -
плюс у каждого луча по преобразователю.

решение придумано, создано и проработало годы.. когда изернет и аркнет был в диковинку, а перекачивать винты(ну и игры шли на ура типа ф19) надо было sm.gif

удачи вам
(круглый)
ЗЫ
Но если хочется МК заюзать или ПЛИСИНу - то думаю можно. Ещё и бабло попилить повод к тому-же...
От задач зависит короче говоря...
biggrin.gif

Точно свитч без адресации, это хабик sm.gif
Про логику интересно, но я не понял, что Вы имели в виду.

Не, у меня полностью коммерческий проект, тут пилить нечего, надо как можно меньше себестоимость делать. Но конечно не в ущерб функционалу. А мигающие светодиодики заказчику нравятся (видно что прибор работает), вот и надо ставить МК sm.gif


--------------------
ОБХОДЯ РАЗЛОЖЕННЫЕ ГРАБЛИ - ТЫ ТЕРЯЕШЬ ДРАГОЦЕННЫЙ ОПЫТ!!!
Go to the top of the page
 
+Quote Post
Baser
сообщение Feb 6 2018, 16:38
Сообщение #13


Просто Che
*****

Группа: Свой
Сообщений: 1 567
Регистрация: 22-05-07
Из: ExUSSR
Пользователь №: 27 881



Цитата(kolobok0 @ Feb 5 2018, 19:16) *
Делается всё на элементарной логике типа 155 серии пару корпусов(для 8 лучей). топология звезда. просто до безобразия - каждый слышит всех, кроме себя. если нужны преобразователи уровней -
плюс у каждого луча по преобразователю.

Точно! Дожили, что простейшие аппаратные решения без МК уже в голову не приходят biggrin.gif

Для желаемого ТС хаба на три равнозначных RS-232 нужно только три MAX232 для преобразования RS-232 / UART и одна 74HC08 (4 х 2И).

Для красоты можно поставить три светодиода на выходы UART-ов, при проходе пакета будут мигать попарно.

А коллизии при отправке одновременно двух пакетов по разным входам определять программно по несовпадению контрольных сумм и вообще по порче посылок.
Go to the top of the page
 
+Quote Post
ikm
сообщение Feb 6 2018, 17:20
Сообщение #14


Знающий
****

Группа: Свой
Сообщений: 855
Регистрация: 25-12-06
Из: С-Пб
Пользователь №: 23 894



Цитата(Baser @ Feb 6 2018, 19:38) *
Для желаемого ТС хаба на три равнозначных RS-232 нужно только три MAX232 для преобразования RS-232 / UART и одна 74HC08 (4 х 2И).

Вот только у меня нет RS-232, у меня чистый UART (Rx-TX). Или Вы имели ввиду по уровням преобразование?


--------------------
ОБХОДЯ РАЗЛОЖЕННЫЕ ГРАБЛИ - ТЫ ТЕРЯЕШЬ ДРАГОЦЕННЫЙ ОПЫТ!!!
Go to the top of the page
 
+Quote Post
kolobok0
сообщение Feb 6 2018, 17:26
Сообщение #15


практикующий тех. волшебник
*****

Группа: Участник
Сообщений: 1 182
Регистрация: 9-09-05
Пользователь №: 8 417



Цитата(ikm @ Feb 6 2018, 17:08) *
...Про логику интересно, но я не понял, что Вы имели в виду...


Ниже приведён пример такой логики работы на 155 серии. вопросы скорострельности, RS232 - сотавляем за скобками(схему чуток нужно изменить конечно-же)..
у каждого UART есть пин на передачу и пин на приём.
предположим у хабика 3 порта.
у каждого порта есть входы(с точки зрения хаба).
In1, In2, In3
и выходы(с точки зрения хаба)
Out1, Out2, Out3
Берём 3 элемента двух входовой AND логики (например К155ЛИ1)
DD1, DD2, DD3

In1 соединяем с входами двух элементов = к 1 входу DD2 и к 1 входу DD3.
In2 соединяем с входами двух элементов = к 1 входу DD1 и к 2 входу DD3.
In3 соединяем с входами двух элементов = к 2 входу DD1 и к 2 входу DD2.
Выход DD1 будет Out2
Выход DD2 будет Out2
Выход DD3 будет Out3

Т.к. активный у UART "0", а без сигнала "1"
то по приходу по In1 активного нуля он поступает всем, кроме себя т.е. на Out2 и Out3
всё то же самое для In2 и In3...

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

если далее софтово мы хотим разрулить адресацию, то сделать аля сеть = два пальца об асфальт...(конечно же до определённых скоростей)...


с уважением
(круглый)

Go to the top of the page
 
+Quote Post

2 страниц V   1 2 >
Reply to this topicStart new topic
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 18th July 2018 - 02:28
Рейтинг@Mail.ru


Страница сгенерированна за 0.00952 секунд с 7
ELECTRONIX ©2004-2016