Смекни!
smekni.com

Звуковые возможности микроконтроллера STM32F (стр. 1 из 2)

Роман Криночкин (г. Винница)

Диктофоны, автоответчики, системы промышленной связи, системы безопасности с интеркомами, говорящие игрушки, беспроводные гарнитуры и многие другие приложения можно реализовать практически на единственном чипе. Это микроконтроллер из семейства STM32F компании STMicroelectronics.

Постоянное совершенствование технологии производства полупроводниковых кристаллов, наряду с повышением плотности интеграции, привело к расширению функциональных возможностей микросхем, что в свою очередь, позволило значительно увеличить область применения микроконтроллеров (МК). Современный МК отличается не только высоким быстродействием и большим объемом RAM- и Flash-памяти, но и богатым набором периферийных устройств, гарантирующих возможность применения в самых разнообразных ситуациях, для которых раньше приходилось применять дискретные многокорпусные наборы микросхем. Однако за высокую производительность и универсальность приходиться расплачиваться значительным энергопотреблением.

На первый взгляд все микроконтроллеры с одной ARM-архитектурой должны быть одинаковы. Однако, несмотря на идентичное ядро, «пробным камнем», позволяющим отличить удачный продукт от неудачного, является соотношение «функциональность/цена/энергопотребление». Компании STMicroelectronics удалось добиться в своих продуктах сочетания низкого энергопотребления при высокой производительности и богатейшего набора периферии по приемлемой цене. Все это позволяет находить новые возможности использования семейства микроконтроллеров STM32F. В статье пойдет речь о внедрении МК STM32F (в основном семейства «Connectivity line» STM32F105xx/107xx, а также STM32F103xC/D/E) в различные звуковые приложения.

Самым простым примером использования STM32F в области звуковых приложений является создание комплексного аудиопроигрывателя с возможностью чтения аудиопотока с USB Flash-носителей и карт памяти, поддержкой HMI (human machine interface) в виде сенсорных экранов и/или кнопочных устройств ввода и с выводом информации по шине I2S прямо в ЦАП (рис. 1) [1].

Рис. 1. Пример организации аудиопроигрывателя на основе семейства «Connectivity line»

Однако не стоит думать, что применение этих чипов ограничивается бытовой аудиовоспроизводящей аппаратурой. Производителям удалось интегрировать в данную серию также поддержку контроллера протокола передачи данных Ethernet, индустриальную шину связи CAN с выделенной памятью, множество таймеров и 16-канальный АЦП. Таким образом, данный МК совмещает в себе как функции, направленные на использование в потребительских приложениях, так и обычно присущие индустриально-ориентированным контроллерам свойства, что делает возможным применение серии «Connectivity line» в комплексных приложениях. Ничто не мешает построить на базе этих чипов не только аудиоплеер, но и промышленную систему АСУ со звуковым оповещением. Не секрет, что шина CAN получила наибольшее распространение на транспорте, поэтому вполне возможно использование описываемых МК в системах управления автомобилем. При этом два независимых контроллера CAN будут использованы для взаимодействия с сетью датчиков транспортного средства; значительное количество вводов/выводов общего назначения (до 81 для МК в корпусе LQFP100) может быть выделено для управления работой различных исполнительных механизмов; звуковые же возможности чипа будут направлены на создание голосового информационного канала для водителя транспортного средства или даже (прогресс не стоит на месте) для распознавания его голосовых команд.

Кстати, наличие встроенного контроллера USB OTG и способность к поддержке карт памяти в комплексе с высокой производительностью Cortex M3-архитектуры и звуковыми возможностями семейства «Connectivity line» значительно упрощают создание на его основе GPS-навигаторов; остается только добавить GPS-приемник и сенсорный экран – устройство готово!

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

Используя встроенный 12-битный двухканальный независимый ЦАП, можно создавать такие интересные устройства как генераторы шумов, приборы для тестирования частотных характеристик цепей, синтезаторы различных музыкальных звуков и т.п.

