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

 
 
2 страниц V   1 2 >  
Reply to this topicStart new topic
> Посоветуйте, пожалуйста, открытый протокол
kkobru
сообщение Jan 28 2018, 15:17
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 38
Регистрация: 3-04-14
Пользователь №: 81 207



Добрый вечер!

Пришло время разработать некий внутренний стандарт управления приборами, и хотелось бы найти какой-нибудь открытый протокол, удовлетворяющий следующим требованиям:

- Работа через полудуплексный или полнодуплексный последовательный порт, либо через другие каналы, в том числе IP.
- Архитектура точка - точка, мастер-слейв.
- Событийная модель (то есть, возможность получать с мастера асинхронные события/данные, с возможностью настройки, как их получать, через поллинг, либо через отдельный канал)
- API для встраивания протокола в C/C++ на стороне мастера и С на стороне устройства.

Думаю, такое должно быть, просто не понимаю, как искать.

Заранее спасибо!
Go to the top of the page
 
+Quote Post
megajohn
сообщение Jan 28 2018, 18:14
Сообщение #2


Профессионал
*****

Группа: Свой
Сообщений: 1 066
Регистрация: 16-11-04
Из: СПб
Пользователь №: 1 143



Да это вы описали SNMP



--------------------
Марс - единственная планета, полностью населенная роботами (около 7 штук).
Go to the top of the page
 
+Quote Post
AlexandrY
сообщение Jan 28 2018, 18:30
Сообщение #3


Ally
******

Группа: Модераторы
Сообщений: 6 100
Регистрация: 19-01-05
Пользователь №: 2 050



Цитата(megajohn @ Jan 28 2018, 20:14) *
Да это вы описали SNMP

Я бы добавил - SNMP с кодировкой BER поверх PPP.
А то неясно как через RS232, или RS485 этот SNMP переправлять.
Реализация SNMP и PPP как раз есть в RTOS MQX под микронтроллеры Kinetis и i.MX RT
Там же можно найти реализацию VCOM. Тогда цепочка будет такая: SNMP->BER->PPP->vCOM->USB
А на PC мастер SNMP легко делается в RAD Studio.
Go to the top of the page
 
+Quote Post
megajohn
сообщение Jan 29 2018, 08:13
Сообщение #4


Профессионал
*****

Группа: Свой
Сообщений: 1 066
Регистрация: 16-11-04
Из: СПб
Пользователь №: 1 143



Цитата(AlexandrY @ Jan 28 2018, 21:30) *
Я бы добавил - SNMP с кодировкой BER поверх PPP.


да, это верно поправили

прикладываю для ТС архивчик
SNMP_Simple_Network_Management_Protocol.pdf - пример как можно организовать управление железкой
SNMP.pdf SNMP_brief_3.pdf - тоже теория
b6300a.cap - примера обмена SNMP по IP для WireShark
пакет 3 - запрос значений для обьектов 1.3.6.1.2.1.1.5.0 и 1.3.6.1.2.1.1.6.0
пакет 4 - ответ

Прикрепленные файлы
Прикрепленный файл  snmp.zip ( 1.29 мегабайт ) Кол-во скачиваний: 23
 


--------------------
Марс - единственная планета, полностью населенная роботами (около 7 штук).
Go to the top of the page
 
+Quote Post
gosha-z
сообщение Jan 29 2018, 08:24
Сообщение #5


Местный
***

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



Интересно посмотреть на PPP по полудуплексному каналу...
Go to the top of the page
 
+Quote Post
megajohn
сообщение Jan 29 2018, 08:32
Сообщение #6


Профессионал
*****

Группа: Свой
Сообщений: 1 066
Регистрация: 16-11-04
Из: СПб
Пользователь №: 1 143



Цитата(gosha-z @ Jan 29 2018, 11:24) *
Интересно посмотреть на PPP по полудуплексному каналу...


да пожалуйста, этож не симплекс !
Прикрепленные файлы
Прикрепленный файл  ppp_lcp_ipcp.zip ( 556 байт ) Кол-во скачиваний: 20
 


--------------------
Марс - единственная планета, полностью населенная роботами (около 7 штук).
Go to the top of the page
 
+Quote Post
kkobru
сообщение Jan 29 2018, 10:41
Сообщение #7


Участник
*

Группа: Участник
Сообщений: 38
Регистрация: 3-04-14
Пользователь №: 81 207



Мда. Дело конечно интересное, но вот мне пока не очень понятно, как это всё будет работать, если:

1. со стороны слейва у нас MSP430 без ОС.
2. необходимо от слейва к мастеру передавать поток данных со скоростью до 200 отсчётов в секунду.

и, кстати, там не PC мастером, а как правило, приложение под встроенный линукс.

Я смотрел на MessagePack, но он, по-моему избыточен.

Сообщение отредактировал kkobru - Jan 29 2018, 10:44
Go to the top of the page
 
+Quote Post
AlexandrY
сообщение Jan 29 2018, 11:33
Сообщение #8


Ally
******

Группа: Модераторы
Сообщений: 6 100
Регистрация: 19-01-05
Пользователь №: 2 050



Цитата(kkobru @ Jan 29 2018, 12:41) *
Я смотрел на MessagePack, но он, по-моему избыточен.

Это просто аналог BER. А где все остальное?
Go to the top of the page
 
+Quote Post
ViKo
сообщение Jan 29 2018, 12:13
Сообщение #9


Универсальный солдатик
******

Группа: Модераторы
Сообщений: 8 520
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362



