Введение в интерфейс I2S

Добавлено 9 мая 2020 в 22:31

В данной статье рассматриваются характеристики и применение протокола последовательной связи, предназначенного специально для аудиосистем.

I2S и эпоха цифрового аудио

Растущая коллекция общепринятых электротехнических аббревиатур временами может быть немного ошеломляющей; и я не удивлюсь, если вы несколько раз видели термин «I2S» и просто предполагали, что это была просто опечатка в аббревиатуре «I2C».

Между этими двумя протоколами действительно существует определенная связь. Оба были первоначально разработаны компанией Philips Semiconductors (теперь NXP), и названия обоих начинаются с «I2», потому что они предназначены для связи между микросхемами (англ. аббревиатура «IC»). Однако I2S появился после I2C, и, если I2C является универсальным интерфейсом, I2S предназначен для передачи аудиоданных – «S» в названии означает «sound» (звук).

I2S был создан в 1980-х годах, когда цифра начала свое завоевание рынка потребительских аудиосистем. Заявленная цель создания I2S – облегчение разработки аудиоэлектроники при помощи стандартизированного интерфейса для передачи цифровых данных между АЦП, ЦАП, цифровыми фильтрами, цифровыми сигнальными процессорами и другими типами интегральных микросхем, используемых в аудиосистемах. По сути, это двухканальный протокол, потому что он был разработан для стереофонического звука.

Характеристики I2S

Следующая диаграмма изображает три конфигурации, поддерживаемые I2S.

Рисунок 1 Конфигурации, поддерживаемые интерфейсо I2S. Схема взята из спецификации I2S, впервые опубликованной Philips Semiconductors в 1986 году и обновленной в 1996 году.
Рисунок 1 – Конфигурации, поддерживаемые интерфейсо I2S. Схема взята из спецификации I2S, впервые опубликованной Philips Semiconductors в 1986 году и обновленной в 1996 году.

Данные передаются по линии SD, состояние линии WS соответствует аудиоканалу (правый или левый), который передается в данный момент, а линия синхронизации SCK передает тактовый сигнал. Как видно из диаграммы, сигналы WS и SCK могут генерироваться передатчиком, приемником или сторонним контроллером.

Ниже перечислены характерные особенности трех сигналов интерфейса I2S.

Последовательные данные (SD)

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

Выбор слова (WS)

  • Низкий логический уровень на WS указывает, что передаваемое в настоящее время слово является частью потока данных для левого аудиоканала; высокий логический уровень на WS указывает на передачу звука правого канала.
  • Чтобы облегчить обработку данных как на стороне передатчика, так и на стороне приемника, сигнал WS изменяет свое логическое состояние на один период тактового сигнала раньше завершения передачи слова данных:
Рисунок 2 Диаграмма передачи данных по интерфейсу I2S. Схема взята из спецификации I2S.
Рисунок 2 – Диаграмма передачи данных по интерфейсу I2S. Схема взята из спецификации I2S.

Тактовый сигнал (SCK)

  • Протокол не определяет максимальную скорость передачи данных.
  • Тактовый сигнал передается непрерывно.

I2C против I2S

Если вы знакомы с протоколом I2C, то, возможно, уже поняли, что I2C и I2S намного менее похожи, чем можно предположить по их названиям.

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

Рисунок 3 Что может пойти не так при связи по I2C
Рисунок 3 – Что может пойти не так при связи по I2C

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

Характер передачи по I2S «точка-точка» устраняет необходимость в подтягивающих резисторах, как I2C, а использование третьего сигнала для синхронизации на уровне слов позволяет нам обойтись без усложнений протокола, которые помогают I2C поддерживать организацию передачи данных по двухпроводной шине.

I2S больше похож на SPI, чем на I2C. Фактически, реализация SPI, предназначенная для однонаправленной передачи данных, использует, по сути, ту же конфигурацию: одна линия для тактового сигнала, одна линия для данных, и третья линия для синхронизации на уровне слов.

Заключение

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

Теги

I2CИнтерфейс I2SОцифрованный аудиосигналПоследовательная связьПоследовательная шинаПротокол последовательной связиПротоколы

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

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