Библиотека Communications Toolbox™ для функций Протокола Bluetooth® позволяет вам создать и сконфигурировать Bluetooth piconet. Библиотека обеспечивает функциональности, чтобы сконфигурировать асинхронный с установлением соединения (ACL) ссылка, ссылка синхронного с установлением соединения (SCO), или и между Ведущим устройством и между Ведомым устройством. Можно также сконфигурировать методы скачкообразного движения частоты как скачкообразное движение основной частоты или адаптивное скачкообразное движение частоты (AFH).
Задайте количество Ведомых устройств в Bluetooth piconet. piconet может содержать максимум семи Ведомых устройств.
numSlaves = 2;
Определите общий номер узлов в piconet (одно Ведущее устройство и несколько Ведомых устройств).
numNodes = numSlaves + 1;
Задайте тип логической ссылки между Ведущим устройством и Ведомыми устройствами. Допустимые значения логической ссылки зависят от того, сколько Ведомых устройств соединяется с Ведущим устройством.
Если Ведущее устройство соединяется с одним Ведомым устройством, необходимо задать значение логической ссылки как вектор с одним элементом из 1
(Ссылка ACL), 2
(Ссылка SCO), или 3
(ACL и ссылки SCO).
Если Ведущее устройство соединяется с несколькими Ведомыми устройствами, необходимо задать значение логической ссылки как вектор-строку n-элемента, где n является количеством Ведомых устройств. Каждым элементом должен быть 1
(Ссылка ACL), 2
(Ссылка SCO), или 3
(ACL и ссылки SCO).
Включите ACL и трафик SCO, задав тип ACL и пакета SCO как 'DM1'
и 'HV3'
, соответственно.
linkTraffic = [1 2]; aclPacketType = 'DM1'; scoPacketType = {2,'HV3'};
Чтобы включить AFH, установите тип последовательности на адаптивную Связь.
sequenceType = 'Connection adaptive';
Инициализируйте массив ячеек, чтобы сохранить узлы Bluetooth.
btNodes = cell(1,numNodes);
Задайте расстояние (в метрах) между двумя узлами Bluetooth.
interNodeDistance = 10;
Создайте узлы, и затем сконфигурируйте их как Ведущее устройство или Ведомое устройство. Чтобы создать и сконфигурировать узлы, используйте функцию helperBluetoothFullDuplexNode.
for nodeIdx = 1:numNodes if nodeIdx == 1 basebandInstance = helperBluetoothBaseband('Role','Master'); % Baseband Master instance else basebandInstance = helperBluetoothBaseband('Role','Slave'); % Baseband Slave instance end nodePosition = [nodeIdx*interNodeDistance 0 0]; % Set node position node = helperBluetoothFullDuplexNode('Baseband',basebandInstance); % Create and configure node node.NodeID = nodeIdx; % Update node ID node.NodePosition = nodePosition; % Update node position btNodes{nodeIdx} = node; % Add Bluetooth nodes in cell array end
Создайте Bluetooth piconet при помощи функции helperBluetoothCreatePiconet.
helperBluetoothCreatePiconet(btNodes,numSlaves,linkTraffic,sequenceType,scoPacketType);
[1] Технологический Веб-сайт Bluetooth. “Технологический Веб-сайт Bluetooth | официальный сайт Технологии Bluetooth”. Полученный доступ 17 сентября 2020. https://www.bluetooth.com/.
[2] Специальная группа (SIG) Bluetooth. "Спецификация Ядра Bluetooth". Версия 5.2. https://www.bluetooth.com/.