В этом примере показано, как сгенерировать и передать сигналы Bluetooth ® BR/EDR с помощью библиотеки Communications Toolbox™ для протокола Bluetooth. Можно передавать сигналы Bluetooth BR/EDR с помощью радио ADALM-PLUTO или записать в файл основной полосы частот (* .bb ).
Для приема переданного сигнала Bluetooth BR/EDR, смотрите пример Bluetooth BR/EDR Receiver и реализуйте любую из следующих настроек:
Две платформы SDR, подключенные к одному хосту-компьютеру, который запускает два сеансов работы с MATLAB.
Две платформы SDR, соединенные с двух хостов-компьютеров, которые выполняют два отдельных Сеансов работы с MATLAB.
Для настройки хоста-компьютера для работы с пакетом поддержки ADALM-PLUTO Radio обратитесь к разделу Guided Host-Radio Оборудования Setup (Communications Toolbox Support Package for Analog Devices ADALM-Pluto Radio).
Для передачи сигналов в режиме реального времени необходимо радио ADALM-PLUTO и соответствующий пакет поддержки:
Полный список платформ SDR, поддерживаемых Communications Toolbox, см. в разделе «Поддерживаемые аппаратные средства» страницы обнаружения Программно определяемого радио (SDR).
Bluetooth [1] - технология беспроводной персональной сети (WPAN) малой дальности, работающая в глобально нелицензированном промышленном, научном и медицинском диапазоне (ISM) в частотной области значений от 2,4 ГГц до 2,485 ГГц. В технологии Bluetooth данные делятся на пакеты. Каждый пакет передается по одному из 79 назначенных каналов Bluetooth. Каждый канал имеет полосу пропускания 1 МГц. Поскольку существуют различные типы беспроводных сетей, работающих в одной и той же нелицензированной полосе частот, возможно, чтобы две различные сети мешали друг другу. Чтобы уменьшить помехи, Bluetooth реализует схему расширенного спектра с скачкообразным изменением частоты (FHSS), чтобы переключить несущую между несколькими частотными каналами с помощью псевдослучайной последовательности, известной как передатчику, так и приемнику.
Стандарт Bluetooth задает следующие режимы физического слоя (PHY):
Basic rate (BR) - Обязательный режим, использует Гауссов частотный сдвиг манипуляцию (GFSK) модуляцию со скоростью передачи данных 1 Мбит/с.
Улучшенная скорость передачи данных (EDR) - опционный режим, использует фазу сдвига keing (PSK) модуляцию с этими двумя вариантами:
EDR2M: Использует pi/4-DQPSK со скоростью передачи данных 2 Мбит/с.
EDR3M: Использует 8-DPSK со скоростью передачи данных 3 Мбит/с.
Форматы пакетов радиоинтерфейса для режимов PHY включают следующие поля:
Код доступа: Каждый пакет начинается с кода доступа. Если следует заголовок пакета, то код доступа имеет длину 72 бита, в противном случае код доступа имеет длину 68 бит. Код доступа состоит из следующих полей:
Преамбула: Преамбула представляет собой фиксированный нуль - один шаблон из четырех символов.
Sync Word: Слово синхронизации представляет собой 64-битное кодовое слово, полученное из 24-битной нижней адресной части (LAP) адреса устройства Bluetooth.
Трейлер: Трейлер является фиксированным нулем один шаблон из четырех символов.
Заголовок пакета: Заголовок включает информацию управления ссылкой и состоит из следующих полей:
LT_ADDR: 3-разрядный логический транспортный адрес.
TYPE: 4-битный код типа, который задает тип пакета, используемый для передачи. Это может быть один из {ID, NULL, POLL, FHS, HV1 HV2, HV3, DV, EV3, EV4, EV5, 2-EV3, 2-EV5, 3-EV3, 3-EV5, DM1, DH1, DM3, DH3, DM5, DH5, AUX1, 2-DH1, 2-DH3,, 2-DH5, 3-DH1, 3-DH3, 3, 3-DH5}.
FLOW: 1-битное управление потоком.
ARQN: 1-разрядная индикация подтверждения.
SEQN: 1-битный порядковый номер.
HEC: 8-битная проверка ошибок заголовка.
Полезный груз: Полезный груз включает дополнительный заголовок полезного груза, тело полезного груза и дополнительный CRC.
Защита: Для пакетов EDR время защиты позволяет радио Bluetooth подготовиться к изменению модуляции с GFSK на DPSK. Время защиты должно быть от 4,75 до 5,25 микросекунд.
Синхронизация: Для пакетов EDR, последовательность синхронизации содержит один опорный символ и десять символов DPSK.
Трейлер: Для пакетов EDR все биты трейлера должны быть нулевым шаблоном из двух символов, {00,00} для pi/4-DQPSK и {000 000} для 8DPSK.
Этот рисунок показывает формат пакета для режима BR
Этот рисунок показывает формат пакета для режима EDR
В этом примере показано, как сгенерировать сигналы Bluetooth BR/EDR согласно спецификации Bluetooth. Спектр и спектрограмма сгенерированных сигналов Bluetooth BR/EDR визуализируются с помощью спектрального анализатора. Можно передать сгенерированные формы волны с помощью радио ADALM-PLUTO или путем записи их в файл основной полосы частот (* .bb).
% Check if the 'Communications Toolbox Library for the Bluetooth Protocol' % support package is installed. commSupportPackageCheck('BLUETOOTH');
Чтобы сконфигурировать генератор формы сигнала Bluetooth для базовой передачи скорости, используйте bluetoothWaveformConfig
объект.
cfg = bluetoothWaveformConfig; cfg.Mode = 'BR'; % Mode of transmission as one of BR, EDR2M and EDR3M cfg. PacketType = 'FHS'; % Packet type cfg. SamplesPerSymbol = 60; % Samples per symbol cfg. WhitenInitialization = [0; 0; 0; 0; 0; 1; 1]; % Whiten initialization
Чтобы сгенерировать сигналы Bluetooth BR/EDR, используйте bluetoothWaveformGenerator
функция. Использование getPayloadLength
для определения необходимой длины полезной нагрузки для данного строения. Затем используйте длину полезной нагрузки, чтобы создать случайную полезную нагрузку для передачи.
payloadLength = getPayloadLength(cfg); % Payload length in bytes octetLength = 8; dataBits = randi([0 1],payloadLength*octetLength,1); % Generate random payload bits txWaveform = bluetoothWaveformGenerator(dataBits,cfg); % Create Bluetooth waveform
Можно сконфигурировать функцию helperBluetoothPacketDuration.m, чтобы вывести длительность пакета Bluetooth, соответствующую сгенерированным символам Bluetooth.
packetDuration = helperBluetoothPacketDuration(cfg.PacketType,cfg.Mode,payloadLength);
The comm.PhaseFrequencyOffset
Системный объект используется для выполнения сдвига частоты для сигналов Bluetooth BR/EDR на основе номера канала. В этом примере форма волны визуализируется с помощью dsp.SpectrumAnalyzer
Системный объект, который выбирает случайное число канала из области значений от 0 до 60, поскольку частота дискретизации, используемая в этом примере, составляет 60 МГц.
symbolRate = 1e6; % Symbol rate sampleRate = symbolRate * cfg.SamplesPerSymbol; numChannels = 10; % Number of channels % Create and configure frequency offset System object pfo = comm.PhaseFrequencyOffset('SampleRate',sampleRate); % Create and configure spectrum analyzer System object scope = dsp.SpectrumAnalyzer('ViewType','Spectrum and spectrogram',... 'TimeResolutionSource','Property','TimeResolution',1e-5,... 'SampleRate',sampleRate,'TimeSpanSource','Property',... 'TimeSpan',2e-3,'FrequencyResolutionMethod','WindowLength',... 'WindowLength',512,'AxesLayout','Horizontal','YLimits',[-40 25]); % Loop over the number of channels to visaulize the frequency shift for packetIdx = 1:numChannels channelNum = randsrc(1,1,0:60); % Generate random channel number freqIndex = channelNum - 39; % To visualize as a two sided spectrum pfo.FrequencyOffset = freqIndex*symbolRate; % Frequency shift hoppedWaveform = pfo(txWaveform(1:packetDuration*cfg.SamplesPerSymbol)); scope.Title = ['Spectrum of Bluetooth ',cfg.Mode,... ' Waveform for Channel Number = ', num2str(channelNum)]; scope(hoppedWaveform); end % Release the System objects release(scope);
release(pfo);
Укажите приемник сигнала как 'File' или 'ADALM-PLUTO'.
Файл: Использует comm.BasebandFileWriter
Системный объект для записи файла основной полосы частот.
ADALM-PLUTO: использует sdrtx
(Пакет поддержки Communications Toolbox для аналоговых устройств ADALM-Pluto Radio) для создания comm.SDRTxPluto
(Communications Toolbox Support Package for Analog Devices ADALM-Pluto Radio) Объект системы должен передать прямой сигнал от оборудования SDR.
% Initialize the parameters required for signal sink txCenterFrequency = 2445000000; % In Hz, varies between 2.402e9 to 2.480e9 with 1e6 spacing txFrameLength = длина (txWaveform); txNumberOfFrames = 1e4; bbFileName = 'bluetoothBRCaptures.bb'; % The default signal sink is 'File' signalSink = 'File'; if strcmp (signalSink,'File') sigSink = comm.BasebandFileWriter ('CenterFrequency', txCenterFrequency,... 'Filename', bbFileName,... 'SampleRate', sampleRate); sigSink (txWaveform );% Writing to a baseband file 'bluetoothBRCaptures.bb' else % For 'ADALM-PLUTO' % Check if the pluto Hardware Support Package (HSP) is installed if пустой (который ('plutoradio.internal.getRootDir')) ошибка (сообщение ('comm_demos:common:NoSupportPackage', ... 'Communications Toolbox Support Package for ADALM-PLUTO Radio',... ['<a href="https://www.mathworks.com/hardware-support/' ... 'adalm-pluto-radio.html">ADALM-PLUTO Radio Support From Communications Toolbox</a>'])); end connectedRadios = findPlutoRadio; % Discover ADALM-PLUTO radio(s) connected to your computer radioID = connectedRadios (1) .RadioID; sigSink = sdrtx ('Pluto',... 'RadioID', radioID,... 'CenterFrequency', txCenterFrequency,... 'Gain', 0,... 'SamplesPerFrame', txFrameLength,... 'BasebandSampleRate', sampleRate); % The transfer of baseband data to the SDR hardware is enclosed in a % try/catch block. This implies that if an error occurs during the % transmission, the hardware resources used by the SDR System % object are released. currentFrame = 1; try while currentFrame < = txNumberOfFrames % Data transmission sigSink (txWaveform); % Update the counter currentFrame = currentFrame + 1; end catch Я релиз (sigSink); переметнуть (МЕ); end end % Release the signal sink релиз (sigSink);
В этом примере можно сгенерировать и передать сигналы Bluetooth BR/EDR при помощи ADALM-PLUTO или путем записи сигналов в файл основной полосы частот. Спектр и спектрограмма сгенерированных сигналов Bluetooth BR/EDR визуализируется с помощью спектрального анализатора.
Можно использовать этот пример для передачи пакетов EDR путем изменения режима передачи. Пример использует функцию helperBluetoothPacketDuration.m helper, чтобы вернуть длительность пакета Bluetooth.
Для декодирования сигнала Bluetooth BR/EDR, сгенерированного в этом примере, см. пример приемника Bluetooth BR/EDR.
Общие советы по устранению неполадок оборудования SDR и пакета поддержки Communications Toolbox для радио ADALM-PLUTO можно найти в разделе Общие проблемы и исправления (Пакет поддержки Communications Toolbox для аналоговых устройств ADALM-Pluto Radio).
Bluetooth Special Interest Group (SIG). «Основной системный пакет [том контроллера BR/EDR]». Спецификация ядра Bluetooth. Версия 5.1, том 2. www.bluetooth.com