roboforum.ru

Технический форум по робототехнике.
Текущее время: 18 фев 2025, 18:27

Часовой пояс: UTC + 4 часа




Начать новую тему Ответить на тему  [ Сообщений: 13 ] 
Автор Сообщение
 Заголовок сообщения: Соедининие контроллеров: протокол обмена
СообщениеДобавлено: 30 ноя 2004, 16:04 
Не в сети
Аватара пользователя

Зарегистрирован: 08 окт 2004, 16:43
Сообщения: 2114
Откуда: St. Petersburg
Skype: quark-bot
ФИО: Клебан Виталий
Для начала предложу вам общую схему устройства (верхний рисунок).
Разъяснение:
БУ - блок управления
БК - блок коммутации
ИУ - исполнительное устройство
БИ - блок индикации

Почему введен коммутатор в схему?
На самом деле коммутатор присутствует практически во всех многоблочных схемах с централизованным упралением. Коммутатор может быть аппаратным устройством (как у меня), или же программным модулем, все
зависит от реализации. Еще одной причиной, по которой БК присутствует в схеме, является возможность легкого внедрения блока индикации.

Вобщем, эта схема мне подходит, хотя любые предложения приветствуются.

Входные данные: предложенная схема.
Задача: разработать по возможности универсальный протокол обмена между всеми частями схемы.

Для решения поставленной задачи думаю нелишним будет расмотреть БК поподробнее:
Данные которые содержит БК
1. Список заданий находящийся в очереди (список занятых устройств)
2. Список заданий принятых к исполнению.

Обеспечиваемые методы (о полноте списка судить вам)
1. Добавить задание в очередь
2. Добавить OOB задание (по аналогии с TCP-IP Out Of Band пакетом)  Т.е. поместить его без очереди.
3. Очистить очередь заданий принятых к исполнению
4. Сброс системы (останов)

Думаю пригодится нам и интерфейс ИУ:
1. Команду на исполнение
2. Останов

БК частично выполняет функции обеспечения асинхронного обмена данными, поэтому я предлагаю подобного рода протокол (нижний рисунок)

Вот вопросы, которые я предлагаю обсудить:
Предложения или замечания по поводу "коммутируемой" системы.
Возможные дополнения функций коммутатора или ИУ.
Протокол, каким видите его вы?
[/b]


Вложения:
Комментарий к файлу: Протокол
proto_pic.png
proto_pic.png [ 4.81 КиБ | Просмотров: 5033 ]
Комментарий к файлу: Блочная схема
full_block.png
full_block.png [ 3.88 КиБ | Просмотров: 5022 ]
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 30 ноя 2004, 16:57 
Не в сети
Site Admin
Аватара пользователя

Зарегистрирован: 04 окт 2004, 12:58
Сообщения: 10990
Откуда: St.Petersburg
Skype: taranenko.sergey
ФИО: Сергей Тараненко
Предлагаю более правильный подход к разработке протокола обмена.

Для начала нарисуем сетевую модель, согласно стандарту ISO/OSI
мы имеем 7 уровней взаимодействия оборудования:
1. физический
2. канальный
3. сетевой
4. транспортный
5. сессионный
6. представительский
7. приложений

Теперь давай всё раскладывать по полочкам
1. Физический уровень - здесь более менее понятно.
  Для внутрисхемного общения здесь выбирается два медных провода один на приём, другой на передачу данных, кодирование ведётся высоким и низким сигналами TTL уровней.
 Внешнюю коммуникацию мы рассмотрим чуть познее.
2. Канальный уровень здесь уже начинаются вопросы.
на этом уровне мы должны решить задачу связности устройств между собой и управление каналом если еспользуется единая шина.
3. Сетевой уровень дальше всё пока вообще туманно
на этом уровне решаем вопрос адресации устройств и маршрутизации потоков данных.
4. Транспортный уровень
 обеспечиваем требуемое качество доставки даных (CRC проверки блоков , переспросы при повреждении и т.д.)
5. Сесионный уровень
 этот уровень нам вероятно не потребуется, впрочемм он может потребоваться на внешнем канале при управлении компом группой мобильных роботов ...
6. Представительский уровень
 Представление данных в стандартной форме - всякие там перекодировочки языка, в нашем случае нормализация показаний датчиков.
7. Уровень приложений
 И только здесь мы подходим к вышеуказанному пулу задач.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 30 ноя 2004, 17:13 
Не в сети
Аватара пользователя

