Bluetooth Прием Формы волны BR/EDR при помощи SDR

В этом примере показано, как получить и декодировать формы волны Bluetooth® BR/EDR при помощи Библиотеки Communications Toolbox™ для Протокола Bluetooth. Можно или получить формы волны BR/EDR Bluetooth при помощи радио ADALM-PLUTO или загрузить выборки IQ, соответствующие формам волны BR/EDR Bluetooth из основополосного файла (*.bb). Чтобы сгенерировать и передать формы волны BR/EDR Bluetooth, отошлите к Bluetooth Генерацию сигналов BR/EDR и Передачу с помощью SDR и сконфигурируйте тестовую среду с:

  • Две платформы SDR, соединенные с тем же хостом - компьютером и запуском два сеанса MATLAB® на одном хосте - компьютере.

  • Две платформы SDR, соединенные с двумя хостами - компьютерами и запуском один сеанс работы с MATLAB на каждом хосте - компьютере.

Чтобы сконфигурировать ваш хост - компьютер, чтобы работать с Пакетом Поддержки для Радио ADALM-PLUTO, обратитесь к Ведомой Радио-Хостом Настройке оборудования (Пакет Поддержки Communications Toolbox для Аналоговых устройств Радио ADALM-Pluto).

Необходимое оборудование

Чтобы получить сигналы в режиме реального времени, вам нужны радио ADALM-PLUTO и соответствующее дополнение пакета поддержки:

Для полного списка коммуникационных тулбоксов, поддержанных платформами SDR, обратитесь к разделу Supported Hardware страницы открытия Программно определяемого радио (SDR).

Bluetooth Технические требования Радио BR/EDR

Bluetooth является ближней технологией Беспроводной персональной сети области (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 Мбит/с

Bluetooth Форматы пакета BR/EDR

Воздушные форматы пакета интерфейса для режимов 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-битное управление потоками по транспорту асинхронного с установлением соединения логического (ACL)

  • ARQN: 1-битная индикация подтверждения

  • SEQN: 1-битный порядковый номер

  • HEC: 8-битная проверка на ошибки заголовка

Формат заголовка

Полезная нагрузка: Полезная нагрузка включает дополнительный заголовок полезной нагрузки, тело полезной нагрузки и дополнительный CRC.

Формат полезной нагрузки

Охрана: Для пакетов EDR защитное время позволяет радио BR/EDR Bluetooth готовиться к изменению в модуляции от GFSK до DPSK. Защитное время должно быть между 4,75 к 5,25 микросекундам.

Синхронизация: Для пакетов EDR последовательность синхронизации содержит один ссылочный символ и десять символов DPSK.

Трейлер: Для пакетов EDR биты трейлера должны быть всем нулевым шаблоном двух символов, {00,00} для pi/4-DQPSK и {000,000} для 8DPSK.

Формат пакета для режима BR показывают в этом рисунке.

Формат пакета базовой скорости

Формат пакета для режима EDR показывают в этом рисунке.

Расширенный формат пакета скорости передачи данных

Проверяйте на установку пакета поддержки

Проверяйте, установлена ли Библиотека Communications Toolbox для пакета поддержки Протокола Bluetooth.

commSupportPackageCheck('BLUETOOTH');

Декодируйте Bluetooth Формы волны BR/EDR

В этом примере показано, как декодировать Bluetooth формы волны BR/EDR, или полученные при помощи ADALM-PLUTO или путем чтения выборок IQ из основополосного файла.

Bluetooth Приемник BR/EDR

Общая структура примера приемника Bluetooth:

  1. Инициализируйте параметры приемника.

  2. Задайте источник сигнала.

  3. Получите формы волны BR/EDR Bluetooth.

  4. Процесс Bluetooth формы волны BR/EDR в приемнике.

Инициализируйте параметры приемника

Чтобы сконфигурировать Bluetooth параметры BR/EDR, используйте bluetoothPhyConfig объект.

cfg = bluetoothPhyConfig;
cfg.Mode = 'BR'; % Mode of transmission as one of BR, EDR2M and EDR3M
cfg.WhitenInitialization = [0; 0; 0; 0; 0; 1; 1]; % Whiten initialization

Задайте источник сигнала

Задайте источник сигнала как Файл или ADALM-PLUTO.

  • Файл: использует comm.BasebandFileReader считать файл, который содержит ранее полученный беспроводной сигнал.

  • ADALM-PLUTO: Использование thesdrrx (Пакет Поддержки Communications Toolbox для Аналоговых устройств Радио ADALM-Pluto) Системный объект, чтобы получить живой сигнал от оборудования SDR.

Если вы присваиваете ADALM-PLUTO как источник сигнала, пример ищет ваш компьютер радио ADALM-PLUTO в радиообращении 'usb:0' и использует его в качестве источника сигнала.

% The default signal source is 'File'
signalSource = 'File';

bbSymbolRate = 1e6; % 1 MSps
if strcmp (signalSource,'File')
    switch cfg.Mode
        case 'BR'
            bbFileName = 'bluetoothCapturesBR.bb';
        case 'EDR2M'
            bbFileName = 'bluetoothCapturesEDR2M.bb';
        case 'EDR3M'
            bbFileName = 'bluetoothCapturesEDR3M.bb';
    end
    sigSrc = comm.BasebandFileReader (bbFileName);
    sigSrcInfo = информация (sigSrc);
    bbSampleRate = sigSrc.SampleRate;
    sigSrc.SamplesPerFrame = sigSrcInfo.NumSamplesInData;
    cfg.SamplesPerSymbol = bbSampleRate/bbSymbolRate;

else

    % 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;    
    rxCenterFrequency = 2445000000;  % In Hz, choose between 2.402e9 to 2.480e9 with 1e6 spacing
    bbSampleRate = bbSymbolRate * cfg.SamplesPerSymbol;
    sigSrc = sdrrx ('Pluto',...
        'RadioID', radioID,...
        'CenterFrequency', rxCenterFrequency,...
        'BasebandSampleRate', bbSampleRate,...
        'SamplesPerFrame', 1e7,...
        'GainSource',         'Manual',...
        'Gain',                25,...
        'OutputDataType',     'double');
end

Получите Формы волны BR/EDR Bluetooth

Получите выборки IQ, соответствующие Bluetooth формы волны BR/EDR или при помощи ADALM-PLUTO или при помощи основополосного файла как источник сигнала. Визуализируйте спектр полученных форм волны Bluetooth при помощи спектра анализатор.

% The transmitted waveforms are captured as a burst
dataCaptures = sigSrc();

% Setup spectrum viewer
spectrumScope = dsp.SpectrumAnalyzer( ...
    'SampleRate',       bbSampleRate,...
    'SpectrumType',     'Power density', ...
    'SpectralAverages', 10, ...
    'YLimits',          [-130 -30], ...
    'Title',            'Received Baseband Bluetooth Signal Spectrum', ...
    'YLabel',           'Power spectral density');

% Show power spectral density of the received waveform
spectrumScope(dataCaptures);

Figure Spectrum Analyzer contains an axes and other objects of type uiflowcontainer, uimenu, uitoolbar. The axes with title Received Baseband Bluetooth Signal Spectrum contains an object of type line. This object represents Channel 1.

Процесс Bluetooth Формы волны BR/EDR в Приемнике

Чтобы декодировать пакетный заголовок, информацию о заголовке полезной нагрузки и необработанные биты сообщения, приемник обрабатывает основополосные выборки, полученные от источника сигнала. Этот рисунок показывает обработку приемника.

Bluetooth практический приемник

Bluetooth практический приемник выполняет эти функции:

  1. Удалите смещение DC 

  2. Обнаружьте пакеты сигнала  

  3. Выполните согласованную фильтрацию 

  4. Оцените и откорректируйте смещение синхронизации 

  5. Оцените и откорректируйте смещение несущей частоты 

  6. Демодулируйте форму волны BR/EDR 

  7. Выполните декодирование прямого исправления ошибок (FEC) 

  8. Выполните данные dewhitening 

  9. Выполните проверку на ошибки заголовка (HEC) и контроль циклическим избыточным кодом (CRC) 

  10. Выходные параметры декодировали биты и декодировали пакетную статистику на основе декодируемого ниже обратитесь к части (LAP), HEC и CRC 

% Bluetooth practical receiver
[decBits,decodedInfo,pktStatus] = helperBluetoothPracticalReceiver(dataCaptures,cfg);

% Get the number of detected packets
pktCount = length(pktStatus);
disp(['Number of Bluetooth packets detected: ' num2str(pktCount)])
Number of Bluetooth packets detected: 2
% Get the decoded packet statistics
displayFlag = true; % set true, to display the decoded packet statistics  
if(displayFlag && (pktCount ~ = 0))
    decodedInfoPrint = decodedInfo;
    for ii = 1:pktCount
        if(pktStatus (ii))
            decodedInfoPrint (ii).PacketStatus = 'Success';
        else
            decodedInfoPrint (ii).PacketStatus = 'Fail';
        end
    end
    packetInfo = struct2table (decodedInfoPrint,'AsArray',1);
    fprintf'Decoded Bluetooth packet(s) information: \n \n')
    disp (packetInfo);
