spp протокол что это
Spp протокол что это
Протокол типа SPP (полное название на англ. «Sequenced Packet Protocol») предназначен и используется с целью обеспечения надежной и качественной передачи необходимых данных на транспортном уровне между пользователями. Протокол работает в постоянном режиме с установлением соединения. Основные функции протокола – это обеспечение подтверждения переданных данных, передача массивов данных требуемого объема и сохранение порядка их следования. Для более удобного ознакомления с составом блока SPP следует ознакомиться с нижеприведенной таблицей.
Тип данных
Управление потоком данных
Идентификатор канала (отправителя)
Идентификатор канала (получателя)
Счетчик всех переданных пакетов
Буферы для приема (количество)
Необходимые (требуемые) данные
В данной таблице поле с наименованием «Тип данных» отражает непосредственно тип передаваемых данных. Драйвер SPX полностью игнорирует все значения полей в диапазоне от 00 до FD. Данные значения могут произвольно использоваться программой. Значение поля FE идентифицирует посылаемый запрос разъединения, а FF определяет подтверждение образования разъединения.
Поле «Идентификатор канала (отправителя)», так же как и поле «Идентификатор канала (получателя)» определяют канал обмена в драйвере. Этот драйвер может организовывать несколько возможных каналов обмена одновременно по каждому имеющемуся сокету.
Имеющиеся поля счетчиков идентифицируют номера пакетов как подтвержденных, так и переданных. Поле «Буферы для приема (количество)» показывает сколько в данный момент времени пакетов может принять драйвер.
Максимальная длина пакетов SPP не может быть более чем 576 байтов. Во время организации соединения процессы клиента имеют возможность согласовывать использование пакетов различных размеров. Однако при этом SPP не производит определение характера данного согласования.
BLE взамен RS-232: SPP-профиль на устройствах Bluetooth Low Energy
В классической беспроводной технологии Bluetooth профиль последовательного порта (SPP) обеспечивает возможность замены проводного интерфейса RS-232 беспроводным соединением между двумя устройствами. В устройствах, работающих на новом Bluetooth-стандарте BLE, структура стека для соединения через последовательный порт – иная. Как же организовать на них замену проводного интерфейса беспроводным соединением?
Изначально созданная для высокоскоростной передачи данных в сетях малого радиуса действия беспроводная технология Bluetooth с течением времени развивалась и совершенствовалась. Последнее существенное изменение произошло с появлением версии 4.0, известной также как Bluetooth Low Energy (BLE). Новейшая принятая спецификация имеет версию 4.2. Для BLE используется также и другое название – Bluetooth Smart.
В Bluetooth при создании соединения между двумя устройствами одно из них, инициирующее соединение, выступает в роли ведущего (Master), а другое будет находиться в роли ведомого (Slave). При этом оба устройства могут действовать как индивидуально (топология Point to Point), так и находясь в составе сети со структурой типа «звезда» (топология Star) (рисунок 1). В этом случае один узел функционирует как центральный и действует в роли ведущего, в то время как все остальные узлы функционируют в роли ведомых.
Рис. 1. Две топологии соединений в Bluetooth
В классическом варианте Bluetooth соединение между двумя точками поддерживается, даже если нет подлежащих передаче данных, что приводит к повышенному расходу энергии от автономного источника питания. Лишь при переходе в спящий режим удается несколько сократить потребляемый от батареи ток. В результате на основе классического Bluetooth практически невозможно реализовать компактные устройства длительного пользования с батарейным питанием. Значительно более экономичный в отношении потребляемого тока стандарт Bluetooth Low Energy позволяет создавать конечные устройства с питанием от батареек пуговичного типа, которые способны работать в течение нескольких месяцев и даже лет.
BLE можно рассматривать как расширение базовой технологии Bluetooth Classic, ориентированное в основном на передачу небольших объемов данных, которое оптимально подходит для Интернета вещей. Сравнение основных характеристик BLE и обычного Bluetooth приведено в таблице 1.
Таблица 1. Сравнение Bluetooth с Bluetooth Low Energy
Параметр | Классический Bluetooth | Bluetooth Low Energy |
Потребляемый ток, мА | 1…30 | 0,001…15 |
Скорость передачи, Мбит/c | 1…3 | 1 |
Радиус действия, м | 1…100 | 50 |
Макс. мощность передатчика, дБм | +20 (класс 1) | +10 |
+4 (класс 2) | ||
Число каналов | 79 | 40 |
Длительность сеанса связи, мс | 100 | 3 |
Макс. размер пакета | 2875 мкс = 1021 байт | 328 мкс = 27 байт |
Шифрование | Safer+ | AES-128 |
BLE, как и обычный Bluetooth, работает в нелицензируемом частотном диапазоне 2,4 ГГц, используя 40 каналов вместо 79 в классическом варианте и довольствуясь сокращенным по длительности до 3 мс сеансом связи. При этом максимальный размер передаваемого пакета составляет 27 байт.
BLE использует меньше каналов, но с расширенной полосой пропускания. Как показано на рисунке 2, ширина каждого из 40 каналов Bluetooth Smart составляет 2 МГц. Для передачи служебных сигналов (Advertising) выделены три канала, разнесенные в пределах частотного спектра, чтобы минимизировать влияние помех. В течение сеанса связи используется скачкообразный алгоритм выбора частоты канала.
Рис. 2. Частотные каналы Bluetooth Smart (BLE)
Стек ПО Bluetooth Smart (BLE) для последовательного порта
Спецификация Bluetooth определяет структурные элементы, на базе которых разработчик создает совместимые друг с другом устройства. Архитектура программного обеспечения для устройств BLE имеет послойно упорядоченную структуру, обычно называемую стеком. Наборы протоколов и профили позволяют отдельным устройствам соединяться друг с другом и обмениваться данными определенного типа.
В новых версиях Bluetooth, начиная с 4.0, вводятся два типа устройств: однорежимные и двурежимные. Однорежимные устройства работают лишь с поддержкой спецификации BLE, тогда как двурежимные способны также работать и в режиме классического Bluetooth BR/EDR (с базовой/повышенной скоростью).
На рисунке 3 изображены варианты реализации коммуникационного стека Bluetooth. Имеющийся в обычном Bluetooth профиль последовательного порта (SPP) обеспечивает возможность замены проводного интерфейса RS-232 беспроводным соединением между двумя устройствами.
Рис. 3. Структура коммуникационного стека Bluetooth
Профиль SPP включает протоколы RFCOMM, L2CAP, Link Manager и базовый протокол радиосвязи. RFCOMM (Radio Frequency Communications), создает виртуальный последовательный поток данных и эмулирует управляющие сигналы RS-232.
Далее в дело вступает пакетный протокол L2CAP (Logical Link Control and Adaptation Protocol). Он передает пакеты данных между хостом и подсистемой контроллера Bluetooth через интерфейс HCI (Host to Controller Interface) или напрямую в Link Layer, например, как в BlueNRG (рисунок 4).
Рис. 4. Структура стека BlueNRG
В устройствах BLE используется несколько измененная структура стека для соединения через последовательный порт. Вместо SPP имеется профиль атрибутов, а вместо протоколов RFCOMM – протокол атрибутов, оптимизированный для используемых в BLE пакетов данных небольшого размера. Протокол L2CAP остается неизмененным, Link Manager заменен на Link Layer, который определяет для пакетов структуру/каналы, процедуры подключения и отправляемые/получаемые данные.
Последовательный канал связи для устройств BLE
Надо сразу отметить, что отдельные операции в процессе соединения выполняются на уровне микропрограммного обеспечения и не требуют пристального внимания со стороны разработчика конечного устройства. Ему остается лишь выбрать заложенные производителем чипов микрокоманды на уровне конфигурации стека и профилей программного обеспечения.
В комплекте c оценочными платами производства компании STMicroelectronics имеется пакет ПО для разработки новых устройств, включающий в себя встроенное программное обеспечение, примеры реализации различных сценариев и документацию.
Рассмотрим пример создания канала связи между двумя компьютерами с использованием микросхем BlueNRG-MS или BlueNRG-1, которые являются однорежимными чипами с поддержкой требований BLE из спецификации Bluetooth v4.0. BlueNRG взаимодействуют с микроконтроллером внешнего хоста, используя линии SPI и набор API, состоящий из команд стандартного Application Command Interface (ACI) и определенных производителем команд Host Controller Interface (HCI) (рисунок 4).
Для решения поставленной задачи можно использовать, например, модуль SPBTLE-RF с сетевым процессором BlueNRG-MS (рисунок 5) или другие устройства на основе приемопередатчиков BlueNRG-1. В случае использования BlueNRG-1 расширенные возможности аппаратной платформы позволяют ему в отдельных случаях выполнять также функции приложения и полностью реализовать стек протоколов в одном чипе.
Рис. 5. Модуль ST SPBTLE-RF
Образец программной реализации, которая демонстрирует простое двухполосное соединение между двумя устройствами BlueNRG-MS, доступен в комплекте для разработки ПО (SDK) BlueNRG-MS. Проект называется “BLE Chat”, он размещен в папке “Projects\Projects_STD_Library\BLE_Chat\EWARM_BlueNRG-MS” внутри ПО для оценочного комплекта STEVAL- IDB005V1 или STEVAL-IDB006V1 (рисунок 6).
Рис. 6. Модуль STEVAL-IDB006V1
Те, кто работает с оценочными платами NucleoL152RE и X-NUCLEO-IDB05A1, могут найти этот проект в папке “Projects\Projects_Cube\BLE_Chat\EWARM_BlueNRG-MS”.
Примечание: если работать с BlueNRG-1 в составе оценочной платы STEVAL-IDB007V1, проект можно найти в SDK BlueNRG-1, в папке “\BLE_Examples\BLE_Chat”. Имеется поддержка IAR Embedded Workbench, Keil Microcontroller Development Kit и Atollic TrueSTUDIO.
При работе с этим проектом доступны четыре конфигурации:
В процессе реализации чата BLE выполняются следующие действия:
Сервис Chat содержит две определенные производителем характеристики:
Максимальная длина значения характеристики – 20 байт.
Чтобы установить соединение между двумя устройствами BlueNRG-MS (двумя оценочными платами BlueNRG), необходимо на одном из них реализовать режим «ведущий», а на втором должен быть установлен режим «ведомый». Как только соединение установлено – две точки могут начать передачу данных по каналу связи, используя эти две характеристики.
При использовании оценочных плат участвующие в обмене данные посылаются и принимаются с использованием подключенного к плате через эмулятор терминала на ПК, например, TeraTerm. Каждая оценочная плата будет отображаться на ПК как виртуальный порт COM. Эмулятор терминала конфигурируется следующим образом:
Проектные конфигурации “Client throughput” и “Server throughput” позволяют пользователю тестировать пропускную способность (определенный идентификатор препроцессора “THROUGHPUT_TEST” будет представлен в обеих проектных конфигурациях).
Тест на пропускную способность включает следующие этапы:
Примечание: при работе с BlueNRG-1 в составе оценочной платы STEVAL-IDB007V1 контроллер STM32L1 выполняет роль моста между USB и последовательным портом BlueNRG-1, что позволяет непосредственно проверить пропускную способность от ПК к BlueNRG-1. Прошивка представлена в двоичной форме в SDK BlueNRG-1. Приложение BLE Chat запускается на устройстве BlueNRG-1 и сохраняется во Flash-памяти.
Заключение
Производимые STMicroelectronics приемопередатчики BlueNRG стандарта Bluetooth Low Energy подходят для использования в самом широком спектре устройств персонального назначения, в системах сбора и учета данных, находят широкое применение в промышленной и домашней автоматике.
Встроенное ПО BlueNRG обеспечивает эффективное решение стоящих перед разработчиком задач и не требует от него углубленных познаний в радиочастотной технике и спецификации Bluetooth. Имеющийся в комплекте с SDK набор демонстрационных приложений позволяет использовать некоторые типичные рабочие сценарии BLE.
Постоянно расширяемый набор библиотек ПО, предоставляемые производителем оценочные платы и SDK обеспечивают быстрое начало работ и позволяют в кратчайшие сроки создать законченное устройство с поддержкой Bluetooth Low Energy.
Национальная библиотека им. Н. Э. Баумана
Bauman National Library
Персональные инструменты
SPP (Serial Port Profile)
Профиль последовательного порта позволяет организовать «прозрачный» беспроводной канал между двумя устройствами, которые ранее были связаны проводным последовательным интерфейсом. Встраиваемый Bluetooth-модуль осуществляет преобразование потока данных, поступающих по проводному асинхронному последовательному каналу. [Источник 1]
Этот профиль является основой для DUN, FAX, HSP и AVRCP.
Максимальная полезная нагрузка профиля последовательного порта составляет 128 байт.
Содержание
Структура и зависимости
Стек протоколов профиля
Конфигурации и роли
Требования и сценарии использования
Сценарий, охватываемый этим профилем, выглядит следующим образом:
Настраивая виртуальные последовательные порты на двух устройствах и подключая их с помощью Bluetooth, производится эмуляциия последовательного кабеля между двумя устройствами. Любое унаследованное приложение может быть запущено на любом устройстве, используя виртуальный последовательный порт, как если бы существовал реальный последовательный кабель, соединяющий два устройства.
Этот профиль поддерживает только однослотовые пакеты. Это означает, что этот профиль обеспечивает скорость передачи данных до 128 Кбит / с.
В этом профиле поддерживается только одно соединение. Следовательно, рассматриваются только конфигурации типа «точка-точка». Однако это не означает, что возникают какие-то ограничения на согласованность различных подключений: несколько исполнений этого профиля должны иметь возможность запускаться одновременно на одном устройстве.
Процедуры
Процедура | Поддержка в DevA | Поддержка в DevB | |
---|---|---|---|
1. | Установка соединения и настройка виртуального последовательного соединения | Да | Нет |
2. | Согласие на соединение и установку виртуального последовательного соединения | Нет | Да |
3. | Регистрация служебной записи для приложения в локальной базе данных SDP | Нет | Да |
Установка соединения и настройка виртуального последовательного соединения
Эта процедура основана на выполнении шагов, необходимых для установления соединения с эмулированным последовательным портом на удаленном устройстве.
После выполнения шага 5 виртуальное последовательное соединение готово для связи между приложениями с обеих сторон.
Согласие на соединение и установку виртуального последовательного соединения
Эта процедура состоит из следующих этапов:
Регистрация служебной записи для приложения в локальной базе данных SDP
Эта процедура относится к регистрации служебной записи для эмулируемого последовательного порта в базе данных SDP. Это подразумевает наличие базы данных служб и способность отвечать на запросы SDP.
Все сервисы/приложения, доступные через RFCOMM, должны предоставить служебную запись SDP, которая включает в себя параметры, необходимые для обращения к соответствующей службы/приложения. Чтобы поддерживать унаследованные приложения, запущенные на виртуальных последовательных портах, регистрация сервиса должна выполняться с помощью некоторого вспомогательного приложения, которое помогает пользователю в настройке порта.
Режим питания и обратная связь
Несмотря на то, что требования к мощности могут быть совершенно разными для различных устройств, соединенных посредством профиля последовательного порта, нет необходимости использовать какой-либо режим энергосбережения. Однако, по желанию можно создавать запрос на использование режима с малым потреблением мощности.
Если устройство обнаруживает потерю связи, RFCOMM отключается. Перед возобновлением связи, необходимо вновь выполнить процедуру инициализации RFCOMM-сессии.