Логические линии
Некоторые логические транспорты способны переносить либо различные мультиплексируемые, либо одну логическую линию. Внутри таких логических транспортов логическая линия идентифицируется идентификатором логической линии(LLID) в заголовке полезной нагрузки (Payload Header) пакета среды передачи (Baseband Packet). Логические линии отличаются друг от друга различными наборами протоколов, которые способны передавать и принимать данные логических транспортов, т. е. не все логические транспорты способны переносить все логические линии. В частности, логические транспорты SCO и eSCO способны переносить только потоки данных с постоянной скоростью и уникально идентифицируются адресом LT_ADDR; такие логические транспорты использует только пакеты, не содержащие заголовка полезной нагрузки, т. к. их длина заранее известна и в использовании LLID нет необходимости. Всего определено 5 логических линий: · управления линией (Link Control, LC); · управления ACL (ACL Control, ACL-C); · пользовательская асинхронная/изохронная (ACL-U); · пользовательская потоковая синхронная (SCO-S); · пользовательская потоковая расширенная синхронная (eSCO-S). Логические линии управления LC и ACL-C используются соответственно уровнями контроля и управления линией. Логическая линия LC переносит низкоуровневую информацию управления линией, такую как: подтверждение/запрос повторения (Acknowledgment/Repeat Request, ARQ), контроль потока и характеристика полезной нагрузки. Она переносится в каждом пакете, за исключением пакета ID, у которого отсутствует заголовок пакета. Логическая линия ACL-C переносит управляющую информацию протокола LMP, которой обмениваются менеджеры линий ведущего и ведомого устройств. Логическая линия ACL-U переносит асинхронные и изохронные пользовательские данные L2CAP. Данные сообщения могут передаваться в одном или нескольких пакетах среды передачи. Логическая линия LC переносится в заголовке пакета, все остальные линии — в полезной нагрузке пакета. Связь логических транспортов с поддерживаемыми логическими линиями с характеристикой логических транспортов приведена в таблице ниже.
Пакеты Определённые поля пакетов уже были описаны в текущем разделе выше. Рассмотрим формат пакетаподробнее. Стоит заметить, что хотя в стеке Bluetooth пакеты называются «пакетами», по сути, они являются кадрами канального уровня эталонной модели OSI. Общая структура пакета показана на Рис. 9. Рис. 9. Общая структура пакета Код доступа формируется на основе адреса устройства Bluetooth (BD_ADDR) таким образом, чтобы включать в себя синхронизирующую последовательность для ведомых устройств. Заголовок пакета имеет формат, представленный на Рис. 10. Рис. 10. Формат заголовка пакета Bluetooth Поле LT_ADDR содержит адрес логического транспорта. Поле TYPE позволяет различать разные типы пакетов. Интерпретация этого поля зависит от используемого логического транспорта. Тип транспорта напрямую не следует из структуры пакета. Синхронные транспорты определяются тем, что имеют привязку к номерам слотов, а также дополнительным идентификатором логической линии SCO или eSCO в заголовке структурированного поля полезной нагрузки (Payload). Данные широковещательных логических линий могут быть определены по нулевому значению поля LT_ADDR. Следующие флаги используются для низкоуровневой сигнализации по протоколу LCс помощью схемы ARQ. Флаг FLOW используется для управления потоком по логическому транспорту ACL. Если буфер приёмника переполнен, то в ответном пакете бит устанавливается, чтобы запретить передатчику передачу данных. Флаг ARQN используется для подтверждения приёма данных: успешного (ACK) или неуспешного (NAK). Поле HEC представляет собой проверочную последовательность для заголовка. Бит SEQN используется для контроля последовательности пакетов. При передаче пакета с новым значением контрольной суммы бит инвертируется. Если же происходит повторная передача пакета, то значение сохраняется. Существует пять общих типов пакетов (часть из них задаётся протоколом управления линией) и отдельные типы пакетов для различных логических транспортов. Для асинхронного транспорта ACL определены пакеты с разной длиной поля полезной нагрузки, которые могут занимать от одного до пяти слотов подряд. Длина поля полезной нагрузки находится в пределах от 0 до 339 байт. Это позволяет достичь скорости 723 Кбит/с при передаче пользовательских данных. Типичные пакеты транспорта SCO занимают один слот. При этом фиксируется номер (частота повторения номера) слота, который становится зарезервированным для передачи синхронных данных. Фиксированная симметричная скорость при передаче через логические линии SCO-S составляет 64 Кбит/с. Это типичная скорость передачи голосовых данных, оцифрованных с частотой 8000 Гц и закодированных с помощью импульсно-кодовой модуляции (Pulse-Code Modulation, PCM). Это соответствует скорости DS-0 технологии PDH.
|