Как выбрать микроконтроллер для приложений цифровой обработки сигналов
В данной статье обсуждаются особенности микроконтроллера, на которые необходимо обратить внимание, когда вам нужен микроконтроллер, который будет выполнять роль как системного контроллера, так и цифрового сигнального процессора (DSP).
Цифровая обработка сигналов может добавить ценные функциональные возможности для широкого спектра продуктов и приложений. Даже проекты, которые ограничены стоимостью, форм-фактором или каким-либо списком, могут легко включать преимущества DSP, потому что в настоящее время инженеры имеют доступ к множеству библиотечного кода, примеров проектов и высокопроизводительных процессоров, которые недороги и относительно удобны для пользователя.
Настоящий цифровой сигнальный процессор, например, модель из семейства C5000 от Texas Instruments или семейства SHARC от Analog Devices, может немного пугать. В основном, я работал с DSP от Texas Instruments, и, в целом, опыт был продуктивным и удовлетворительным. Однако в этом случае мне не нужно было проектировать печатную плату, и мне не нравился процесс отладки странных сбоев системы и разбирательства с деталями операционной системы.
Нет никаких сомнений в том, что для определенных вычислительных задач цифровой обработки сигналов (ЦОС) потребуется настоящий цифровой сигнальный процессор или даже ПЛИС. Также верно и то, что во многих приложениях было бы достаточно правильно подобранного микроконтроллера. В данной статье обсуждаются характеристики и способности, на которых вам необходимо сосредоточиться, когда вы хотите, чтобы ваш микроконтроллер имел достаточную мощность цифровой обработки сигналов.
8-разрядный, 16-разрядныйили 32-разрядный?
Этот вопрос не так прост, как вы думаете. В целом, 16-разрядные и 32-разрядные устройства будут более подходящими для приложений ЦОС. Цифровая обработка сигналов включает математические процедуры, которые часто приводят к большим числам, и вам нужен процессор, который может напрямую манипулировать этими большими числами.
Однако 8-разрядная обработка не является плохой по своей природе, и если вы знаете, что будете иметь дело с ограниченным диапазоном числовых значений, 8-битный микроконтроллер может быть хорошим выбором.
Кроме того, инженеры часто не имеют времени или желания изучать низкоуровневые подробности процессора, и, следовательно, может быть трудно установить четкую связь между указанной шириной в битах и реальной вычислительной эффективностью. Например, имеет ли «32-разрядный микроконтроллер» 32-разрядные регистры? 32-разрядное АЛУ (арифметико-логическое устройство)? 32-разрядную адресную шину? 32-разрядный интерфейс связи? Что именно означает «32-разрядный»? Эти детали могут повлиять на ваше решение, особенно если вы ожидаете иметь дело в основном с небольшими числами, которым не нужны все эти дополнительные биты.
Тактовая частота
Максимальная тактовая частота микроконтроллера, безусловно, является хорошим показателем его преимуществ в качестве цифрового сигнального процессора. Однако важно понимать разницу между тактовыми циклами в секунду и инструкциями в секунду. Процессор выполняет задачи ЦОС, выполняя инструкции, и, следовательно, на его производительность влияют как тактовая частота, так и количество тактов, необходимых для выполнения команд.
К сожалению, этот вопрос быстро становится довольно сложным. Количество тактов, необходимое для инструкции, варьируется от одной инструкции к другой, а среднее число тактов на инструкцию может быть уменьшено с помощью конвейерной архитектуры. Затем необходимо учитывать количество «функциональности на инструкцию», т.е. микроконтроллеру A может потребоваться только одна инструкция, чтобы выполнить то, что потребовало бы нескольких инструкций на микроконтроллере B.
Кратко, вот моя рекомендация: если вы сравниваете устройства одного и того же семейства, выберите более высокую тактовую частоту. Если вы сравниваете устройства с базовыми архитектурными различиями, попробуйте найти надежную спецификацию, в которой указана либо скорость выполнения команд (выраженную в MIPS, миллионы команд в секунду), либо среднее число тактов на команду.
Фиксированная запятая и плавающая запятая
Термин «с плавающей запятой» относится к числовому представлению, в котором осевая точка может «плавать», потому что число состоит из целой части (мантиссы) и показателя степени. Альтернатива («фиксированная запятая») соответствует тому, как мы обычно обрабатываем и воспринимаем данные в обычном микроконтроллере. Тщательное сравнение арифметики с плавающей запятой и арифметики с фиксированной запятой ни в коем случае не является простой задачей, но, похоже, существует консенсус в отношении того, что обработка с плавающей запятой может быть лучше в математически сложных приложениях.
Думаю, можно с уверенностью сказать, что все микроконтроллеры являются устройствами с фиксированной запятой, потому что, по-моему, если это процессор по-настоящему с плавающей запятой, он больше не может называться микроконтроллером. Однако, если вы действительно настроены на максимальную математическую производительность, оставаясь в области микроконтроллеров, вам следует рассмотреть устройство, которое включает в себя сопроцессор с плавающей запятой.
LPC3180FEL320 от NXP, 16/32-разрядный микроконтроллер на базе ARM, имеет сопроцессор с плавающей запятой и может достигать 220 MIPS. STMicroelectronics также имеет микроконтроллеры STM32, которые включают в себя модуль с плавающей запятой (FPU, floating-point unit).
Подведем итоги
В данной статье мы рассмотрели характеристики центрального процессора, которые делают микроконтроллер более или менее подходящим для приложений цифровой обработки сигналов. Думаю, что в большинстве ситуаций имеет смысл сосредоточиться на ширине в битах и MIPS. О значениях производительности с плавающей запятой по сравнению с фиксированной запятой, сильно беспокоиться не стоит, если вы не планируете на своем микроконтроллере серьезной обработки чисел. Мы продолжим эту тему в следующей статье, в которой будут обсуждаться периферийные функции, связанные с ЦОС.