Главная ❯ Гидроакустические навигационные и трекинговые системы ❯ Протокол информационного сопряжения: Zima USBL
www.unavlab.com support@unavlab.com |
Zima USBL - гидроакустическая навигационная система Протокол информационного сопряжения |
Устройства системы 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 В.
Стандарт NMEA0183 описывает формат текстовых (ASCII) сообщений диалогового уровня.
Пример сообщения: $PZMA0,0*hh<СR><LF>
Основные элементы посылки (сообщения, sentence) NMEА0183:
Префикс D2H в наименовании сообщений означает, что оно передается от устройства (Device) к управляющей системе (Host). Префикс H2D в наименовании сообщений означает, что оно передается от управляющей системы (Host) к устройству (Device).
Сообщение IC_D2H_ACK - реакция устройства на поступивший от управляющей системы запрос.
Формат сообщения: $PZMA0,xx*hh<CR><LF>
Поле/параметр | Описание |
---|---|
$ | начало сообщения ‘$’ |
PZMA | система команд ZMA |
0 | идентификатор сообщения |
Error code | Код ошибки (см. 3.2.) |
* | разделитель контр. суммы NMEA |
hh | контрольная сумма NMEA |
<CR><LF> | конец сообщения |
Прочитать значение поля. В ответ на эту команду устройство отсылает сообщение 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> | конец сообщения |
Задать значение поля. В ответ на эту команду устройство отсылает сообщение 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> | конец сообщения |
Значение настроечного поля.
Формат сообщения: $PZMA3,xx,xx,00*hh<CR><LF>
Поле/параметр | Описание |
---|---|
$ | начало сообщения ‘$’ |
PZMA | система команд ZMA |
3 | Идентификатор сообщения |
Requested field ID | Идентификатор поля |
Value | Значение поля |
* | разделитель контр. суммы NMEA |
hh | контрольная сумма NMEA |
<CR><LF> | конец сообщения |
Прочитать значение локального параметра.
Формат сообщения: $PZMA4,xx,00*hh<CR><LF
Поле/параметр | Описание |
---|---|
$ | начало сообщения ‘$’ |
PZMA | система команд ZMA |
4 | Идентификатор сообщения |
LocDataID | Идентификатор параметра (см. 3.3.) |
Reserved | Зарезервировано - ‘00’ |
* | разделитель контр. суммы NMEA |
hh | контрольная сумма NMEA |
<CR><LF> | конец сообщения |
Задать значение локального параметра.
Формат сообщения: $PZMA5,xx,x.x*hh<CR><LF>
Поле/параметр | Описание |
---|---|
$ | начало сообщения ‘$’ |
PZMA | система команд ZMA |
5 | Идентификатор сообщения |
LocDataID | Идентификатор параметра (см. 3.3.) |
LocDataValue | Значение параметра |
* | разделитель контр. суммы NMEA |
hh | контрольная сумма NMEA |
<CR><LF> | конец сообщения |
Значение локального параметра.
Формат сообщения: $PZMA6,xx,x.x*hh <CR><LF>
Поле/параметр | Описание |
---|---|
$ | начало сообщения ‘$’ |
PZMA | система команд ZMA |
6 | Идентификатор сообщения |
LocDataID | Идентификатор параметра (см. 3.3.) |
LocDataValue | Значение параметра |
* | разделитель контр. суммы NMEA |
hh | контрольная сумма NMEA |
<CR><LF> | конец сообщения |
Выполнить операцию.
Формат сообщения: $PZMA7,xx,xx*hh <CR><LF>
Поле/параметр | Описание |
---|---|
$ | начало сообщения ‘$’ |
PZMA | система команд ZMA |
7 | Идентификатор сообщения |
ActionID | Идентификатор операции (см. 3.4.) |
ActionParam | Параметр |
* | разделитель контр. суммы NMEA |
hh | контрольная сумма NMEA |
<CR><LF> | конец сообщения |
Навигационные данные (ответчик).
Формат сообщения: $PZMAA,x.x,x.x,x.x,x.x*hh <CR><LF>
Поле/параметр | Описание |
---|---|
$ | начало сообщения ‘$’ |
PZMA | система команд ZMA |
A | Идентификатор сообщения |
Azimuth | Азимут на базовую станцию, град. |
Distance | Дистанция до базовой станции, м |
SNR | Соотношение сигнал-шум, дБ |
Dpl | Допплеровское смещение частоты, Гц |
* | разделитель контр. суммы NMEA |
hh | контрольная сумма NMEA |
<CR><LF> | конец сообщения |
Запрос базовой станции (ответчик).
Формат сообщения: $PZMAB,x,x.x,x.x*hh <CR><LF>
Поле/параметр | Описание |
---|---|
$ | начало сообщения ‘$’ |
PZMA | система команд ZMA |
B | Идентификатор сообщения |
CommandID | Идентификатор команды (см. 3.5.) |
SNR | Соотношение сигнал-шум, дБ |
Dpl | Допплеровское смещение частоты, Гц |
* | разделитель контр. суммы NMEA |
hh | контрольная сумма NMEA |
<CR><LF> | конец сообщения |
Запрос удаленного ответчика
Формат сообщения: $PZMAС,x,x*hh <CR><LF>
Поле/параметр | Описание |
---|---|
$ | начало сообщения ‘$’ |
PZMA | система команд ZMA |
C | Идентификатор сообщения |
TargetID | Адрес запрашиваемого ответчика |
RequestID | Идентификатор запроса (см. 3.5.) |
* | разделитель контр. суммы NMEA |
hh | контрольная сумма NMEA |
<CR><LF> | конец сообщения |
Таймаут удаленного ответчика.
Формат сообщения: $PZMAD,x, x*hh <CR><LF>
Поле/параметр | Описание |
---|---|
$ | начало сообщения ‘$’ |
PZMA | система команд ZMA |
D | Идентификатор сообщения |
TargetID | Адрес запрошенного ответчика |
RequestID | Идентификатор запроса (см. 3.5.) |
* | разделитель контр. суммы NMEA |
hh | контрольная сумма NMEA |
<CR><LF> | конец сообщения |
Ответ удаленного ответчика.
Формат сообщения: $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> | конец сообщения |
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> | конец сообщения |
Показания встроенного инклинометра*
Формат сообщения: $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
Запрос удаленного ответчика 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> | конец сообщения |
Информация об устройстве.
Формат сообщения: $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> | конец сообщения |
Значение | Наименование | Описание |
---|---|---|
‘0’ | DEV_BASE | Базовая станция |
‘1’ | DEV_NODE | Маяк-ответчик |
Значение | Наименование | Описание |
---|---|---|
‘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 | Управление энергосберегающим режимом. Ответчик высылает сообщение об ошибке с данным параметром перед уходом в спящий режим |
Значение | Наименование | Описание |
---|---|---|
‘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 |
Значение | Наименование | Описание |
---|---|---|
‘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 |
Значение | Наименование | Описание |
---|---|---|
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 | Заряд батарей минимален |