Skip to main content
< Все темы
PDF версия

Формат кадра

Формат вывода данных через UART

В частном протоколе используется фиксированный формат кадра, который включает пять частей: заголовок кадра, номер кадра, длину данных, область данных, контрольную сумму.

Таблица Формат кадра

Идентификатор Длина Описание
Заголовок кадра 2 байта Заголовок кадра, 0х59, 0х53
Номер кадра 2 байта Номер кадра данных (1 ~ 60 000)
Длина данных 1 байт Длина данных, максимальная 255
Область данных 0-255 байт Эффективные данные пакета
Контрольная сумма 1 1 байт Контрольная сумма
Контрольная сумма 2 1 байт

Формат данных

Формат области данных представлено в следующей таблице:

Таблица Формат области данных

Пакет 1 …. Пакет N
Data ID LEN DATA …. DATA ID LEN DATA

Таблица Формат области данных

Данные DATA ID LEN DATA
Температура БЧЭ* 0x01 2 DATA1 – DATA2
Линейное ускорение 0x10 12 DATA1 – DATA12
Угловая скорость 0x20 12 DATA1 – DATA12
Нормализованное значение магнитного поля 0x30 12 DATA1 – DATA12
Интенсивность магнитного поля 0x31 12 DATA1 – DATA12
Угол Эйлера 0x40 12 DATA1 – DATA12
Кватернион 0x41 16 DATA1 – DATA16
Отметка времени сэмпла 0x51 4 DATA1 – DATA4
Отметка времени синхронного вывода 0x52 4 DATA1 – DATA4

Таблица Соотношение преобразования данных

Данные Номер Преобразование Ед. изм.
Температура БЧЭ DATA1 (DATA[7:0]) temp_imu = DATA *0.01 °C
DATA2 (DATA[15:8])
Линейное ускорение DATA1 (DATA[7:0]) ax = DATA *0.000001 м/с²
DATA2 (DATA[15:8])
DATA3 (DATA[23:16])
DATA4 (DATA[31:24])
DATA5 (DATA[7:0]) ay = DATA *0.000001
DATA6 (DATA[15:8])
DATA7 (DATA[23:16])
DATA8 (DATA[31:24])
DATA9 (DATA[7:0]) az = DATA *0.000001
DATA10 (DATA[15:8])
DATA11 (DATA[23:16])
DATA12 (DATA[31:24])
Угловая скорость DATA1 (DATA[7:0]) wx = DATA *0.000001 °/с
DATA2 (DATA[15:8])
DATA3 (DATA[23:16])
DATA4 (DATA[31:24])
DATA5 (DATA[7:0]) wy = DATA *0.000001
DATA6 (DATA[15:8])
DATA7 (DATA[23:16])
DATA8 (DATA[31:24])
DATA9 (DATA[7:0]) wz = DATA *0.000001
DATA10 (DATA[15:8])
DATA11 (DATA[23:16])
DATA12 (DATA[31:24])
Нормализованное магнитное поле DATA1 (DATA[7:0]) mx = DATA *0.000001 нормализованное значение
DATA2 (DATA[15:8])
DATA3 (DATA[23:16])
DATA4 (DATA[31:24])
DATA5 (DATA[7:0]) my = DATA *0.000001
DATA6 (DATA[15:8])
DATA7 (DATA[23:16])
DATA8 (DATA[31:24])
DATA9 (DATA[7:0]) mz = DATA *0.000001
DATA10 (DATA[15:8])
DATA11 (DATA[23:16])
DATA12 (DATA[31:24])
Интенсивность магнитного поля DATA1 (DATA[7:0]) mx = DATA *0.001 мГс
DATA2 (DATA[15:8])
DATA3 (DATA[23:16])
DATA4 (DATA[31:24])
DATA5 (DATA[7:0]) my = DATA *0.001
DATA6 (DATA[15:8])
DATA7 (DATA[23:16])
DATA8 (DATA[31:24])
DATA9 (DATA[7:0]) mz = DATA *0.001
DATA10 (DATA[15:8])
DATA11 (DATA[23:16])
DATA12 (DATA[31:24])
Угол Эйлера DATA1 (DATA[7:0]) pitch = DATA *0.000001 °
DATA2 (DATA[15:8])
DATA3 (DATA[23:16])
DATA4 (DATA[31:24])
DATA5 (DATA[7:0]) roll = DATA *0.000001
DATA6 (DATA[15:8])
DATA7 (DATA[23:16])
DATA8 (DATA[31:24])
DATA9 (DATA[7:0]) yaw = DATA *0.000001
DATA10 (DATA[15:8])
DATA11 (DATA[23:16])
DATA12 (DATA[31:24])
Кватернион DATA1 (DATA[7:0]) q0 = DATA * 0.000001
DATA2 (DATA[15:8])
DATA3 (DATA[23:16])
DATA4 (DATA[31:24])
DATA5 (DATA[7:0]) q1 = DATA * 0.000001
DATA6 (DATA[15:8])
DATA7 (DATA[23:16])
DATA8 (DATA[31:24])
DATA9 (DATA[7:0]) q2 = DATA * 0.000001
DATA10 (DATA[15:8])
DATA11 (DATA[23:16])
DATA12 (DATA[31:24])
DATA13 (DATA[7:0]) q3 = DATA * 0.000001
DATA14 (DATA[15:8])
DATA15 (DATA[23:16])
DATA16 (DATA[31:24])
Отметка времени сэмпла DATA1 (DATA[7:0]) Sampling_timestamp = DATA мкс
DATA2 (DATA[15:8])
DATA3 (DATA[23:16])
DATA4 (DATA[31:24])
Отметка времени синхронного вывода DATA1 (DATA[7:0]) Sync_out_timestmp = DATA мкс
DATA2 (DATA[15:8])
DATA3 (DATA[23:16])
DATA4 (DATA[31:24])

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

