NMEA 2000 Protokolü Hakkında Teknik Rehber
NMEA 2000, modern denizcilik cihazlarının hızlı, güvenilir ve çoklu cihaz iletişimini mümkün kılan bir iletişim protokolüdür. Bu yazıda NMEA 2000’in yapısını, avantajlarını, veri çerçevesini, cihaz topolojisini, NMEA 0183’e göre farklılıklarını ve uygulama alanlarını teknik bir dille inceleyeceğiz.
🔹 NMEA 2000 Nedir?
NMEA 2000 (N2K), National Marine Electronics Association tarafından geliştirilen ve CAN Bus altyapısı üzerine inşa edilmiş, yüksek hızlı, çoklu cihazlı bir denizcilik iletişim protokolüdür. GPS, AIS, radar, sensörler, otomatik pilot ve motor kontrol sistemleri gibi cihazlar arasında veri alışverişini standartlaştırır.
🛠️ Teknik Özellikler
1. Fiziksel Katman
- İletişim Altyapısı: CAN Bus (Controller Area Network)
- Baud Hızı: 250 kbps
- Kablo Yapısı:
- Backbone (Omurga): Kalın kablo, veri iletimi için merkezi hat
- Drop Lines: Omurgadan cihaza giden bağlantılar
- Bağlantı Tipi: Mikro-C veya Mini-C konektörleri
2. Veri Formatı
- NMEA 0183’ün ASCII tabanlı yapısından farklı olarak, NMEA 2000 binary veri formatı kullanır.
- Her veri paketi PGN (Parameter Group Number) adı verilen özel tanımlayıcılarla ayrıştırılır.
- Maksimum paket uzunluğu: 8 byte.
📑 NMEA 2000 Mesaj Yapısı
NMEA 2000 veri çerçevesi CAN Bus altyapısına uygun olarak aşağıdaki alanlardan oluşur:
| Alan | Açıklama |
|---|---|
| PGN | Mesaj tipini belirleyen benzersiz kimlik |
| Priority | Mesajın öncelik derecesi |
| Source Address | Veriyi gönderen cihazın ID’si |
| Destination | Hedef cihaz veya yayın tipi |
| Data Field | Maksimum 8 byte binary veri alanı |
| CRC | Veri bütünlüğü kontrol değeri |
🧩 Yaygın NMEA 2000 PGN’leri
NMEA 2000 mesajları, PGN numaraları üzerinden tanımlanır. Bazı sık kullanılan PGN’ler:
| PGN | Mesaj Türü | Açıklama |
|---|---|---|
| 127250 | Vessel Heading | Gemi baş açısı verisi |
| 127488 | Engine Parameters (Rapid) | Motor parametreleri |
| 129025 | Position Rapid Update | Konum güncelleme |
| 129029 | GNSS Position Data | GPS uydu verisi |
| 130306 | Wind Data | Rüzgar hızı ve yönü |
🔄 NMEA 2000 vs. NMEA 0183
| Özellik | NMEA 0183 | NMEA 2000 |
|---|---|---|
| Veri Formatı | ASCII | Binary (CAN Bus) |
| Baud Hızı | 4800 – 38400 bps | 250 kbps |
| Topoloji | Noktadan noktaya | Çoklu cihaz ağı |
| Mesaj Yapısı | Cümle tabanlı | PGN tabanlı |
| Kapasite | Tek alıcı | Çoklu alıcı |
| Konektör | RS-232/RS-422 | Mikro-C / Mini-C |
🛠️ Uygulama Alanları
NMEA 2000, çoklu cihaz entegrasyonu gerektiren modern denizcilik sistemlerinde kullanılır:
- GPS ve Navigasyon Sistemleri
- AIS (Automatic Identification System)
- Radar Sistemleri
- Otomatik Pilotlar
- Motor Kontrol Sistemleri
- Meteorolojik Sensörler
- Derinlik ve Rüzgar Ölçerler
🔧 NMEA 2000 İçin Örnek Python Kodu
import can
# SocketCAN üzerinden NMEA 2000 verilerini dinleme örneği
def read_nmea2000():
bus = can.interface.Bus(channel='can0', bustype='socketcan')
for msg in bus:
print(f"PGN: {msg.arbitration_id}, Data: {msg.data.hex()}")
read_nmea2000()
Bu kod, Linux SocketCAN üzerinden NMEA 2000 ağına bağlı cihazlardan gelen PGN verilerini okur.
📌 Sonuç
NMEA 2000, modern denizcilik teknolojilerinde yüksek hızlı, çoklu cihazlı ve güvenilir veri iletişimi sağlayan bir protokoldür. NMEA 0183’e kıyasla daha gelişmiş özellikler sunarak denizcilik otomasyonu, sensör entegrasyonu ve navigasyon çözümlerinde standart haline gelmiştir.
❓ Bu Yazı Hangi Soruları Cevaplıyor?
- NMEA 2000 protokolü nedir ve nasıl çalışır?
- NMEA 2000 veri çerçevesi ve PGN yapısı nasıldır?
- Hangi cihazlar NMEA 2000 kullanır?
- NMEA 2000 ile NMEA 0183 arasındaki farklar nelerdir?
- Python ile NMEA 2000 verileri nasıl okunur?


Merhaba, biraz okuyabilirim. Güzel sunum. Mutlaka bilgi alabileceğim bir yetkiliyle görüşmek isterim… iyi çalışmalar.