В этом примере показано, как сгенерировать и декодировать MAC-кадры стандарта IEEE ® 802.15.4™ [1] с помощью библиотеки Communications Toolbox™ для протокола ZigBee ®.
Стандарт IEEE 802.15.4 задает слои MAC и PHY низкоскоростных беспроводных персональных вычислительных сетей (LR-WPAN) [1]. Слои MAC и PHY IEEE 802.15.4 обеспечивают базис других стандартов более высокого уровня, таких как ZigBee, WirelessHart ®, 6LoWPAN и MiWi. Такие стандарты находят применение в домашней автоматизации и сенсорных сетях и имеют большое значение для тренда Интернета вещей (IoT).
MAC- слоя IEEE 802.15.4 вставляет заголовок MAC и нижний колонтитул MAC до и после слоя сети системы координат, соответственно. Нижний колонтитул MAC содержит проверку CRC.
Lrwpan. Объект строения MACFrameConfig используется как при генерации, так и при декодировании MAC- систем координат IEEE 802.15.4. Такие объекты описывают MAC-фрейм и определяют его тип системы координат и все применимые свойства. Lrwpan. Функция MACFrameGenerator принимает lrwpan. Объект MACFrameConfig, описывающий систему координат и необязательно полезную нагрузку MAC-уровня (NET- системы координат) в байтах (двухсимвольных) и выходы MAC- системы координат в битах. Lrwpan. Функция MACFrameDecoder принимает модуль данных MAC-протокола (MPDU) в битах и выводит lrwpan. Объект MACFrameConfig, описывающий систему координат и, возможно, система координат уровня NET в байтах. Пункт 5 в [1] описывает форматы MAC-фреймов.
В этом разделе декодируются MAC-кадры, передаваемые с коммерческих радиоприемников ZigBee, обеспечивающих автоматизацию дома, и захваченные с помощью B200-mini радио USRP ® и пакета поддержки Communications Toolbox для радио USRP ®. Слой PHY захваченных форм волны был декодирован согласно методике, описанной в примере восстановления сигналов OQPSK IEEE 802.15.4. Получившиеся MPDU сохраняются в файле 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
Затем декодируют систему координат подтверждения:
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
Lrwpan. Функция MACFrameGenerator может сгенерировать все типы MAC-фреймов из стандарта IEEE 802.15.4 [1], т.е., типы фреймов 'Beacon', 'Data', 'Acknowledgment' и 'MAC Command'. Типы MAC Command frame можно далее задать как: 'Association request', 'Association response', 'Diassociation notification', 'Data request', 'PAN ID conflication notification', 'Orphan notification', 'Beacon request' и '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-WPAN)