Слово "приборы" ассоциируется у меня с SCPI.
https://en.wikipedia.org/wiki/Standard_Comm...ble_Instruments
Go to the top of the page
 
+Quote Post
kkobru
сообщение Jan 29 2018, 14:55
Сообщение #10


Участник
*

Группа: Участник
Сообщений: 38
Регистрация: 3-04-14
Пользователь №: 81 207



Давайте я уточню с точки зрения предметной области.
Это лабораторные приборы, которые работают по RS232/485 либо Ethernet, если нужен большой поток данных.
Набор команд простой должен быть:
1. Установить значение параметра
2. Переключить что-то
3. Считать значение с измерителя
4. Получать поток значений с метками времени с измерительного канала
5. Получать события (готовность, ошибка, и т.д.)

Самое важное, что это должна быть открытая библиотека на С, которую легко подключить к коду, работающему без ОС.

Сообщение отредактировал kkobru - Jan 29 2018, 14:56
Go to the top of the page
 
+Quote Post
megajohn
сообщение Jan 29 2018, 16:06
Сообщение #11


Профессионал
*****

Группа: Свой
Сообщений: 1 066
Регистрация: 16-11-04
Из: СПб
Пользователь №: 1 143



п. 1,2,3,5 это вполне подойдет для SNMP . Можно и Modbus использовать
п. 4 тут конечно что-то другое надо использовать. Я бы передавал как UDP over PPP и далее в UART

пример прикладываю




Прикрепленные файлы
Прикрепленный файл  udp_over_ppp_uart.zip ( 212 байт ) Кол-во скачиваний: 12
 


--------------------
Марс - единственная планета, полностью населенная роботами (около 7 штук).
Go to the top of the page
 
+Quote Post
Baser
сообщение Jan 29 2018, 17:53
Сообщение #12


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

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



Цитата(kkobru @ Jan 28 2018, 17:17) *
- Архитектура точка - точка, мастер-слейв.
- Событийная модель (то есть, возможность получать с мастера асинхронные события/данные, с возможностью настройки, как их получать, через поллинг, либо через отдельный канал)

Цитата(kkobru @ Jan 29 2018, 12:41) *
2. необходимо от слейва к мастеру передавать поток данных со скоростью до 200 отсчётов в секунду.

Цитата(kkobru @ Jan 29 2018, 16:55) *
4. Получать поток значений с метками времени с измерительного канала
5. Получать события (готовность, ошибка, и т.д.)

Ваше ТЗ выглядит несколько противоречивым.
Наверное, все же получение от слейва асинхронных событий и данных?

По режиму работы это больше получается мультимастер.

А получать поток значений и события нужно с какими максимальными задержками?
Может быть достаточно по запросу мастера раз в секунду получать один пакет с 200-и отсчетами?
Go to the top of the page
 
+Quote Post
mantech
сообщение Jan 29 2018, 18:08
Сообщение #13


Гуру
******

Группа: Участник
Сообщений: 2 155
Регистрация: 16-08-12
Из: Киров
Пользователь №: 73 143



Цитата(kkobru @ Jan 28 2018, 18:17) *
Добрый вечер!

Пришло время разработать некий внутренний стандарт управления приборами, и хотелось бы найти какой-нибудь открытый протокол, удовлетворяющий следующим требованиям:

- Работа через полудуплексный или полнодуплексный последовательный порт, либо через другие каналы, в том числе IP.
- Архитектура точка - точка, мастер-слейв.
- Событийная модель (то есть, возможность получать с мастера асинхронные события/данные, с возможностью настройки, как их получать, через поллинг, либо через отдельный канал)
- API для встраивания протокола в C/C++ на стороне мастера и С на стороне устройства.

Думаю, такое должно быть, просто не понимаю, как искать.

Заранее спасибо!


Modbus (COM port) Modbus TCP (Ethernet) Простая реализация, единый протокол и хорошо стандартизирован.

Сообщение отредактировал mantech - Jan 29 2018, 18:11
Go to the top of the page
 
+Quote Post
AlexandrY
сообщение Jan 29 2018, 19:21
Сообщение #14


Ally
******

Группа: Модераторы
Сообщений: 6 100
Регистрация: 19-01-05
Пользователь №: 2 050



Цитата(kkobru @ Jan 29 2018, 16:55) *
Самое важное, что это должна быть открытая библиотека на С, которую легко подключить к коду, работающему без ОС.

Как можно легко подключить развитую библиотеку, а вернее стек протоколов к коду без оси?
Я вот этого не понимаю.
Тот же MessagePack, он же парстит, кодит, жрет память ... в совершенно непредсказуемых количествах и качествах.
Как его можно просто так взять и вставить в код без ОС? Это же профайлинг и перекапывание всей библиотеки до потемнения в глазах.
Вот в этом главное противоречие.
Go to the top of the page
 
+Quote Post
mantech
сообщение Jan 30 2018, 06:25
Сообщение #15


Гуру
******

Группа: Участник
Сообщений: 2 155
Регистрация: 16-08-12
Из: Киров
Пользователь №: 73 143



Цитата(AlexandrY @ Jan 29 2018, 22:21) *
Тот же MessagePack, он же парстит, кодит, жрет память ... в совершенно непредсказуемых количествах и качествах.
Как его можно просто так взять и вставить в код без ОС? Это же профайлинг и перекапывание всей библиотеки до потемнения в глазах.


Как же далеки стали сегодняшние кодеры от классического оптимального ПО laughing.gif
Go to the top of the page
 
+Quote Post

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

 


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


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