Как выбрать микроконтроллер для приложений цифровой обработки сигналов

Добавлено 18 сентября 2019 в 18:15

В данной статье обсуждаются особенности микроконтроллера, на которые необходимо обратить внимание, когда вам нужен микроконтроллер, который будет выполнять роль как системного контроллера, так и цифрового сигнального процессора (DSP).

Цифровая обработка сигналов может добавить ценные функциональные возможности для широкого спектра продуктов и приложений. Даже проекты, которые ограничены стоимостью, форм-фактором или каким-либо списком, могут легко включать преимущества DSP, потому что в настоящее время инженеры имеют доступ к множеству библиотечного кода, примеров проектов и высокопроизводительных процессоров, которые недороги и относительно удобны для пользователя.

Настоящий цифровой сигнальный процессор, например, модель из семейства C5000 от Texas Instruments или семейства SHARC от Analog Devices, может немного пугать. В основном, я работал с DSP от Texas Instruments, и, в целом, опыт был продуктивным и удовлетворительным. Однако в этом случае мне не нужно было проектировать печатную плату, и мне не нравился процесс отладки странных сбоев системы и разбирательства с деталями операционной системы.

Нет никаких сомнений в том, что для определенных вычислительных задач цифровой обработки сигналов (ЦОС) потребуется настоящий цифровой сигнальный процессор или даже ПЛИС. Также верно и то, что во многих приложениях было бы достаточно правильно подобранного микроконтроллера. В данной статье обсуждаются характеристики и способности, на которых вам необходимо сосредоточиться, когда вы хотите, чтобы ваш микроконтроллер имел достаточную мощность цифровой обработки сигналов.

8-разрядный, 16-разрядныйили 32-разрядный?

Этот вопрос не так прост, как вы думаете. В целом, 16-разрядные и 32-разрядные устройства будут более подходящими для приложений ЦОС. Цифровая обработка сигналов включает математические процедуры, которые часто приводят к большим числам, и вам нужен процессор, который может напрямую манипулировать этими большими числами.

Однако 8-разрядная обработка не является плохой по своей природе, и если вы знаете, что будете иметь дело с ограниченным диапазоном числовых значений, 8-битный микроконтроллер может быть хорошим выбором.

Кроме того, инженеры часто не имеют времени или желания изучать низкоуровневые подробности процессора, и, следовательно, может быть трудно установить четкую связь между указанной шириной в битах и ​​реальной вычислительной эффективностью. Например, имеет ли «32-разрядный микроконтроллер» 32-разрядные регистры? 32-разрядное АЛУ (арифметико-логическое устройство)? 32-разрядную адресную шину? 32-разрядный интерфейс связи? Что именно означает «32-разрядный»? Эти детали могут повлиять на ваше решение, особенно если вы ожидаете иметь дело в основном с небольшими числами, которым не нужны все эти дополнительные биты.

Эта обновленная 8-битная архитектура была разработана Silicon Labs. Они предостерегают от предположения, что 16-разрядное или 32-разрядное устройство будет соответственно превосходить 8-разрядное устройство
Эта обновленная 8-битная архитектура была разработана Silicon Labs (схема взята из этого документа). Они предостерегают от предположения, что 16-разрядное или 32-разрядное устройство будет соответственно превосходить 8-разрядное устройство

Тактовая частота

Максимальная тактовая частота микроконтроллера, безусловно, является хорошим показателем его преимуществ в качестве цифрового сигнального процессора. Однако важно понимать разницу между тактовыми циклами в секунду и инструкциями в секунду. Процессор выполняет задачи ЦОС, выполняя инструкции, и, следовательно, на его производительность влияют как тактовая частота, так и количество тактов, необходимых для выполнения команд.

К сожалению, этот вопрос быстро становится довольно сложным. Количество тактов, необходимое для инструкции, варьируется от одной инструкции к другой, а среднее число тактов на инструкцию может быть уменьшено с помощью конвейерной архитектуры. Затем необходимо учитывать количество «функциональности на инструкцию», т.е. микроконтроллеру A может потребоваться только одна инструкция, чтобы выполнить то, что потребовало бы нескольких инструкций на микроконтроллере B.

Эта диаграмма демонстрирует концепцию конвейерного процессора.
Эта диаграмма демонстрирует концепцию конвейерного процессора.

Кратко, вот моя рекомендация: если вы сравниваете устройства одного и того же семейства, выберите более высокую тактовую частоту. Если вы сравниваете устройства с базовыми архитектурными различиями, попробуйте найти надежную спецификацию, в которой указана либо скорость выполнения команд (выраженную в MIPS, миллионы команд в секунду), либо среднее число тактов на команду.

Фиксированная запятая и плавающая запятая

Термин «с плавающей запятой» относится к числовому представлению, в котором осевая точка может «плавать», потому что число состоит из целой части (мантиссы) и показателя степени. Альтернатива («фиксированная запятая») соответствует тому, как мы обычно обрабатываем и воспринимаем данные в обычном микроконтроллере. Тщательное сравнение арифметики с плавающей запятой и арифметики с фиксированной запятой ни в коем случае не является простой задачей, но, похоже, существует консенсус в отношении того, что обработка с плавающей запятой может быть лучше в математически сложных приложениях.

Думаю, можно с уверенностью сказать, что все микроконтроллеры являются устройствами с фиксированной запятой, потому что, по-моему, если это процессор по-настоящему с плавающей запятой, он больше не может называться микроконтроллером. Однако, если вы действительно настроены на максимальную математическую производительность, оставаясь в области микроконтроллеров, вам следует рассмотреть устройство, которое включает в себя сопроцессор с плавающей запятой.

LPC3180FEL320 от NXP, 16/32-разрядный микроконтроллер на базе ARM, имеет сопроцессор с плавающей запятой и может достигать 220 MIPS. STMicroelectronics также имеет микроконтроллеры STM32, которые включают в себя модуль с плавающей запятой (FPU, floating-point unit).

Я использовал немного математики с плавающей запятой в своем проекте с круговым датчиком прикосновения. В большинстве случаев отдельный FPU не нужен - компиляторы хорошо справляются с реализацией переменных с плавающей запятой в обычных микроконтроллерах.
Я использовал немного математики с плавающей запятой в своем проекте с круговым датчиком прикосновения. В большинстве случаев отдельный FPU не нужен – компиляторы хорошо справляются с реализацией переменных с плавающей запятой в обычных микроконтроллерах.

Подведем итоги

В данной статье мы рассмотрели характеристики центрального процессора, которые делают микроконтроллер более или менее подходящим для приложений цифровой обработки сигналов. Думаю, что в большинстве ситуаций имеет смысл сосредоточиться на ширине в битах и MIPS. О значениях производительности с плавающей запятой по сравнению с фиксированной запятой, сильно беспокоиться не стоит, если вы не планируете на своем микроконтроллере серьезной обработки чисел. Мы продолжим эту тему в следующей статье, в которой будут обсуждаться периферийные функции, связанные с ЦОС.

Теги

DSP / ЦОС (цифровая обработка сигналов)MCUМикроконтроллерПроектирование встраиваемых систем

На сайте работает сервис комментирования DISQUS, который позволяет вам оставлять комментарии на множестве сайтов, имея лишь один аккаунт на Disqus.com.

В случае комментирования в качестве гостя (без регистрации на disqus.com) для публикации комментария требуется время на премодерацию.