Роман Криночкин (г. Винница)
Диктофоны,автоответчики, системы промышленной связи, системы безопасности с интеркомами, говорящиеигрушки, беспроводные гарнитуры и многие другие приложения можно реализоватьпрактически на единственном чипе. Это микроконтроллер из семейства 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 предоставляют следующие модели микроконтроллеров: STM32F103xC/D/E, 105xx, 107xx, при этом заявленные параметры таковы [1]:
Программноконфигурируемое разрешение 16/32 бит;
Стабильностьтактирования: не менее 0.5%
Возможностьработать в режимах ведущего и ведомого;
Поддержкачастот семплирования от 8 до 96 кГц;
Дванезависимых приемопередатчика.
Необходимотакже отметить, что спецификация протокола I2S не оговаривает какого-либоконкретного физического уровня для шины (все, что есть в стандарте – величинанапряжений, считающихся высоким и низким уровнем сигнала). Поэтомупроизводители при использовании внешних связей между устройствами прибегают кразличным видам физической реализации, например, применяют разъемы и кабелиHDMI, маркируя их соответствующим образом (на рис. 3 приведен пример именнотакого устройства [4]).
/> Рис. 3. Пример физической реализации шины I2S в виде разъема HDMI
Какиспользовать встроенный ЦАП
Ранеемы подчеркивали наличие в микросхемах STM32F105xx/107xx встроенногодвухканального 12-битного ЦАП, который может быть вполне пригоден киспользованию во многих звуковых приложениях, где нет необходимости в высокойточности преобразования.
Заявленныепараметры ЦАП:
Дваполностью независимых преобразователя;
8/12-битныйравномерный выход;
Выдачадо одного миллиона семплов в секунду;
Возможностьсинхронизации для вывода стереосигнала;
Отключаемыйвыходной буфер для увеличения нагрузочной способности;
Отдельныйканал прямого доступа к памяти;
Встроенныйгенератор псевдослучайных чисел;
Встроенныйгенератор треугольных импульсов;
Погрешностьсмещения- 10 мВ или до 12 МЗР;
Дифференциальнаянелинейность 2 МЗР, интегральная- 4 МЗР.
Несмотряна относительно невысокое разрешение (до 12 бит), сфера применения таких ЦАПможет быть достаточно широка, в том числе и за счет встроенных генераторовтреугольных импульсов и псевдослучайных чисел. Например, с помощью последнегонесложно реализовать генератор белого шума с равномерным спектром иперестраиваемой постоянной составляющей. Это бывает необходимо в синтезаторахэлектронной музыки для получения необычных звуковых эффектов или даже длясимуляции некоторых «живых» инструментов с высокой шумовой компонентой(перкуссия, цимбалы и т.п.).
Такжегенераторы шумов могут быть использованы для тестирования частотныххарактеристик аудиоцепей (фильтров, усилителей). При оцифровке музыки и другихнизкочастотных сигналов возможно применение шумовых сигналов для увеличенияразрядности АЦП сверх заявленной (т.н. шумовой оверсемплинг).
Еслиговорить о прямом применении АЦП МК STM32F для воспроизведения звука, то онооправдано во многих сферах, где качество звучания играет второстепенную роль.Например, в телефонной или радиосвязи вполне достаточно и меньшего разрешения, приэтом микроконтроллер мог бы взять на себя иные интерфейсные функции — оцифровкузвука встроенным АЦП, кодирование/декодирование подходящим вокодером, отработкукнопок, вывод на экран. Аналогичным образом множество иных приложений могутбыть реализованы практически на единственном чипе: диктофоны, автоответчики, системыбезопасности с интеркомами, говорящие игрушки, беспроводные гарнитуры и т.д.
Немаловажнойособенностью встроенного ЦАП является наличие отключаемого буфера, которыйпризван уменьшить выходное сопротивление преобразователя. Это позволяетзначительно увеличить нагрузочную способность прибора, чего часто бываетдостаточно для подключения напрямую внешней нагрузки без использованиядополнительного операционного преобразователя. Для сравнения, допустимаяминимальная резистивная нагрузка с включенным буфером равна 5 кОм, без буфера(для получения 1% точности) она составит не менее 1.5 МОм. При подключениинагрузки меньше допустимой напряжение на выходе ЦАП будет отличаться отзаданного программно (нагрузка будет «просаживать» выход по напряжению), чтоприведет к уменьшению точности преобразования.
Кодеки,кодеки и еще раз кодеки
Приработе с микроконтроллерами немаловажным при выборе аппаратной платформыявляется наличие у производителя соответствующих программных инструментов, облегчающихразработку: драйверов контроллеров, стеков для различных протоколов и т.д. Вслучае работы с аудио необходимой частью программного обеспечения являютсякодеки, позволяющие читать и сохранять файлы из/в популярные форматы. Основнаязадача кодека при записи файла – это сжатие (с потерями или без) исходногоаудиопотока для более экономного его хранения на внешних носителях и/илипередачи по каналам связи. При декодировании возникает обратная задача –преобразовать сжатые данные в аудиопоток, пригодный для прямого перевода ваналоговую форму.
Разныекодеки имеют разную эффективность и качество сжатия, также они отличаютсяколичеством вычислительных операций для проведения кодирования/декодирования, некоторыекодеки являются проприетарными, другие распространяются бесплатно. Поэтомуследует ответственно подойти к вопросу выбора того или иного кодека дляразрабатываемого приложения. Например, при реализации аудиоплеера важнаподдержка как можно большего числа форматов воспроизведения звука. При созданииаппаратуры для радиосвязи важно не разнообразие форматов, а эффективный двунаправленныйкодер речи (вокодер), минимально загружающий CPU и канал приемопередачи.
Общейособенностью практически всех аудиоприменений является критичность к временнымзадержкам, поэтому выбор кодека необходимо осуществлять с учетом необходимойпроизводительности CPU, которая должна быть достаточной для произведения всехнеобходимых вычислений кодирования/декодирования «на лету». Использованиеканалов прямого доступа к памяти также значительно увеличивает общуюпроизводительность системы, поскольку эти каналы устраняют необходимостьучастия процессора при передаче уже обработанных данных от одного периферийногоустройства к другому.
Средикодеков для применения в семействе МК STM32F можно отметить:
SpeexVocoder – бесплатный 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);
Подавителиэха и шумов.
STM32Spirit 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.
/> Рис. 4. Демонстрационная плата STEVAL-CCA021V1 для звуковых приложений
Всостав платы входят несколько аудио микросхем, а именно: 16-битный I2S ЦАПTS4657 с линейным RCA-выходом; два усилителя класса D – моно 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]
www.flickr.com/photos/mikelaaron/3946085257/
Vocoder demonstration using a Speex audio codec on STM32F101xx andSTM32F103xx microcontrollers [AN2812]
www.embedinfo.com/en/list.asp?id=57
MP45DT01 Datasheet. MEMS audio sensor omni-directional digitalmicrophone, STMicroelctronics, 2010.
Дляподготовки данной работы были использованы материалы с сайта www.rlocman.ru/