Yacht Devices Новости: NMEA 2000 Bridge: программируемый мост между сетями CAN
25.08.2016
Yacht Devices с гордостью представляет наш новейший продукт: мост для соединения двух сегментов сети NMEA 2000 с дополнительной обработкой сообщений между ними. Это устройство решает такие проблемы, как совместимость устройств NMEA 2000, настройка и калибровка, изоляция устройств от других, а также преодоление ограничения на длину сети и количество устройств для сетей CAN и NMEA 2000.
Продукт имеет два интерфейса NMEA 2000 и может объединять две физические сети в одну логическую сеть с возможностью отправки сообщений между ними. Один из интерфейсов устройства имеет высоковольтную гальваническую развязку и может работать при высоком напряжении питания, до 30В. Это дает возможность безопасно подключать сетевое оборудование, не соответствующее стандартам NMEA 2000.
Но главное преимущество моста в том, что данные NMEA можно обрабатывать на лету. Устройство оснащено слотом MicroSD, позволяющим пользователю загрузить программу обработки в EEPROM (энергонезависимую память) из простого текстового файла или, наоборот, загрузить текущую программу для редактирования. В устройство встроен переводчик программы, поэтому для создания или редактирования не нужен компьютер, достаточно планшета или смартфона с текстовым редактором и слотом для карт MicroSD.
Пример 1. Данные о глубине должны быть скорректированы на +0,2 м.
# Processing Water Depth messages (PGN 0x1F50B), received
# from a device on the CAN2 network with any address
onFilterMatch(CAN2, 0x1ffff00, 0x1F50B00)
{
a = get(DATA+1, uint32) # extract 32-bit depth from message
if (a < 0xFFFFFFFF-20) # check validity of value
{
set(DATA+1, uint32,a + 20) # save the corrected value
}
send(CAN1) # send corrected message to CAN1 network
}
Задержка сообщения устройством (от момента приема до передачи сообщения CAN -контроллером) с программой, имеющей 20 фильтров сообщений, составляет 45 микросекунд для несовпадающих сообщений.
Общее время выполнения в примере 1 сообщений с PGN 0x1F50B составило 140 микросекунд благодаря трансляции текста программы в байт-код в момент загрузки на устройство.
Таким образом, для большинства сценариев устройство может обрабатывать потоки данных с обоих интерфейсов без использования внутренней очереди сообщений (время передачи однокадрового сообщения NMEA 2000 составляет 500 микросекунд).
Пример 2. Дублирование данных атмосферного давления для старого оборудования
# Process Actual Pressure messages (PGN 0x1FD0A) and generate
# Environmental Parameters messages (PGN 0x1FD06)
onFilterMatch(CAN2, 0x1ffff00, 0x1FD0A00)
{
send(CAN1) # first, send original message
a = get(DATA+2, uint8) # extract the data type
if (a == 0) # is this atmospheric pressure?
{
b = get(DATA+3, int32) # extract pressure value
if (b != 0x7FFFFFFF) # check validity of value
{
set(2,uint8,6) # correct PGN from 0x1FD0A to 0x1FD06
set(DATA+1, uint32, 0xFFFFFFFF) # set unused fields
set(DATA+5, uint16, b / 1000) # convert and set pressure
send(CAN1) # send Environmental Parameters
}
}
}
В примере 2 мы сначала пересылали сообщение о фактическом давлении, а затем исправляли PGN, хранящийся в сообщениях памяти 0x1FD0A, на 0x1FD06, чтобы получить сообщение о параметрах окружающей среды. Установите неиспользуемые поля температуры и влажности со значением, означающим «нет данных», преобразуйте данные об атмосферном давлении (в исходном сообщении разрешение значения давления в 1000 раз больше), а затем отправьте. Таким образом, старое оборудование в сети CAN1 может отображать данные от нового оборудования в сети CAN2.
Устройство и язык программирования также поддерживают:
- назначение аппаратных фильтров сообщений;
- предварительная «сборка» выбранных быстрых сообщений NMEA 2000;
- создание и отправка быстрых сообщений;
- доступ из программы к таймеру реального времени;
- все типы данных NMEA 2000, включая значения с плавающей запятой;
- 26 глобальных переменных и буфер push/pop для сообщений;
- арифметические, двоичные и сдвиговые операции;
- отправка сообщений с адресов моста NMEA 2000.
Использование этого устройства требует глубокого понимания протокола NMEA 2000. Специалисты нашей компании помогут каждому прошу помощи, при условии предоставления журнала NMEA 2000 в любом популярном формате (файл журнала Raymarine SeaTalk NG, файл журнала ActiSense EBL, Yacht Devices Voyage Recorder DAT, файл журнала CanBoat).
Устройство поступит в продажу в сентябре 2016 года. Ознакомиться с ним можно на сайте стенд № 411 на Международной конференции и выставке морской электроники NMEA 2016, которая пройдет с 20 по 22 сентября в курортном отеле Naples Grande Beach Resort, Неаполь, Флорида.