UC&NL products documentation

logo  
www.unavlab.com
support@unavlab.com
Zima USBL - гидроакустическая навигационная система
Протокол информационного сопряжения

Zima USBL
Протокол информационного сопряжения

Содержание

1. Введение

1.1. Протокол физического уровеня

Устройства системы Zima USBL поддерживают информационное сопряжение при помощи стандарта физического уровня RS-232 для асинхронного интерфейса (UART) c напряжением линии данных 3.3В. Подключение производится при помощи четырехпроводного кабеля, с жилами Tx (трансмиттер), Rx (ресивер), Vcc (питание) и GND (земля). Без применения дополнительных повторителей и преобразователей интерфейса максимальная длинна шины данных, для которой гарантируется корректная работа интерфейса, составляет не более 2 метров.

Настройки порта подключения по умолчанию1:

Baudrate: 9600 bit/s
Data bits: 8
Stop bits: 1
Parity: No
Hardware flow control: No

ВНИМАНИЕ! У устройств без преобразователей интерфейса напряжение линии данных составляет 3.3 В.

1.2. Стандарт протокола диалогового уровня NMEA0183

Стандарт NMEA0183 описывает формат текстовых (ASCII) сообщений диалогового уровня.

Пример сообщения: $PZMA0,0*hh<СR><LF>

Основные элементы посылки (сообщения, sentence) NMEА0183:

2. Система команд ZMA

Префикс D2H в наименовании сообщений означает, что оно передается от устройства (Device) к управляющей системе (Host). Префикс H2D в наименовании сообщений означает, что оно передается от управляющей системы (Host) к устройству (Device).

2.1. IC_D2H_ACK

Сообщение IC_D2H_ACK - реакция устройства на поступивший от управляющей системы запрос.

Формат сообщения: $PZMA0,xx*hh<CR><LF>

Поле/параметр Описание
$ начало сообщения ‘$’
PZMA система команд ZMA
0 идентификатор сообщения
Error code Код ошибки (см. 3.2.)
* разделитель контр. суммы NMEA
hh контрольная сумма NMEA
<CR><LF> конец сообщения

2.2. IC_H2D_FLD_GET

Прочитать значение поля. В ответ на эту команду устройство отсылает сообщение IC_D2H_FLD_VAL, содержащее значение запрашиваемого поля в случае успешного присваивания и сообщения IC_D2H_ACK с кодом ошибки, в случае возникновения ошибки.

Формат сообщения: $PZMA1,xx,00*hh <CR><LF>

Поле/параметр Описание
$ начало сообщения ‘$’
PZMA система команд ZMA
1 Идентификатор сообщения
Field ID Идентификатор поля
Reserved Должно быть всегда ‘00’, зарезервированно
* разделитель контр. суммы NMEA
hh контрольная сумма NMEA
<CR><LF> конец сообщения

2.3 IC_H2D_FLD_SET

Задать значение поля. В ответ на эту команду устройство отсылает сообщение IC_D2H_FLD_VAL, содержащее значение запрашиваемого поля в случае успешного присваивания и сообщения IC_D2H_ACK с кодом ошибки, в случае возникновения ошибки.

Формат сообщения: $PZMA2,x,x*hh<CR><LF>

Поле/параметр Описание
$ начало сообщения ‘$’
PZMA система команд ZMA
2 Идентификатор сообщения
Field ID Идентификатор поля
Field value Значение поля (0..99)
* разделитель контр. суммы NMEA
hh контрольная сумма NMEA
<CR><LF> конец сообщения

2.4 IC_D2H_FLD_VAL

Значение настроечного поля.

Формат сообщения: $PZMA3,xx,xx,00*hh<CR><LF>

Поле/параметр Описание
$ начало сообщения ‘$’
PZMA система команд ZMA
3 Идентификатор сообщения
Requested field ID Идентификатор поля
Value Значение поля
* разделитель контр. суммы NMEA
hh контрольная сумма NMEA
<CR><LF> конец сообщения

