В этом примере показано, как сгенерировать и передать формы волны Bluetooth® BR/EDR, пользующиеся Библиотекой Communications Toolbox™ для Протокола Bluetooth. Можно или передать формы волны BR/EDR Bluetooth при помощи радио ADALM-PLUTO или записать в основополосный файл (*.bb).
Чтобы получить переданный Bluetooth форма волны BR/EDR, смотрите пример Приемника BR/EDR Bluetooth и реализуйте любую из этих настроек:
Две платформы SDR соединились с тем же хостом - компьютером, который запускает два сеанса работы с MATLAB.
Две платформы SDR соединились с двумя хостами - компьютерами, который запускает два отдельных сеанса работы с MATLAB.
Чтобы сконфигурировать ваш хост - компьютер, чтобы работать с Пакетом поддержки для Радио ADALM-PLUTO, отошлите Ведомую Радио-Хостом Настройку оборудования (Пакет поддержки Communications Toolbox для Аналоговых устройств Радио ADALM-Pluto).
К передаваемым сигналам в режиме реального времени, вам нужны радио ADALM-PLUTO и соответствующий пакет поддержки:
Для полного списка Communications Toolbox поддерживаемые платформы SDR обратитесь к разделу Supported Hardware страницы открытия Программно определяемого радио (SDR).
Bluetooth [1] является ближней технологией Беспроводной персональной сети области (WPAN), действующей в глобально нелицензированной промышленной, научной, и медицинской полосе (ISM) в частотном диапазоне от 2,4 ГГц до 2,485 ГГц. В технологии Bluetooth данные разделены на пакеты. Каждый пакет передается на одном из 79 обозначенных каналов Bluetooth. Каждый канал имеет полосу пропускания 1 МГц. Как существуют различные типы беспроводных сетей, действующих в том же нелицензированном диапазоне частот, для двух различных сетей возможно вмешаться друг в друга. Чтобы смягчить интерференцию, Bluetooth реализует схему скачкообразно перемещающего частоту спектра распространения (FHSS) переключить несущую между несколькими каналами частоты при помощи псевдослучайной последовательности, известной и передатчику и приемнику.
Стандарт Bluetooth задает эти режимы (PHY) физического уровня:
Режим Basic rate (BR) - Mandatory, модуляция Гауссова манипулирования сдвига частоты (GFSK) использования со скоростью передачи данных 1 Мбит/с.
Режим Enhanced data rate (EDR) - Optional, модуляция манипулирования сдвига фазы (PSK) использования с этими двумя вариантами:
EDR2M: Использование pi/4-DQPSK со скоростью передачи данных 2 Мбит/с.
EDR3M: Использование 8-DPSK со скоростью передачи данных 3 Мбит/с.
Воздушные форматы пакета интерфейса для режимов PHY включают эти поля:
Код доступа: Каждый пакет запускается с кода доступа. Если пакетный заголовок следует, код доступа 72 бита длиной, в противном случае код доступа 68 битов длиной. Код доступа состоит из этих полей:
Преамбула: преамбула является фиксированным нулем один шаблон четырех символов.
Синхронизирующий Word: синхронизирующее слово является 64-битной кодовой комбинацией, выведенной из 24-битного ниже обратитесь к части (LAP) адреса устройства Bluetooth.
Трейлер: трейлер является фиксированным нулем один шаблон четырех символов.
Пакетный Заголовок: заголовок включает управляющую информацию ссылки и состоит из этих полей:
LT_ADDR: 3-битный логический транспортный адрес.
Ввод: 4-битный код типа, который задает пакетный тип, используемый для передачи. Это может быть одним из {ID, NULL, ОПРОСИТЬ, 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-DH5}.
Поток: 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
Чтобы сгенерировать формы волны BR/EDR Bluetooth, используйте 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);
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);
Задайте приемник сигнала как 'Файл' или 'ADALM-PLUTO'.
Файл: использует comm.BasebandFileWriter
Системный объект, чтобы записать основополосный файл.
ADALM-PLUTO: использует sdrtx
(Пакет поддержки Communications Toolbox для Аналоговых устройств Радио ADALM-Pluto), функционируют, чтобы создать comm.SDRTxPluto
(Пакет поддержки Communications Toolbox для Аналоговых устройств Радио ADALM-Pluto) Системный объект, чтобы передать живой сигнал от оборудования 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 isempty (который ('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 ME выпустите (sigSink); повторно выдайте (ME); end end % Release the signal sink выпустите (sigSink);
В этом примере можно сгенерировать и передать Bluetooth формы волны BR/EDR при помощи ADALM-PLUTO или путем записи форм волны в основополосный файл. Спектр и spectogram сгенерированного Bluetooth формы волны BR/EDR визуализируются при помощи спектра анализатор.
Можно использовать этот пример, чтобы передать пакеты EDR путем изменения режима передачи. Пример использует helperBluetoothPacketDuration.m функцию помощника, чтобы возвратить пакетную длительность Bluetooth.
Чтобы декодировать форму волны BR/EDR Bluetooth, сгенерированную в этом примере, обратитесь к примеру Приемника BR/EDR Bluetooth.
Общие советы для поиска и устранения неисправностей оборудования SDR и Пакета поддержки Communications Toolbox для Радио ADALM-PLUTO могут быть найдены в Типичных проблемах и Фиксируют (Пакет поддержки Communications Toolbox для Аналоговых устройств Радио ADALM-Pluto).
Специальная группа (SIG) Bluetooth. "Базовый Системный пакет [Контроллер BR/EDR Объем]". Спецификация Ядра Bluetooth. Версия 5.1, Объем 2. www.bluetooth.com