Ответы на ваши вопросы различаются в зависимости от вашей конечной цели. Если вам нужно несколько таких устройств или меньше, вам следует упростить разработку, а не беспокоиться о стоимости запчастей. Если вы собираетесь сделать тысячу или более из них, стоит проанализировать ваши требования и снизить стоимость аппаратного обеспечения устройства.
Небольшие количества
Если вы выполняете разовый или небольшой запуск этих устройств, тогда ваши усилия по разработке уменьшат ваши затраты на единицу продукции, и вы должны сосредоточиться на том, что будет легче / быстрее всего разработать, а не на стоимости / размер микроэлектроники.
В общем, инкапсуляция может снизить сложность, увеличивая вашу производительность. Если у вас есть какие-то жесткие требования в реальном времени, такие как управление BLDC, петли PID и т. Д., Вы можете быстрее использовать отдельные контроллеры специально для тех задач, которые связываются с контроллерами, где вы сохраняете пользовательский интерфейс и другие нереальные интерфейсы. временные задачи.
Так что в этом случае ответ на ваши вопросы:
Является ли подход «все в одном» хорошей идеей, когда требуется многозадачность, или лучше сегментировать и изолировать, и
Шкала слегка наклоняется к сегментации и изоляции. Основная причина в том, что отладка системы реального времени может занимать очень много времени, и хранение таких задач на собственном процессоре ограничивает переменные, которые вы должны измерять или контролировать при попытке выяснить, почему что-то не работает должным образом.
Как я могу интуитивно узнать, обладает ли микроконтроллер, на который я смотрю, достаточной вычислительной мощностью, чтобы делать то, что мне нужно, основываясь на моем списке задач?
В этом случае разница в стоимости между 32-разрядным процессором с большим количеством ресурсов и 8-разрядным процессором с ограниченными ресурсами невелика по сравнению с количеством времени, которое вы собираетесь потратить на разработку. Нет никаких оснований пытаться выяснить, сколько энергии вам нужно - просто получите самый большой процессор, для которого, как вы считаете, вы можете его разработать, и используйте его. Если в какой-то момент вам понадобится оптимизировать стоимость проекта, сравнительно легко измерить фактическое использование ресурсов процессора, тогда выберите процессор-арендодатель, который сможет справиться с фактической нагрузкой. До тех пор используйте самый большой и не беспокойтесь о поиске «наилучшего соответствия».
Массовое производство
Если вы планируете сделать многие из этих устройств, то тщательный анализ приведет к значительной экономии средств. Вообще говоря, более крупный микроконтроллер будет стоить меньше двух микроконтроллеров, способных заменить один микроконтроллер, хотя, безусловно, есть исключения в зависимости от конкретных задач. При таких количествах стоимость оборудования, вероятно, будет намного больше, чем стоимость разработки, поэтому вы должны ожидать, что потратите больше времени на анализ ваших требований и выполнение разработки, чем если бы вы делали только несколько.
Является ли подход «все в одном» хорошей идеей, когда приходится выполнять многозадачность, или лучше сегментировать и изолировать?
Подход «все в одном», как правило, будет менее дорогим в течение всего проекта, чем несколько процессоров. Потребуется больше времени на разработку и отладку, чтобы убедиться, что различные задачи не конфликтуют, но строгий дизайн программного обеспечения будет ограничивать это почти так же, как наличие отдельного оборудования.
Как я могу интуитивно узнать, обладает ли микроконтроллер, на который я смотрю, достаточной вычислительной мощностью, чтобы делать то, что мне нужно, основываясь на моем списке задач?
Вам нужно будет понять задачи, которые вы хотите выполнить, и сколько ресурсов они занимают. Предположим, что верно следующее:
Ваши подпрограммы BLDC PI будут потреблять X циклов процессорного времени 100 раз в секунду, и для каждой из них потребуется около 50 байтов оперативной памяти, 16 байтов EEPROM для настройки и 1 Кбайт для кода. Каждому из них понадобится 3 шестнадцатеричных PWM периферийных устройства в микроконтроллере. Вам может потребоваться указать джиттер, который будет иметь особые требования к задержке прерывания.
Ваши USB и последовательные подпрограммы будут потреблять Y циклов процессорного времени по мере необходимости, 2 КБ ОЗУ, 64 байт EEPROM и 8 КБ флэш-памяти. Это потребует USB и последовательных периферийных устройств.
Ваш графический интерфейс будет потреблять Z циклов мощности процессора 30 раз в секунду, и ему потребуется 2 КБ ОЗУ, 128 байт ЭСППЗУ и 10 КБ флэш-памяти. Он будет использовать 19 входов / выходов для связи с ЖК-дисплеем, кнопками, регуляторами и т. Д.
Когда вы только начинаете, может быть трудно понять, что такое X, Y, Z, и это немного изменится в зависимости от архитектуры процессора. Тем не менее, вы должны иметь возможность понять, в рамках приблизительной оценки, сколько оперативной памяти, EEPROM и флэш-памяти понадобится вашему дизайну, и какие периферийные устройства вам нужны. Вы можете выбрать семейство процессоров, которое соответствует вашим требованиям к памяти и периферийным устройствам и имеет широкий диапазон параметров производительности в этом семействе. На этом этапе для разработки вы можете просто использовать самый мощный процессор в семействе. После того, как вы реализовали свой дизайн, вы можете легко перевести семью с точки зрения энергопотребления к более дешевому варианту без изменения вашего дизайна или среды разработки.
После того, как вы сделали достаточно этих проектов, вы сможете лучше оценить X, Y и Z. Вы будете знать, что подпрограммы BLDC PI, хотя и выполняются часто, довольно малы и требуют очень мало циклов. USB и последовательные процедуры требуют много циклов, но происходят нечасто. Пользовательскому интерфейсу часто требуется несколько циклов для поиска изменений, но, например, потребуется много циклов для обновления дисплея.