Заголовок TID LEN MESSAGE СК1 СК2

Предполагая, что в диапазоне проверки имеется N байт (буфер[N]), формула расчета выглядит следующим образом:

Формат кадра

Формат кадра протокола UART для взаимодействия

Формат протокола командного взаимодействия ИМ-15К отличается от формата вывода сообщений по умолчанию. Структура кадра включает: заголовок кадра, класс данных, оператор, длина данных, область данных, контрольная сумма. Представлено в следующей таблице:

Таблица Формат кадра

Идентификатор Длина Описание
Заголовок кадра 2 байта Начальный байт данных, 0х59, 0х53
Класс данных 1 байт Категория данных
Оператор 3 бита Запрос или запись
Длина данных 13 бит Длина данных, максимальное значение 8191
Данные 0-8191 байт Эффективные данные пакета
Контрольная сумма 1 1 байт Контрольная сумма
Контрольная сумма 2 1 байт

Метод вычисления контрольной суммы

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

Заголовок кадра Класс данных Оператор Длина данных Область данных CK1 CK2
0x59 0x53 Диапазон, в пределах которого должна быть вычислена контрольная сумма

Формат протокола I2C для обмена данными

Шина I2C использует более компактную систему команд, используя адрес регистра выборки IMU, как в обычном методе чтения IMU.

Формат отправки данных по шине I2C представлен в следующей таблице:

Master/Slave ST SAD+W SAK SUB SAK SR SAD+R SAK DATA MAK DATA NMAK SP

Примечание:
SAD: Slave address
ST: START Condition
SR: Repeated START
SP: STOP Condition
SUB: 8-bit sub-address, always is register address
W: Write operation
R: Read operation
MAK: Master Acknowledge
NMAK: No Master Acknowledge
SAK: Slave Acknowledge

Определение адреса регистра представлено в следующей таблице:

Таблица Определение адреса регистра

Данные DATA ID LEN DATA
Температура БЧЭ 0x01 2 DATA1 – DATA2
Линейное ускорение 0x10 12 DATA1 – DATA12
Угловая скорость 0x20 12 DATA1 – DATA12
Нормализованное значение магнитного поля 0x30 12 DATA1 – DATA12
Интенсивность магнитного поля 0x31 12 DATA1 – DATA12
Угол Эйлера 0x40 12 DATA1 – DATA12
Кватернион 0x41 16 DATA1 – DATA16
Отметка времени сэмпла 0x51 4 DATA1 – DATA4
Отметка времени синхронного вывода 0x52 4 DATA1 – DATA4

Таблица Соотношение преобразования данных

