Unwired 6lowpan

Пакеты в сети состоят из header'а и payload'а. ROOT обрабатывает пакеты с командами и данными только после авторизации. Авторизация проходит в четыри стадии.

/HEADER/ typedef struct { uint8_t protocol_version; /Текущая версия протокола/ uint8_t device_id; /ID устройства/ uint8_t data_type; /Тип пакета/ uint8_t rssi; /RSSI/ uint8_t temperature; /Температура/ uint8_t voltage; /Напряжение/ } pack header_up_t;

typedef struct {
u8_u16_t counter; /Счетчик пакетов/ u8_u16_t crc; /CRC16/ uint8_t length; /Размер пакета/ } pack header_down_t;

typedef struct {
uint8_t protocol_version; /Текущая версия протокола/ uint8_t device_id; /ID устройства/ uint8_t data_type; /Тип пакета/ uint8_t rssi; /RSSI/ uint8_t temperature; /Температура/ uint8_t voltage; /Напряжение/ u8_u16_t counter; /Счетчик пакетов/ u8_u16_t crc; /CRC16/ uint8_t length; /Размер пакета/ } pack header_t;

/---------------------------------------------------------------------------/ /UNWDS-6LOWPAN_SYSTEM/ /Авторизация/ /------------------------------------/ 1 Шаг: JOIN_STAGE_1 Направление: DAG->ROOT

typedef struct {
uint8_t module_id; /ID устройства: module_id = UNWDS_MODULE_ID/
} pack join_stage_1_t;

/------------------------------------/ 2 Шаг: JOIN_STAGE_2 Направление: ROOT->DAG

typedef struct {
u8_u16_t nonce; /Генерируем сессионный ключ: nonce = random_rand()/
} pack join_stage_2_t;

/------------------------------------/ 3 Шаг: JOIN_STAGE_3 Направление: DAG->ROOT

typedef struct {
u8_u16_t nonce; /Увеличиваем nonce на единицу: nonce += 1/
} pack join_stage_3_t;

/------------------------------------/ 4 Шаг: JOIN_STAGE_4 Направление: ROOT->DAG

typedef struct {
uint8_t status_code; /status_code = true если авторизация прошла успешно, иначе status_code = false/
} pack join_stage_4_t; /------------------------------------/

Если устройство прошло авторизацию, то ROOT включает устройство в сеть и обрабатывает входящие пакеты от устройства.

UMDK-LIT DIO29 SCL DIO30 SDA

UMDK-6FET DIO5 ch0 DIO6 ch1 DIO7 ch2 DIO24 ch3 DIO25 ch4 DIO26 ch5

UMDK-4BTN DIO4 KEY_A DIO5 KEY_B DIO6 KEY_C DIO7 KEY_D