Подчеркнем основные особенности и технические характеристики чипов STM32F105xx/107xx из семейства «Connectivity line» с точки зрения применения в звуковых приложениях:

Полная поддержка цифрового аудиоинтерфейса I2S (два независимых канала);

Два независимых 12-битных ЦАП с возможностью синхронизации;

Контроллер USB OTG;

Три канала SPI (мультиплексируются с I2S);

Один или два контроллера I2C;

Ethernet (только 107xx).

Шина I2S, как она есть

Коль скоро именно имплементация аппаратной поддержки шины I2S предоставляет возможность широкого применения МК STM32F105xx/107xx в звуковых приложениях, стоит рассказать о ней подробнее.

I2S (Inter-IC Sound bus) является синхронной последовательной шиной, разработанной компанией Philips Semiconductors специально для связи между микросхемами в области цифрового аудио. Дело в том, что на пути от битов данных до механических колебаний звук в цифровой форме ждет сложный процесс преобразований, осуществляемый обычно различными интегральными схемами, такими как АЦП/ЦАП, ЦОС-процессоры, корректоры ошибок, цифровые фильтры, интерфейсы и т.п. Для стандартизации связи между различными функциональными блоками и применяется протокол I2S.

Шина использует для связи две служебные линии тактирования «Serial Clock» (SCK) и выбора канала «Word Select» (WS) и одну линию данных «Serial Data» (SD). Наличие линии тактирования SCK обусловлено синхронной природой интерфейса, а вот наличие линии выбора канала WS напрямую связанно с его звуковым применением. Переключая состояние данной линии, ведущее устройство указывает на передачу данных из разных каналов стерео аудиопотока: WS = 0 – левый канал, WS = 1 – правый. Кстати спецификация предусматривает, что ведущим устройством может быть как сам передатчик, так и приемник или даже третье устройство-арбитр. При этом основной задачей ведущего является генерация сигналов на служебных линиях SCK и WS (рис. 2 [2]).

Рис. 2. Варианты сочетания ведущий/ведомый и тайминги при работе по протоколу I2S

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

Существует еще одна проблема, связанная с вопросами тактирования. Дело в том, что различным периферийным интерфейсам часто необходима различная частота системной шины. Микроконтроллеры семейства STM32F разработаны таким образом, чтобы максимально реализовать возможности встроенных устройств при использовании всего одного внешнего осциллятора. Для этого предусмотрено несколько внутренних делителей и PLL-умножителей частоты, которые могут быть мультиплексированы для достижения различных сочетаний частоты тактирования, необходимой различным периферийным блокам. Однако, несмотря на это, при одновременном использовании множества блоков бывает трудно или невозможно подобрать необходимую комбинацию параметров. Также использование делителей и умножителей ухудшает стабильность тактирования. Поэтому, например, сложно достичь заявленной стабильности на шине I2S при одновременном использовании ее с USB и Ethernet. Приходиться выбирать: либо использовать меньше устройств, либо соглашаться на ухудшение качества. Впрочем, ухудшение не так уж и велико – стабильность тактирования в худшем случае составляет для всех частот семплирования 0.1…0.4% и только на единственной частоте 96 кГц возрастает до малоприемлемых 2% [3, раздел 24.4.3].

Аппаратную поддержку шины I2S предоставляют следующие модели микроконтроллеров: STM32F 103xC/D/E, 105xx, 107xx, при этом заявленные параметры таковы [1]:

Программно конфигурируемое разрешение 16/32 бит;

Стабильность тактирования: не менее 0.5%

Возможность работать в режимах ведущего и ведомого;

Поддержка частот семплирования от 8 до 96 кГц;

Два независимых приемопередатчика.

Необходимо также отметить, что спецификация протокола I2S не оговаривает какого-либо конкретного физического уровня для шины (все, что есть в стандарте – величина напряжений, считающихся высоким и низким уровнем сигнала). Поэтому производители при использовании внешних связей между устройствами прибегают к различным видам физической реализации, например, применяют разъемы и кабели HDMI, маркируя их соответствующим образом (на рис. 3 приведен пример именно такого устройства [4]).