Знакомство со стандартом альянса MIPI для последовательной межкристальной маломощной медиашины SLIMbus. Часть 2


PDF версия

Благодаря новому стандартному медиаинтерфейсу упрощается и становится более предсказуемой разработка переносных устройств.

Транспортные протоколы канала данных и управление потоком

Шина SLIMbus напрямую не поддерживает различные форматы данных. Для транспортировки данных любого формата указывается небольшая группа часто используемых транспортных протоколов (включая пользовательский протокол), которые определяют тип потока данных, механизм управления потоком и побочный канал (если таковой имеется) для дополнительной специальной информации.
Поток данных между портами управляется одним из нескольких транспортных протоколов.
Порты устройств SLIMbus соединяются с каналами посредством сообщений о подключении к определенному каналу или об отключении от него.
Транспортные протоколы используют либо групповую, либо одноадресную передачу данных. Шина SLIMbus поддерживает следующие транспортные протоколы: изохронный (групповой), асинхронный (симплексный и полудуплексный расширенный), расширенный асинхронный (полудуплексный (групповой) и определяемые пользователем 1 и 2).
Каждый момент данные передает только один источник. Число приемников определяется транспортным протоколом.
Для синхронизации используются TAG-биты.
Если значение частоты CLK-линии является целочисленным кратным скорости потока, можно использовать изохронный транспортный протокол.
Если требуется установить контроль над потоком данных, следует выбрать один из двух поддерживаемых типов управления: односторонний или двусторонний.
Односторонние потоки данных регулируются общим алгоритмом (для протокола блокировки) или с помощью бита «присутствие» (соответственно, для протоколов получения и выдачи данных). Эти протоколы обеспечивают оптимальные и постоянные потоки медиаданных, например в аудиостандарте LPCM (Linear Pulse Code Modulation — линейная импульсно-кодовая модуляция), где фактический метод управления потоком зависит от опорной частоты шины, а также от параметров этого потока.
При передаче данных со скоростью, равной или ниже скорости канала, источник данных управляет потоком, а биты TAG указывают на доступность информации в поле DATA. Канал, в котором используется протокол отправки данных, можно подключать к нескольким приемникам (при групповой отправке), поскольку обратная связь от них отсутствует.
При использовании транспортного протокола получения данных приемное устройство по необходимости запрашивает информацию от источника, а биты TAG указывают на доступность данных в поле DATA.
При подтверждении связи каждое устройство может остановить либо начать передачу данных, используя два или более бита потока управления в каждом поле TAG сегмента данных. Все четыре асинхронных транспортных протокола используют этот тип управления потоками. Эти протоколы рассчитаны на оптимальную поддержку асинхронного потока данных.
Расширенные асинхронные протоколы имеют два поля TAG, к которым добавляется поле DATA. Его размер может изменяться в диапазоне от 2 до 28 слотов с шагом в 2 слота и используется в том случае, когда скорость канала низкая, а данных — высокая.
Пользовательские протоколы 1 и 2 применяются для расширения SLIMbus-механизма передачи данных. Предполагается, что устройству, подключенному к каналу данных пользовательского протокола, известно определение битов TAG и AUX, а также то, как их использовать. Например, пользовательский протокол можно создать для поддержки цифровых потоков аудиоцифровых данных SPDIF (IEC 60958) на медиашине SLIMbus.

 

Структура кадров шины SLIMbus

Стандарт SLIMbus использует синхронную двухпроводную шину для передачи информации между устройствами. Битовый поток SLIMbus организуется в TDM-конфигурации. Организация информации на шине называется структурой кадров.

 

Ячейки, слоты, субкадры, кадры и суперкадры

Структуру кадров составляет пять блоков: ячейки, слоты, кадры, субкадры и суперкадры.

 

Ячейка

Наименьшая часть потока данных шины SLIMbus называется ячейкой. Она определяется как область сигнала DATA, который ограничен двумя положительными перепадами фронта CLK. Каждая ячейка содержит один бит.

 

Слот

Слот определяется как четыре смежных ячейки (четыре бита) и единица назначения полосы пропускания на шине SLIMbus. Ячейки внутри слота маркируются от C0 до C3 и передаются в порядке от старшего к младшему биту. Битовые данные различных размеров, начиная от 4- до 32-битных и более, легко размещаются группами по 4-битным слотам.

 

Кадр

