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, Неаполь, Флорида.