В этом примере показано, как сгенерировать и декодировать системы координат MAC стандарта IEEE® 802.15.4™ [1] пользование Библиотекой Communications Toolbox™ для ZigBee и UWB.
Стандарт IEEE 802.15.4 задает слои MAC и PHY Беспроводных Персональных Сетей области С низкой ставкой (LR-WPANs) [1]. Слои IEEE 802.15.4 MAC и PHY обеспечивают базис других стандартов более высокого слоя, таких как ZigBee, WirelessHart®, 6LoWPAN и MiWi. Такие стандарты находят применение в домашней автоматизации и организации сети датчика и очень относятся к тренду Интернета вещей (IoT).
Слой IEEE 802.15.4 MAC вставляет заголовок MAC и нижний колонтитул MAC до и после системы координат слоя сети, соответственно. Нижний колонтитул MAC содержит проверку CRC.
lrwpan.MACFrameConfig объект настройки используется и в генерации и в декодировании системы координат MAC IEEE 802.15.4. Такие объекты описывают систему координат MAC и задают ее тип системы координат и все применимые свойства. Функция lrwpan.MACFrameGenerator принимает lrwpan.MACFrameConfig object, описывающий систему координат, и опционально полезную нагрузку слоя MAC (система координат СЕТЕВОГО слоя) в байтах (2D символы), и выводит систему координат MAC в битах. Функция lrwpan.MACFrameDecoder принимает Модуль данных о протоколе MAC (MPDU) в битах и выводит lrwpan.MACFrameConfig object, описывающий систему координат и возможно систему координат СЕТЕВОГО слоя в байтах. Пункт 5 в [1] описывает форматы системы координат MAC.
Этот раздел декодирует кадры MAC, переданные от коммерческих радио ZigBee, разрешающих домашнюю автоматизацию и полученное использование USRP® B200-мини-радио и Пакет поддержки Communications Toolbox для радио USRP®. Слой PHY полученных форм волны декодировался согласно методологии, описанной в Восстановлении примера Сигналов IEEE 802.15.4 OQPSK. Получившиеся MPDUs хранятся в файл MAT:
load lrwpanMACCaptures
Во-первых, система координат данных декодируется:
[dataFrameMACConfig, netFrame] = lrwpan.MACFrameDecoder(MPDU_data); if ~isempty(dataFrameMACConfig) fprintf('CRC check passed for the MAC frame.\n'); dataFrameMACConfig end
CRC check passed for the MAC frame. dataFrameMACConfig = MACFrameConfig with properties: FrameType: 'Data' General MAC properties: SequenceNumber: 244 AcknowledgmentRequest: 1 DestinationAddressing: 'Short address' DestinationPANIdentifier: '1E16' DestinationAddress: '35EA' SourceAddressing: 'Short address' SourceAddress: '0000' PANIdentificationCompression: 1 FramePending: 0 FrameVersion: '2003' Security: 0 Security properties: No properties. Beacon properties: No properties. "MAC Command" properties: No properties.
Затем система координат подтверждения декодируется:
ackFrameMACConfig = lrwpan.MACFrameDecoder(MPDU_ack)
ackFrameMACConfig = MACFrameConfig with properties: FrameType: 'Acknowledgment' General MAC properties: SequenceNumber: 165 DestinationAddressing: 'Not present' SourceAddressing: 'Not present' FramePending: 0 FrameVersion: '2003' Security: 0 Security properties: No properties. Beacon properties: No properties. "MAC Command" properties: No properties.
Функция lrwpan.MACFrameGenerator может сгенерировать все типы системы координат MAC из стандарта IEEE 802.15.4 [1], i.e., 'Маяк', 'Данные', 'Подтверждение', и 'Команда MAC' структурируют типы. Типы системы координат Команды MAC могут быть далее заданы как: 'Ассоциация запрашивает', 'Ответ ассоциации', 'Уведомление о разъединении', 'Данные запрашивают', 'уведомление о конфликте ID PAN', 'Уведомление о висячей строке', 'Запрос маяка', и 'GTS запрашивает'.
Этот код иллюстрирует, как сгенерировать системы координат для всех типов системы координат:
% Beacon beaconConfig = lrwpan.MACFrameConfig('FrameType', 'Beacon'); beaconMACFrame = lrwpan.MACFrameGenerator(beaconConfig); % Data dataConfig = lrwpan.MACFrameConfig('FrameType', 'Data'); numOctets = 50; payload = dec2hex(randi([0 2^8-1], numOctets, 1), 2); dataMACFrame = lrwpan.MACFrameGenerator(dataConfig, payload); % Acknowledgment ackConfig = lrwpan.MACFrameConfig('FrameType', 'Acknowledgment'); ackFrame = lrwpan.MACFrameGenerator(ackConfig); % MAC Command commandConfig = lrwpan.MACFrameConfig('FrameType', 'MAC Command'); commandConfig.MACCommand = 'Association request'; % Valid settings for MACCommand also include: 'Association response', % 'Disassociation notification', 'Data request', 'PAN ID conflict % notification', 'Orphan notification', 'Beacon request', and 'GTS request'. commandFrame = lrwpan.MACFrameGenerator(commandConfig);
Можно далее исследовать следующий генератор и декодирующие функции, а также объект настройки:
IEEE 802.15.4-2011 - Стандарт IEEE для Локальных сетей и городских компьютерных сетей - Часть 15.4: Беспроводные Персональные Сети области С низкой ставкой (LR-WPANs)