Evgeny_CD, Архитектор (26.04.2019 19:07, просмотров: 467) ответил mse homjak на Никакое ДМА не спасёт вас от латентностей. И что толку в вашем быстром приёме "по ДМА", если парсить его тот 51 будет пол-года? И что за прикол, вешать на СПИ вязанку каких-то каличей? Поставьте нормальный проц или ФПГА и все "периферийные
Ню ню :) 1. Я не зря говорил про TDMA. Алгоритм прост:
- контроллер получает сигнал (сейчас неважно как) - пора
- получает и принимает пакет
- думает над содержимым принятого и подготовкой пакет на отправку, скажем, 10 мс
- при поступлении следующего сигнала (а они идут строго по расписанию) процесс повторяется.
2. Микросеть рассчитана на прямую адресацию "сигналом", там нет никаких адресов, сложных протоколов и прочего. Накладных расходов минимум.
3. Вот Вам простой пример:
-- мы делаем промышленный PLC
-- хотим иметь 32 гальванически развязанных универсальных канала
-- темп опроса каналов - 1 мс
-- общий темп управления - 4 мс: захват и предварительная обработка, передача на хост, обработка на хосте, передача на выходной контроллер, выдача выходного сигнала
-- вместо SPI там будет UART, но хитрый - с мультиплексором/демультиплексором на каждый канал. Т.е. по UART канала "левак" не бегает . Если ему идут байты - это его байты, и по началу посылки он настраивает DMA на выдачу своего пакета
-- оптронная или на цифровых изоляторах развязка. Либо 2 канала, либо 3 (в случае использования синхронного UART, что имеет свои преимущества, добавляется сигнал клока)
-- каналы универсальные (в разумных пределах): цифровые входы-выходы, вход 4/20 мА с собственным питанием (низка точность, честных 8 бит за глаза), силовой цифровой выход 12В до 200мА - реле управлять
-- некоторые каналы могут иметь весьма мощный MCU или даже DSP, если задача этого канала такого требует. dsPIC 100 Мгц, BlackFin в минимальном варианте с очень маленькой памятью стоят совсем недорого - чего не скажешь про варианты с памятью поболее.
-- некоторые каналы могут быть очень точными - 24b ADC, специфическая "аналоговка"
Удачи сделать такое на одном контроллере :)
И да, кайф от полной гальванической развязки всех каналов такого PLC стоит того, чтобы потрахаться с микросетью.