В этом примере показано, как сгенерировать и передать 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
Системный объект, чтобы передать живой сигнал от оборудования 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 = коммуникация. 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 при помощи ADLAM-PLUTO или путем записи форм волны в основополосный файл. Спектр и spectogram сгенерированного Bluetooth формы волны BR/EDR визуализируются при помощи спектра анализатор.
Можно использовать этот пример, чтобы передать пакеты EDR путем изменения режима передачи. Чтобы декодировать форму волны BR/EDR Bluetooth, сгенерированную в этом примере, обратитесь к примеру Получателя BR/EDR Bluetooth.
Общие советы для поиска и устранения неисправностей оборудования SDR и Пакета Поддержки Communications Toolbox для Радио ADALM-PLUTO могут быть найдены в Типичных проблемах и Фиксируют (Пакет Поддержки Communications Toolbox для Аналоговых устройств Радио ADALM-Pluto).
Пример использует эту функцию помощника:
helperBluetoothPacketDuration.m: Возвращает пакетную длительность Bluetooth
Специальная группа (SIG) Bluetooth. "Базовый Системный пакет [Контроллер BR/EDR Объем]". Спецификация Ядра Bluetooth. Версия 5.1, Объем 2. www.bluetooth.com