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

 
 
> Экономичный и быстрый протокол для обмена между микроконтроллерами с RTOS, Ищу идеи по реализации
AlexandrY
сообщение Apr 5 2013, 08:35
Сообщение #1


Ally
******

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



Есть два микроконтроллера связанных по одному из интерфейсов UART, SPI, I2C или еще каким либо последовательным интерфейсом.
Обмен между ними достаточно скоростной, не менее 1 Мбит/c.

На физическом уровне все достаточно понятно, включаем DMA на обоих микроконтроллерах и отражаем принимаемые и посылаемые кадры DMA в память.
Чтобы уменьшить накладные расходы процессорного времени на перезапуск, DMA включаем на постоянную работу по связному списку из указателей на два приемных буфера.
Также и с передатчиком.

Но а дальше как?

Как упаковывать данные, какие хидеры им давать, как контролировать целостность чтобы все это занимало как можно меньше процессорного времени и полосы пропускания.
Затем вопрос по программной архитектуре приемников.
Делать ли общий конвейер в драйвере приемника куда бы копировались все пакеты или может быть создавать таблицу подписки для драйвера где все заинтересованные задачи регистрировали бы свои принимающие конвейеры или майлбоксы?
Если таблица подписки то разумно ли драйвер нагружать функцией менеджера сообщений? Это будет замедлять драйвер, хотя будет легко добавить механизм приоритетности.
Если делать общий конвейер, то все равно нужен менеджер сообщений, но в отдельной задаче. А это уже расход стека на дополнительную задачу...

Да, и речь идет о жестком риалтайме и малых микроконтроллерах типа Cortex-M4, т.е. никаких линуксов и стандартных API типа POSIX.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
PheeL
сообщение Apr 17 2013, 09:10
Сообщение #2


Участник
*

Группа: Участник
Сообщений: 32
Регистрация: 24-11-07
Пользователь №: 32 633



Хочу посоветовать обратить внимание на систему сообщений в QNX. Я сейчас не готов предметно обсуждать возможность использования формата применяемых там сообщений для IPC как универсального протокола обмена через различные аппаратные интерфейсы, но возможно стоит взглянуть на заложенные там идеи (тем более, что документация отличная). Во всяком случае я сам планирую более детально это изучить когда буду чуть более разгружен на работе.


--------------------
Если друг оказался вдруг и не друг и не враг, а - JTAG.
Go to the top of the page
 
+Quote Post
rsv
сообщение Apr 17 2013, 16:42
Сообщение #3


Частый гость
**

Группа: Свой
Сообщений: 119
Регистрация: 16-07-07
Из: Тула
Пользователь №: 29 160



Цитата(PheeL @ Apr 17 2013, 13:10) *
Хочу посоветовать обратить внимание на систему сообщений в QNX. Я сейчас не готов предметно обсуждать возможность использования формата применяемых там сообщений для IPC как универсального протокола обмена через различные аппаратные интерфейсы, но возможно стоит взглянуть на заложенные там идеи (тем более, что документация отличная). Во всяком случае я сам планирую более детально это изучить когда буду чуть более разгружен на работе.

А там есть универсальный верхний уровень ( qnet называется ) , который пока реализован поверх единственного интерфейса - erhernet. Про все остальные интерфейсы в документации дословно написано, что вы легко можете адаптировать этот самый qnet для работы с другими интерфейсами типа pcie или serial rapid io. На самом деле это весьма нелегко. Но в вашем случае ehernet 100 мбит вполне может быть достаточно, опять же никто не мешает гигабит привернуть. Некоторое ухудшение реалтаймности при работе через сеть в документации прописано, но конкретных величин не приведено. Проблема возникает из-за того что много абонентов стучатся в ethernet свич, ну а он, соответственно, притормаживает. Притормозить, судя по сведениям инета, может на пару милисекунд.
Для решения проблемы свича и повышения реалтаймности люди придумали целое семейство протоколов industrial ethernet, fire ware, serial rapid io и еще что то, уже забыл
Кстати, на некоторые армовские камни существуют bsp на qnx http://community.qnx.com/sf/wiki/do/viewPa...i/BSPAndDrivers
Только советую выбирать камень с bsp посвежее, тк допиливать по месту что-то старое довольно сложно
Go to the top of the page
 
+Quote Post
AlexandrY
сообщение Apr 17 2013, 17:46
Сообщение #4


Ally
******

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



Цитата(rsv @ Apr 17 2013, 19:42) *
А там есть универсальный верхний уровень ( qnet называется ) , который пока реализован поверх единственного интерфейса - erhernet. Про все остальные интерфейсы ...


Почему нужно засорять тему, когда ясно обозначен класс архитектур для которых ищется решение?
Предлагаю оставить в покое QNX и Ethernet.

