Главная ❯ Гидроакустические навигационные и трекинговые системы ❯ Zima2 USBL: Протокол информационного сопряжения
www.unavlab.com support@unavlab.com |
Zima2 USBL - гидроакустическая навигационная система Протокол информационного сопряжения |
Устройства системы Zima2 USBL поддерживают информационное сопряжение при помощи стандарта физического уровня RS-232 для асинхронного интерфейса (UART) c напряжением линии данных 3.3В. Подключение производится при помощи четырехпроводного кабеля, с жилами Tx (трансмиттер), Rx (ресивер), Vcc (питание) и GND (земля). Без применения дополнительных повторителей и преобразователей интерфейса максимальная длинна шины данных, для которой гарантируется корректная работа интерфейса, составляет не более 2 метров.
Настройки порта подключения:
Парметр | Значение |
---|---|
Baudrate | 9600 bit/s |
Data bits | 8 |
Stop bits | 1 |
Parity | No |
Hardware flow control | No |
ВНИМАНИЕ! У устройств без преобразователей интерфейса напряжение линии данных составляет 3.3 В.
Стандарт NMEA0183 описывает формат текстовых (ASCII) сообщений диалогового уровня.
Пример сообщения:
$PAZM0,,0*06<СR><LF>
Основные элементы посылки (сообщения, sentence) NMEА0183:
Элемент | Описание |
---|---|
$ | начало сообщения |
P | Proprietary, проприетарный код |
AZM | трехбуквенный идентификатор |
0 | идентификатор сообщения |
первый параметр - пустой | |
, | запятая (разделитель параметров) |
0 | второй параметр имеет значение ‘0’ |
* | разделитель контрольной суммы |
06 | контрольная сумма в шестнадцатеричном формате (например FF, 01). Рассчитывается как побитовый XOR всех байт между ‘$’ и ‘*’. |
<CR><LF> | конец сообщения (перевод строки) |
Формат вышеприведенного сообщения описывается следующим образом:
$PAZM0,[x],x*06<СR><LF>
x - означает целочисленный параметр, квадратные скобки ‘[]’ - говорят о том, что параметр может быть пустым. Ниже представлен список возможных дескрипторов параметров:
Дескриптор | Описание |
---|---|
x | Целочисленное значение |
xx | Целочисленное значение занимающее ровно два символа: от 00 до 99 |
x.x | Вещественное значение |
c–c | Строка символов |
hh | шестнадцатеричное значение от 00 до FF |
Префикс D2H в наименовании сообщений означает, что оно передается от устройства (Device) к управляющей системе (Host). Префикс H2D в наименовании сообщений означает, что оно передается от управляющей системы (Host) к устройству (Device). Префикс D2D в наименовании сообщений означает, что оно может передаваться в обе стороны: как от устройства к управляющей системе, так и наоборот.
Сообщение D2H_ACK - реакция устройства на поступивший от управляющей системы запрос.
Формат сообщения:
$PAZM0,[x],x*hh<CR><LF>
№ | Поле/параметр | Описание |
---|---|---|
$ | начало сообщения ‘$’ | |
PAZM | система команд AZM | |
0 | идентификатор сообщения | |
1 | cmdID | Идентификатор команды, на которую устройство отреагировало |
2 | result | Код ошибки См. Таблица 3.1. Коды ошибок |
* | разделитель контр. суммы NMEA | |
hh | контрольная сумма NMEA | |
<CR><LF> | конец сообщения |
Сообщение D2D_STRSTP - сообщение для задания параметров запроса маяков-ответчиков.
Передается от управляющей системы к пеленгационной станции для:
Передается от пеленгационной станции к управляющей системе как эхо-подтверждение о принятии команды. Если команда не принимается устройством, то оно сообщает об этом при помощи команды 2.1. D2H_ACK с соответствущим кодом ошибки.
Формат сообщения:
$PAZM1,[x],[x.x],[x.x],[x]*hh<CR><LF>
№ | Поле/параметр | Описание |
---|---|---|
$ | начало сообщения ‘$’ | |
PAZM | система команд AZM | |
1 | идентификатор сообщения | |
1 | addrMask | Маска адреса маяков для опроса, 16-битное цело беззнаковое число, каждый бит от 0 до 15 соответствует одному из маяков, бит = 0 - маяк не участвует в опросе, бит = 1 - маяк участвует в опросе. Если параметр пустой или равен нулю, то опрос останавливается. |
2 | sty_PSU | Соленость воды в PSU в диапазоне от 0 до 40. Если параметр пустой, используется значение по умолчанию (0 PSU) |
3 | soundSpeed_mps | Скорость звука в воде в м/с в диапазоне от 1350 до 1600 м/с. Если параметр пустой, скорость звука будет рассчитываться автоматически на основе данных о солености, температуре и давлении |
4 | max_dist_m | Максимальная дальность в метрах в диапазоне от 500 до 5500. По данному параметру рассчитывается максимальный интервал ожидания ответа маяка. |
* | разделитель контр. суммы NMEA | |
hh | контрольная сумма NMEA | |
<CR><LF> | конец сообщения |
Сообщение D2D_RSTS - сообщение для задания настроек маяков-ответчиков.
Передается от управляющей системы к маяку-ответчику для задания его адреса и солености воды. Передается от маяка-ответчика к управляющей системе как эхо-подтверждение о принятии команды и установке параметров. Если команда не принимается устройством, то оно сообщает об этом при помощи команды 2.1. D2H_ACK с соответствущим кодом ошибки.
Формат сообщения:
$PAZM2,[x],[x.x]*hh<CR><LF>
№ | Поле/параметр | Описание |
---|---|---|
$ | начало сообщения ‘$’ | |
PAZM | система команд AZM | |
2 | идентификатор сообщения | |
1 | addr | Адрес маяка в диапазоне от 0 до 15. Если параметр пустой, то адрес не изменяется. |
2 | sty_PSU | Соленость воды в PSU в диапазоне от 0 до 40. Если параметр пустой, используется значение по умолчанию (0 PSU) |
* | разделитель контр. суммы NMEA | |
hh | контрольная сумма NMEA | |
<CR><LF> | конец сообщения |
Сообщение D2H_NDTA - статус пеленгационной станции.
Это основное сообщение, передающееся от пеленгационной станции к управляющей системе. При помощи него станция сообщает:
Формат сообщения:
$PAZM3,x,[x],[x],[x],[x.x],[x.x],[x.x],[x.x],[x.x],[x.x],[x.x],[x.x],[x.x],[x.x],[x.x],[x.x]*hh<CR><LF>
№ | Поле/параметр | Описание |
---|---|---|
$ | начало сообщения ‘$’ | |
PAZM | система команд AZM | |
3 | идентификатор сообщения | |
1 | status | Статус сообщения, См. Таблица 3.2. Статус сообщения NDTA |
2 | addr | Адрес маяка в диапазоне от 0 до 15. Параметр пустой для сообщений с полем ‘status’ содержащим ‘0’ (Только локальные параметры) |
3 | rq_code | Идентификатор запрошенного у маяка параметра, См. Таблица 3.3. Идентификаторы адресных запросов |
4 | rs_code | Код ответа маяка, См. Таблица 3.5. Идентификаторы ответов |
5 | msr_dB | Параметр, определяющий качество приема ответного сигнала маяка в dB. 14 - порог приема, значения выше 20 dB означают хорошие условия связи |
6 | p_time_s | Время распростренения сигнала в секундах. Умноженное на значение скорости звука дает наклонную дальность |
7 | s_range_m | Наклонная дальность от пеленгационной антенны до маяка в метрах |
8 | p_range_m | Проекция наклонной дальности от пеленгационной антенны до маяка на водную поверхность в метрах |
9 | r_dpt_m | Абсолютное значение глубины маяка-ответчика в метрах |
10 | a_deg | Горизонтальный угол прихода сигнала маяка-ответчика в градусах. Отсчитывается от нулевого направления пеленгационной антенны по часовой стрелке со стороны кабеля |
11 | e_deg | Вертикальный угол прихода сигнала маяка-ответчика в градусах. Отсчитывается от горизонтальной плоскости, проходящей через антенную решетку |
12 | lprs_mBar | Абсолютное давление в миллибарах по данным встроенного датчика пеленгационной антенны |
13 | ltmp_C | Температура в °С по данным встроенного датчика пеленгационной антенны |
14 | lhdn_deg | Параметр не используется, зарезервирован для будущих применений |
15 | lptc_deg | Угол дифферента пеленгационной антенны. Отсчитывается от вертикали, положительные значения - крен на нос (в сторону нулевого направления антенны), отрицательные - крен на корму |
16 | lrol_deg | Угол крена пеленгационной антенны. Отсчитывается от вертикали, положительные значения - на правый борт (относительно нулевого направления антенны), отрицательные значения - на левый борт |
* | разделитель контр. суммы NMEA | |
hh | контрольная сумма NMEA | |
<CR><LF> | конец сообщения |
Сообщение H2D_DPTOVR - сообщение для задания глубины маякам-ответчикам, не имеющих встроенный датчик глубины. Если команда не принимается устройством, то оно сообщает об этом при помощи команды 2.1. D2H_ACK с соответствущим кодом ошибки.
Формат сообщения:
$PAZM4,x.x*hh<CR><LF>
№ | Поле/параметр | Описание |
---|---|---|
$ | начало сообщения ‘$’ | |
PAZM | система команд AZM | |
4 | идентификатор сообщения | |
1 | dpt_m | Значение глубины в метрах |
* | разделитель контр. суммы NMEA | |
hh | контрольная сумма NMEA | |
<CR><LF> | конец сообщения |
Сообщение D2H_RUCMD - передается маяком-ответчиком управляющей системе, если была получена команда телеуправления.
Формат сообщения:
$PAZM5,x*hh<CR><LF>
№ | Поле/параметр | Описание |
---|---|---|
$ | начало сообщения ‘$’ | |
PAZM | система команд AZM | |
5 | идентификатор сообщения | |
1 | cmdID | Идентификатор команды, cм. Таблица 3.3. Идентификаторы адресных запросов |
* | разделитель контр. суммы NMEA | |
hh | контрольная сумма NMEA | |
<CR><LF> | конец сообщения |
Сообщение D2H_RBCAST - передается маяком-ответчиком управляющей системе, если была получена широковещательная команда.
Формат сообщения:
$PAZM6,x*hh<CR><LF>
№ | Поле/параметр | Описание |
---|---|---|
$ | начало сообщения ‘$’ | |
PAZM | система команд AZM | |
6 | идентификатор сообщения | |
1 | cmdID | Идентификатор команды, cм. Таблица 3.4. Идентификаторы широковещательных команд |
* | разделитель контр. суммы NMEA | |
hh | контрольная сумма NMEA | |
<CR><LF> | конец сообщения |
Сообщение H2D_DINFO_GET - служит для запроса информации об устройстве.
Формат сообщения:
$PAZM?,x*hh<CR><LF>
№ | Поле/параметр | Описание |
---|---|---|
$ | начало сообщения ‘$’ | |
PAZM | система команд AZM | |
? | идентификатор сообщения | |
1 | 0 | Зарезервированно |
* | разделитель контр. суммы NMEA | |
hh | контрольная сумма NMEA | |
<CR><LF> | конец сообщения |
Сообщение D2H_DINFO - информация об устройстве.
Формат сообщения:
$PAZM!,x,x,c--c,c--c,x,x,x*hh<CR><LF>
№ | Поле/параметр | Описание |
---|---|---|
$ | начало сообщения ‘$’ | |
PAZM | система команд AZM | |
! | идентификатор сообщения | |
1 | d_type | Тип устройства (0 - станция пеленгования, 1 - маяк-ответчик) |
2 | addressOrMask | В зависимости от типа устройства - маска адресов маяков-ответчиков или адрес маяка-ответчика |
3 | serialNumber | Серийный номер устройства |
4 | sys_info | Информация о прошивке |
5 | sys_version | Версия прошивки |
6 | pts_type | Тип датчика давления см. Таблица 3.6. Типы датчиков давления |
7 | ch_id | Идентификатор канала связи |
* | разделитель контр. суммы NMEA | |
hh | контрольная сумма NMEA | |
<CR><LF> | конец сообщения |
Поддерживается с версии прошивки 1.33
Сообщение H2D_CREQ - запрос пользовательских параметров. Команда поддерживается только станцией пеленгования. Опрос будет проведен однократно, после чего станция продолжит запрашивать глубину маяков-ответчиков.
Формат сообщения:
$PAZM7,x,x*hh<CR><LF>
№ | Поле/параметр | Описание |
---|---|---|
$ | начало сообщения ‘$’ | |
PAZM | система команд AZM | |
7 | идентификатор сообщения | |
1 | addr | Адрес маяка-ответчика, если поле пустое, указанный параметр будет запрошен у всех маяков-ответчиков, с которыми в данный момент идет работа |
2 | user_data_id | Идентификатор пользовательского параметра cм. Таблица 3.3. Идентификаторы адресных запросов в диапазоне от CDS_REQ_USER_CMD_27 до CDS_REQ_USER_CMD_0 |
* | разделитель контр. суммы NMEA | |
hh | контрольная сумма NMEA | |
<CR><LF> | конец сообщения |
Поддерживается с версии прошивки 1.33
Сообщение H2D_CSET - задание значения пользовательского параметра. Команда поддерживается только маяками-ответчиками.
Формат сообщения:
$PAZM8,x,x,x*hh<CR><LF>
№ | Поле/параметр | Описание |
---|---|---|
$ | начало сообщения ‘$’ | |
PAZM | система команд AZM | |
8 | идентификатор сообщения | |
1 | user_data_id | Идентификатор пользовательского параметра cм. Таблица 3.3. Идентификаторы адресных запросов в диапазоне от CDS_REQ_USER_CMD_27 до CDS_REQ_USER_CMD_0 |
2 | user_data_value | Если параметр пустой, маяк-ответчик передаст значение данного параметра, если он был установлен. Принимаются значения в диапазоне от 0 до 499 |
3 | Оставить поле пустым. Параметр зарезервирован для будущих применений | |
* | разделитель контр. суммы NMEA | |
hh | контрольная сумма NMEA | |
<CR><LF> | конец сообщения |
Код | Наименование | Описание |
---|---|---|
0 | IC_RES_OK | Команда принята без ошибок |
1 | IC_RES_INVALID_SYNTAX | Ошибка синтаксиса |
2 | IC_RES_UNSUPPORTED_CMD | Команда не поддерживается |
3 | IC_RES_ARGUMENT_OUT_OF_RANGE | Значение как минимум одного аргумента вне границ диапазона допустимымх значений |
4 | IC_RES_INVALID_OPERATION | Данная команды не может быть выполнена в текущем состоянии устройства |
5 | IC_RES_VALUE_UNAVAILABLE | Значение запрошенного параметра недоступно в данный момент |
6 | IC_RES_TX_BUSY | Передатчик занят |
7 | IC_RES_RX_BUSY | Приемник занят |
Код | Наименование | Описание |
---|---|---|
0 | NDTA_LOC_ONLY | В сообщении только локальные параметры пеленгационной антенны |
1 | NDTA_REMR | В сообщении присутствуют данные ответа маяка-ответчика и локальные параметры пеленгационной антенны |
2 | NDTA_REMT | в сообщении присутствуют данные о превышении интервала ожидвания маяка-ответчика и локальные параметры пеленгационной антенны |
Код | Наименование | Описание |
---|---|---|
0 | CDS_REQ_DPT | |
1 | CDS_REQ_TMP | |
2 | CDS_REQ_VCC | |
3 | CDS_REQ_USER_CMD_27 | |
4 | CDS_REQ_USER_CMD_26 | |
5 | CDS_REQ_USER_CMD_25 | |
6 | CDS_REQ_USER_CMD_24 | |
7 | CDS_REQ_USER_CMD_23 | |
8 | CDS_REQ_USER_CMD_22 | |
9 | CDS_REQ_USER_CMD_21 | |
10 | CDS_REQ_USER_CMD_20 | |
11 | CDS_REQ_USER_CMD_19 | |
12 | CDS_REQ_USER_CMD_18 | |
13 | CDS_REQ_USER_CMD_17 | |
14 | CDS_REQ_USER_CMD_16 | |
15 | CDS_REQ_USER_CMD_15 | |
16 | CDS_REQ_USER_CMD_14 | |
17 | CDS_REQ_USER_CMD_13 | |
18 | CDS_REQ_USER_CMD_12 | |
19 | CDS_REQ_USER_CMD_11 | |
20 | CDS_REQ_USER_CMD_10 | |
21 | CDS_REQ_USER_CMD_9 | |
22 | CDS_REQ_USER_CMD_8 | |
23 | CDS_REQ_USER_CMD_7 | |
24 | CDS_REQ_USER_CMD_6 | |
25 | CDS_REQ_USER_CMD_5 | |
26 | CDS_REQ_USER_CMD_4 | |
27 | CDS_REQ_USER_CMD_3 | |
28 | CDS_REQ_USER_CMD_2 | |
29 | CDS_REQ_USER_CMD_1 | |
30 | CDS_REQ_USER_CMD_0 |
Код | Наименование | Описание |
---|---|---|
497 | CDS_BCAST_FUNC_0 | |
498 | CDS_BCAST_FUNC_1 | |
499 | CDS_BCAST_FUNC_2 | |
500 | CDS_BCAST_FUNC_3 | |
501 | CDS_BCAST_FUNC_4 | |
502 | CDS_BCAST_STY_SET_0 | |
503 | CDS_BCAST_STY_SET_5 | |
504 | CDS_BCAST_STY_SET_10 | |
505 | CDS_BCAST_STY_SET_15 | |
506 | CDS_BCAST_STY_SET_20 | |
507 | CDS_BCAST_STY_SET_25 | |
508 | CDS_BCAST_STY_SET_30 | |
509 | CDS_BCAST_STY_SET_35 | |
520 | CDS_BCAST_STY_SET_40 |
Код | Наименование | Описание |
---|---|---|
500 | CDS_ERR_RES_0 | |
501 | CDS_ERR_RES_1 | |
502 | CDS_ERR_RES_2 | |
503 | CDS_ERR_RES_3 | |
504 | CDS_ERR_RES_4 | |
505 | CDS_ACK | |
506 | CDS_ERR_NAVAIL | |
507 | CDS_ERR_NSUPP | |
508 | CDS_ERR_BAT_LOW | |
509 | CDS_RSYS_STRT |
Код | Наименование | Описание |
---|---|---|
0 | NO SENSOR | Устройство не содержит встроенного датчика давления |
1 | 100 BAR | Датчик закрытого типа с диапазоном 0 .. 100 Bar |
2 | 30 BAR TYPE 1 | Датчик открытого типа с диапазоном 0 .. 30 Bar |
3 | 30 BAR TYPE 2 | Датчик открытого типа с диапазоном 0 .. 30 Bar |