Кадр определяется как 192 смежных слота. Слоты внутри кадра маркируются от S0 до S191 и передаются в следующем порядке: S0, S1, S2…S191.
Первый слот (Slot 0) каждого кадра является слотом области управления, который содержит 4-битный символ кадровой синхронизации. Слот S96 каждого кадра является также слотом области управления, содержащим 4-битную информацию кадрирования.
Компонент использует данные синхронизации кадра и 32 бита информации кадрирования для синхронизации шины. Следовательно, для того чтобы получить все 32 бита информации кадрирования, данные следует считать из восьми последовательных кадров, составляющих суперкадр.
В состав кадра входит закодированный отбеливающий сигнал (Whitening Signal), который используется для уменьшения автокорреляции и влияния электромагнитного спектра данных.
Кроме того, информация кадрирования также содержит 25-Гц опорный синхросигнал, который является наибольшим общим множителем для типовых значений частот выборки звукового сигнала.
Обсуждение вопросов формирования и использования отбеливающего сигнала или 25-Гц опорного синхросигнала выходит за рамки этого описания.
Активный формирователь кадров записывает всю информацию кадрирования в линию данных.

 

Субкадр

Субкадр определяется как раздел структуры кадров, в котором чередуются области управления и данных. Первый слот субкадра всегда размещен в области управления.
Субкадр не имеет единой фиксированной длины. Как показано на рисунке 8, длина субкадра программируется на 6, 8, 24 или 32 смежных слота (24, 32, 96 или 128 ячеек). Количество возможных субкадров на кадр соответственно равно 32, 24, 8 или 6. Конфигурация субкадра может динамически меняться и зависит от требований к потоку данных приложения, поддерживаемого на текущий момент.
Обсуждение основы организации конкретного субкадра SLIMbus выходит за рамки этого описания.
Следует напомнить, что область управления состоит из трех разных типов каналов: кадрирования (кадровая синхронизация и информация кадрирования), управления и сообщений. Однако кадровая синхронизация и информация кадрирования занимают только два слота на кадр или первый слот в двух разных субкадрах кадра. Это значит, что первые слоты в оставшихся субкадрах используются для передачи другой информации области управления, например каналов управления и сообщений (см. выше рисунок 8).

 

Рис. 8. Ячейка, слот, субкадр, структура кадра

Любые слоты, не находящиеся в области управления, считаются областью данных.

 

Суперкадр

Суперкадр определяется как восемь смежных кадров (1536 слотов). Кадры внутри суперкадра маркируются с Frame 0 по Frame 7.
Каждый кадр суперкадра содержит символ кадровой синхронизации в слоте Slot 0. Первый кадр (Frame 0) суперкад­ра содержит первые четыре бита всей 32-битной информации кадрирования в слоте 96. Кадры с Frame 1 по Frame 7 также содержат четыре бита информации кадрирования в слоте Slot 96, причем кадр Frame 7 несет последние четыре бита информации кадрирования.
Начало суперкадра задается кодом синхронизации суперкадра, передаваемым по одному бит в пяти последовательных кадрах.
Для обеспечения синхронизации суперкадра компонент использует весь набор информации кадрирования (32 бита на 8 кадров в суперкадре, 4 бита на кадр) и код синхронизации суперкадра. Информация канала управления (используемая для синхронизации сообщений) передается в двух слотах: один — в первом кадре, другой — во втором кадре суперкадра.
Длина суперкадра измеряется в слотах (и, следовательно, в ячейках), но не в единицах времени. Скорость суперкадра может динамически меняться на шине SLIMbus в зависимости от приложения либо за счет изменения опорной частоты SLIMbus, либо за счет механизма преобразования, либо за счет того и другого.

 

Частоты синхронизации и преобразование синхрочастоты

В спецификации шины SLIMbus не указывается определенная частота синхронизации. Вместо этого предлагаются три определения полос частот: опорная, собственная и основная.
В спецификации также предусматривается механизм синхронизации, обеспечивающий 10 режимов увеличения синхрочастоты в два раза.
Определяется также режим паузы или остановки синхросигнала и его повторного запуска.

 

Опорная частота

Опорная частота определяется как произведение 2(10 – G) на частоту линии CLK, где G — текущий коэффициент преобразования синхросигнала. В режиме Gear 10 частота синхронизации совпадает с опорной частотой.
Опорная частота может быть собственной или основной, но это не пре­дусматривается спецификацией. Опор­ная частота принимает любые значения вплоть до 28 МГц.
Опорную частоту можно изменить, пока шина активна, не изменяя структуру кадра. Это позволяет масштабировать энергопотребление шины в зависимости от работающего приложения.

 