2.5 IC_H2D_LOC_DATA_GET

Прочитать значение локального параметра.

Формат сообщения: $PZMA4,xx,00*hh<CR><LF

Поле/параметр Описание
$ начало сообщения ‘$’
PZMA система команд ZMA
4 Идентификатор сообщения
LocDataID Идентификатор параметра (см. 3.3.)
Reserved Зарезервировано - ‘00’
* разделитель контр. суммы NMEA
hh контрольная сумма NMEA
<CR><LF> конец сообщения

2.6 IC_H2D_LOC_DATA_SET

Задать значение локального параметра.

Формат сообщения: $PZMA5,xx,x.x*hh<CR><LF>

Поле/параметр Описание
$ начало сообщения ‘$’
PZMA система команд ZMA
5 Идентификатор сообщения
LocDataID Идентификатор параметра (см. 3.3.)
LocDataValue Значение параметра
* разделитель контр. суммы NMEA
hh контрольная сумма NMEA
<CR><LF> конец сообщения

2.7 IC_D2H_LOC_DATA_VAL

Значение локального параметра.

Формат сообщения: $PZMA6,xx,x.x*hh <CR><LF>

Поле/параметр Описание
$ начало сообщения ‘$’
PZMA система команд ZMA
6 Идентификатор сообщения
LocDataID Идентификатор параметра (см. 3.3.)
LocDataValue Значение параметра
* разделитель контр. суммы NMEA
hh контрольная сумма NMEA
<CR><LF> конец сообщения

2.8 IC_H2D_LOC_INVOKE

Выполнить операцию.

Формат сообщения: $PZMA7,xx,xx*hh <CR><LF>

Поле/параметр Описание
$ начало сообщения ‘$’
PZMA система команд ZMA
7 Идентификатор сообщения
ActionID Идентификатор операции (см. 3.4.)
ActionParam Параметр
* разделитель контр. суммы NMEA
hh контрольная сумма NMEA
<CR><LF> конец сообщения

2.9 IC_D2H_LD

Навигационные данные (ответчик).

Формат сообщения: $PZMAA,x.x,x.x,x.x,x.x*hh <CR><LF>

Поле/параметр Описание
$ начало сообщения ‘$’
PZMA система команд ZMA
A Идентификатор сообщения
Azimuth Азимут на базовую станцию, град.
Distance Дистанция до базовой станции, м
SNR Соотношение сигнал-шум, дБ
Dpl Допплеровское смещение частоты, Гц
* разделитель контр. суммы NMEA
hh контрольная сумма NMEA
<CR><LF> конец сообщения

2.10 IC_D2H_BASE_REQ

Запрос базовой станции (ответчик).

Формат сообщения: $PZMAB,x,x.x,x.x*hh <CR><LF>

Поле/параметр Описание
$ начало сообщения ‘$’
PZMA система команд ZMA
B Идентификатор сообщения
CommandID Идентификатор команды (см. 3.5.)
SNR Соотношение сигнал-шум, дБ
Dpl Допплеровское смещение частоты, Гц
* разделитель контр. суммы NMEA
hh контрольная сумма NMEA
<CR><LF> конец сообщения

2.11 IC_H2D_REM_REQ

Запрос удаленного ответчика

Формат сообщения: $PZMAС,x,x*hh <CR><LF>

Поле/параметр Описание
$ начало сообщения ‘$’
PZMA система команд ZMA
C Идентификатор сообщения
TargetID Адрес запрашиваемого ответчика
RequestID Идентификатор запроса (см. 3.5.)
* разделитель контр. суммы NMEA
hh контрольная сумма NMEA
<CR><LF> конец сообщения

2.12 IC_D2H_REM_TOUT

Таймаут удаленного ответчика.

Формат сообщения: $PZMAD,x, x*hh <CR><LF>