end
Decoded Bluetooth packet(s) information: 
 
         LAP         PacketType    LogicalTransportAddress    HeaderControlBits    PayloadLength        LLID        FlowIndicator    PacketStatus
    _____________    __________    _______________________    _________________    _____________    ____________    _____________    ____________

    {24x1 double}     {'FHS'}           {3x1 double}            {3x1 double}            18          {2x1 double}          0          {'Success'} 
    {24x1 double}     {'FHS'}           {3x1 double}            {3x1 double}            18          {2x1 double}          0          {'Success'} 
% Get the packet error rate performance metrics
if(pktCount)
    pktErrCount = sum(~pktStatus);
    pktErrRate = pktErrCount/pktCount;
    disp(['Simulated Mode: ' cfg.Mode ', '...
        'Packet error rate: ',num2str(pktErrRate)])
end
Simulated Mode: BR, Packet error rate: 0
% Release the signal source
release(sigSrc);

Этот пример позволяет вам декодировать Bluetooth формы волны BR/EDR, или полученные при помощи ADALM-PLUTO или путем чтения выборок IQ из основополосного файла. Визуализируйте спектр полученных форм волны Bluetooth при помощи спектра анализатор. Пакетный коэффициент ошибок вычисляется на основе декодируемой информации о пакете.

Дальнейшее исследование

Можно использовать этот пример, чтобы получить пакеты EDR путем изменения режима передачи PHY. Чтобы сгенерировать формы волны Bluetooth в этом примере, отошлите к Bluetooth Генерацию сигналов BR/EDR и Передачу с помощью SDR.

Поиск и устранение проблем

Общие советы для поиска и устранения неисправностей оборудования SDR и Пакета Поддержки Communications Toolbox для Радио ADALM-PLUTO могут быть найдены в Типичных проблемах и Фиксируют (Пакет Поддержки Communications Toolbox для Аналоговых устройств Радио ADALM-Pluto).

Приложение

Этот пример использует эту функцию помощника:

Выбранная библиография

  1. Специальная группа (SIG) Bluetooth. "Базовый Системный пакет [Контроллер BR/EDR Объем]". Спецификация Ядра Bluetooth. Версия 5.1, Объем 2 <https://www.bluetooth.com/>

Похожие темы