Собственные частоты

Собственная частота определяется как частота CLK, которая позволяет поддерживать семейство потоков изохронных данных без управления ими, таким образом упрощая размещение каналов на шине SLIMbus.
Например, обычные частоты для аудио­цифровых потоков с частотами выборки 11,025 и 44,1 кГц составляют 5,6448, 11,2896 и 22,5792 МГц. Аналогично, для частот выборки 8 и 48 кГц значения обычных частот равны 6,144, 12,288 и 24,576 МГц.
Потоки с разными частотами выборки оптимально поддерживаются с помощью механизма синхронизации, который позволяет умножать обычную частоту на коэффициенты 0,5 или 2.

 

Основные частоты

В аудиоприложениях частоты выборки одного важного семейства являются целочисленными, кратными 4 кГц, например 8, 12, 16, 24, 32, 48, 96 кГц и т.д. Частоты выборки другого семейства целочисленно кратны 11,025 кГц, например 11,025, 22,05, 44,1, 88,2 кГц и т.д.
Иногда требуется обеспечить параллельную поддержку аудиоцифровых потоков данных или семейств потоков с нецелочисленной кратной частотой, например на частотах выборки 8 и 44,1 кГц. В этом случае нельзя установить ту частоту линии CLK, которая будет собственной для всех потоков на шине.
Частоты 24,576, 12,288, 6,144 МГц и т.д. линии CLK имеют особое значение, так как они позволяют изохронно передавать 4-кГц и 11,025-кГц семейства потоков с относительно высокой эффективностью (используя методы управления потоками доставляемых данных). По этой причине данные частоты синхронизации называются основными частотами.

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

 

Передача сообщений

SLIMbus обеспечивает надежный набор сообщений для управления шиной, устройствами и для передачи данных. Основные типы сообщений:
– по управлению устройствами;
– по управлению каналами данных;
– по управлению информацией;
– о реконфигурации;
– по управлению значениями;
– специфического класса устройств, инициированное получателем;
– инициированное получателем;
– специфического класса устройств, инициированное отпра­вителем;
– инициированное отпра­вителем;
– выход.

 

Канал сообщений

Для того чтобы передать или получить сообщения, компонент сначала проходит процедуру синхронизации сообщений. Прежде чем отправить какое-либо сообщение, каждое устройство SLIMbus, получающее доступ к каналу для отправки сообщений, использует набор правил, основанных на порядке приоритетов.

 

Размер канала сообщений

Сообщения передаются по каналам области управления.
Как видно из рисунка 8, в SLIMbus существуют четыре возможных режима субкадров. Каждый субкадр имеет по крайней мере один слот в качестве области управления. Канал кадрирования занимает два слота на кадр или 16 слотов на суперкадр. Канал управления (используемый для синхронизации сообщений) занимает два слота на суперкадр для всех шинных конфигураций. Следовательно, все 18 слотов доступной области управления на суперкадр размещены с определенными целями.
Слоты области управления, не используемые для каналов кадрирования или управления, предоставляются для канала сообщений или для каналов сообщений и данных. Следовательно, размер канала сообщений меняется в соответствии с конфигурацией шины.
Количество слотов для канала сообщений становится минимальным в режиме шесть суперкадров/кадр. Таким образом, минимальное количество слотов области управления, приходящихся на кадр, равно шести. Следовательно, на суперкадр количество этих слотов составляет 48. Так как 18 слотов предназначены для шины, на канал сообщений остается 30 (48 – 18 = 30)
слотов области управления.
Максимальное число слотов для канала сообщений равно общему числу слотов в суперкадре за вычетом 18 слотов, предназначенных для шины. Например, 1536 – 18 = 1518.

 

Синтаксис сообщений

Сообщения, которыми обмениваются устройства, состоят из следующих четырех полей: арбитраж, заголовок, полезная нагрузка и проверка целостности сообщения.
Поле арбитража присутствует во многих сообщениях и варьирует по величине (от двух до семи бит), так как исходный адрес устройства, запрашивающего доступ к шине, является либо 8-битным логическим адресом LA, либо 48-битным числовым идентификатором EA.
Поле заголовка присутствует во всех сообщениях и варьирует по размеру (3-, 4- или 9-битное), так как оно тоже может не использовать адрес, логический адрес целевого устройства или числовой идентификатор. Если все устройства принимают групповое сообщение, адрес LA или идентификатор EA не используются.
В зависимости от типа сообщения поле полезной нагрузки может иметь нулевую длину. Максимальная длина этого поля варьируется между 22 и 28 битами, в зависимости от параметров того или иного сообщения и данных.
Поле проверки целостности сообщения имеет фиксированную 4-битную длину. Основное поле и поле целостности сообщений обеспечивают контроль правильности передачи с помощью избыточного циклического кода (CRC).
Все сообщения связаны с их кодами, специфичными для типа сообщений.
Максимальная длина сообщения составляет 39 битов.
Обсуждение содержимого всех полей сообщения выходит за рамки этого описания.

 

