NMEA 2000 (standardi IEC 61162-3), lyhennettynä NMEA2k tai N2K, on plug-and-play kommunikaatio-standardi, jota käytetään laitteiden, näyttöjen ja antureiden kytkemiseen toisiinsa veneissä ja laivoissa. NMEA 2000 -väylän nopeus on 250 kbit/s ja se mahdollistaa “keskustelun” sensorien ja näyttölaitteiden tai minkä tahansa NMEA 2000 yhteensopivien laitteiden välillä. Sähköisesti NMEA 2000 on yhteensopiva Controller Area Network:in (“CAN väylä”) kanssa, jota käytetään polttoaineella kulkevissa maantiekulkuneuvoissa. NMEA 2000 protokolla perustuu SAE J1939:ään, johon on lisätty marine-spesifisiä viestejä. J1939 ja NMEA 2000 suurin ero, marine-spesifisten viestien lisäksi, on se, että J1939:ssä laitteiden ja anturien osoitteet on kovakoodattu, kun taas NMEA 2000:ssa, osoite neuvotellaan uuden laitteen liittyessä verkkoon. Tämä tekee NMEA 2000:sta plug-and-play tyyppisen verkon. Suurin osa NMEA 2000 ja J1939 viesteistä on broadcast-tyyppisiä eikä niille ole määritelty määränpäätä. Tästä syystä verkossa ei tarvita request-tyyppisiä viestejä.
Raymarine SeaTalk 2, Raymarine SeaTalkNG, Simrad Simnet ja Furuno CAN ovat rebrandattyjä NMEA 2000 implentaatioita, jotka tosin käyttävät erilaista fyysistä liitintä kuin standardoitu DeviceNet Micro-C M12 5-pinninen ruuviliitin.
NMEA 2000 viestien rakenne
NMEA 2000:ssa käytetään 29-bittistä tunnistetta. NMEA 2000:n (J1939) 29-bittisen tunnisteen rakenne on seuraava:
PRIORITY (PRIO) | RESERVED (R) | DATA PAGE (DP) | PDU FORMAT (PF) | PDU SPECIFIC (PS) | SOURCE ADDRESS (SA) |
---|---|---|---|---|---|
3 bits | 1 bit | 1 bit | 8 bits | 8 bits | 8 bits |
Ensimmäiset kolme bittiä (PRIO) määrää viestin prioriteetin nollan kuvatessa suurinta prioritettia. Aikakriittiset kontrolliviestit (kuten moottorinohjaus) saavat yleensä korkean prioriteetin, kun taas vähemmän kriittiset (kuten nopeus) alemman prioriteetin.
Seuraava bitti (R) on varattu tulevaisuutta varten ja se tulisi asettaa nollaksi.
Seuraava bitti on data page -valinta (DP). Se laajentaa mahdollisten PGN:en määrää, joita tunnisteella voidaan kuvata.
PDU format (PF) määrittelee onko kyseessä broadcast- vai osoitteelinen viesti. PDU tulee sanoista Protocol Data Unit.
PDU specific (PS) -kentän tulkinta riippuu PF:n arvosta seuraavasti
- Jos PF on välillä 0 ja 239, viestillä on vastaanotto-osoite (PDU1) ja PS-kenttä sisältää sen osoitteen.
- Jos PF on välillä 240 ja 255, on viesti broadcast-viesti (PDU2) ja PS kenttä sisältää Group Extension:in (ryhmän laajennuksen). Ryhmän laajennukset laajentavat mahdollista broadcastattavien PGN:ien määrää.
Tunnisteen viimeiset 8 bittiä sisältävät lähettävän laitteen ID:n (osoitteen). Jokaisella laitteella pitää olla oma ID ja verkossa voi olla maksimissaan 254 eri ID:tä. Tosin fyysisesti kytkettynä voi yhdessä verkossa olla vain 50 laitetta.
Termiä Parameter Group Number (PGN) käytetään 18 bitin ryhmästä: Reserve bit, DP, DF ja PS, jotka on merkitty yllä olevaan taulukkoon sinisellä.
Esimerkkejä
Esimerkki: tunniste 0x1F50BEE on binäärisenä 000 000 0 1 11110101 00001011 11101110 ja se voidaan jakaa seuraaviin kenttiin
0x01 | 0xF5 | 0x0B | 0xEE | |||
000 | 000 | 0 | 1 | 11110101 | 00001011 | 11101110 |
– | Prio | R | DP | PF | PS | SA |
- Kolme ensimmäistä bittiä ei ole käytössä (000)
- Prio, R ja DP (3+1+1 bittiä) = 0x01 (000 0 1)
- PF (8 bittiä) = 0xF5 = 245, eli tämä on brodcast-viesti (PDU2)
- PS (8 bittiä) = 0x0B, eli Group Extension = 11
- SA (8 bittiä) = 0xEE = 238
PGN = R, DP, PF ja PS -kentät – tässä tapauksessa 0x1F50B (eli PGN 128267)
Myös 0xDF50BEE sisältää PGN 128267, mutta se ei näy suoraan HEX-arvosta, koska priority-bitit eivät ole tässä 000. Jotta PGN:n saa tästä ulos, pitää HEX ensin muuttaa binääriseksi seuraavasti:
0x0D | 0xF5 | 0x0B | 0xEE | |||
000 | 011 | 0 | 1 | 11110101 | 00001011 | 11101110 |
– | Prio | R | DP | PF | PS | SA |
Tästä otetaan binäärisenä PNG-osa (R, DP, PF ja PS) eli 0 1 11110101 00001011 ja muutetaan se HEX:ksi 0x1F50B (PGN 128267).
NMEA 2000 PGN -lista
Alla on lista NMEA 2000 PGN:stä (lähde Yacht Devices).
PGN | HEX | SISÄLTÖ |
---|---|---|
65311 | 0x0FF1F | Magnetic Variation (Raymarine Proprietary) |
126992 | 0x1F010 | System Time |
127237 | 0x1F105 | Heading/Track Control |
127245 | 0x1F10D | Rudder |
127250 | 0x1F112 | Vessel Heading |
127251 | 0x1F113 | Rate of Turn |
127258 | 0x1F11A | Magnetic Variation |
127488 | 0x1F200 | Engine Parameters, Rapid Update |
128259 | 0x1F503 | Speed, Water referenced |
128267 | 0x1F50B | Water Depth |
128275 | 0x1F513 | Distance Log |
129025 | 0x1F801 | Position, Rapid Update |
129026 | 0x1F802 | COG & SOG, Rapid Update |
129029 | 0x1F805 | GNSS Position Data |
129033 | 0x1F809 | Local Time Offset |
129044 | 0x1F814 | Datum |
129283 | 0x1F903 | Cross Track Error |
129284 | 0x1F904 | Navigation Data |
129285 | 0x1F905 | Navigation — Route/WP information |
129291 | 0x1F90B | Set & Drift, Rapid Update |
129539 | 0x1FA03 | GNSS DOPs |
129540 | 0x1FA04 | GNSS Sats in View |
130066 | 0x1FC12 | Route and WP Service — Route/WP— List Attributes |
130067 | 0x1FC13 | Route and WP Service — Route — WP Name & Position |
130074 | 0x1FC1A | Route and WP Service — WP List — WP Name & Position |
130306 | 0x1FD02 | Wind Data |
130310 | 0x1FD06 | Environmental Parameters |
130311 | 0x1FD07 | Environmental Parameters |
130312 | 0x1FD08 | Temperature |
130313 | 0x1FD09 | Humidity |
130314 | 0x1FD0A | Actual Pressure |
130316 | 0x1FD0C | Temperature, Extended Range |
129038 | 0x1F80E | AIS Class A Position Report |
129039 | 0x1F80F | AIS Class B Position Report |
129040 | 0x1F810 | AIS Class B Extended Position Report |
129041 | 0x1F811 | AIS Aids to Navigation (AtoN) Report |
129793 | 0x1FB01 | AIS UTC and Date Report |
129794 | 0x1FB02 | AIS Class A Static and Voyage Related Data |
129798 | 0x1FB06 | AIS SAR Aircraft Position Report |
129809 | 0x1FB11 | AIS Class B “CS” Static Data Report, Part A |
129810 | 0x1FB12 | AIS Class B “CS” Static Data Report, Part B |
Kiinnostava aihe. Itse olen vasta aloitteleva veneilijä joten vielä ei nämä tunnisteet ja viestittely juurikaan kerro mitään, mutta en malta odottaa että opin lisää. Hankimme puolison kanssa ensimmäisen veneen tänä kesänä ja innolla odottelen jo uutta kautta. Katseltiin juuri viikonloppuna myös uusia sähkövinssejä.