Данные Номер Преобразование Ед. изм.
Температура БЧЭ DATA1 (DATA[7:0]) temp_imu = DATA * 0.01 °C
DATA2 (DATA[15:8])
Линейное ускорение DATA1 (DATA[7:0]) ax = DATA * 0.000001 м/с²
DATA2 (DATA[15:8])
DATA3 (DATA[23:16])
DATA4 (DATA[31:24])
DATA5 (DATA[7:0]) ay = DATA * 0.000001
DATA6 (DATA[15:8])
DATA7 (DATA[23:16])
DATA8 (DATA[31:24])
DATA9 (DATA[7:0]) az = DATA * 0.000001
DATA10 (DATA[15:8])
DATA11 (DATA[23:16])
DATA12 (DATA[31:24])
Угловая скорость DATA1 (DATA[7:0]) wx = DATA * 0.000001 °/с
DATA2 (DATA[15:8])
DATA3 (DATA[23:16])
DATA4 (DATA[31:24])
DATA5 (DATA[7:0]) wy = DATA * 0.000001
DATA6 (DATA[15:8])
DATA7 (DATA[23:16])
DATA8 (DATA[31:24])
DATA9 (DATA[7:0]) wz = DATA * 0.000001
DATA10 (DATA[15:8])
DATA11 (DATA[23:16])
DATA12 (DATA[31:24])
Нормализованное значение магнитного поля DATA1 (DATA[7:0]) mx = DATA * 0.000001 нормализованное значение
DATA2 (DATA[15:8])
DATA3 (DATA[23:16])
DATA4 (DATA[31:24])
DATA5 (DATA[7:0]) my = DATA * 0.000001
DATA6 (DATA[15:8])
DATA7 (DATA[23:16])
DATA8 (DATA[31:24])
DATA9 (DATA[7:0]) mz = DATA * 0.000001
DATA10 (DATA[15:8])
DATA11 (DATA[23:16])
DATA12 (DATA[31:24])
Интенсивность магнитного поля DATA1 (DATA[7:0]) mx = DATA * 0.001 мГс
DATA2 (DATA[15:8])
DATA3 (DATA[23:16])
DATA4 (DATA[31:24])
DATA5 (DATA[7:0]) my = DATA * 0.001
DATA6 (DATA[15:8])
DATA7 (DATA[23:16])
DATA8 (DATA[31:24])
DATA9 (DATA[7:0]) mz = DATA * 0.001
DATA10 (DATA[15:8])
DATA11 (DATA[23:16])
DATA12 (DATA[31:24])
Угол Эйлера DATA1 (DATA[7:0]) pitch = DATA * 0.000001 °
DATA2 (DATA[15:8])
DATA3 (DATA[23:16])
DATA4 (DATA[31:24])
DATA5 (DATA[7:0]) roll = DATA * 0.000001
DATA6 (DATA[15:8])
DATA7 (DATA[23:16])
DATA8 (DATA[31:24])
DATA9 (DATA[7:0]) yaw = DATA * 0.000001
DATA10 (DATA[15:8])
DATA11 (DATA[23:16])
DATA12 (DATA[31:24])
Кватернион DATA1 (DATA[7:0]) q0 = DATA * 0.000001
DATA2 (DATA[15:8])
DATA3 (DATA[23:16])
DATA4 (DATA[31:24])
DATA5 (DATA[7:0]) q1 = DATA * 0.000001
DATA6 (DATA[15:8])
DATA7 (DATA[23:16])
DATA8 (DATA[31:24])
DATA9 (DATA[7:0]) q2 = DATA * 0.000001
DATA10 (DATA[15:8])
DATA11 (DATA[23:16])
DATA12 (DATA[31:24])
DATA13 (DATA[7:0]) q3 = DATA * 0.000001
DATA14 (DATA[15:8])
DATA15 (DATA[23:16])
DATA16 (DATA[31:24])
Отметка времени сэмпла DATA1 (DATA[7:0]) Sampling_timestamp = DATA мкс
DATA2 (DATA[15:8])
DATA3 (DATA[23:16])
DATA4 (DATA[31:24])
Отметка времени синхронного вывода DATA1 (DATA[7:0]) Sync_out_timestmp = DATA мкс
DATA2 (DATA[15:8])
DATA3 (DATA[23:16])
DATA4 (DATA[31:24])

Продолжая использовать сайт, вы соглашаетесь на обработку файлов cookie и Политикой обработки персональных данных.
Принять
Отказаться
Политика конфиденциальности