Нашел интересную реализация IPC в RTOS MQX.
Там в объект RTOS под названием "Сообщения" встроена возможность пересылать сообщения не только между задачами но им между процессорами.
Причем драйвер для передачи сообщений может быть сделан на любом коммуникационном интерфейсе. В примерах они делают драйвер на UART-е.
Объект Сообщения представляет собой очередь из специальных структур предварительно выделяемых из памяти самим приложением.
Освобождается память структур уже в приемной стороне если это локальная задача или в драйвере если это удаленная задача.
Поскольку процессоров в системе предусматривается до 256, то реализован механизм маршрутизации между микропроцессорами.
С виду неплохая реализация, но пакеты несут внутреннюю информацию RTOS в частности идентификаторы объектов источников и приемников RTOS.
Т.е. протокол привязан к реализации RTOS MQX и эта RTOS должна быть на всех микропроцессорах в системе, а это уже не так интересно.

Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- AlexandrY   Экономичный и быстрый протокол для обмена между микроконтроллерами с RTOS   Apr 5 2013, 08:35
- - Shamil   Цитата(AlexandrY @ Apr 5 2013, 14:35) Как...   Apr 5 2013, 09:57
|- - AlexandrY   Цитата(Shamil @ Apr 5 2013, 12:57) Для на...   Apr 5 2013, 10:49
|- - Shamil   Цитата(AlexandrY @ Apr 5 2013, 16:49) Это...   Apr 5 2013, 12:04
- - SyncLair   интересная задача -- на мой взгляд, она сводится к...   Apr 5 2013, 20:01
|- - AlexandrY   Цитата(SyncLair @ Apr 5 2013, 23:01) инте...   Apr 6 2013, 19:27
- - DASM   Может не в тему, но возникла что-то подобное на Те...   Apr 6 2013, 08:09
|- - Axel   Цитата(DASM @ Apr 6 2013, 11:09) ... заде...   Apr 6 2013, 10:08
- - DASM   Но у нас сопряжение с ПЛИС идет, надо глядеть доку...   Apr 6 2013, 10:54
|- - Axel   Цитата(DASM @ Apr 6 2013, 13:54) Но у нас...   Apr 7 2013, 03:31
- - DASM   Сдается мне, что автор не вопрос задавал, поскольк...   Apr 6 2013, 19:33
|- - AlexandrY   Цитата(DASM @ Apr 6 2013, 22:33) Сдается ...   Apr 7 2013, 11:54
- - vshemm   В такой постановке задачи нет связи между минимиза...   Apr 7 2013, 17:44
- - juvf   Цитата(AlexandrY @ Apr 5 2013, 14:35) Ест...   Apr 15 2013, 03:09
|- - AlexandrY   Цитата(juvf @ Apr 15 2013, 06:09) Наприме...   Apr 17 2013, 08:43
|- - denyslb   Цитата(AlexandrY @ Apr 17 2013, 11:43) По...   Jun 29 2013, 01:34
- - DASM   суть сего топика в виде статьи для журнала будет н...   Apr 26 2013, 21:09
|- - AlexandrY   Цитата(DASM @ Apr 27 2013, 00:09) суть се...   Apr 28 2013, 12:12
- - kikos   Цитата(AlexandrY @ Apr 5 2013, 12:35) Ест...   Jun 6 2013, 10:31
- - Fujitser   Сериализацию тут зачем-то вспомнили, это вообще из...   Jun 14 2013, 12:59
|- - AlexandrY   Цитата(Fujitser @ Jun 14 2013, 15:59) Сер...   Jun 14 2013, 15:15
|- - ViKo   Цитата(AlexandrY @ Jun 14 2013, 18:15) 1-...   Jun 14 2013, 18:04
|- - Axel   Цитата(ViKo @ Jun 14 2013, 21:04) Я испол...   Jun 15 2013, 17:00
|- - AlexandrY   Цитата(ViKo @ Jun 14 2013, 21:04) Я испол...   Jun 15 2013, 19:22
|- - ViKo   Цитата(AlexandrY @ Jun 15 2013, 22:22) А ...   Jun 17 2013, 08:50
|- - AlexandrY   Цитата(ViKo @ Jun 17 2013, 11:50) У меня ...   Jun 17 2013, 09:03
|- - ViKo   Цитата(AlexandrY @ Jun 17 2013, 12:03) У ...   Jun 17 2013, 09:24
- - AndrewN   Новелла увы, превратилась в устареллу, но попохвал...   Sep 18 2013, 17:17


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

 


RSS Текстовая версия Сейчас: 22nd July 2025 - 16:14
Рейтинг@Mail.ru


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