Приветствую, Уважаемые!
Крайне неохотно пишу на форумах, ибо чаще всего это не имеет практического смысла, но почитав написанное тут увидел, что многое валится в одну кучу, потом тщательно перемешивается и, в зависимости от собственных верований, подается под нужным соусом. Но читают топики куда больше народа чем пишут в них, и часто этот бардак только забивает головы тех, кто далек от электроники, программирования, установки, настройки и иных аспектов эксплуатации подобных приборов и систем.
Поэтому все же решил влезть в местный междусобойчик, может быть это будет полезно тем, кто все еще ищет свою истину.
Но начну со всеми любимой здесь фаллометрии: являясь разработчиком судовых навигационных и иных систем, а так же участником и автором определенной части доработок протокола НМЕА, мне знакомы все уровни их взаимодействия, начиная с зачастую идиотских стандартов упаковки и обмена информацией, программной реализации в приборах и последующей передачи всего этого по различным физическим каналам и, конечно же, поиском и устранением неисправностей на образцах продукции и конечных потребителях. Короче, я "в теме"
Начну с того, что "рынка" в том виде, как его пропагандируют (самоопределяющаяся система) у нас нет. И не только у нас, но уже и у "них" тоже. Все решается деньгами и откатами. Так что теперь на 80-90% те или иные решения выбирают исходя не из их оптимальности, а в угоду коммерческой выгоде. Теперь переходим к деталям.
Для начала давайте отделим физическую среду от форматов данных и протоколов передачи этих самых данных. В контексте темы к физической среде относятся такие электрические каналы, как RS232(либо директ TTL), RS422, RS485 и CAN. Первые два являются однонаправленными (и легко заменяются оптическими средами передачи данных), два последних двунаправленной шиной. Поверх них ложится уровень упаковки единичных данных. Для первых трех каналов это UART, оперирующий стандартным байтом в виде единичной информации, и CAN имеющий чудовищное информационное поле единичной передачи (здесь и далее CANом буду называть как физическую среду с пассивным и подавляющим уровнями сигнала, так и передаваемый фрейм простейших данных, в зависимости от контекста повествования). И уже поверх этого реализуются различные протоколы передачи этих самых единичных данных, такие как НМЕА0183, НМЕА2К и упоминавшийся выше ModBus.
Начнем с шин.
Самой перспективной и удобной в прикладном плане является RS422. Её реинкарнация в качестве LVDS и иже с ней (в виде точка-точка) получила прописку везде, начиная от ПК в виде шины PCI-экспресс и заканчивая её вариациями типа SATA и USB3.0. То есть это "самая-самая" шина из всех, которые человечество смогло придумать на данный момент.
Она очень быстрая, очень помехоустойчивая, очень легко разводящаяся и монтируемая, очень легко стыкуемая и безусловно самая простая из диагностируемых. RS232 наследует от неё практически все, кроме помехоустойчивости, и о ней мы дальше говорить не будем.
RS485 беря все лучшее от RS422 расширяет её возможности (там где это нужно) введением множественности передатчиков на одной шине, что требует различных методов разделения времени передачи между ними. Одним из них является чисто программный протокол ModBus. Другой разновидностью RS485 является шина USB до версии 2.0 включительно, с аппаратно-программным чудовищным протоколом, который может придумать только воспаленное воображение обдолбанного наркоши, но который все мы теперь "хаваем, что дают" (пример чисто коммерческого продвижения абсолютно уродской архитектуры, на манер "добровольного" кормления собак горчицей).
Переходим к CAN. Её основное отличие (как шины) в том, что она не только дозволяет одновременно и безболезненно работать нескольким передатчикам на одну шину, но и позволяет некоторым из них понимать, что они сейчас "лишние" и отключаться от шины без искажения исходного сообщения (как это происходит в эзернете). Теоретически. Цена этого - специальный приемопередатчик, без которого все это не работает, но который в своей работе не может безболезненно использовать произвольные потоковые данные на уровне отдельных байтов как это может UART. То есть потенциал расширяемости системы сильно хуже, чем у UART.
Есть ли что-то, что объединяет все лучше, но не имеет их недостатков? Как ни странно, но есть. Это шина CCD. Про неё мало кто слышал, если только не работал со спецификациями Крайслера или с электроникой тех же Чероки. В двух словах это CAN, но работающий не с кошмарным битовым фреймом, а с данными UART и легко оперирующий байтовыми потоками любых конфигураций.
К сожалению, все двунаправленные шины имеют один общий недостаток - случайно или намеренно любой передатчик может сорвать, остановить или модифицировать обмен на всей шине. В качестве лирического отступления - владельцев "крутых" иномарок в том числе с установленными дополнительными антиугонниками типа сканера отпечатка пальцев и иной подобной лабуды могу огорчить, что ваши машины являются всего лишь "неуловимым Джо". Цена вопроса блокиратора, который задавит все эти примочки, но позволит спокойно завести двигатель и уехать куда угодно, составляет баксов 10 в партии от 1000 штук. И сама причина такой возможности как раз в всенаправленной шине данных. Возвращаемся к морским приборам.
Протокол НМЕА0183 построен на UART и чаще всего реализован на RS232/422/485, а НМЕА 2К привязан к CAN.
Правда и ложь:
1) NMEA0183 малоскоростной и не позволяет обмениваться необходимым количеством данных - это ЛОЖЬ.
2) Приборы NMEA 2K абсолютно совместимы между собой - это тоже ЛОЖЬ. Совместимы, но не абсолютно. И в тех случаях, когда они не совместимы, решить это простыми средствами невозможно, а вот для NMEA0183 очень даже легко и просто. Кстати, со скоростью у CAN(и у НМЕА2К) проблем больше, чем у 0183, ибо не зря нас ждет высокоскоростной релиз шины. А значит в обозримом будущем предложат всем менять свои приборы на такие же, но новые и с поддержкой какой-нибудь очередной спецификации НМЕА 2000HS или 2К++ или 3К.
3) Сети 2К проще сетей 0183 - ПРАВДА
4) Сети 2К надежнее сетей 0183 - ЛОЖЬ
Учтем еще одну спецификe яхтинга, особенно отечественного, а в перспективе и любого иного, ибо качество обслуживания всего и вся падает катастрофически везде и будет падать и дальше, а стоить будет дороже. Поэтому, чтобы быть в чем-то уверенными, лучше все делать самим. И здесь на первое место выходит необходимость в простоте монтажа, диагности и поиска неисправностей подручными методами. Кто бы что ни говорил, но НМЕА0183 здесь на два корпуса впереди 2К. Кто хочет поспорить - попробуйте для начала с обычным компом и простой терминалкой получить от прибора 2К информацию и оценить, насколько она адекватна и сравните с аналогичной задачей для НМЕА 0183.
Да, я считаю, что в некоммерческом(частном) применении суммарный потенциал и выгода от НМЕА0183 превышает таковую у 2К, и так будет до тех пор, пока её не удавят насильственнно.
Кто имеет иное мнение оставайтесь при нем, спорить со мной не надо, мне все равно. Последнее время мне стали попадаться яхты с цветными ЖК-приборами, на которых на солнце абсолютно ничего не видно, но их владельцы уверены, что у них стоит все самое лучшее. Пусть так. Это выбор каждого, убеждать кого-то в чем-то не моя задача. Всем Удачи и пусть вам никогда не придется ничего самим чинить!