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

 
 
> Экономичный и быстрый протокол для обмена между микроконтроллерами с 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
Ответов
juvf
сообщение Apr 15 2013, 03:09
Сообщение #2


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

Группа: Свой
Сообщений: 1 261
Регистрация: 14-05-09
Из: Челябинск
Пользователь №: 49 045



Цитата(AlexandrY @ Apr 5 2013, 14:35) *
Есть два микроконтроллера связанных по одному из интерфейсов UART, SPI, I2C или еще каким либо последовательным интерфейсом.
Обмен между ними достаточно скоростной, не менее 1 Мбит/c.

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

Но а дальше как?
Например 1)modbus на уарте: ставим период таймера 3,5 символа. По прерывания урта дергаем дма и запуск таймера (аппаратно). В обработчике прерывания таймера выставляем флаг приема пакета. ну и гдето обрабатываем пакет (подсчет црц, парсинг, подготовка ответа).

2)CAN - 8 байт вам доставятся на аппаратном уровне гарантированно на скорости 1 Мбит/c, с аппаратной защитой црц, с повторами при колизиях.

Цитата
Так что минимум CRC8
на 16-ти и 32-х битных процессорах лучше црц-16. защита лучше, а вычислений ровно столько же. (правда код у црц8 меньше памяти займёт)
Go to the top of the page
 
+Quote Post
AlexandrY
сообщение Apr 17 2013, 08:43
Сообщение #3


Ally
******

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



Цитата(juvf @ Apr 15 2013, 06:09) *
Например 1)modbus на уарте...


modbus-то причем к межпроцессорному обмену? А тем более CAN?



Цитата(vshemm @ Apr 7 2013, 20:44) *
В такой постановке задачи нет связи между минимизацией полосы пропускания и процессорного времени и риалтаймом. Так что либо уточните условия (какие еще задачи выполняет мк, кто еще использует канал связи и т.п.) или уточните что подразумевается под риалтаймовостью.

А контролем целостности пренебрегать нельзя, имхо. У вас аппаратные ошибки могут возникать уже при эксплуатации из-за деградации оборудования или помех, например. Так что минимум CRC8 (при небольших пакетах; вообще, тут стоит граничить оверхед для типичного и/или максимального размера пакета).

"Как упаковывать данные, какие хидеры им давать" и т.п. никто вам не скажет, пока не увидит software requirements sm.gif


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

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

Почему контроль целостности на DDR (130 МГц) можно не выполнять, а на UART-е (1 МГц) на той же плате нужно?
Или это не понимание о чем идет речь?
Go to the top of the page
 
+Quote Post
denyslb
сообщение Jun 29 2013, 01:34
Сообщение #4


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

Группа: Свой
Сообщений: 111
Регистрация: 5-05-10
Из: Lebanon, Beirut
Пользователь №: 57 093



Цитата(AlexandrY @ Apr 17 2013, 11:43) *
Почему контроль целостности на DDR (130 МГц) можно не выполнять, а на UART-е (1 МГц) на той же плате нужно?
Или это не понимание о чем идет речь?

Intel SDCC, chipkill - для серверной DDR памяти вполне применяется (по сути данные в память загоняются с ECC битами, соответственно защищаются и при передаче, и защита от bit flipping).

Сообщение отредактировал denyslb - Jun 29 2013, 01:35
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
- - PheeL   Хочу посоветовать обратить внимание на систему соо...   Apr 17 2013, 09:10
|- - rsv   Цитата(PheeL @ Apr 17 2013, 13:10) Хочу п...   Apr 17 2013, 16:42
|- - AlexandrY   Цитата(rsv @ Apr 17 2013, 19:42) А там ес...   Apr 17 2013, 17:46
- - 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 Текстовая версия Сейчас: 23rd July 2025 - 22:20
Рейтинг@Mail.ru


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