ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Понедельник
22 июля
1156577 Топик полностью
Evgeny_CD, Архитектор (20.12.2021 03:20, просмотров: 219) ответил Evgeny_CD на Вопрос восходит вот к какой идее повышения надежности передачи UART.
Так, считаем пример и офигеваем. 

Пусть у нас будет распределенный ПЛК на 1024 дискретных порта. Каждые 16 дискретных сигналов можно заменить на аналоговый ввод или вывод.


Для этого у нас есть шина и 64 платочки, каждая платочка контролирует 16 д. порта или 1 аналоговый.


Полный цикл обмена у нас 1024 бита. Сейчас не паримся, ввод или вывод. 1 мбит для реального времени 1 мс.


1 мс - считали. 2 мс - обсчитали. 1 мс - вывели. На самом деле ввод и вывод будет перекрываться. 4 мс время реакции на любую комбинацию 1024 сигнала!!! Энергетики рыдают от счастья!


Эффективность шины у нас 20% с учетом четверирования. Нам надо 5 мбит UART. В пределах пары соседних шкафов реально.


Мы не учли адреса и прочие протокольные вещи. По хорошему надо запас раза два, ну хотя бы полтора. 7.5 мбит RS-485 это уже не каждый MCU потянет.


Ограничимся 6 мбит. Это разумный предел многих MCU.


Вот так со скрипом все сходится. С натяжкой, но в качестве первого приближения годится.


Важно! У нас периферийные платочки - это китайская 8051 за $0.5. Т.е. там текстолит и разъемы наше фсе по цене.


Хост. STM32H7, iMX RT. Если FBD компилить сразу в асм, что, в принципе, реально, то будет примерно 2 мкс на "терм" (термин мира CPLD) при условии что таких термов 1024, что весьма неплохо. В принципе успеет. MCU можно параллелить. Входные данные параллельно, в каждом MCU свой набор термов, выходы объединяем. Можно сделать lockstep для MCU - сравнить, выдали ли они одинаковые команды за цикл.