Базовые сообщения

К ним относятся сообщения, одинаково интерпретируемые всеми устройствами. Они предназначены для управления шиной SLIMbus и подключенными к ней устройствами. Это сообщения по управлению устройствами, каналом данных, IE- и VE-элементами, а также сообщения о реконфигурации шины.
В зависимости от типа устройства, оно может поддерживать или не поддерживать все базовые сообщения.
Однако существует подгруппа базовых сообщений для каждого из четырех классов устройств, определяемых спецификацией SLIMbus. Эту подгруппу должны поддерживать все устройства. Существует тип устройств, для которых требуется подгруппа, позволяющая считывать и записывать данные IE- и VE-элементов.

 

Другие сообщения шины SLIMbus

Помимо базовых существуют следующие дополнительные типы сообщений:
– специфического класса устройств, инициированное получателем;
– инициированное получателем;
– специфического класса устройств, инициированное отправителем;
– инициированное отправителем.

 

Загрузка и режимы шины

Процесс загрузки шины зависит от типа компонентов, поэтому термины «источник тактирования» и «приемник тактирования» используются для того, чтобы отличить компонент, который содержит активный формирователь кадров, от других компонентов.
У источника тактирования имеется собственный процесс загрузки, тогда как приемник тактирования проходит другой заданный процесс загрузки. Процесс загрузки выполняется в то время, пока каждый компонент проходит этапы от исходного до рабочего состояния.
Единственным общим состоянием всех компонентов на шине считается то, когда все они одновременно находятся в рабочем режиме.
Компонент подключается к шине, следуя соответствующей процедуре загрузки.
Для контроля над энергопотреблением системы протокол SLIMbus позволяет компоненту приостановить свое присутствие на активной шине и подключиться к ней позже.
Описывающие каждое состояние правила позволяют компонентам, утратившим синхронизацию по какой-либо причине, перейти на более низкий уровень или перезапуститься и заново пройти процесс загрузки.

 

Последовательность загрузки источника тактирования

Источник тактирования загружает шину SLIMbus в определенной последовательности операций для начала синхронизации и записи информации в каналах кадрирования и управления на линии DATA.
В процессе загрузки источник тактирования проходит различные состояния: неопределенное (Undefined), проверка линии данных (CheckingDataLine), начало синхронизации (StartingClock), инициализация данных (StartingData) и рабочее (Operational).
Сигнал сброса при включении питания или другое особое внешнее событие используется для того, чтобы переключиться из неопределенного состояния в состояние проверки линии данных.
Войдя в рабочий режим, источник тактирования записывает всю необходимую информацию кадрирования на линии данных и конфигурирует шину, задав частоту синхронизации и режим субкадра. Наконец, источник тактирования сообщает о своем присутствии на шине по каналу сообщений (REPORT_PRESENT Message).

 

Последовательность загрузки приемника тактирования

Любое другое устройство, входящее в состав компонента на шине и не являющееся формирователем кадров, по определению представляет собой приемник тактовых сигналов. Для этих компонентов выполняется собственный процесс загрузки шины, который происходит параллельно с загрузкой шины источником тактирования, но завершается после него.
На этапе загрузки приемник тактирования извлекает всю необходимую информацию о текущем состоянии шины, управляя линиями DATA и CLK. В процессе загрузки приемник тактирования проходит разные состояния: неопределенное (Undefined), сброс (Reset), поиск синхронизации кадра (SeekingFrameSync), поиск синхронизации суперкадра (SeekingSuperframeSync), поиск синхронизации сообщений (SeekingMessageSync) и, наконец, рабочее (Operational).
Сигнал сброса при включении питания или другое особое внешне событие используется для перехода из неопределенного в состояние сброса.
В рабочем режиме приемник тактирования получает всю информацию кадрирования о конфигурации шины, доступ к каналу сообщений и находится в готовности выполнить свою функцию. Он сообщает о своем присутствии на шине, отправив сообщение REPORT_PRESENT.

 

Обнаружение устройства