Зарегистрирован: 08 окт 2004, 16:43
Сообщения: 2114
Откуда: St. Petersburg
Skype: quark-bot
ФИО: Клебан Виталий
1. физический
Думаю этот уровень мы оставим на усмотрение пользователя, кому-то TWI, кому-то RS232 кому-то еще что-то...
2. канальный
3. сетевой
Эти два уровня обеспечиваются работой коммутатора (в моем представлении), рассмотрение управления шиной в топике http://www.roboforum.ru/viewtopic.htm?p=470#470
4. транспортный
Да, этот вопрос вообще-то стоит расмотреть. Буду думать.
5. сессионный
Пока неясно.
6. представительский
Это черызвычайно важно, это в принципе и есть то, за что боремся - Стандарт.
7. приложений
Это, имхо конечно, уже интерфейс библиотеки. =)

Вобщем принимаем к рассмотрению вопросы 2,3 (обсуждаются в другом топике), 4 (следует или не следует вводить помехозащищенное кодирование), 6 (предложения, наработки).

P.S. За что борюсь: создание удобного для большинства стандарта, и набора типовых решений, народ присоединяемся к обсуждениям.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Уточню
СообщениеДобавлено: 07 фев 2005, 18:28 
Не в сети

Зарегистрирован: 07 фев 2005, 17:41
Сообщения: 367
Откуда: Санкт-Петербург
Виталий писал(а):
1. физический
Думаю этот уровень мы оставим на усмотрение пользователя, кому-то TWI, кому-то RS232 кому-то еще что-то...
2. канальный
3. сетевой
Эти два уровня обеспечиваются работой коммутатора (в моем представлении), рассмотрение управления шиной в топике http://www.roboforum.ru/viewtopic.htm?p=470#470
4. транспортный
Да, этот вопрос вообще-то стоит расмотреть. Буду думать.
5. сессионный
Пока неясно.
6. представительский
Это черызвычайно важно, это в принципе и есть то, за что боремся - Стандарт.
7. приложений
Это, имхо конечно, уже интерфейс библиотеки. =)

Вобщем принимаем к рассмотрению вопросы 2,3 (обсуждаются в другом топике), 4 (следует или не следует вводить помехозащищенное кодирование), 6 (предложения, наработки).

P.S. За что борюсь: создание удобного для большинства стандарта, и набора типовых решений, народ присоединяемся к обсуждениям.


М-да.... Мы здесь изучаем сетевые технологии ??? или разрабатываем комутаторы ????...... Есть много стандартов... И сделать универсальный необычайно трудная задача !!!!
Поэтому надо быть проше. Пакет должен однозначно содержать следующие поля :
- адресное поле
- поле длины пакета
- поле данных
- поле контрольной суммы
И этого достаточно ... для связи двух контроллеров. :wink:


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 07 фев 2005, 18:33 
Не в сети
Site Admin
Аватара пользователя

Зарегистрирован: 04 окт 2004, 12:58
Сообщения: 10990
Откуда: St.Petersburg
Skype: taranenko.sergey
ФИО: Сергей Тараненко
этого достаточно для связи двух контроллеров одного типа.
:wink: посмотю я как вы передадите инфу от контроллера к другому через оптоволоконный канал ;)
впрочем если считать что среда связи медь, принебречь помехами, принять за уровни сигналов TTL тогда и только тогда перечисленных выше условий будет достаточно, да и то если тайминги более менее совпадут.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 08 фев 2005, 17:00 
Не в сети

Зарегистрирован: 07 фев 2005, 17:41
Сообщения: 367
Откуда: Санкт-Петербург
Тогда надо уточнять условия , а то здесь можно придумать такое........с криптографией,с помехоустойчивостью, с избыточным кодом, с 10 байтной адресацией ....Я так понимаю границ здесь нет..... :lol:  :lol:  :lol:  :lol:  :lol:


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 02 мар 2005, 08:29 
Не в сети
Аватара пользователя

Зарегистрирован: 01 мар 2005, 14:54
Сообщения: 70
Откуда: г. Томск
А зачем вообще пытаться какой-то новый протокол придумать? Ведь действительно много "стандартных" существует. Например MODBUS чем вас не устраивает  :?:  Там уже заложены всё необходимое. Я имею ввиду поля для адреса устройства, длину команд и данных, проверки CRC и т.д.
Но если Вам нужно буквально "пару байтов переслать" и не хочется из-за этого изучать систему команд модбаса, тогда конечно, просторы для полёта фантазии не ограничены!

_________________
В электронике чудес не бывает! Бывают плохие контакты!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 02 мар 2005, 12:07 
Не в сети
Site Admin
Аватара пользователя

