ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Суббота
23 ноября
351795 Топик полностью
Evgeny_CD, Архитектор (04.09.2012 18:49, просмотров: 214) ответил Mahagam на у меня ПЛИСина корчит из себя обычную SRAM. интерфейс соответствующий. там где такого нет, можно прицепить через практически любой интерфейс удовлетворяющий по скорости и латентности. да хоть на I2S - его обычно DMA обрабатывает.
Там есть приятная фишка - локальный, пусть и дохлый, процессор. Он может делать 2 работы (и много чего еще) * RT управление, если по логике работы контур управления "короткий" * пакетирование и упаковка. Т.е. центральный процессор формирует пакет "в такое-то время запусти 12 PWM с такими-то параметрами, через столько-то тиков - с такими". Все это лежит в памяти центрального проца как C структура - как удобно процу, а не PWM. Берем DDMA и программим - вот тут возьми заголовок пакета, а вот тут его тело - эту С структуру. DDMA выпихивает все в периферийный проц, и тот начинает обратабывать пакет и кормить регистры PWM. Например, переводя float -> int и т.д. Программа периферийного проца предельно проста - big loop, coroutine в лучшем случае. Он решает ОДНУ ЗАДАЧУ. Программа для большого проца тоже сильно упрощаетя. Он, как пример, считает задачу регулирования в плавучке и ни о какой периферии не знает. Еще периферийный процессор может обрабатывать пакеты с привязкой к RT. Например, вот блок отсчетов, и время первого отсчета такое-то. Или наборот - пакет от центрального проца "в такое-то время сделай то-то". Это позволяет сделать полноценную многозадачность в центральном проце - и не утратить "нить RT" в части периферии.