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

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

Данная статья продолжает обсуждение возможностей и характеристик микроконтроллера, которые особенно важны, когда речь идет о цифровой обработке сигналов (ЦОС).

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

Предыдущая статья была посвящена характеристикам процессора, а именно: разрядность, тактовая частота, тактовые циклы на инструкцию и возможности работы с плавающей запятой. В этой статье мы рассмотрим периферийные модули и функции, которые делают микроконтроллер более подходящим для выполнения цифровой обработки сигналов (ЦОС, DSP, Digital.Signal Processing).

Поддержка процессора

Некоторые аппаратные модули занимают промежуточное положение между процессором и обычными периферийными устройствами, такими как таймеры и компараторы. Типовым примером является аппаратный множитель.

Аппаратное умножение

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

Треугольники на этой структурной схеме КИХ-фильтра представляют операции умножения.
Треугольники на этой структурной схеме КИХ-фильтра представляют операции умножения.

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

Аппаратные умножители на самом деле выходят за рамки простого умножения. Процедуры цифровой обработки сигналов часто требуют процесса, известного как умножение и накопление (MAC, multiply-and-accumulate), который (как вы, возможно, догадались) включает в себя многократное умножение чисел и суммирование, или накопление, результатов операций умножения. Аппаратный модуль MAC предлагает еще больший потенциал для повышения производительности DSP.

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

Прямой доступ к памяти (DMA, Direct Memory Access)

Я впервые узнал о DMA, когда работал над программно-определяемой радиосистемой, которая должна была быстро выполнять алгоритм декодирования с оцифрованными демодулированными сигналами (в основной полосе частот), и этот опыт навсегда впечатлил меня значением DMA в чувствительной ко времени цифровой обработке сигналов.

Модуль DMA – это, по сути, отдельный процессор, который выполняет одну задачу: перемещение данных. Эта задача проста, поэтому включение функциональности DMA в ваш проект не сильно увеличивает его сложность, а мощность DSP системы резко возрастает, поскольку центральный процессор может сосредоточиться на обработке чисел вместо тасования данными между памятью и периферийными устройствами. Если вашему приложению требуются интенсивные вычисления цифровой обработки данных в реальном времени, контроллер DMA может стать особенно ценным дополнением к возможностям вашего микроконтроллера.

Контроллер DMA в микроконтроллере SAM4S (от Atmel) позволил мне создать эту синусоиду без постоянного приставания к центральному процессору с отправкой следующей точки данных в ЦАП.
Контроллер DMA в микроконтроллере SAM4S (от Atmel) позволил мне создать эту синусоиду без постоянного приставания к центральному процессору с отправкой следующей точки данных в ЦАП.

Связь

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

Параллельная передача данных

Мне нравятся параллельные интерфейсы, потому что они простые, по крайней мере, теоретически, но они встречаются реже, чем вы думаете. Передача восьми или даже шестнадцати битов одновременно кажется гораздо более эффективной, чем отправка одного бита за раз, но последовательные интерфейсы широко используются даже в высокоскоростных системах. Если выбор параллельной передачи данных предпочтительнее для вашей системы, и вы хотите попробовать этот вариант, ищите микроконтроллер с «интерфейсом внешней памяти» (EMI или EMIF, external memory interface), «интерфейсом внешней шины» (EBI, external bus interface) или чем-то в этом роде.

Последовательная передача данных

I2C не является высокоскоростным интерфейсом, а стандартный UART обычно используется на низких или средних скоростях передачи данных. Ищите периферийные устройства, которые демонстрируют высокие максимальные тактовые частоты и которые используют дополнительный сигнал для синхронизации между приемником и передатчиком (это позволяет сигналу данных полностью использоваться для передачи реальных данных).

«USART» – это довольно стандартная аббревиатура для модуля последовательной связи, который я предлагаю использовать («S» означает «синхронный»). В основном, я рекомендую микроконтроллер с аналогом «многоканального буферизованного последовательного порта» от TI – сокращенно McBSP (multichannel buffered serial port, аббревиатура произносится как mic-BSP, как будто модуль из Ирландии). Модуль, который надолго мне запомнился, и будет постоянно ассоциироваться в моем разуме с высокоскоростной последовательной передачей данных.

Проверка на ошибки

Приложения, которые требуют надежного обнаружения ошибок, могут извлечь выгоду из аппаратного модуля CRC.

Схема аппаратного CRC-модуля, интегрированного в микроконтроллер EFM8 Laser Bee от Silicon Labs. Вы передаете ему последовательность байтов, и он использует стандартный полином CRC для формирования 16-битного результата.
Схема аппаратного CRC-модуля, интегрированного в микроконтроллер EFM8 Laser Bee от Silicon Labs. Вы передаете ему последовательность байтов, и он использует стандартный полином CRC для формирования 16-битного результата.

Заключение

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

Теги

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

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

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