Зарегистрирован: 04 окт 2004, 12:58
Сообщения: 10990
Откуда: St.Petersburg
Skype: taranenko.sergey
ФИО: Сергей Тараненко
Змей-Горыныч писал(а):
А зачем вообще пытаться какой-то новый протокол придумать? Ведь действительно много "стандартных" существует...

Согласен, сам к этому в последнее время пришёл.
однако это не освобождает придумывания 5 6 и 7 уровня модели ;)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 05 мар 2005, 03:03 
Не в сети

Зарегистрирован: 05 мар 2005, 02:55
Сообщения: 6
Создал протокол обмена информацией между котролерами управления приводами,
интегрировал регуляторы положения, скорости и тока...
Тестируемая скорость: вопрос ответ 120µс ... Предусмотрено управление через com-порт


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 06 мар 2005, 01:39 
Не в сети
Аватара пользователя

Зарегистрирован: 27 ноя 2004, 00:42
Сообщения: 3339
Откуда: совсем Москва
ФИО: Григорий
andi, а подробности не засекречены?  :wink:


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 06 мар 2005, 03:10 
Не в сети

Зарегистрирован: 26 окт 2004, 14:16
Сообщения: 171
Откуда: Севастополь сити...
Кстати, а где почитать про характеристики протоколов? скорость и т.д.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 06 мар 2005, 18:21 
Не в сети
Аватара пользователя

Зарегистрирован: 27 ноя 2004, 00:42
Сообщения: 3339
Откуда: совсем Москва
ФИО: Григорий
Например тут

Или в гугле...  :wink:


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 07 мар 2005, 16:59 
Не в сети

Зарегистрирован: 05 мар 2005, 02:55
Сообщения: 6
Digit - Конечно нет. Протокол похож на тот, что описан выше :-)

, но..
В нем отсутствует  блок коммутации и блок индикации (мне кажеться), так как такой уровень визуализации меня не интересовал по двум причинам:
1. При большом кол-ве участников сети (например > 10) возникнет дополнительная нагрузка на протокол. Если конечно блок коммутации не являеться участником, а играет роль наблюдателя, но в таком случае его функции и так выполняються обшей (Мастер) системой (напреимер PC), которая по восможностям в 1000 раз превосходит любой контроллер :-).....
2. Визуализацию каких-то промежутчных данных - это, на мой взгляд, можно исползовать лишь как "примочку" для наблюдений "поведения" отдельных участков системы, либо отдельного объекта. Гораздо целесообразней создавать подобные веши уже на высоком уровне, дабы не перегружать второстепенными вопросами "дохленькие" контроллеы.

И так о протоколе:
протокол имеет набор комманд:
1. Инизиализации и парамеметрирования протокола.
2. Управления объектами (задание, истенное значение)


Все участники системы имеют два адреса:
1. Собственный (заресервированные адреса, включая адрес "Мастера")
2. Обший - позволяет управлять всеми участниками сети одновременно (достоинство на лицо)

Обмен информации осуществляеться по принципу - Master -> Slave, Slave -> Мастер.

Физеческая основа протокола - асинхорнная передача данных с(или без) "адресным" битом.
С адресным битом легко - прохитал свой адрес значит принимаем
Без адресного бита - дело тяжелее. "Дергать всё время ухо в остро" - дело не шуточное ;-) -  Надо байты считать или еше как-нибудь выкручиваться - не важхно, так как это слишком загружает контроллеры (постоянные прерывания - дестабилизируют работу "строгих" к дискретности регуляторов).

Не все контроллеры обладают UARTом с адресным битом
Но есть выход: использовать контроллеры - толко с такой опцией
И второе, самое главное НУЖНО ИСПОЛьЗОВАТь 7-БИТНЫЙ ПРОТОКОЛ, потому что когда дело дойдет до связи с ком-портом можно столкнуться с проблемой - в запасе толко 8-бит для передачи, а сгенерировать адресный бит (9-тый) просто так не выйдет....

И так... о скоростях передачи:
120µс - это не предел можно конечно и меньше (это при 1 Мбит на шине), но представь себе то, что Команда на контроллере выполняеться в среднем от 200 до 1000 нс. Т.е по макс. 1µs - это значит за 120 команд обработать, например, посылку из 4 байт (адрес, тип команды, данные, контрольная сумма) - рашифровать, проверитъ контрольная сумму,сохранить данные (как минимум); сформировать и послать ответ (например 4 байта).... я думаю, что 120 команд - это не много :-)....


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 13 ] 

Часовой пояс: UTC + 4 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: Yandex [Bot] и гости: 0


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
phpBB SEO