Войдя в рабочий режим после загрузки шины, устройства отправляют сообщения REPORT_PRESENT активному управляющему устройству. Эти сообщения определяют код класса устройств, версию и числовой идентификатор запрашивающего устройства.
После того как управляющее устройство подтвердит прием сообщением REPORT_PRESENT, устройство ожидает назначения логического адреса, который необходим для приема и отправки сообщений. Как только устройству присваивается логический адрес, оно переходит в адресуемое состояние и считается готовым к работе.
Активное управляющее устройство присваивает уникальные логические адреса на уровне шины так, чтобы два устройства одномоментно не использовали одинаковый адрес.
Если по какой-либо причине это устройство утрачивает синхронизацию сообщений после получения логического адреса, ему не назначается новый логический адрес после восстановления синхронизации и подключения к шине.
Сброс компонента приводит к потере назначенного логического адреса, и выполняется повторный процесс обнаружения компонента, прежде чем он подключится к шине.

 

Управление шиной

Во многих режимах шины SLIMbus требуется, чтобы все активные компоненты строго одновременно изменяли состояние, например на границе суперкадра. Это требование выполняется с помощью строки сообщения, начинающегося словами BEGIN_RECONFIGURATION, за которыми следует ряд сообщений о реконфигурации, и заканчивающегося словами RECONFIGURE_NOW.
Сообщения о реконфигурации также используются для того, чтобы настроить шину SLIMbus на частоту синхронизации, задать скорость данных и количество каналов в соответствии с требованиями исполняемого приложения. Таким образом, также решается вопрос об оптимальном энергопотреблении шины.

 

Заключение

SLIMbus является в высокой степени конфигурируемой многоотводной шиной, одновременно поддерживающей много компонентов. Кроме того, она предлагает мощные механизмы обмена сообщениями между компонентами, позволяющие устанавливать потоки данных и управлять ими. SLIMbus также обеспечивает оперативную реконфигурацию шинных рабочих характеристик, подстраиваясь к требованиям исполняемого системного приложения.
В отличие от традиционных аудиоцифровых шинных структур, SLIMbus обладает способностью одновременно и эффективно передавать много аудиоцифровых потоков, частоты выборки и битовая ширина которых значительно различаются.
При использовании существующих аудиоцифровых интерфейсов (PCM, I2S, SSI, AC-97) добавление функций и аудиоцифровых каналов в мобильные терминалы помимо тех, которые необходимы для голосовой связи и простых стереомузыкальных приложений, представляется весьма затруднительным, если не увеличить количество шинных структур в терминале. Причина затруднения в том, что эти традиционные интерфейсы обеспечивают в основном связь между равноправными узлами с ограниченной емкостью каналов, и любое новое в системе устройство требует собственного подключения.
Несмотря на то, что существующие интерфейсы можно масштабировать за счет наращивания, этот подход ограничивает гибкость проектирования и является дорогостоящим, если принять во внимание количество выводов, размер корпуса, площадь, топологию печатной платы и энергопотребление.
SLIMbusTM обеспечивает производителей мобильных терминалов и других продуктов с малым форм-фактором стандартным, надежным, масштабируемым, экономичным, высокоскоростным, двухпроводным многоабонентским интерфейсом, который поддерживает широкий диапазон аудиоцифровых и управляющих решений. В таких системах этот интерфейс способен стать эффективной заменой существующим аудиоинтерфейсам, например PCM, I2S и SSI.
С той же эффективностью SLIMbus может заменить в мобильном терминале или переносном изделии многие цифровые шины управления, например I2C, SPI, UART и GPIO, за счет гибкого и динамического распределения частот между аудиоцифровыми и незвуковыми функциями управления и данных. SLIMbus обратно не совместима с любой ныне использующейся аудиоцифровой шиной или цифровой управляющей шиной.
Внедрение стандарта SLIMbus в значительной степени способствует увеличению гибкости разработки, что позволяет проектировщикам быстро создавать множество устройств одной серии, каждое из которых обладает широким спектром аудиоцифровых функций и возможностей пользовательского интерфейса. Всего этого можно достичь, не копируя многие шинные структуры одного изделия.
Большинство компаний, участвовавших в подготовке спецификации SLIMbus, в настоящее время занято разработкой устройств, совместимых с базовой системой SLIMbus. Ожидается, что они появятся в 2008 г. Более подробную информациею по спецификации SLIMbus см. на сайте www.mipi.org.

Оставьте отзыв

Ваш емейл адрес не будет опубликован. Обязательные поля отмечены *