Поле/параметр Описание
$ начало сообщения ‘$’
PZMA система команд ZMA
D Идентификатор сообщения
TargetID Адрес запрошенного ответчика
RequestID Идентификатор запроса (см. 3.5.)
* разделитель контр. суммы NMEA
hh контрольная сумма NMEA
<CR><LF> конец сообщения

2.13 IC_D2H_REM_RESP

Ответ удаленного ответчика.

Формат сообщения: $PZMAE, x,x,x,x.x,x.x,x.x,x.x,x.x*hh <CR><LF>

Поле/параметр Описание
$ начало сообщения ‘$’
PZMA система команд ZMA
E Идентификатор сообщения
TargetID Адрес запрошенного ответчика
RequestID Идентификатор запроса (см. 3.5.)
dFlag Зарезервированно
Azimuth Горизонтальный угол на ответчик, град.
Distance Дистанция до ответчика, м
DataValue Значение запрошенного параметра
SNR Соотношение сигнал-шум, дБ
DPL Допплеровское смещение, Гц
* разделитель контр. суммы NMEA
hh контрольная сумма NMEA
<CR><LF> конец сообщения

2.14 IC_D2H_SYS_STATE

Cостояние системы.

Формат сообщения: $PZMAF, x.x,x.x,x.x*hh <CR><LF>

Поле/параметр Описание
$ начало сообщения ‘$’
PZMA система команд ZMA
F Идентификатор сообщения
Temperature Температура воды, °С
Depth Глубина базовой станции от поверхности, м
isAHRSEnabled Состояние AHRS
TRX_State Состояние приемопередатчика
* разделитель контр. суммы NMEA
hh контрольная сумма NMEA
<CR><LF> конец сообщения

2.15 IC_D2H_INC_DATA

Показания встроенного инклинометра*

Формат сообщения: $PZMAG, x.x,x.x*hh <CR><LF>

Поле/параметр Описание
$ начало сообщения ‘$’
PZMA система команд ZMA
G Идентификатор сообщения
Roll Крен, °. 0 - вертикальное положение, 0..+90 - поворот на правый борт, 0..-90 - поворот на левый борт
Pitch Дифферент, °. 0 - вертикальное положение, 0..+90 - крен на нос, 0..-90 - крен на корму
* разделитель контр. суммы NMEA
hh контрольная сумма NMEA
<CR><LF> конец сообщения

* Для систем, выпущенных после 09.2019

2.16 IC_H2D_REM_REQ_EX

Запрос удаленного ответчика c передачей обратного азимута.

Формат сообщения: $PZMAH,x,x,x*hh <CR><LF>

