Статья: Звуковые возможности микроконтроллера STM32F
Название: Звуковые возможности микроконтроллера STM32F Раздел: Остальные рефераты Тип: статья | ||||||||||||||||
Роман Криночкин (г. Винница) Диктофоны, автоответчики, системы промышленной связи, системы безопасности с интеркомами, говорящие игрушки, беспроводные гарнитуры и многие другие приложения можно реализовать практически на единственном чипе. Это микроконтроллер из семейства 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].
Однако не стоит думать, что применение этих чипов ограничивается бытовой аудиовоспроизводящей аппаратурой. Производителям удалось интегрировать в данную серию также поддержку контроллера протокола передачи данных 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]).
Стандарт выдвигает требования к задержкам сигналов на линях 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]).
Как использовать встроенный ЦАП Ранее мы подчеркивали наличие в микросхемах STM32F105xx/107xx встроенного двухканального 12-битного ЦАП, который может быть вполне пригоден к использованию во многих звуковых приложениях, где нет необходимости в высокой точности преобразования. Заявленные параметры ЦАП: Два полностью независимых преобразователя; 8/12-битный равномерный выход; Выдача до одного миллиона семплов в секунду; Возможность синхронизации для вывода стереосигнала; Отключаемый выходной буфер для увеличения нагрузочной способности; Отдельный канал прямого доступа к памяти; Встроенный генератор псевдослучайных чисел; Встроенный генератор треугольных импульсов; Погрешность смещения- 10 мВ или до 12 МЗР; Дифференциальная нелинейность 2 МЗР, интегральная- 4 МЗР. Несмотря на относительно невысокое разрешение (до 12 бит), сфера применения таких ЦАП может быть достаточно широка, в том числе и за счет встроенных генераторов треугольных импульсов и псевдослучайных чисел. Например, с помощью последнего несложно реализовать генератор белого шума с равномерным спектром и перестраиваемой постоянной составляющей. Это бывает необходимо в синтезаторах электронной музыки для получения необычных звуковых эффектов или даже для симуляции некоторых «живых» инструментов с высокой шумовой компонентой (перкуссия, цимбалы и т.п.). Также генераторы шумов могут быть использованы для тестирования частотных характеристик аудиоцепей (фильтров, усилителей). При оцифровке музыки и других низкочастотных сигналов возможно применение шумовых сигналов для увеличения разрядности АЦП сверх заявленной (т.н. шумовой оверсемплинг). Если говорить о прямом применении АЦП МК STM32F для воспроизведения звука, то оно оправдано во многих сферах, где качество звучания играет второстепенную роль. Например, в телефонной или радиосвязи вполне достаточно и меньшего разрешения, при этом микроконтроллер мог бы взять на себя иные интерфейсные функции - оцифровку звука встроенным АЦП, кодирование/декодирование подходящим вокодером, отработку кнопок, вывод на экран. Аналогичным образом множество иных приложений могут быть реализованы практически на единственном чипе: диктофоны, автоответчики, системы безопасности с интеркомами, говорящие игрушки, беспроводные гарнитуры и т.д. Немаловажной особенностью встроенного ЦАП является наличие отключаемого буфера, который призван уменьшить выходное сопротивление преобразователя. Это позволяет значительно увеличить нагрузочную способность прибора, чего часто бывает достаточно для подключения напрямую внешней нагрузки без использования дополнительного операционного преобразователя. Для сравнения, допустимая минимальная резистивная нагрузка с включенным буфером равна 5 кОм, без буфера (для получения 1% точности) она составит не менее 1.5 МОм. При подключении нагрузки меньше допустимой напряжение на выходе ЦАП будет отличаться от заданного программно (нагрузка будет «просаживать» выход по напряжению), что приведет к уменьшению точности преобразования. Кодеки, кодеки и еще раз кодеки При работе с микроконтроллерами немаловажным при выборе аппаратной платформы является наличие у производителя соответствующих программных инструментов, облегчающих разработку: драйверов контроллеров, стеков для различных протоколов и т.д. В случае работы с аудио необходимой частью программного обеспечения являются кодеки, позволяющие читать и сохранять файлы из/в популярные форматы. Основная задача кодека при записи файла – это сжатие (с потерями или без) исходного аудиопотока для более экономного его хранения на внешних носителях и/или передачи по каналам связи. При декодировании возникает обратная задача – преобразовать сжатые данные в аудиопоток, пригодный для прямого перевода в аналоговую форму. Разные кодеки имеют разную эффективность и качество сжатия, также они отличаются количеством вычислительных операций для проведения кодирования/декодирования, некоторые кодеки являются проприетарными, другие распространяются бесплатно. Поэтому следует ответственно подойти к вопросу выбора того или иного кодека для разрабатываемого приложения. Например, при реализации аудиоплеера важна поддержка как можно большего числа форматов воспроизведения звука. При создании аппаратуры для радиосвязи важно не разнообразие форматов, а эффективный двунаправленный кодер речи (вокодер), минимально загружающий CPU и канал приемопередачи. Общей особенностью практически всех аудиоприменений является критичность к временным задержкам, поэтому выбор кодека необходимо осуществлять с учетом необходимой производительности CPU, которая должна быть достаточной для произведения всех необходимых вычислений кодирования/декодирования «на лету». Использование каналов прямого доступа к памяти также значительно увеличивает общую производительность системы, поскольку эти каналы устраняют необходимость участия процессора при передаче уже обработанных данных от одного периферийного устройства к другому. Среди кодеков для применения в семействе МК STM32F можно отметить: Speex Vocoder – бесплатный open-source кодек для кодирования/декодирования речи. Предоставляет полноценное решение для записи, воспроизведения или передачи речи. Область применения – автоответчики, интеркомы, диктофоны, коротковолновые рации. При применении данного кодека на процессорах STM32F103xx с частотой ядра 72 МГц кодирование речи со средним качеством загружало CPU на 52%, декодирование – на 8%. Объем памяти необходимый для работы кодека: память данных (Flash) – 32 кбайт, память программ (RAM) – 7 кбайт [5]. Базируется на технологии CELP (code-excited linear prediction); Три частоты семплирования (8/16/32 кГц) при постоянном битрейте; Технология VBR- кодирование с переменным битрейтом (от 2 до 44кбит/с) Детектирование присутствия голоса (VAD), прерывистая передача (DTX); Подавители эха и шумов. STM32 Spirit Audio Engine – комплексный высококачественный аудиодвижок, бесплатно предоставляемый для использования с STM32F. Модель распространения несколько неудобна - для получения бесплатного доступа пользователь должен связаться с региональным дилером, подписать лицензионное соглашение, после чего ему будет выслан диск, содержащий аудиодвижок, документацию и примеры. Необходимо также заметить, что хотя сам движок бесплатен, разработчик не освобождается от оплаты отчислений за использование форматов .mp3 и .wma. Кодирование аудио в формате *.mp3; Декодирование аудио в форматах *.mp3 и *.wma, с встроенным эквалайзером; Регулятор громкости; Трехполосный эквалайзер; Микшер каналов. Демонстрационные платы Компания STMicroelectronics предлагает отладочную плату на основе МК STM32F107VCT, в которой реализована попытка максимально использовать всю имеющуюся в чипе периферию. Касательно интересующей нас звуковой части, на плате размещен отдельный 24-битный дельта-сигма стерео ЦАП CS43L22, подключенный к МК по интерфейсу I2S. Это производительный ЦАП с низким энергопотреблением, он имеет в своем составе усилитель, рассчитанный для работы как на наушники (14 мВт; 16 Ом@2.5 В), так и на небольшие громкоговорители (класс D, выходная мощность в стерео 2×1 Вт, 8 Ом@5 В). Демонстрационная плата может быть настроена для вывода звука через ЦАП, встроенный в МК, в этом случае внешний ЦАП используется как усилитель. Также на плате размещен 3.5 мм разъем для подключения средств звуковоспроизведения. В сети можно встретить близкие функциональные аналоги этой платы с некоторыми мелкими отличиями, например, с наличием микрофона [6]. STMicroelectronics выпускает еще одну плату, разработанную специально для использовании в звуковых применениях – STEVAL-CCA021V1 (рис. 4) на основе МК STM32F103RE с поддержкой USB.
В состав платы входят несколько аудио микросхем, а именно: 16-битный I2S ЦАП TS4657 с линейным RCA-выходом; два усилителя класса в – моно TS4962 (1.4 Вт; 8 Ом@5 В) с выводом на встроенный динамик/моно-джек, стерео TS2012 (2×1.15 Вт; 8 Ом@5 В) с выходами на внешние громкоговорители; микрофонный предусилитель TS472 с усилением до 40 дБ. МЭМС-микрофоны Данный обзор был бы неполным без нескольких слов о новых микрофонах, выполненных по технологии МЭМС. До недавнего времени, когда шла речь о МЭМС, в большинстве случаев имелись в виду компактные встраиваемые акселерометры. Однако сама технология значительно шире и подразумевает под собой использование средств производства электронной техники (литография, травление и т.п.) в изготовлении различных механических устройств (собственно говоря, МЭМС – это МикроЭлектроМеханическая Система). По мере развития технологии находятся все новые и новые применения для нее – сенсоры давления, микродвигатели, гироскопы и т.п. Теперь дело дошло и до микрофонов. По принципу действия старая проверенная конструкция конденсаторного микрофона осталась без изменений – та же заряженная гибкая мембрана, двигающаяся под действием механических колебаний. Однако технологически это совершенно иной продукт, которому прогнозируют широчайшее применение. Дело в том, что размеры и стоимость производства МЭМС-микрофонов на порядок ниже, чем у их собратьев, сделанных по классической технологии. При этом качество преобразования звука и надежность выше. Поэтому МЭМС-устройства обещают революцию в этой области и могут быть внедрены практически в любой прибор, требующий преобразования звука, без особенного влияния на его размер и конечную стоимость. В 2010 году STMicroelectronics приступила к производству МЭМС-микрофонов – модель MP45DT01 имеет однобитный PDM-выход (pulse density modulation - плотностно-импульсная модуляция) и требует тактирования внешним сигналом с частотой 2.5 МГц. Характеристики устройства следующие: Чувствительность –26 dBFS; Отношение сигнал/шум 58 dB; Точка акустической перегрузки 120dBSPL; Размеры 4.72 × 3.76 мм; Средний ток потребления – 0.65 мА при 1.8 В Возможность совместной работы пары микрофонов в стерео режиме [7] Наличие PDM-выхода позволяет использовать сигнал как в цифровых, так и в аналоговых схемах (пропустив его предварительно через фильтр нижних частот). Список литературы STM32F105xx/107xx Datasheet (http://www.st.com/internet/com/TECHNICAL_RESOURCES/TECHNICAL_LITERATURE/DATASHEET/CD00220364.pdf) I2S bus specification. Philips Semiconductors, 1996. Reference Manual for STM32F101xx, STM32F102xx, STM32F103xx, STM32F105xx and STM32F107xx [RM0008] http://www.flickr.com/photos/mikelaaron/3946085257/ Vocoder demonstration using a Speex audio codec on STM32F101xx and STM32F103xx microcontrollers [AN2812] http://www.embedinfo.com/en/list.asp?id=57 MP45DT01 Datasheet. MEMS audio sensor omni-directional digital microphone, STMicroelctronics, 2010. |