Поле/параметр Описание
$ начало сообщения ‘$’
PZMA система команд ZMA
H Идентификатор сообщения
TargetAddress Адрес запрашиваемого маяка-ответчика
RequestID Команда (всегда должно быть CDS_DPT_GET, (см. 3.5.)
ReverseAzimuthToTheBase Обратный азимут[ Значение обратного азимута от маяка-ответчика на базовую станцию должно быть предварительно вычислено. При использовании библиотеки ZLibrary и приложения ZHost происходит автоматически, при наличии подключенной системы определения курса и положения антенны Zima-Base.] от маяка-ответчика на базовую станцию
* разделитель контр. суммы NMEA
hh контрольная сумма NMEA
<CR><LF> конец сообщения

2.17 IC_D2H_DEV_INFO

Информация об устройстве.

Формат сообщения: $PZMA!, c--c,x,c--c,x,x,c--c*hh <CR><LF>

Поле/параметр Описание
$ начало сообщения ‘$’
PZMA система команд ZMA
! Идентификатор сообщения
Sys_moniker Наименование системы
Sys_version Версия системы
Device_Type Тип устройства
Core_moniker Наименование акустического ядра
Core_version Версия ядра
Serial number Серийный номер устройства
* разделитель контр. суммы NMEA
hh контрольная сумма NMEA
<CR><LF> конец сообщения

3. Таблицы идентификаторов

3.1 Типы устройств

Значение Наименование Описание
‘0’ DEV_BASE Базовая станция
‘1’ DEV_NODE Маяк-ответчик

3.2 Коды ошибок

Значение Наименование Описание
‘0’ NO_ERROR Запрос принят
‘1’ INVALID_SYNTAX Ошибка синтаксиса
‘2’ UNSUPPORTED Команда не поддерживается
‘3’ TRANSMITTER_BUSY Передатчик занят
‘4’ ARGUMENT_OUT_OF_RANGE Аргумент/параметр вне диапазона допустимых значений
‘5’ INVALID_OPERATION Невозможно выполнить операцию в данный момент
‘6’ UNKNOWN_FIELD_ID Неизвестное/неподдерживаемое поле
‘7’ VALUE_UNAVAILIBLE Запрошенное значение недоступно
‘8’ RECEIVER_BUSY Приемник занят
‘9’ WAKE_UP Управление энергосберегающим режимом. Ответчик высылает сообщение об ошибке с данным параметром сразу после пробуждения
‘10’ STAND_BY Управление энергосберегающим режимом. Ответчик высылает сообщение об ошибке с данным параметром перед уходом в спящий режим

3.3 Идентификаторы локальных данных

Значение Наименование Описание
‘0’ DEVICE_INFO Информация об устройстве
‘1’ LOC_DATA_MAX_REMOTE_TIMEOUT Максимальное время ожидания удаленного ответа, мсек
‘2’ LOC_DATA_MAX_SUBSCRIBERS Максимальное число ответчиков
‘3’ LOC_DATA_PTS_PRESSURE Показания встроенного датчика давления, мБар
‘4’ LOC_DATA_PTS_TEMPERATURE Показания встроенного датчика температуры,˚С
‘5’ LOC_DATA_PTS_DEPTH Глубина антенны от поверхности
‘6’ LOC_DATA_CORE_TEMPERATURE Температура ядра процессора, ˚С
‘7’ LOC_DATA_BAT_CHARGE Заряд батареи
‘8’ LOC_DATA_PRESSURE_RATING Максимальное внешнее давление, Бар
‘9’ LOC_DATA_ZERO_PRESSURE Давление у поверхности воды, мБар
‘10’ LOC_DATA_WATER_DENSITY Плотность воды, кг/м3
‘11’ LOC_DATA_SALINITY Соленость воды, PSU
‘12’ LOC_DATA_SOUNDSPEED Скорость звука, м/с
‘13’ LOC_DATA_GRAVITY_ACC Ускорение свободного падения, м/с2

3.4 Идентификаторы операций

Значение Наименование Описание
‘0’ LOC_INVOKE_FLASH_WRITE Сохранение настроечных полей во внутренний флеш
‘1’ LOC_INVOKE_DPT_ZERO_ADJUST Принять текущие показания датчика давления за давление на поверхности воды
‘2’ LOC_INVOKE_SYSTEM_RESET ‘Теплая’ перезагрузка устройства
‘3’ LOC_INVOKE_STAND_BY Перевод устройства в режим сна
‘4’ LOC_INVOKE_UART_OFF Отключение приемопередатчика UART

3.5 Идентификаторы удаленных команд

Значение Наименование Описание
CDS_PING 361 Пинг-запрос
CDS_DPT_GET 362 Глубина удаленного ответчика
CDS_STY_SET_0 363 Задать соленость 0 PSU
CDS_STY_SET_1 364
CDS_STY_SET_2 365
CDS_STY_SET_3 366
CDS_STY_SET_4 367
CDS_STY_SET_5 368
CDS_STY_SET_6 369
CDS_STY_SET_7 370
CDS_STY_SET_8 371
CDS_STY_SET_9 372
CDS_STY_SET_10 373
CDS_STY_SET_11 374
CDS_STY_SET_12 375
CDS_STY_SET_13 376
CDS_STY_SET_14 377
CDS_STY_SET_15 378
CDS_STY_SET_16 379
CDS_STY_SET_17 380
CDS_STY_SET_18 381
CDS_STY_SET_19 382
CDS_STY_SET_20 383
CDS_STY_SET_21 384
CDS_STY_SET_22 385
CDS_STY_SET_23 386
CDS_STY_SET_24 387
CDS_STY_SET_25 388
CDS_STY_SET_26 389
CDS_STY_SET_27 390
CDS_STY_SET_28 391
CDS_STY_SET_29 392
CDS_STY_SET_30 393
CDS_STY_SET_31 394
CDS_STY_SET_32 395
CDS_STY_SET_33 396
CDS_STY_SET_34 397
CDS_STY_SET_35 398
CDS_STY_SET_36 399
CDS_STY_SET_37 400
CDS_STY_SET_38 401
CDS_STY_SET_39 402
CDS_STY_SET_40 403 Задать соленость 40 PSU
CDS_SLP_SET_59_60 404 Задать режим сна 59 из 60 секунд
CDS_SLP_SET_58_60 405 Задать режим сна 58 из 60 секунд
CDS_SLP_SET_56_60 406 Задать режим сна 56 из 60 секунд
CDS_SLP_SET_52_60 407 Задать режим сна 52 из 60 секунд
CDS_SLP_SET_50_60 408 Задать режим сна 50 из 60 секунд
CDS_SLP_SET_40_60 409 Задать режим сна 40 из 60 секунд
CDS_SLP_SET_30_60 410 Задать режим сна 30 из 60 секунд
CDS_SLP_SET_20_60 411 Задать режим сна 20 из 60 секунд
CDS_SLP_SET_10_60 412 Задать режим сна 10 из 60 секунд
CDS_SLP_SET_NEVER 413 Задать режим сна - включен постоянно
CDS_BAT_CHG_GET 414 Заряд батарей
CDS_PTS_TMP_GET 415 Температура
CDS_PTS_PRS_GET 416 Давление
CDS_CRE_TMP_GET 417 Температура ядра процессора
CDS_SLP_GET 418 Режим сна
CDS_STY_GET 419 Соленость
CDS_CMD_RSV_0 420 Зарезервировано
CDS_CMD_RSV_1 421 Зарезервировано
CDS_CMD_RSV_2 422 Зарезервировано
CDS_CMD_RSV_3 423 Зарезервировано
CDS_CMD_RSV_4 424 Зарезервировано
CDS_CMD_RSV_5 425 Зарезервировано
CDS_CMD_ZDPT_ADJ 426 Задание нуля глубины ответчику
CDS_USR_CMD_0 427 Пользовательская команда 0
CDS_USR_CMD_1 428 Пользовательская команда 1
CDS_USR_CMD_2 429 Пользовательская команда 2
CDS_USR_CMD_3 430 Пользовательская команда 3
CDS_USR_CMD_4 431 Пользовательская команда 4
CDS_USR_CMD_5 432 Пользовательская команда 5
CDS_USR_CMD_6 433 Пользовательская команда 6
CDS_USR_CMD_7 434 Пользовательская команда 7
CDS_USR_CMD_8 435 Пользовательская команда 8
CDS_USR_CMD_9 436 Пользовательская команда 9
CDS_USR_CMD_10 437 Пользовательская команда 10
CDS_USR_CMD_11 438 Пользовательская команда 11
CDS_USR_CMD_12 439 Пользовательская команда 12
CDS_USR_CMD_13 440 Пользовательская команда 13
CDS_USR_CMD_14 441 Пользовательская команда 14
CDS_USR_CMD_15 442 Пользовательская команда 15
CDS_USR_CMD_16 443 Пользовательская команда 16
CDS_USR_CMD_17 444 Пользовательская команда 17
CDS_USR_CMD_18 445 Пользовательская команда 18
CDS_USR_CMD_19 446 Пользовательская команда 19
CDS_USR_CMD_20 447 Пользовательская команда 20
CDS_USR_CMD_21 448 Пользовательская команда 21
CDS_USR_CMD_22 449 Пользовательская команда 22
CDS_USR_CMD_23 450 Пользовательская команда 23
CDS_USR_CMD_24 451 Пользовательская команда 24
CDS_USR_CMD_25 452 Пользовательская команда 25
CDS_USR_CMD_26 453 Пользовательская команда 26
CDS_USR_CMD_27 454 Пользовательская команда 27
CDS_USR_CMD_28 455 Пользовательская команда 28
CDS_USR_CMD_29 456 Пользовательская команда 29
CDS_USR_CMD_30 457 Пользовательская команда 30
CDS_USR_CMD_31 458 Пользовательская команда 31
CDS_USR_CMD_32 459 Пользовательская команда 32
CDS_RESERVED_0 460 Зарезервировано
CDS_RESERVED_1 461 Зарезервировано
CDS_RESERVED_2 462 Зарезервировано
CDS_RESERVED_3 463 Зарезервировано
CDS_RESERVED_4 464 Зарезервировано
CDS_RESERVED_5 465 Зарезервировано
CDS_RESERVED_6 466 Зарезервировано
CDS_RESERVED_7 467 Зарезервировано
CDS_SET_ADDR_01 468 Задать адрес 1
CDS_SET_ADDR_02 469 Задать адрес 2
CDS_SET_ADDR_03 470 Задать адрес 3
CDS_SET_ADDR_04 471 Задать адрес 4
CDS_SET_ADDR_05 472 Задать адрес 5
CDS_SET_ADDR_06 473 Задать адрес 6
CDS_SET_ADDR_07 474 Задать адрес 7
CDS_SET_ADDR_08 475 Задать адрес 8
CDS_SET_ADDR_09 476 Задать адрес 9
CDS_SET_ADDR_10 477 Задать адрес 10
CDS_SET_ADDR_11 478 Задать адрес 11
CDS_SET_ADDR_12 479 Задать адрес 12
CDS_SET_ADDR_13 480 Задать адрес 13
CDS_SET_ADDR_14 481 Задать адрес 14
CDS_SET_ADDR_15 482 Задать адрес 15
CDS_SET_ADDR_16 483 Задать адрес 16
CDS_SET_ADDR_17 484 Задать адрес 17
CDS_SET_ADDR_18 485 Задать адрес 18
CDS_SET_ADDR_19 486 Задать адрес 19
CDS_SET_ADDR_20 487 Задать адрес 20
CDS_SET_ADDR_21 488 Задать адрес 21
CDS_SET_ADDR_22 489 Задать адрес 22
CDS_SET_ADDR_23 490 Задать адрес 23
CDS_______0 491 Зарезервировано
CDS_______1 492 Зарезервировано
CDS_______2 493 Зарезервировано
CDS_______3 494 Зарезервировано
CDS_______4 495 Зарезервировано
CDS_______5 496 Зарезервировано
CDS_______6 497 Зарезервировано
CDS_______7 498 Зарезервировано
CDS_______8 499 Зарезервировано
CDS_ERR_NSUPP 500 Ошибка - запрос не поддерживается
CDS_ERR_NAVAIL 501 Ошибка - данные не доступны в данный момент
CDS_ERR_RES_0 502 Ошибка - зарезервированно
CDS_ERR_RES_1 503 Ошибка - зарезервированно
CDS_ERR_RES_2 504 Ошибка - зарезервированно
CDS_ERR_RES_3 505 Ошибка - зарезервированно
CDS_ERR_RES_4 506 Ошибка - зарезервированно
CDS_ERR_RES_5 507 Ошибка - зарезервированно
CDS_ERR_RES_6 508 Ошибка - зарезервированно
CDS_ERR_BAT_LOW 509 Заряд батарей минимален